]> git.saurik.com Git - wxWidgets.git/blobdiff - src/aui/auibar.cpp
Applied #10753: WarpPointer() for Mac
[wxWidgets.git] / src / aui / auibar.cpp
index 3fe31d4b0c109ff2ab4e3fd01318c2b7ade83b54..c7583b9d88d430e73b730f7e9d634b0671a3bac2 100644 (file)
@@ -38,8 +38,6 @@
 
 #ifdef __WXMAC__
 #include "wx/osx/private.h"
 
 #ifdef __WXMAC__
 #include "wx/osx/private.h"
-// for themeing support
-#include <Carbon/Carbon.h>
 #endif
 
 #include "wx/arrimpl.cpp"
 #endif
 
 #include "wx/arrimpl.cpp"
@@ -555,6 +553,12 @@ wxSize wxAuiDefaultToolBarArt::GetLabelSize(
     // get item's width
     width = item.GetMinSize().GetWidth();
 
     // get item's width
     width = item.GetMinSize().GetWidth();
 
+    if (width == -1)
+    {
+        // no width specified, measure the text ourselves
+        width = dc.GetTextExtent(item.GetLabel()).GetX();
+    }
+
     return wxSize(width, height);
 }
 
     return wxSize(width, height);
 }
 
@@ -843,6 +847,7 @@ wxAuiToolBar::wxAuiToolBar(wxWindow* parent,
     SetExtraStyle(wxWS_EX_PROCESS_IDLE);
     if (style & wxAUI_TB_HORZ_LAYOUT)
         SetToolTextOrientation(wxAUI_TBTOOL_TEXT_RIGHT);
     SetExtraStyle(wxWS_EX_PROCESS_IDLE);
     if (style & wxAUI_TB_HORZ_LAYOUT)
         SetToolTextOrientation(wxAUI_TBTOOL_TEXT_RIGHT);
+    SetBackgroundStyle(wxBG_STYLE_CUSTOM);
 }
 
 
 }
 
 
@@ -950,9 +955,9 @@ wxAuiToolBarItem* wxAuiToolBar::AddTool(int tool_id,
     item.min_size = wxDefaultSize;
     item.user_data = 0;
     item.sticky = false;
     item.min_size = wxDefaultSize;
     item.user_data = 0;
     item.sticky = false;
-    
-    if (item.id == wxID_ANY) 
-        item.id = wxNewId(); 
+
+    if (item.id == wxID_ANY)
+        item.id = wxNewId();
 
     if (!item.disabled_bitmap.IsOk())
     {
 
     if (!item.disabled_bitmap.IsOk())
     {
@@ -1018,9 +1023,9 @@ wxAuiToolBarItem* wxAuiToolBar::AddLabel(int tool_id,
     item.user_data = 0;
     item.sticky = false;
 
     item.user_data = 0;
     item.sticky = false;
 
-    if (item.id == wxID_ANY) 
-        item.id = wxNewId(); 
-       
+    if (item.id == wxID_ANY)
+        item.id = wxNewId();
+
     m_items.Add(item);
     return &m_items.Last();
 }
     m_items.Add(item);
     return &m_items.Last();
 }
@@ -1469,7 +1474,7 @@ void wxAuiToolBar::RefreshOverflowState()
     // find out if the mouse cursor is inside the dropdown rectangle
     if (overflow_rect.Contains(pt.x, pt.y))
     {
     // find out if the mouse cursor is inside the dropdown rectangle
     if (overflow_rect.Contains(pt.x, pt.y))
     {
-        if (::wxGetMouseState().LeftDown())
+        if (::wxGetMouseState().LeftIsDown())
             overflow_state = wxAUI_BUTTON_STATE_PRESSED;
         else
             overflow_state = wxAUI_BUTTON_STATE_HOVER;
             overflow_state = wxAUI_BUTTON_STATE_PRESSED;
         else
             overflow_state = wxAUI_BUTTON_STATE_HOVER;
@@ -1496,7 +1501,7 @@ void wxAuiToolBar::ToggleTool(int tool_id, bool state)
             int i, idx, count;
             idx = GetToolIndex(tool_id);
             count = (int)m_items.GetCount();
             int i, idx, count;
             idx = GetToolIndex(tool_id);
             count = (int)m_items.GetCount();
-            
+
             if (idx >= 0 && idx < count)
             {
                 for (i = idx; i < count; ++i)
             if (idx >= 0 && idx < count)
             {
                 for (i = idx; i < count; ++i)
@@ -1512,7 +1517,7 @@ void wxAuiToolBar::ToggleTool(int tool_id, bool state)
                     m_items[i].state &= ~wxAUI_BUTTON_STATE_CHECKED;
                 }
             }
                     m_items[i].state &= ~wxAUI_BUTTON_STATE_CHECKED;
                 }
             }
-            
+
             tool->state |= wxAUI_BUTTON_STATE_CHECKED;
         }
          else if (tool->kind == wxITEM_CHECK)
             tool->state |= wxAUI_BUTTON_STATE_CHECKED;
         }
          else if (tool->kind == wxITEM_CHECK)
@@ -2181,7 +2186,7 @@ void wxAuiToolBar::OnIdle(wxIdleEvent& evt)
 
 void wxAuiToolBar::OnPaint(wxPaintEvent& WXUNUSED(evt))
 {
 
 void wxAuiToolBar::OnPaint(wxPaintEvent& WXUNUSED(evt))
 {
-    wxBufferedPaintDC dc(this);
+    wxAutoBufferedPaintDC dc(this);
     wxRect cli_rect(wxPoint(0,0), GetClientSize());
 
 
     wxRect cli_rect(wxPoint(0,0), GetClientSize());
 
 
@@ -2440,13 +2445,14 @@ void wxAuiToolBar::OnLeftUp(wxMouseEvent& evt)
                     toggle = true;
 
                 ToggleTool(m_action_item->id, toggle);
                     toggle = true;
 
                 ToggleTool(m_action_item->id, toggle);
-                
+
                 // repaint immediately
                 Refresh(false);
                 Update();
                 // repaint immediately
                 Refresh(false);
                 Update();
-        
+
                 wxCommandEvent e(wxEVT_COMMAND_MENU_SELECTED, m_action_item->id);
                 e.SetEventObject(this);
                 wxCommandEvent e(wxEVT_COMMAND_MENU_SELECTED, m_action_item->id);
                 e.SetEventObject(this);
+                e.SetInt (toggle);
                 GetEventHandler()->ProcessEvent(e);
                 DoIdleUpdate();
             }
                 GetEventHandler()->ProcessEvent(e);
                 DoIdleUpdate();
             }