wxMaxima
BTextCtrl.h
1 // -*- mode: c++; c-file-style: "linux"; c-basic-offset: 2; indent-tabs-mode: nil -*-
2 //
3 // Copyright (C) 2004-2015 Andrej Vodopivec <andrej.vodopivec@gmail.com>
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software
18 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 //
20 // SPDX-License-Identifier: GPL-2.0+
21 
22 #ifndef BTEXTCTRL_H
23 #define BTEXTCTRL_H
24 
25 #include "precomp.h"
26 #include <wx/wx.h>
27 #include "Configuration.h"
28 
32 class BTextCtrl : public wxTextCtrl
33 {
34 public:
35  BTextCtrl(wxWindow *parent,
36  wxWindowID id,
37  Configuration *cfg,
38  const wxString &value = wxEmptyString,
39  const wxPoint &pos = wxDefaultPosition,
40  const wxSize &size = wxDefaultSize,
41  long style = 0);
42 
43  ~BTextCtrl();
44 
45  void SetSkipTab(bool skip)
46  {
47  m_skipTab = skip;
48  }
49 
50 private:
51  bool m_skipTab;
52 
53  bool MatchParenthesis(int code);
54 
55  void CloseParenthesis(wxString open, wxString close, bool fromOpen);
56 
57  void OnChar(wxKeyEvent &event);
58 
59  Configuration *m_config;
60 };
61 
62 #endif // BTEXTCTRL_H
Configuration
Definition: Configuration.h:83
BTextCtrl
Definition: BTextCtrl.h:32