From: Robert Roebling Date: Thu, 15 Apr 1999 12:08:59 +0000 (+0000) Subject: added update UI event code to toolbar, could X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/b1da76e108995e64e8af5ba08d090d0e210c5240 added update UI event code to toolbar, could someone test this git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/gtk/tbargtk.h b/include/wx/gtk/tbargtk.h index 131ce1b7c7..39545eb984 100644 --- a/include/wx/gtk/tbargtk.h +++ b/include/wx/gtk/tbargtk.h @@ -45,6 +45,7 @@ extern const wxChar *wxToolBarNameStr; class wxToolBar: public wxControl { + DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxToolBar) public: @@ -102,6 +103,8 @@ class wxToolBar: public wxControl virtual void SetToolLongHelp(int toolIndex, const wxString& helpString); virtual void SetToolShortHelp(int toolIndex, const wxString& helpString); + + void OnIdle( wxIdleEvent &ievent ); // implementation diff --git a/include/wx/gtk1/tbargtk.h b/include/wx/gtk1/tbargtk.h index 131ce1b7c7..39545eb984 100644 --- a/include/wx/gtk1/tbargtk.h +++ b/include/wx/gtk1/tbargtk.h @@ -45,6 +45,7 @@ extern const wxChar *wxToolBarNameStr; class wxToolBar: public wxControl { + DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxToolBar) public: @@ -102,6 +103,8 @@ class wxToolBar: public wxControl virtual void SetToolLongHelp(int toolIndex, const wxString& helpString); virtual void SetToolShortHelp(int toolIndex, const wxString& helpString); + + void OnIdle( wxIdleEvent &ievent ); // implementation diff --git a/src/gtk/tbargtk.cpp b/src/gtk/tbargtk.cpp index 7f7d9cbc8b..6cfe891c2d 100644 --- a/src/gtk/tbargtk.cpp +++ b/src/gtk/tbargtk.cpp @@ -87,6 +87,10 @@ static gint gtk_toolbar_enter_callback( GtkWidget *WXUNUSED(widget), IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl) +BEGIN_EVENT_TABLE(wxToolBar, wxControl) + EVT_IDLE(wxToolBar::OnIdle) +END_EVENT_TABLE() + wxToolBar::wxToolBar() { } @@ -482,4 +486,31 @@ void wxToolBar::SetToolShortHelp(int toolIndex, const wxString& helpString) return; } +void wxToolBar::OnIdle( wxIdleEvent &WXUNUSED(ievent) ) +{ + wxEvtHandler* evtHandler = GetEventHandler(); + + wxNode* node = m_tools.First(); + while (node) + { + wxToolBarTool* tool = (wxToolBarTool*) node->Data(); + + wxUpdateUIEvent event( tool->m_index ); + event.SetEventObject(this); + + if (evtHandler->ProcessEvent( event )) + { + if (event.GetSetEnabled()) + EnableTool(tool->m_index, event.GetEnabled()); + if (event.GetSetChecked()) + ToggleTool(tool->m_index, event.GetChecked()); +/* + if (event.GetSetText()) + // Set tooltip? +*/ + } + + node = node->Next(); + } +} diff --git a/src/gtk1/tbargtk.cpp b/src/gtk1/tbargtk.cpp index 7f7d9cbc8b..6cfe891c2d 100644 --- a/src/gtk1/tbargtk.cpp +++ b/src/gtk1/tbargtk.cpp @@ -87,6 +87,10 @@ static gint gtk_toolbar_enter_callback( GtkWidget *WXUNUSED(widget), IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl) +BEGIN_EVENT_TABLE(wxToolBar, wxControl) + EVT_IDLE(wxToolBar::OnIdle) +END_EVENT_TABLE() + wxToolBar::wxToolBar() { } @@ -482,4 +486,31 @@ void wxToolBar::SetToolShortHelp(int toolIndex, const wxString& helpString) return; } +void wxToolBar::OnIdle( wxIdleEvent &WXUNUSED(ievent) ) +{ + wxEvtHandler* evtHandler = GetEventHandler(); + + wxNode* node = m_tools.First(); + while (node) + { + wxToolBarTool* tool = (wxToolBarTool*) node->Data(); + + wxUpdateUIEvent event( tool->m_index ); + event.SetEventObject(this); + + if (evtHandler->ProcessEvent( event )) + { + if (event.GetSetEnabled()) + EnableTool(tool->m_index, event.GetEnabled()); + if (event.GetSetChecked()) + ToggleTool(tool->m_index, event.GetChecked()); +/* + if (event.GetSetText()) + // Set tooltip? +*/ + } + + node = node->Next(); + } +}