]> git.saurik.com Git - wxWidgets.git/commitdiff
Add wxAUI_TB_PLAIN_BACKGROUND wxAuiToolBar style.
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 21 Jan 2013 11:19:00 +0000 (11:19 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 21 Jan 2013 11:19:00 +0000 (11:19 +0000)
This style allows to use a plain, solid colour, background instead of the
default gradient one.

Closes #10585.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
include/wx/aui/auibar.h
interface/wx/aui/auibar.h
src/aui/auibar.cpp

index 3637bd1d598e928e75a43d1e08e3572584682e41..e5d0996db4f4e2d40f7d60a0d6c87be705bc3f21 100644 (file)
@@ -608,6 +608,7 @@ All (GUI):
 - Fix bug in generic wxDataViewCtrl column dragging (jobuz).
 - Add wxMask::GetBitmap() for wxMSW, wxGTK and wxOSX
 - Add wxCheckListBox::GetCheckedItems() (hartwigw).
+- Add wxAUI_TB_PLAIN_BACKGROUND wxAuiToolBar style (Allann Jones).
 
 wxGTK:
 
index a156877b27d0b00473bd0452ac5153e2f654be83..d3ecc3fef87c45faba5619de1e0a341f70669d53 100644 (file)
@@ -39,6 +39,7 @@ enum wxAuiToolBarStyle
     // analogous to wxAUI_TB_VERTICAL, but forces the toolbar
     // to be horizontal
     wxAUI_TB_HORIZONTAL    = 1 << 7,
+    wxAUI_TB_PLAIN_BACKGROUND = 1 << 8,
     wxAUI_TB_HORZ_TEXT     = (wxAUI_TB_HORZ_LAYOUT | wxAUI_TB_TEXT),
     wxAUI_ORIENTATION_MASK = (wxAUI_TB_VERTICAL | wxAUI_TB_HORIZONTAL),
     wxAUI_TB_DEFAULT_STYLE = 0
@@ -282,6 +283,11 @@ public:
                          wxWindow* wnd,
                          const wxRect& rect) = 0;
 
+    virtual void DrawPlainBackground(
+                                  wxDC& dc,
+                                  wxWindow* wnd,
+                                  const wxRect& rect) = 0;
+
     virtual void DrawLabel(
                          wxDC& dc,
                          wxWindow* wnd,
@@ -363,6 +369,10 @@ public:
                 wxWindow* wnd,
                 const wxRect& rect);
 
+    virtual void DrawPlainBackground(wxDC& dc,
+                                  wxWindow* wnd,
+                                  const wxRect& rect);
+
     virtual void DrawLabel(
                 wxDC& dc,
                 wxWindow* wnd,
index 513c67f58296fa6c3ffb8e569e7213a79abeede9..05220e4798945d45d8a5b331b9253bca8223e423 100644 (file)
@@ -57,6 +57,14 @@ enum wxAuiToolBarStyle
     */
     wxAUI_TB_HORIZONTAL    = 1 << 7,
 
+
+    /**
+      Draw a plain background (based on parent) instead of the default gradient background.
+
+      @since 2.9.5
+    */
+    wxAUI_TB_PLAIN_BACKGROUND = 1 << 8,
+
     /**
        Shows the text alongside the icons, not vertically stacked.
     */
@@ -406,6 +414,11 @@ public:
                          wxWindow* wnd,
                          const wxRect& rect) = 0;
 
+    virtual void DrawPlainBackground(
+                                  wxDC& dc,
+                                  wxWindow* wnd,
+                                  const wxRect& rect) = 0;
+
     virtual void DrawLabel(
                          wxDC& dc,
                          wxWindow* wnd,
@@ -493,6 +506,10 @@ public:
                 wxWindow* wnd,
                 const wxRect& rect);
 
+    virtual void DrawPlainBackground(wxDC& dc,
+                                  wxWindow* wnd,
+                                  const wxRect& rect);
+
     virtual void DrawLabel(
                 wxDC& dc,
                 wxWindow* wnd,
@@ -573,6 +590,9 @@ public:
     @style{wxAUI_TB_HORIZONTAL}
         analogous to wxAUI_TB_VERTICAL, but forces the toolbar
         to be horizontal
+    @style{wxAUI_TB_PLAIN_BACKGROUND}
+        Draw a plain background (based on parent) instead of the
+        default gradient background.
     @style{wxAUI_TB_HORZ_TEXT}
         Equivalent to wxAUI_TB_HORZ_LAYOUT | wxAUI_TB_TEXT
     @style{wxAUI_TB_DEFAULT_STYLE}
index d00706115b231840824d6186a23b6f17f2266d55..77fbd74301827807d703a9a9c029841dd09036aa 100644 (file)
@@ -214,6 +214,19 @@ void wxAuiDefaultToolBarArt::DrawBackground(
     dc.GradientFillLinear(rect, startColour, endColour, wxSOUTH);
 }
 
+void wxAuiDefaultToolBarArt::DrawPlainBackground(wxDC& dc,
+                                                   wxWindow* WXUNUSED(wnd),
+                                                   const wxRect& _rect)
+{
+    wxRect rect = _rect;
+    rect.height++;
+
+    dc.SetBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
+
+    dc.DrawRectangle(rect.GetX() - 1, rect.GetY() - 1,
+                     rect.GetWidth() + 2, rect.GetHeight() + 1);
+}
+
 void wxAuiDefaultToolBarArt::DrawLabel(
                                     wxDC& dc,
                                     wxWindow* WXUNUSED(wnd),
@@ -2367,8 +2380,10 @@ void wxAuiToolBar::OnPaint(wxPaintEvent& WXUNUSED(evt))
 
     bool horizontal = m_orientation == wxHORIZONTAL;
 
-
-    m_art->DrawBackground(dc, this, cli_rect);
+    if (m_windowStyle & wxAUI_TB_PLAIN_BACKGROUND)
+        m_art->DrawPlainBackground(dc, this, cli_rect);
+    else
+        m_art->DrawBackground(dc, this, cli_rect);
 
     int gripperSize = m_art->GetElementSize(wxAUI_TBART_GRIPPER_SIZE);
     int dropdown_size = m_art->GetElementSize(wxAUI_TBART_OVERFLOW_SIZE);