]> git.saurik.com Git - wxWidgets.git/blobdiff - src/aui/auibar.cpp
Improve hit detection in wxMSW wxTreeCtrl with wxTR_FULL_ROW_HIGHLIGHT style.
[wxWidgets.git] / src / aui / auibar.cpp
index d356d353a208ebc5038f098bcf7302eace75db4e..773ccf41df7f88f05b042e1e7d8f0f536fb249a7 100644 (file)
@@ -38,8 +38,6 @@
 
 #ifdef __WXMAC__
 #include "wx/osx/private.h"
-// for themeing support
-#include <Carbon/Carbon.h>
 #endif
 
 #include "wx/arrimpl.cpp"
@@ -187,8 +185,8 @@ wxAuiDefaultToolBarArt::wxAuiDefaultToolBarArt()
     m_gripper_pen2 = wxPen(darker3_colour);
     m_gripper_pen3 = *wxWHITE_PEN;
 
-    static unsigned char button_dropdown_bits[] = { 0xe0, 0xf1, 0xfb };
-    static unsigned char overflow_bits[] = { 0x80, 0xff, 0x80, 0xc1, 0xe3, 0xf7 };
+    static const unsigned char button_dropdown_bits[] = { 0xe0, 0xf1, 0xfb };
+    static const unsigned char overflow_bits[] = { 0x80, 0xff, 0x80, 0xc1, 0xe3, 0xf7 };
 
     m_button_dropdown_bmp = wxAuiBitmapFromBits(button_dropdown_bits, 5, 3,
                                                 *wxBLACK);
@@ -554,13 +552,13 @@ wxSize wxAuiDefaultToolBarArt::GetLabelSize(
 
     // 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);
 }
 
@@ -849,6 +847,7 @@ wxAuiToolBar::wxAuiToolBar(wxWindow* parent,
     SetExtraStyle(wxWS_EX_PROCESS_IDLE);
     if (style & wxAUI_TB_HORZ_LAYOUT)
         SetToolTextOrientation(wxAUI_TBTOOL_TEXT_RIGHT);
+    SetBackgroundStyle(wxBG_STYLE_CUSTOM);
 }
 
 
@@ -956,9 +955,9 @@ wxAuiToolBarItem* wxAuiToolBar::AddTool(int tool_id,
     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())
     {
@@ -1024,9 +1023,9 @@ wxAuiToolBarItem* wxAuiToolBar::AddLabel(int tool_id,
     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();
 }
@@ -1475,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))
     {
-        if (::wxGetMouseState().LeftDown())
+        if (::wxGetMouseState().LeftIsDown())
             overflow_state = wxAUI_BUTTON_STATE_PRESSED;
         else
             overflow_state = wxAUI_BUTTON_STATE_HOVER;
@@ -1502,7 +1501,7 @@ void wxAuiToolBar::ToggleTool(int tool_id, bool state)
             int i, idx, count;
             idx = GetToolIndex(tool_id);
             count = (int)m_items.GetCount();
-            
+
             if (idx >= 0 && idx < count)
             {
                 for (i = idx; i < count; ++i)
@@ -1518,7 +1517,7 @@ void wxAuiToolBar::ToggleTool(int tool_id, bool state)
                     m_items[i].state &= ~wxAUI_BUTTON_STATE_CHECKED;
                 }
             }
-            
+
             tool->state |= wxAUI_BUTTON_STATE_CHECKED;
         }
          else if (tool->kind == wxITEM_CHECK)
@@ -2187,7 +2186,7 @@ void wxAuiToolBar::OnIdle(wxIdleEvent& evt)
 
 void wxAuiToolBar::OnPaint(wxPaintEvent& WXUNUSED(evt))
 {
-    wxBufferedPaintDC dc(this);
+    wxAutoBufferedPaintDC dc(this);
     wxRect cli_rect(wxPoint(0,0), GetClientSize());
 
 
@@ -2446,13 +2445,14 @@ void wxAuiToolBar::OnLeftUp(wxMouseEvent& evt)
                     toggle = true;
 
                 ToggleTool(m_action_item->id, toggle);
-                
+
                 // repaint immediately
                 Refresh(false);
                 Update();
-        
+
                 wxCommandEvent e(wxEVT_COMMAND_MENU_SELECTED, m_action_item->id);
                 e.SetEventObject(this);
+                e.SetInt (toggle);
                 GetEventHandler()->ProcessEvent(e);
                 DoIdleUpdate();
             }