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
This commit is contained in:
Robert Roebling
1999-04-15 12:08:59 +00:00
parent d4ffe273ca
commit b1da76e108
4 changed files with 68 additions and 0 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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();
}
}

View File

@@ -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();
}
}