00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00030
00031
00032
00033
00034 #ifdef __GNUG__
00035 #pragma implementation "GreekDlg.h"
00036 #endif
00037
00038
00039 #include "mg/mgprec.h"
00040 #include <wx/statline.h>
00041
00042 #ifndef mgPRECOMP
00043 #include <wx/wxprec.h>
00044
00045 #include "mg/GUIUtils.h"
00046 #include "mg/GreekDlg.h"
00047 #endif
00048
00049
00050
00051
00052
00053 BEGIN_EVENT_TABLE(mgSmallGreekPanel, mgButtonListPanel)
00054
00055
00056 EVT_COMMAND_RANGE(IDC_GREEKDLG_SMALLBUTTONS,
00057 (IDC_GREEKDLG_SMALLBUTTONS+GREEKDLG_ALPHABET_LENGHT),
00058 wxEVT_COMMAND_BUTTON_CLICKED, mgSmallGreekPanel::OnButtons)
00059
00060 END_EVENT_TABLE()
00061
00062 BEGIN_EVENT_TABLE(mgCapitalGreekPanel, mgButtonListPanel)
00063
00064
00065 EVT_COMMAND_RANGE(IDC_GREEKDLG_CAPITALBUTTONS,
00066 (IDC_GREEKDLG_CAPITALBUTTONS+GREEKDLG_ALPHABET_LENGHT),
00067 wxEVT_COMMAND_BUTTON_CLICKED, mgCapitalGreekPanel::OnButtons)
00068
00069 END_EVENT_TABLE()
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088 wxString mgSmallGreekPanel::strSmallAlphabet =
00089 wxT("\x03B1\x03B2\x03B3\x03B4\x03B5\x03B6\x03B7\x03B8\x03B9\x03BA\x03BB\x03BC\x03BD\x03BE\x03BF")
00090 wxT("\x03C0\x03C1\x03C3\x03C4\x03C5\x03C6\x03C7\x03C8\x03C9");
00091 wxString mgCapitalGreekPanel::strCapitalAlphabet =
00092 wxT("\x0391\x0392\x0393\x0394\x0395\x0396\x0397\x0398\x0399\x039A\x039B\x039C\x039D\x039E\x039F")
00093 wxT("\x03A0\x03A1\x03A3\x03A4\x03A5\x03A6\x03A7\x03A8\x03A9");
00094
00095 wxString mgSmallGreekPanel::strLetterNames[] = { wxT("Alfa"), wxT("Beta"), wxT("Gamma"), wxT("Delta"),
00096 wxT("Epsilon"), wxT("Zeta"), wxT("Eta"), wxT("Teta"), wxT("Iota"), wxT("Cappa"), wxT("Lambda"), wxT("Mi"), wxT("Ni"),
00097 wxT("Xi"), wxT("Omicron"), wxT("Pi"), wxT("Ro"), wxT("Sigma"), wxT("Tau"), wxT("Ipsilon"), wxT("Fi"), wxT("Chi"),
00098 wxT("Psi"), wxT("Omega") };
00099
00100
00101
00102
00103
00104
00105
00106
00107 mgSmallGreekPanel::mgSmallGreekPanel(wxWindow *parent, wxWindow *client, mgMathWnd *mathwnd, mgMathBox *mathbox,
00108 wxWindowID id, const wxPoint &position, const wxSize& size, long style) :
00109
00110 mgButtonListPanel(parent, client, mathwnd, mathbox,
00111 GREEKDLG_GRID_COLUMNS, GREEKDLG_GRID_ROWS, IDC_GREEKDLG_SMALLBUTTONS,
00112 id, position, size, style)
00113 {
00114
00115 m_fButtons = mcElementHelpers::gui_GetDefaultStyle(0)->GetSpecialTextSettings()->m_hFont;
00116 m_bEnableFontButtonUpdate = TRUE;
00117 SetFontButtonPointSize(GREEKDLG_FONT_POINTSIZE);
00118
00119
00120 BuildSizer();
00121 AddButtonsToSizer(0, strSmallAlphabet.Len(),
00122 wxSize(GREEKDLG_BUTTON_MINWIDTH, GREEKDLG_BUTTON_MINHEIGHT));
00123
00124 BuildPanel(0, 50);
00125 }
00126
00127
00128 void mgSmallGreekPanel::OnButtons( wxCommandEvent &ev )
00129 {
00130
00131
00132
00133 SendSpecialKeyEvent(this, strSmallAlphabet.GetChar(GetButtonID(ev)));
00134 }
00135
00136
00137
00138
00139
00140
00141
00142
00143 mgCapitalGreekPanel::mgCapitalGreekPanel(wxWindow *parent, wxWindow *client, mgMathWnd *mathwnd, mgMathBox *mathbox,
00144 wxWindowID id, const wxPoint &position, const wxSize& size, long style) :
00145
00146 mgButtonListPanel(parent, client, mathwnd, mathbox,
00147 GREEKDLG_GRID_COLUMNS, GREEKDLG_GRID_ROWS, IDC_GREEKDLG_CAPITALBUTTONS,
00148 id, position, size, style)
00149 {
00150
00151 m_fButtons = mcElementHelpers::gui_GetDefaultStyle(0)->GetSpecialTextSettings()->m_hFont;
00152 m_bEnableFontButtonUpdate = TRUE;
00153 SetFontButtonPointSize(GREEKDLG_FONT_POINTSIZE);
00154
00155
00156 BuildSizer();
00157 AddButtonsToSizer(0, strCapitalAlphabet.Len(),
00158 wxSize(GREEKDLG_BUTTON_MINWIDTH, GREEKDLG_BUTTON_MINHEIGHT));
00159
00160 BuildPanel(0, 50);
00161 }
00162
00163
00164 void mgCapitalGreekPanel::OnButtons( wxCommandEvent &ev )
00165 {
00166
00167
00168
00169 SendSpecialKeyEvent(this, strCapitalAlphabet.GetChar(GetButtonID(ev)));
00170 }
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180 void mgGreekPalette::Build(wxWindow *client, mgMathWnd *mathwnd, mgMathBox *mathbox)
00181 {
00182 wxPanel *main = new wxPanel(this);
00183 wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
00184
00185
00186
00187 sizer->Add(new mgSmallGreekPanel(main, client, mathwnd, mathbox),
00188 1, wxGROW | wxALL, 5);
00189 sizer->Add(new wxStaticLine(main, -1),
00190 0, wxGROW | wxLEFT | wxRIGHT, 5);
00191 sizer->Add(new mgCapitalGreekPanel(main, client, mathwnd, mathbox),
00192 1, wxGROW | wxALL, 5);
00193
00194 main->SetSizer(sizer);
00195 sizer->SetSizeHints(main);
00196
00197 #ifdef mgUSE_PALETTEFRM
00198 SetClient(main);
00199 AddMiniButton(new wxCollapseBox(this));
00200 SetSizeHintsUsingClientHints();
00201 #else
00202
00203 SetSize(300, 180);
00204 #endif
00205 }
00206
00207
00208
00209