#include "../wxsheaders.h" #include "wxsstdmanager.h" #include "wxsbutton.h" #include "wxsframe.h" #include "wxspanel.h" #include "wxsdialog.h" #include "wxsgridsizer.h" #include "wxsstatictext.h" #include "wxscheckbox.h" #include "wxstogglebutton.h" #include "wxscombobox.h" #include "wxslistbox.h" #include "wxsspacer.h" #include "wxsboxsizer.h" #include "wxsstaticboxsizer.h" #include "wxsflexgridsizer.h" #include "wxstextctrl.h" #include "wxsgauge.h" #include "wxsradiobutton.h" #include "wxsscrollbar.h" #include "wxsspinbutton.h" #include "wxsspinctrl.h" #include "wxstreectrl.h" #include "wxsradiobox.h" #include "wxsdatepickerctrl.h" #include "wxsstaticline.h" #include "wxssplitterwindow.h" #include "wxsnotebook.h" #include "wxslistbook.h" #include #include #include /******************************************************************************/ /* Infos for standard widgets */ /******************************************************************************/ static const wxString DefLicence = _("wxWidgets License"); static const wxString DefAuthor = _("wxWidgets Team"); static const wxString DefAuthorEmail = _T(""); static const wxString DefAuthorSite = _("www.wxwidgets.org"); static const wxString DefCategory = _("Standard"); static const wxString DefSizerCat = _("Layout"); #define Entry2Headers(Name,Link,Header1,Header2) \ { _T("wx") _T(#Name), \ DefLicence, \ DefAuthor, \ DefAuthorEmail, \ DefAuthorSite, \ _T("http://www.wxwidgets.org/manuals/2.6.2/") _T(Link), \ DefCategory, \ _T(#Name), \ false, \ false, \ false, \ 2, 6, \ NULL, \ &wxsStdManager, \ wxs##Name##Id, \ 0, \ wxs##Name##Styles, \ wxs##Name##Events, \ _T(Header1), \ _T(Header2), \ wxsWidgetInfo::exNone \ }, #define Entry(Name,Link,Header) \ Entry2Headers(Name,Link,Header,"") #define WindowEntry(Name,Link,Header) \ { _T("wx") _T(#Name), \ DefLicence, \ DefAuthor, \ DefAuthorEmail, \ DefAuthorSite, \ _T("http://www.wxwidgets.org/manuals/2.6.2/") _T(Link), \ _T(""), \ _T(""), \ false, \ false, \ false, \ 2, 6, \ NULL, \ &wxsStdManager, \ wxs##Name##Id, \ 0, \ wxs##Name##Styles, \ wxs##Name##Events, \ _T(Header), \ _T(""), \ wxsWidgetInfo::exNone \ }, #define SpacerEntry() \ { _T("Spacer"), \ DefLicence, \ DefAuthor, \ DefAuthorEmail, \ DefAuthorSite, \ _T("http://www.wxwidgets.org/manuals/2.6.2/wx_wxsizer.html#wxsizeradd"), \ DefSizerCat, \ _T(""), \ false, \ false, \ true, \ 2, 6, \ NULL, \ &wxsStdManager, \ wxsSpacerId, \ 0, \ NULL, \ NULL, \ _T(""), \ _T(""), \ wxsWidgetInfo::exNone \ }, #define SizerEntry(Name,Link,Header) \ { _T("wx") _T(#Name), \ DefLicence, \ DefAuthor, \ DefAuthorEmail, \ DefAuthorSite, \ _T("http://www.wxwidgets.org/manuals/2.6.2/") _T(Link), \ DefSizerCat, \ _T(#Name), \ true, \ true, \ false, \ 2, 6, \ NULL, \ &wxsStdManager, \ wxs##Name##Id, \ 0, \ NULL, \ NULL, \ _T(Header), \ _T(""), \ wxsWidgetInfo::exNone \ }, static wxsWidgetInfo StdInfos[] = { { _T(""), _T(""), _T(""), _T(""), _T(""), _T(""), _T(""), _T(""), false, false, false, 0, 0, NULL, NULL, wxsNoneId, 0, NULL, NULL, _T(""), _T(""), wxsWidgetInfo::exNone }, // NONE SizerEntry(GridSizer,"wx_wxgridsizer.html#wxgridsizer","") SizerEntry(BoxSizer,"wx_wxboxsizer.html#wxboxsizer","") SizerEntry(StaticBoxSizer,"wx_wxstaticboxsizer.html#wxstaticboxsizer","") SizerEntry(FlexGridSizer,"wx_wxflexgridsizer.html#wxflexgridsizer","") SpacerEntry() Entry(Button, "wx_wxbutton.htm#wxbutton","") Entry(ToggleButton,"wx_wxtogglebutton.html#wxtogglebutton","") Entry(CheckBox, "wx_wxcheckbox.html#wxcheckbox","") Entry(StaticText, "wx_wxstatictext.html#wxstatictext","") Entry(ComboBox, "wx_wxcombobox.html#wxcombobox","") Entry(ListBox, "wx_wxlistbox.html#wxlistbox","") Entry(Panel, "wx_wxpanel.html#wxpanel","") Entry(TextCtrl, "wx_wxtextctrl.html#wxtextctrl","") Entry(Gauge, "wx_wxgauge.html#wxgauge","") Entry(RadioButton, "wx_wxradiobutton.html#wxradiobutton","") Entry(ScrollBar, "wx_wxscrollbar.html#wxscrollbar","") Entry(SpinButton, "wx_wxspinbutton.html#wxspinbutton","") Entry(SpinCtrl, "wx_wxspinctrl.html#wxspinctrl","") Entry(TreeCtrl, "wx_wxtreectrl.html#wxtreectrl","") Entry(RadioBox, "wx_wxradiobox.html#wxradiobox","") Entry2Headers(DatePickerCtrl,"wx_wxdatepickerctrl.html#wxdatepickerctrl","","") Entry(StaticLine, "wx_wxstaticline.html#wxstaticline","") Entry(SplitterWindow,"wx_wxsplitterwindow.html#wxsplitterwindow","") Entry(Notebook, "wx_wxnotebook.html#wxnotebook","") Entry(Listbook, "wx_wxlistbook.html#wxlistbook","") WindowEntry(Dialog,"wx_wxdialog.html#wxdialog","") WindowEntry(Frame, "wx_wxframe.html#wxframe","") WindowEntry(Panelr,"wx_wxpanel.html#wxpanel","") }; static const int StdInfosCnt = sizeof(StdInfos) / sizeof(StdInfos[0]); wxsStdManagerT::wxsStdManagerT() { } wxsStdManagerT::~wxsStdManagerT() { for ( int i=0; iRead(_T("data_path"), wxEmptyString); for ( int i=1; iLoadFile(FileName,wxBITMAP_TYPE_PNG); if ( Bmp->Ok() ) { StdInfos[i].Icon = Bmp; } else { StdInfos[i].Icon = NULL; delete Bmp; } } else { StdInfos[i].Icon = NULL; } } return true; } int wxsStdManagerT::GetCount() { return wxsStdIdCount; } /** Getting widget's info */ const wxsWidgetInfo* wxsStdManagerT::GetWidgetInfo(int Number) { if ( Number < 0 || Number >= StdInfosCnt ) Number = wxsNoneId; assert ( StdInfos[Number].Id == Number ); return &StdInfos[Number]; } /** Getting new widget */ wxsWidget* wxsStdManagerT::ProduceWidget(int Id,wxsWindowRes* Res) { switch ( Id ) { case wxsGridSizerId: return new wxsGridSizer(this,Res); case wxsBoxSizerId: return new wxsBoxSizer(this,Res); case wxsStaticBoxSizerId: return new wxsStaticBoxSizer(this,Res); case wxsFlexGridSizerId: return new wxsFlexGridSizer(this,Res); case wxsButtonId: return new wxsButton(this,Res); case wxsCheckBoxId: return new wxsCheckBox(this,Res); case wxsStaticTextId: return new wxsStaticText(this,Res); case wxsToggleButtonId: return new wxsToggleButton(this,Res); case wxsComboBoxId: return new wxsComboBox(this,Res); case wxsListBoxId: return new wxsListBox(this,Res); case wxsPanelId: return new wxsPanel(this,Res); case wxsTextCtrlId: return new wxsTextCtrl(this,Res); case wxsGaugeId: return new wxsGauge(this,Res); case wxsSpacerId: return new wxsSpacer(this,Res); case wxsDialogId: return new wxsDialog(this,Res); case wxsFrameId: return new wxsFrame(this,Res); case wxsPanelrId: return new wxsPanelr(this,Res); case wxsRadioButtonId: return new wxsRadioButton(this,Res); case wxsScrollBarId: return new wxsScrollBar(this,Res); case wxsSpinButtonId: return new wxsSpinButton(this,Res); case wxsSpinCtrlId: return new wxsSpinCtrl(this,Res); case wxsTreeCtrlId: return new wxsTreeCtrl(this,Res); case wxsRadioBoxId: return new wxsRadioBox(this,Res); case wxsDatePickerCtrlId: return new wxsDatePickerCtrl(this,Res); case wxsStaticLineId: return new wxsStaticLine(this,Res); case wxsSplitterWindowId: return new wxsSplitterWindow(this,Res); case wxsNotebookId: return new wxsNotebook(this,Res); case wxsListbookId: return new wxsListbook(this,Res); } return NULL; } /** Killing widget */ void wxsStdManagerT::KillWidget(wxsWidget* Widget) { if ( Widget ) delete Widget; } wxsStdManagerT wxsStdManager;