1. added possibility to test setting tooltip for the widget

2. added WidgetPage::GetWidget2() for pages like the spin one which shows
   2 widgets and not only one


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2005-02-28 01:15:46 +00:00
parent cd5e74bad9
commit 1c01dd1629
3 changed files with 63 additions and 3 deletions

View File

@ -77,6 +77,7 @@ public:
virtual ~SpinBtnWidgetsPage(){};
virtual wxControl *GetWidget() const { return m_spinbtn; }
virtual wxControl *GetWidget2() const { return m_spinctrl; }
protected:
// event handlers

View File

@ -55,6 +55,9 @@ enum
{
Widgets_ClearLog = 100,
Widgets_Quit,
#if wxUSE_TOOLTIPS
Widgets_SetTooltip,
#endif // wxUSE_TOOLTIPS
Widgets_SetFgColour,
Widgets_SetBgColour
};
@ -91,6 +94,9 @@ protected:
#endif // USE_LOG
void OnExit(wxCommandEvent& event);
#if wxUSE_MENUS
#if wxUSE_TOOLTIPS
void OnSetTooltip(wxCommandEvent& event);
#endif // wxUSE_TOOLTIPS
void OnSetFgCol(wxCommandEvent& event);
void OnSetBgCol(wxCommandEvent& event);
#endif // wxUSE_MENUS
@ -204,9 +210,14 @@ BEGIN_EVENT_TABLE(WidgetsFrame, wxFrame)
#endif // USE_LOG
EVT_BUTTON(Widgets_Quit, WidgetsFrame::OnExit)
EVT_MENU(wxID_EXIT, WidgetsFrame::OnExit)
#if wxUSE_TOOLTIPS
EVT_MENU(Widgets_SetTooltip, WidgetsFrame::OnSetTooltip)
#endif // wxUSE_TOOLTIPS
EVT_MENU(Widgets_SetFgColour, WidgetsFrame::OnSetFgCol)
EVT_MENU(Widgets_SetBgColour, WidgetsFrame::OnSetBgCol)
EVT_MENU(wxID_EXIT, WidgetsFrame::OnExit)
END_EVENT_TABLE()
// ============================================================================
@ -275,6 +286,10 @@ WidgetsFrame::WidgetsFrame(const wxString& title)
// create the menubar
wxMenuBar *mbar = new wxMenuBar;
wxMenu *menuWidget = new wxMenu;
#if wxUSE_TOOLTIPS
menuWidget->Append(Widgets_SetTooltip, _T("Set &tooltip...\tCtrl-T"));
menuWidget->AppendSeparator();
#endif // wxUSE_TOOLTIPS
menuWidget->Append(Widgets_SetFgColour, _T("Set &foreground...\tCtrl-F"));
menuWidget->Append(Widgets_SetBgColour, _T("Set &background...\tCtrl-B"));
menuWidget->AppendSeparator();
@ -416,6 +431,33 @@ void WidgetsFrame::OnButtonClearLog(wxCommandEvent& WXUNUSED(event))
#if wxUSE_MENUS
#if wxUSE_TOOLTIPS
void WidgetsFrame::OnSetTooltip(wxCommandEvent& WXUNUSED(event))
{
static wxString s_tip = _T("This is a tooltip");
wxString s = wxGetTextFromUser
(
_T("Tooltip text: "),
_T("Widgets sample"),
s_tip,
this
);
if ( s.empty() )
return;
WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
page->GetWidget()->SetToolTip(s_tip = s);
wxControl *ctrl2 = page->GetWidget2();
if ( ctrl2 )
ctrl2->SetToolTip(s);
}
#endif // wxUSE_TOOLTIPS
void WidgetsFrame::OnSetFgCol(wxCommandEvent& WXUNUSED(event))
{
#if wxUSE_COLOURDLG
@ -428,8 +470,15 @@ void WidgetsFrame::OnSetFgCol(wxCommandEvent& WXUNUSED(event))
WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
page->GetWidget()->SetForegroundColour(m_colFg);
page->GetWidget()->Refresh();
wxControl *ctrl2 = page->GetWidget2();
if ( ctrl2 )
{
ctrl2->SetForegroundColour(m_colFg);
ctrl2->Refresh();
}
#else
wxLogMessage(_T("None colour dialog available in current build."));
wxLogMessage(_T("Colour selection dialog not available in current build."));
#endif
}
@ -445,8 +494,15 @@ void WidgetsFrame::OnSetBgCol(wxCommandEvent& WXUNUSED(event))
WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
page->GetWidget()->SetBackgroundColour(m_colBg);
page->GetWidget()->Refresh();
wxControl *ctrl2 = page->GetWidget2();
if ( ctrl2 )
{
ctrl2->SetBackgroundColour(m_colFg);
ctrl2->Refresh();
}
#else
wxLogMessage(_T("None colour dialog available in current build."));
wxLogMessage(_T("Colour selection dialog not available in current build."));
#endif
}

View File

@ -42,6 +42,9 @@ public:
// return the control shown by this page
virtual wxControl *GetWidget() const = 0;
// some pages show 2 controls, in this case override this one as well
virtual wxControl *GetWidget2() const { return NULL; }
protected:
// several helper functions for page creation