+#endif // USE_LOG
+
+#if wxUSE_MENUS
+
+void WidgetsFrame::OnPageChanged(WidgetsBookCtrlEvent& event)
+{
+ wxMenuItem *item = GetMenuBar()->FindItem(Widgets_GoToPage + event.GetSelection());
+ if (item) item->Check();
+ event.Skip();
+}
+
+void WidgetsFrame::OnGoToPage(wxCommandEvent& event)
+{
+#if USE_TREEBOOK
+ m_book->SetSelection(event.GetId() - Widgets_GoToPage);
+#else
+ m_book->SetSelection(m_book->GetPageCount()-1);
+ WidgetsBookCtrl *book = wxStaticCast(m_book->GetCurrentPage(), WidgetsBookCtrl);
+ book->SetSelection(event.GetId() - Widgets_GoToPage);
+#endif
+}
+
+#if wxUSE_TOOLTIPS
+
+void WidgetsFrame::OnSetTooltip(wxCommandEvent& WXUNUSED(event))
+{
+ static wxString s_tip = _T("This is a tooltip");
+
+ wxTextEntryDialog dialog
+ (
+ this,
+ _T("Tooltip text (may use \\n, leave empty to remove): "),
+ _T("Widgets sample"),
+ s_tip
+ );
+
+ if ( dialog.ShowModal() != wxID_OK )
+ return;
+
+ s_tip = dialog.GetValue();
+ s_tip.Replace(_T("\\n"), _T("\n"));
+
+ WidgetsPage *page = CurrentPage();
+ page->GetWidget()->SetToolTip(s_tip);
+
+ wxControl *ctrl2 = page->GetWidget2();
+ if ( ctrl2 )
+ ctrl2->SetToolTip(s_tip);
+}
+
+#endif // wxUSE_TOOLTIPS
+
+void WidgetsFrame::OnSetFgCol(wxCommandEvent& WXUNUSED(event))
+{
+#if wxUSE_COLOURDLG
+ // allow for debugging the default colour the first time this is called
+ WidgetsPage *page = CurrentPage();
+ if (!m_colFg.Ok())
+ m_colFg = page->GetForegroundColour();
+
+ wxColour col = wxGetColourFromUser(this, m_colFg);
+ if ( !col.Ok() )
+ return;
+
+ m_colFg = col;
+
+ page->GetWidget()->SetForegroundColour(m_colFg);
+ page->GetWidget()->Refresh();
+
+ wxControl *ctrl2 = page->GetWidget2();
+ if ( ctrl2 )
+ {
+ ctrl2->SetForegroundColour(m_colFg);
+ ctrl2->Refresh();
+ }
+#else
+ wxLogMessage(_T("Colour selection dialog not available in current build."));
+#endif
+}
+
+void WidgetsFrame::OnSetBgCol(wxCommandEvent& WXUNUSED(event))
+{
+#if wxUSE_COLOURDLG
+ WidgetsPage *page = CurrentPage();
+ if ( !m_colBg.Ok() )
+ m_colBg = page->GetBackgroundColour();
+
+ wxColour col = wxGetColourFromUser(this, m_colBg);
+ if ( !col.Ok() )
+ return;
+
+ m_colBg = col;
+
+ page->GetWidget()->SetBackgroundColour(m_colBg);
+ page->GetWidget()->Refresh();
+
+ wxControl *ctrl2 = page->GetWidget2();
+ if ( ctrl2 )
+ {
+ ctrl2->SetBackgroundColour(m_colFg);
+ ctrl2->Refresh();
+ }
+#else
+ wxLogMessage(_T("Colour selection dialog not available in current build."));
+#endif
+}
+
+void WidgetsFrame::OnSetFont(wxCommandEvent& WXUNUSED(event))
+{
+#if wxUSE_FONTDLG
+ WidgetsPage *page = CurrentPage();
+ if (!m_font.Ok())
+ m_font = page->GetFont();
+
+ wxFont font = wxGetFontFromUser(this, m_font);
+ if ( !font.Ok() )
+ return;
+
+ m_font = font;
+
+ page->GetWidget()->SetFont(m_font);
+ page->GetWidget()->Refresh();
+
+ wxControl *ctrl2 = page->GetWidget2();
+ if ( ctrl2 )
+ {
+ ctrl2->SetFont(m_font);
+ ctrl2->Refresh();
+ }
+#else
+ wxLogMessage(_T("Font selection dialog not available in current build."));
+#endif
+}
+
+void WidgetsFrame::OnEnable(wxCommandEvent& event)
+{
+ WidgetsPage *page = CurrentPage();
+ page->GetWidget()->Enable(event.IsChecked());
+}
+
+void WidgetsFrame::OnSetBorder(wxCommandEvent& event)
+{
+ int border;
+ switch ( event.GetId() )
+ {
+ case Widgets_BorderNone: border = wxBORDER_NONE; break;
+ case Widgets_BorderStatic: border = wxBORDER_STATIC; break;
+ case Widgets_BorderSimple: border = wxBORDER_SIMPLE; break;
+ case Widgets_BorderRaised: border = wxBORDER_RAISED; break;
+ case Widgets_BorderSunken: border = wxBORDER_SUNKEN; break;
+ case Widgets_BorderDouble: border = wxBORDER_DOUBLE; break;
+
+ default:
+ wxFAIL_MSG( _T("unknown border style") );
+ // fall through
+
+ case Widgets_BorderDefault: border = wxBORDER_DEFAULT; break;
+ }
+
+ WidgetsPage::ms_defaultFlags &= ~wxBORDER_MASK;
+ WidgetsPage::ms_defaultFlags |= border;
+
+ WidgetsPage *page = CurrentPage();
+ page->RecreateWidget();
+}
+
+#endif // wxUSE_MENUS