X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/61c083e7818114734695cb26aa006098a86e62c3..9149aa8c961e1bfccc159526eeee5dc089eaf906:/samples/widgets/widgets.cpp?ds=sidebyside diff --git a/samples/widgets/widgets.cpp b/samples/widgets/widgets.cpp index 62f9724543..fc545d0008 100644 --- a/samples/widgets/widgets.cpp +++ b/samples/widgets/widgets.cpp @@ -39,6 +39,7 @@ #include "wx/textctrl.h" #endif +#include "wx/sysopt.h" #include "wx/bookctrl.h" #include "wx/sizer.h" #include "wx/colordlg.h" @@ -85,9 +86,9 @@ public: protected: // event handlers -#if wxUSE_LOG +#if USE_LOG void OnButtonClearLog(wxCommandEvent& event); -#endif // wxUSE_LOG +#endif // USE_LOG void OnExit(wxCommandEvent& event); #if wxUSE_MENUS void OnSetFgCol(wxCommandEvent& event); @@ -101,13 +102,13 @@ private: // the panel containing everything wxPanel *m_panel; -#if wxUSE_LOG +#if USE_LOG // the listbox for logging messages wxListBox *m_lboxLog; // the log target we use to redirect messages to the listbox wxLog *m_logTarget; -#endif // wxUSE_LOG +#endif // USE_LOG // the book containing the test pages wxBookCtrl *m_book; @@ -125,7 +126,7 @@ private: DECLARE_EVENT_TABLE() }; -#if wxUSE_LOG +#if USE_LOG // A log target which just redirects the messages to a listbox class LboxLogger : public wxLog { @@ -182,7 +183,7 @@ private: // the old log target wxLog *m_logOld; }; -#endif // wxUSE_LOG +#endif // USE_LOG // array of pages WX_DEFINE_ARRAY_PTR(WidgetsPage *, ArrayWidgetsPage); @@ -198,9 +199,9 @@ IMPLEMENT_APP(WidgetsApp) // ---------------------------------------------------------------------------- BEGIN_EVENT_TABLE(WidgetsFrame, wxFrame) -#if wxUSE_LOG +#if USE_LOG EVT_BUTTON(Widgets_ClearLog, WidgetsFrame::OnButtonClearLog) -#endif // wxUSE_LOG +#endif // USE_LOG EVT_BUTTON(Widgets_Quit, WidgetsFrame::OnExit) EVT_MENU(wxID_EXIT, WidgetsFrame::OnExit) @@ -220,7 +221,7 @@ bool WidgetsApp::OnInit() { if ( !wxApp::OnInit() ) return false; - + // the reason for having these ifdef's is that I often run two copies of // this sample side by side and it is useful to see which one is which wxString title; @@ -263,10 +264,10 @@ WidgetsFrame::WidgetsFrame(const wxString& title) wxTAB_TRAVERSAL) { // init everything -#if wxUSE_LOG +#if USE_LOG m_lboxLog = (wxListBox *)NULL; m_logTarget = (wxLog *)NULL; -#endif // wxUSE_LOG +#endif // USE_LOG m_book = (wxBookCtrl *)NULL; m_imaglist = (wxImageList *)NULL; @@ -288,15 +289,20 @@ WidgetsFrame::WidgetsFrame(const wxString& title) wxSizer *sizerTop = new wxBoxSizer(wxVERTICAL); - // we have 2 panes: book which pages demonstrating the controls in the + // we have 2 panes: book with pages demonstrating the controls in the // upper one and the log window with some buttons in the lower + + int style = wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN|wxBC_DEFAULT; + // Uncomment to suppress page theme (draw in solid colour) + // style |= wxNB_NOPAGETHEME; m_book = new wxBookCtrl(m_panel, wxID_ANY, wxDefaultPosition, - wxDefaultSize, wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN|wxBC_DEFAULT); + wxDefaultSize, style); InitBook(); +#ifndef __SMARTPHONE__ // the lower one only has the log listbox and a button to clear it -#if wxUSE_LOG +#if USE_LOG wxSizer *sizerDown = new wxStaticBoxSizer( new wxStaticBox( m_panel, wxID_ANY, _T("&Log window") ), wxVERTICAL); @@ -306,15 +312,15 @@ WidgetsFrame::WidgetsFrame(const wxString& title) sizerDown->SetMinSize(100, 150); #else wxSizer *sizerDown = new wxBoxSizer(wxVERTICAL); -#endif // wxUSE_LOG +#endif // USE_LOG wxBoxSizer *sizerBtns = new wxBoxSizer(wxHORIZONTAL); wxButton *btn; -#if wxUSE_LOG +#if USE_LOG btn = new wxButton(m_panel, Widgets_ClearLog, _T("Clear &log")); sizerBtns->Add(btn); sizerBtns->Add(10, 0); // spacer -#endif // wxUSE_LOG +#endif // USE_LOG btn = new wxButton(m_panel, Widgets_Quit, _T("E&xit")); sizerBtns->Add(btn); sizerDown->Add(sizerBtns, 0, wxALL | wxALIGN_RIGHT, 5); @@ -324,12 +330,18 @@ WidgetsFrame::WidgetsFrame(const wxString& title) sizerTop->Add(0, 5, 0, wxGROW); // spacer in between sizerTop->Add(sizerDown, 0, wxGROW | (wxALL & ~wxTOP), 10); +#else // !__SMARTPHONE__/__SMARTPHONE__ + + sizerTop->Add(m_book, 1, wxGROW | wxALL ); + +#endif // __SMARTPHONE__ + m_panel->SetSizer(sizerTop); sizerTop->Fit(this); sizerTop->SetSizeHints(this); -#if wxUSE_LOG && !defined(__WXCOCOA__) +#if USE_LOG && !defined(__WXCOCOA__) // wxCocoa's listbox is too flakey to use for logging right now // now that everything is created we can redirect the log messages to the // listbox @@ -370,14 +382,19 @@ void WidgetsFrame::InitBook() false, // don't select n // image id ); + +/* + wxColour colour = m_book->MSWGetBgColourForChild(pages[n]); + pages[n]->SetBackgroundColour(colour); +*/ } } WidgetsFrame::~WidgetsFrame() { -#if wxUSE_LOG +#if USE_LOG delete m_logTarget; -#endif // wxUSE_LOG +#endif // USE_LOG delete m_imaglist; } @@ -390,17 +407,18 @@ void WidgetsFrame::OnExit(wxCommandEvent& WXUNUSED(event)) Close(); } -#if wxUSE_LOG +#if USE_LOG void WidgetsFrame::OnButtonClearLog(wxCommandEvent& WXUNUSED(event)) { m_lboxLog->Clear(); } -#endif // wxUSE_LOG +#endif // USE_LOG #if wxUSE_MENUS void WidgetsFrame::OnSetFgCol(wxCommandEvent& WXUNUSED(event)) { +#if wxUSE_COLOURDLG wxColour col = wxGetColourFromUser(this, m_colFg); if ( !col.Ok() ) return; @@ -410,10 +428,14 @@ void WidgetsFrame::OnSetFgCol(wxCommandEvent& WXUNUSED(event)) WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage); page->GetWidget()->SetForegroundColour(m_colFg); page->GetWidget()->Refresh(); +#else + wxLogMessage(_T("None colour dialog available in current build.")); +#endif } void WidgetsFrame::OnSetBgCol(wxCommandEvent& WXUNUSED(event)) { +#if wxUSE_COLOURDLG wxColour col = wxGetColourFromUser(this, m_colBg); if ( !col.Ok() ) return; @@ -423,6 +445,9 @@ void WidgetsFrame::OnSetBgCol(wxCommandEvent& WXUNUSED(event)) WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage); page->GetWidget()->SetBackgroundColour(m_colBg); page->GetWidget()->Refresh(); +#else + wxLogMessage(_T("None colour dialog available in current build.")); +#endif } #endif // wxUSE_MENUS