X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b98d804b283dc391ef112f734393696eea0a4ee4..d0bdc3ca5f3e1d2adf70c8630b4b524bc53a798e:/src/gtk1/tbargtk.cpp diff --git a/src/gtk1/tbargtk.cpp b/src/gtk1/tbargtk.cpp index 6b9e683864..dfc1d7b631 100644 --- a/src/gtk1/tbargtk.cpp +++ b/src/gtk1/tbargtk.cpp @@ -12,6 +12,7 @@ #endif #include "wx/toolbar.h" +#include "wx/frame.h" #include "glib.h" #include "gdk/gdk.h" @@ -23,39 +24,6 @@ extern bool g_blockEventsOnDrag; -//----------------------------------------------------------------------------- -// wxToolBarTool -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool,wxObject) - -wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex, - const wxBitmap& bitmap1, const wxBitmap& bitmap2, - bool toggle, - wxObject *clientData, - const wxString& shortHelpString, - const wxString& longHelpString, - GtkWidget *item ) -{ - m_owner = owner; - m_index = theIndex; - m_bitmap1 = bitmap1; - m_bitmap2 = bitmap2; - m_isToggle = toggle; - m_enabled = TRUE; - m_toggleState = FALSE; - m_shortHelpString = shortHelpString; - m_longHelpString = longHelpString; - m_isMenuCommand = TRUE; - m_clientData = clientData; - m_deleteSecondBitmap = FALSE; - m_item = item; -} - -wxToolBarTool::~wxToolBarTool() -{ -} - //----------------------------------------------------------------------------- // "clicked" (internal from gtk_toolbar) //----------------------------------------------------------------------------- @@ -119,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() { } @@ -232,13 +204,13 @@ wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, m_hasToolAlready = TRUE; wxCHECK_MSG( bitmap.Ok(), (wxToolBarTool *)NULL, - "invalid bitmap for wxToolBar icon" ); + _T("invalid bitmap for wxToolBar icon") ); wxCHECK_MSG( bitmap.GetBitmap() == NULL, (wxToolBarTool *)NULL, - "wxToolBar doesn't support GdkBitmap" ); + _T("wxToolBar doesn't support GdkBitmap") ); wxCHECK_MSG( bitmap.GetPixmap() != NULL, (wxToolBarTool *)NULL, - "wxToolBar::Add needs a wxBitmap" ); + _T("wxToolBar::Add needs a wxBitmap") ); GtkWidget *tool_pixmap = (GtkWidget *)NULL; @@ -266,7 +238,7 @@ wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, ctype, (GtkWidget *)NULL, (const char *)NULL, - helpString1, + helpString1.mbc_str(), "", tool_pixmap, (GtkSignalFunc)gtk_toolbar_callback, @@ -292,7 +264,7 @@ void wxToolBar::AddSeparator() void wxToolBar::ClearTools() { - wxFAIL_MSG( "wxToolBar::ClearTools not implemented" ); + wxFAIL_MSG( _T("wxToolBar::ClearTools not implemented") ); } bool wxToolBar::Realize() @@ -342,7 +314,7 @@ void wxToolBar::EnableTool(int toolIndex, bool enable) node = node->Next(); } - wxFAIL_MSG( "wrong toolbar index" ); + wxFAIL_MSG( _T("wrong toolbar index") ); } void wxToolBar::ToggleTool( int toolIndex, bool toggle ) @@ -361,7 +333,7 @@ void wxToolBar::ToggleTool( int toolIndex, bool toggle ) node = node->Next(); } - wxFAIL_MSG( "wrong toolbar index" ); + wxFAIL_MSG( _T("wrong toolbar index") ); } wxObject *wxToolBar::GetToolClientData( int index ) const @@ -374,7 +346,7 @@ wxObject *wxToolBar::GetToolClientData( int index ) const node = node->Next(); } - wxFAIL_MSG( "wrong toolbar index" ); + wxFAIL_MSG( _T("wrong toolbar index") ); return (wxObject*)NULL; } @@ -389,7 +361,7 @@ bool wxToolBar::GetToolState(int toolIndex) const node = node->Next(); } - wxFAIL_MSG( "wrong toolbar index" ); + wxFAIL_MSG( _T("wrong toolbar index") ); return FALSE; } @@ -404,14 +376,14 @@ bool wxToolBar::GetToolEnabled(int toolIndex) const node = node->Next(); } - wxFAIL_MSG( "wrong toolbar index" ); + wxFAIL_MSG( _T("wrong toolbar index") ); return FALSE; } void wxToolBar::SetMargins( int x, int y ) { - wxCHECK_RET( !m_hasToolAlready, "wxToolBar::SetMargins must be called before adding tool." ); + wxCHECK_RET( !m_hasToolAlready, _T("wxToolBar::SetMargins must be called before adding tool.") ); if (x > 2) gtk_toolbar_append_space( m_toolbar ); // oh well @@ -421,7 +393,7 @@ void wxToolBar::SetMargins( int x, int y ) void wxToolBar::SetToolPacking( int WXUNUSED(packing) ) { - wxFAIL_MSG( "wxToolBar::SetToolPacking not implemented" ); + wxFAIL_MSG( _T("wxToolBar::SetToolPacking not implemented") ); } void wxToolBar::SetToolSeparation( int separation ) @@ -453,9 +425,9 @@ wxString wxToolBar::GetToolLongHelp(int toolIndex) node = node->Next(); } - wxFAIL_MSG( "wrong toolbar index" ); + wxFAIL_MSG( _T("wrong toolbar index") ); - return ""; + return _T(""); } wxString wxToolBar::GetToolShortHelp(int toolIndex) @@ -471,9 +443,9 @@ wxString wxToolBar::GetToolShortHelp(int toolIndex) node = node->Next(); } - wxFAIL_MSG( "wrong toolbar index" ); + wxFAIL_MSG( _T("wrong toolbar index") ); - return ""; + return _T(""); } void wxToolBar::SetToolLongHelp(int toolIndex, const wxString& helpString) @@ -490,7 +462,7 @@ void wxToolBar::SetToolLongHelp(int toolIndex, const wxString& helpString) node = node->Next(); } - wxFAIL_MSG( "wrong toolbar index" ); + wxFAIL_MSG( _T("wrong toolbar index") ); return; } @@ -509,9 +481,36 @@ void wxToolBar::SetToolShortHelp(int toolIndex, const wxString& helpString) node = node->Next(); } - wxFAIL_MSG( "wrong toolbar index" ); + wxFAIL_MSG( _T("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(); + } +}