X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cfcc39321282c5877cbb45248bb8004ced24516b..1978421a6d8b81c1f8a961da4b8ddf544fec7b1b:/src/gtk/tbargtk.cpp diff --git a/src/gtk/tbargtk.cpp b/src/gtk/tbargtk.cpp index bd6f38fd3b..496fa62618 100644 --- a/src/gtk/tbargtk.cpp +++ b/src/gtk/tbargtk.cpp @@ -16,10 +16,13 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "tbargtk.h" #endif +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + #include "wx/toolbar.h" #if wxUSE_TOOLBAR_NATIVE @@ -57,7 +60,13 @@ static void GetGtkStyle(long style, if ( style & wxTB_TEXT ) { - *gtkStyle = style & wxTB_NOICONS ? GTK_TOOLBAR_TEXT : GTK_TOOLBAR_BOTH; + *gtkStyle = style & wxTB_NOICONS + ? GTK_TOOLBAR_TEXT + : ( +#ifdef __WXGTK20__ + style & wxTB_HORZ_LAYOUT ? GTK_TOOLBAR_BOTH_HORIZ : +#endif // __WXGTK20__ + GTK_TOOLBAR_BOTH); } else // no text, hence we must have the icons or what would we show? { @@ -130,7 +139,7 @@ protected: // wxWin macros // ---------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase) +IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl) // ============================================================================ // implementation @@ -278,7 +287,7 @@ bool wxToolBar::Create( wxWindow *parent, #ifdef __WXGTK20__ m_toolbar = GTK_TOOLBAR( gtk_toolbar_new() ); GtkSetStyle(); - + // Doesn't work this way. // GtkToolbarSpaceStyle space_style = GTK_TOOLBAR_SPACE_EMPTY; // gtk_widget_style_set (GTK_WIDGET (m_toolbar), "space_style", &space_style, NULL); @@ -343,10 +352,6 @@ bool wxToolBar::Create( wxWindow *parent, g_style->bg[GTK_STATE_NORMAL] = *m_bg; -#ifndef __WXGTK20__ - SET_STYLE_FONT(g_style, GtkGetDefaultGuiFont()); -#endif - gtk_widget_set_style( GTK_TOOLBAR(m_toolbar)->tooltips->tip_window, g_style ); m_parent->DoAddChild( this ); @@ -431,8 +436,10 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase) if ( tool->IsRadio() ) { - wxToolBarToolsList::Node *node = pos ? m_tools.Item(pos - 1) - : NULL; + wxToolBarToolsList::compatibility_iterator node + = wxToolBarToolsList::compatibility_iterator(); + if ( pos ) node = m_tools.Item(pos - 1); + while ( node ) { wxToolBarTool *tool = (wxToolBarTool *)node->GetData(); @@ -477,7 +484,7 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase) return FALSE; } - + gtk_signal_connect( GTK_OBJECT(tool->m_item), "enter_notify_event", GTK_SIGNAL_FUNC(gtk_toolbar_tool_callback), @@ -658,7 +665,7 @@ void wxToolBar::OnInternalIdle() gdk_window_set_cursor( m_widget->window, cursor.GetCursor() ); } - wxToolBarToolsList::Node *node = m_tools.GetFirst(); + wxToolBarToolsList::compatibility_iterator node = m_tools.GetFirst(); while ( node ) { wxToolBarTool *tool = (wxToolBarTool *)node->GetData(); @@ -677,7 +684,8 @@ void wxToolBar::OnInternalIdle() } } - UpdateWindowUI(); + if (wxUpdateUIEvent::CanUpdate(this)) + UpdateWindowUI(wxUPDATE_UI_FROMIDLE); } #endif // wxUSE_TOOLBAR_NATIVE