]> git.saurik.com Git - wxWidgets.git/commitdiff
compilation fixes, doesn't work yet
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 16 Dec 1999 18:10:38 +0000 (18:10 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 16 Dec 1999 18:10:38 +0000 (18:10 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/motif/toolbar.h
src/motif/toolbar.cpp

index 443e3e559e83fa08ba902207dc77f9a082020467..bbf08831cc06b55db216b7f20fcfc71bf562c641 100644 (file)
@@ -44,26 +44,35 @@ public:
     virtual ~wxToolBar();
 
     // override/implement base class virtuals
-    virtual wxToolBarTool *FindToolForPosition(wxCoord x, wxCoord y) const;
+    virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
 
     virtual bool Realize();
 
     // implementation from now on
 
     // find tool by widget
-    wxToolBarTool *FindToolByWidget(WXWidget w) const;
+    wxToolBarToolBase *FindToolByWidget(WXWidget w) const;
 
 protected:
     // common part of all ctors
     void Init();
 
     // implement base class pure virtuals
-    virtual bool DoInsertTool(size_t pos, wxToolBarTool *tool);
-    virtual bool DoDeleteTool(size_t pos, wxToolBarTool *tool);
-
-    virtual void DoEnableTool(wxToolBarTool *tool, bool enable);
-    virtual void DoToggleTool(wxToolBarTool *tool, bool toggle);
-    virtual void DoSetToggle(wxToolBarTool *tool, bool toggle);
+    virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
+    virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
+
+    virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
+    virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
+    virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
+
+    virtual wxToolBarToolBase *CreateTool(int id,
+                                          const wxBitmap& bitmap1,
+                                          const wxBitmap& bitmap2,
+                                          bool toggle,
+                                          wxObject *clientData,
+                                          const wxString& shortHelpString,
+                                          const wxString& longHelpString);
+    virtual wxToolBarToolBase *CreateTool(wxControl *control);
 
 private:
     DECLARE_DYNAMIC_CLASS(wxToolBar)
index 56c79abbccfb43125054fd1be8b31b2a33599131..70227436b570beae15f18b2d954c13c536b608ef 100644 (file)
@@ -130,22 +130,21 @@ wxString wxToolBarTimer::helpString;
 // wxToolBarTool
 // ----------------------------------------------------------------------------
 
-wxToolBarToolBase *wxToolBarToolBase::New(wxToolBar *tbar,
-                                          int id,
-                                          const wxBitmap& bitmap1,
-                                          const wxBitmap& bitmap2,
-                                          bool toggle,
-                                          wxObject *clientData,
-                                          const wxString& shortHelpString,
-                                          const wxString& longHelpString)
+wxToolBarToolBase *wxToolBar::CreateTool(int id,
+                                         const wxBitmap& bitmap1,
+                                         const wxBitmap& bitmap2,
+                                         bool toggle,
+                                         wxObject *clientData,
+                                         const wxString& shortHelpString,
+                                         const wxString& longHelpString)
 {
-    return new wxToolBarTool(tbar, id, bitmap1, bitmap2, toggle,
+    return new wxToolBarTool(this, id, bitmap1, bitmap2, toggle,
                              clientData, shortHelpString, longHelpString);
 }
 
-wxToolBarToolBase *wxToolBarToolBase::New(wxToolBar *tbar, wxControl *control)
+wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control)
 {
-    return new wxToolBarTool(tbar, control);
+    return new wxToolBarTool(this, control);
 }
 
 void wxToolBarTool::Init()
@@ -156,8 +155,11 @@ void wxToolBarTool::Init()
 
 wxToolBarTool::~wxToolBarTool()
 {
-    XtDestroyWidget(m_widget);
-    XmDestroyPixmap(DefaultScreenOfDisplay((Display*)wxGetDisplay()), m_pixmap);
+    if ( m_widget )
+        XtDestroyWidget(m_widget);
+    if ( m_pixmap )
+        XmDestroyPixmap(DefaultScreenOfDisplay((Display*)wxGetDisplay()),
+                        m_pixmap);
 }
 
 // ----------------------------------------------------------------------------
@@ -383,6 +385,8 @@ bool wxToolBar::Realize()
                         insensPixmap2 = XCreateInsensitivePixmap((Display*) wxGetDisplay(), pixmap2);
                     }
 
+                    tool->SetPixmap(pixmap2);
+
                     XtVaSetValues (button,
                             XmNindicatorOn, False,
                             XmNshadowThickness, 2,
@@ -413,6 +417,9 @@ bool wxToolBar::Realize()
                         pixmap2 = (Pixmap) bmp.GetArmPixmap(button);
 
                     }
+
+                    tool->SetPixmap(pixmap2);
+
                     // Normal button
                     XtVaSetValues(button,
                             XmNlabelPixmap, pixmap,
@@ -420,6 +427,7 @@ bool wxToolBar::Realize()
                             XmNarmPixmap, pixmap2,
                             NULL);
                 }
+
                 XtManageChild(button);
 
                 {
@@ -447,48 +455,53 @@ bool wxToolBar::Realize()
     return TRUE;
 }
 
-wxToolBarTool *wxToolBar::FindToolForPosition(wxCoord WXUNUSED(x),
-                                              wxCoord WXUNUSED(y)) const
+wxToolBarToolBase *wxToolBar::FindToolForPosition(wxCoord WXUNUSED(x),
+                                                  wxCoord WXUNUSED(y)) const
 {
     wxFAIL_MSG( _T("TODO") );
 
-    return (wxToolBarTool *)NULL;
+    return (wxToolBarToolBase *)NULL;
 }
 
-bool wxToolBar::DoInsertTool(size_t WXUNUSED(pos), wxToolBarTool *tool)
+bool wxToolBar::DoInsertTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool)
 {
     tool->Attach(this);
 
     return TRUE;
 }
 
-bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarTool *tool)
+bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool)
 {
     tool->Detach();
 
     return TRUE;
 }
 
-void wxToolBar::DoEnableTool(wxToolBarTool *tool, bool enable)
+void wxToolBar::DoEnableTool(wxToolBarToolBase *toolBase, bool enable)
 {
+    wxToolBarTool *tool = (wxToolBarTool *)toolBase;
+
     XtSetSensitive(tool->GetButtonWidget(), (Boolean) enable);
 }
 
-void wxToolBar::DoToggleTool(wxToolBarTool *tool, bool toggle)
+void wxToolBar::DoToggleTool(wxToolBarToolBase *toolBase, bool toggle)
 {
+    wxToolBarTool *tool = (wxToolBarTool *)toolBase;
+
     XmToggleButtonSetState(tool->GetButtonWidget(), (Boolean) toggle, False);
 }
 
-void wxToolBar::DoSetToggle(wxToolBarTool *tool, bool toggle)
+void wxToolBar::DoSetToggle(wxToolBarToolBase * WXUNUSED(tool),
+                            bool WXUNUSED(toggle))
 {
-    wxFAIL_MSG( _T("TODO") );
+    // nothing to do
 }
 
 // ----------------------------------------------------------------------------
 // Motif callbacks
 // ----------------------------------------------------------------------------
 
-wxToolBarTool *wxToolBar::FindToolByWidget(WXWidget w) const
+wxToolBarToolBase *wxToolBar::FindToolByWidget(WXWidget w) const
 {
     wxToolBarToolsList::Node* node = m_tools.GetFirst();
     while ( node )
@@ -502,7 +515,7 @@ wxToolBarTool *wxToolBar::FindToolByWidget(WXWidget w) const
         node = node->GetNext();
     }
 
-    return (wxToolBarTool *)NULL;
+    return (wxToolBarToolBase *)NULL;
 }
 
 static void wxToolButtonCallback(Widget w,
@@ -510,7 +523,7 @@ static void wxToolButtonCallback(Widget w,
                                  XtPointer WXUNUSED(ptr))
 {
     wxToolBar *toolBar = (wxToolBar *) clientData;
-    wxToolBarTool *tool = toolBar->FindToolByWidget((WXWidget) w);
+    wxToolBarToolBase *tool = toolBar->FindToolByWidget((WXWidget) w);
     if ( !tool )
         return;
 
@@ -534,7 +547,7 @@ static void wxToolButtonPopupCallback(Widget w,
     static const int delayMilli = 800;
 
     wxToolBar* toolBar = (wxToolBar*) client_data;
-    wxToolBarTool *tool = toolBar->FindToolByWidget((WXWidget) w);
+    wxToolBarToolBase *tool = toolBar->FindToolByWidget((WXWidget) w);
 
     if ( !tool )
         return;