+ gtk_toolbar_set_space_size( m_toolbar, separation );
+ m_separation = separation;
+}
+
+int wxToolBar::GetToolPacking()
+{
+ return 0;
+}
+
+int wxToolBar::GetToolSeparation()
+{
+ return m_separation;
+}
+
+wxString wxToolBar::GetToolLongHelp(int toolIndex)
+{
+ wxNode *node = m_tools.First();
+ while (node)
+ {
+ wxToolBarTool *tool = (wxToolBarTool*)node->Data();
+ if (tool->m_index == toolIndex)
+ {
+ return tool->m_longHelpString;
+ }
+ node = node->Next();
+ }
+
+ wxFAIL_MSG( wxT("wrong toolbar index") );
+
+ return wxT("");
+}
+
+wxString wxToolBar::GetToolShortHelp(int toolIndex)
+{
+ wxNode *node = m_tools.First();
+ while (node)
+ {
+ wxToolBarTool *tool = (wxToolBarTool*)node->Data();
+ if (tool->m_index == toolIndex)
+ {
+ return tool->m_shortHelpString;
+ }
+ node = node->Next();
+ }
+
+ wxFAIL_MSG( wxT("wrong toolbar index") );
+
+ return wxT("");
+}
+
+void wxToolBar::SetToolLongHelp(int toolIndex, const wxString& helpString)
+{
+ wxNode *node = m_tools.First();
+ while (node)
+ {
+ wxToolBarTool *tool = (wxToolBarTool*)node->Data();
+ if (tool->m_index == toolIndex)
+ {
+ tool->m_longHelpString = helpString;
+ return;
+ }
+ node = node->Next();
+ }
+
+ wxFAIL_MSG( wxT("wrong toolbar index") );
+
+ return;
+}
+
+void wxToolBar::SetToolShortHelp(int toolIndex, const wxString& helpString)
+{
+ wxNode *node = m_tools.First();
+ while (node)
+ {
+ wxToolBarTool *tool = (wxToolBarTool*)node->Data();
+ if (tool->m_index == toolIndex)
+ {
+ tool->m_shortHelpString = helpString;
+ return;
+ }
+ node = node->Next();
+ }
+
+ wxFAIL_MSG( wxT("wrong toolbar index") );
+
+ 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();
+ }
+}
+
+void wxToolBar::OnInternalIdle()
+{
+ wxCursor cursor = m_cursor;
+ if (g_globalCursor.Ok()) cursor = g_globalCursor;
+
+ if (cursor.Ok())
+ {
+ /* I now set the cursor the anew in every OnInternalIdle call
+ as setting the cursor in a parent window also effects the
+ windows above so that checking for the current cursor is
+ not possible. */
+
+ if (HasFlag(wxTB_DOCKABLE))
+ {
+ /* if the toolbar is dockable, then m_widget stands for the
+ GtkHandleBox widget, which uses its own window so that we
+ can set the cursor for it. if the toolbar is not dockable,
+ m_widget comes from m_toolbar which uses its parent's
+ window ("windowless windows") and thus we cannot set the
+ cursor. */
+ gdk_window_set_cursor( m_widget->window, cursor.GetCursor() );
+ }
+
+ wxNode *node = m_tools.First();
+ while (node)
+ {
+ wxToolBarTool *tool = (wxToolBarTool*)node->Data();
+ if (!tool->m_item->window)
+ break;
+ else
+ gdk_window_set_cursor( tool->m_item->window, cursor.GetCursor() );
+
+ node = node->Next();
+ }
+ }
+
+ UpdateWindowUI();