]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/toolbar.cpp
Crash fix under VC++
[wxWidgets.git] / src / motif / toolbar.cpp
index 2a75efa5b13dbab169ad2e3e486a3c4f7d8f9e08..54a6419baa0136474dd3a6b22f3c025f02d5dfae 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "toolbar.h"
 #endif
 
     #pragma implementation "toolbar.h"
 #endif
 
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
 #ifdef __VMS
 #define XtDisplay XTDISPLAY
 #endif
 #ifdef __VMS
 #define XtDisplay XTDISPLAY
 #endif
@@ -53,7 +56,7 @@
 // ----------------------------------------------------------------------------
 
 #if !USE_SHARED_LIBRARY
 // ----------------------------------------------------------------------------
 
 #if !USE_SHARED_LIBRARY
-IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase)
+IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl)
 #endif
 
 // ----------------------------------------------------------------------------
 #endif
 
 // ----------------------------------------------------------------------------
@@ -589,8 +592,12 @@ bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool)
 void wxToolBar::DoEnableTool(wxToolBarToolBase *toolBase, bool enable)
 {
     wxToolBarTool *tool = (wxToolBarTool *)toolBase;
 void wxToolBar::DoEnableTool(wxToolBarToolBase *toolBase, bool enable)
 {
     wxToolBarTool *tool = (wxToolBarTool *)toolBase;
-
-    XtSetSensitive(tool->GetButtonWidget(), (Boolean) enable);
+    if (tool->GetButtonWidget()){
+        XtSetSensitive(tool->GetButtonWidget(), (Boolean) enable);
+    } else if (wxTOOL_STYLE_CONTROL == tool->GetStyle()){
+        // Controls (such as wxChoice) do not have button widgets
+        tool->GetControl()->Enable(enable);
+    }
 }
 
 void wxToolBar::DoToggleTool(wxToolBarToolBase *toolBase, bool toggle)
 }
 
 void wxToolBar::DoToggleTool(wxToolBarToolBase *toolBase, bool toggle)