]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/tbarbase.cpp
Committing in .
[wxWidgets.git] / src / common / tbarbase.cpp
index 218ecbea4f59e3ab2271ab7fb6844192ff4bac6a..98eed8bbd5e43d0d81556219e0f62d4571eb4435 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:       wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -24,6 +24,8 @@
 #include "wx/wx.h"
 #endif
 
 #include "wx/wx.h"
 #endif
 
+#include "wx/frame.h"
+
 // For ::UpdateWindow
 #ifdef __WXMSW__
 #include <windows.h>
 // For ::UpdateWindow
 #ifdef __WXMSW__
 #include <windows.h>
@@ -53,7 +55,7 @@ wxToolBarTool::wxToolBarTool(wxToolBar *owner, int theIndex,
                     const wxBitmap& theBitmap1, const  wxBitmap& theBitmap2,
             bool toggle, wxObject *clientData,
                  const wxString& helpS1, const wxString& helpS2,
                     const wxBitmap& theBitmap1, const  wxBitmap& theBitmap2,
             bool toggle, wxObject *clientData,
                  const wxString& helpS1, const wxString& helpS2,
-                    GtkWidget *item  )
+                    GtkWidget *pixmap  )
 #else
 wxToolBarTool::wxToolBarTool(int theIndex,
                     const wxBitmap& theBitmap1, const wxBitmap& theBitmap2, bool toggle,
 #else
 wxToolBarTool::wxToolBarTool(int theIndex,
                     const wxBitmap& theBitmap1, const wxBitmap& theBitmap2, bool toggle,
@@ -63,7 +65,8 @@ wxToolBarTool::wxToolBarTool(int theIndex,
   m_toolStyle = wxTOOL_STYLE_BUTTON;
 #ifdef __WXGTK__
   m_owner = owner;
   m_toolStyle = wxTOOL_STYLE_BUTTON;
 #ifdef __WXGTK__
   m_owner = owner;
-  m_item = item;
+  m_pixmap = pixmap;
+  m_item = (GtkWidget*) NULL;
   m_clientData = clientData;
   m_x = 0;
   m_y = 0;
   m_clientData = clientData;
   m_x = 0;
   m_y = 0;
@@ -89,6 +92,13 @@ wxToolBarTool::wxToolBarTool(int theIndex,
   m_longHelpString = helpS2;
 }
 
   m_longHelpString = helpS2;
 }
 
+wxToolBarTool::wxToolBarTool(wxControl *control)
+{
+    m_toolStyle = wxTOOL_STYLE_CONTROL;
+    m_control = control;
+    m_index = control->GetId();
+}
+
 wxToolBarTool::~wxToolBarTool()
 {
 /*
 wxToolBarTool::~wxToolBarTool()
 {
 /*
@@ -147,6 +157,7 @@ bool wxToolBarBase::OnLeftClick(int toolIndex, bool toggleDown)
     event.SetEventObject(this);
     event.SetExtraLong((long) toggleDown);
 
     event.SetEventObject(this);
     event.SetExtraLong((long) toggleDown);
 
+    // Send events to this toolbar instead (and thence up the window hierarchy)
     GetEventHandler()->ProcessEvent(event);
 
     return TRUE;
     GetEventHandler()->ProcessEvent(event);
 
     return TRUE;
@@ -182,7 +193,7 @@ void wxToolBarBase::OnMouseEnter ( int toolIndex )
 // created and used as the pushed/toggled image.
 // If toggle is TRUE, the button toggles between the two states.
 wxToolBarTool *wxToolBarBase::AddTool(int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap,
 // created and used as the pushed/toggled image.
 // If toggle is TRUE, the button toggles between the two states.
 wxToolBarTool *wxToolBarBase::AddTool(int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap,
-             bool toggle, long xPos, long yPos, wxObject *clientData,
+             bool toggle, wxCoord xPos, wxCoord yPos, wxObject *clientData,
              const wxString& helpString1, const wxString& helpString2)
 {
 #ifdef __WXGTK__
              const wxString& helpString1, const wxString& helpString2)
 {
 #ifdef __WXGTK__
@@ -217,6 +228,7 @@ wxToolBarTool *wxToolBarBase::AddTool(int index, const wxBitmap& bitmap, const w
 void wxToolBarBase::AddSeparator ()
 {
   wxToolBarTool *tool = new wxToolBarTool;
 void wxToolBarBase::AddSeparator ()
 {
   wxToolBarTool *tool = new wxToolBarTool;
+  tool->m_index = -1;
   tool->m_toolStyle = wxTOOL_STYLE_SEPARATOR;
   m_tools.Append(-1, tool);
 }
   tool->m_toolStyle = wxTOOL_STYLE_SEPARATOR;
   m_tools.Append(-1, tool);
 }
@@ -394,7 +406,7 @@ void wxToolBarBase::Command(wxCommandEvent& WXUNUSED(event))
 {
 }
 
 {
 }
 
-void wxToolBarBase::Layout()
+void wxToolBarBase::LayoutTools()
 {
 }
 
 {
 }
 
@@ -720,7 +732,13 @@ void wxToolBarBase::ViewStart (int *x, int *y) const
   *y = m_yScrollPosition;
 }
 
   *y = m_yScrollPosition;
 }
 
-void wxToolBarBase::OnIdle(wxIdleEvent& event)
+void wxToolBarBase::OnIdle(wxIdleEvent&
+#ifdef __WXGTK__
+                            WXUNUSED(event)
+#else
+                            event
+#endif
+                          )
 {
 #ifndef __WXGTK__
     wxWindow::OnIdle(event);
 {
 #ifndef __WXGTK__
     wxWindow::OnIdle(event);
@@ -732,6 +750,8 @@ void wxToolBarBase::OnIdle(wxIdleEvent& event)
 // Do the toolbar button updates (check for EVT_UPDATE_UI handlers)
 void wxToolBarBase::DoToolbarUpdates()
 {
 // Do the toolbar button updates (check for EVT_UPDATE_UI handlers)
 void wxToolBarBase::DoToolbarUpdates()
 {
+    wxEvtHandler* evtHandler = GetEventHandler() ;
+
     wxNode* node = GetTools().First();
     while (node)
     {
     wxNode* node = GetTools().First();
     while (node)
     {
@@ -740,7 +760,7 @@ void wxToolBarBase::DoToolbarUpdates()
         wxUpdateUIEvent event(tool->m_index);
         event.SetEventObject(this);
 
         wxUpdateUIEvent event(tool->m_index);
         event.SetEventObject(this);
 
-        if (GetEventHandler()->ProcessEvent(event))
+        if (evtHandler->ProcessEvent(event))
         {
             if (event.GetSetEnabled())
                 EnableTool(tool->m_index, event.GetEnabled());
         {
             if (event.GetSetEnabled())
                 EnableTool(tool->m_index, event.GetEnabled());
@@ -756,12 +776,4 @@ void wxToolBarBase::DoToolbarUpdates()
     }
 }
 
     }
 }
 
-#ifdef __WXMSW__
-// Circumvent wxControl::MSWOnMouseMove which doesn't set the cursor.
-void wxToolBarBase::MSWOnMouseMove(int x, int y, WXUINT flags)
-{
-    wxWindow::MSWOnMouseMove(x, y, flags);
-}
-#endif
-
 #endif
 #endif