]> git.saurik.com Git - wxWidgets.git/commitdiff
added DrawComboBoxDropButton()
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 21 Jan 2005 15:32:07 +0000 (15:32 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 21 Jan 2005 15:32:07 +0000 (15:32 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31545 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/renderer.tex
include/wx/renderer.h
src/generic/renderg.cpp

index 26f21944ce60ab98aed68c51eee8ee1992eb089b..221f6594259c2d024fee1d8c00c8466286ebde9f 100644 (file)
@@ -91,6 +91,16 @@ No base class
 Virtual destructor as for any base class.
 
 
+\membersection{wxRendererGeneric::DrawComboBoxDropButton}
+
+\func{void}{DrawComboBoxDropButton}{\param{wxWindow *}{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags}}
+
+Draw a button like the one used by \helpref{wxComboBox}{wxcombobox} to show a
+drop down window. The usual appearance is a downwards pointing arrow.
+
+\arg{flags} may have the \texttt{wxCONTROL\_PRESSED} bit set.
+
+
 \membersection{wxRendererNative::DrawHeaderButton}\label{wxrenderernativedrawheaderbutton}
 
 \func{void}{DrawHeaderButton}{\param{wxWindow* }{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags = 0}}
index e450914bd4d8907a9869a9296bf2e081cdf90e0b..f8c8c14d8a24a0ff26393f58b7a295bf05a2a106 100644 (file)
@@ -154,6 +154,14 @@ public:
                                   wxOrientation orient,
                                   int flags = 0) = 0;
 
+    // draw a combobox dropdown button
+    //
+    // flags may only use wxCONTROL_PRESSED
+    virtual void DrawComboBoxDropButton(wxWindow *win,
+                                        wxDC& dc,
+                                        const wxRect& rect,
+                                        int flags = 0) = 0;
+
 
     // geometry functions
     // ------------------
@@ -245,6 +253,12 @@ public:
         { m_rendererNative.DrawSplitterSash(win, dc, size,
                                             position, orient, flags); }
 
+    virtual void DrawComboBoxDropButton(wxWindow *win,
+                                        wxDC& dc,
+                                        const wxRect& rect,
+                                        int flags = 0)
+        { m_rendererNative.DrawComboBoxDropButton(win, dc, rect, flags); }
+
 
     virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win)
         { return m_rendererNative.GetSplitterParams(win); }
index 5aa4bc3d4721a716cc04c7d1067667ef53472ebe..7675c9de83554105c0ebbbbddbea2c3a0a17386a 100644 (file)
@@ -68,6 +68,11 @@ public:
                                   wxOrientation orient,
                                   int flags = 0);
 
+    virtual void DrawComboBoxDropButton(wxWindow *win,
+                                        wxDC& dc,
+                                        const wxRect& rect,
+                                        int flags = 0);
+
 
     virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win);
 
@@ -338,7 +343,32 @@ wxRendererGeneric::DrawSplitterSash(wxWindow *win,
     }
 }
 
+void
+wxRendererGeneric::DrawComboBoxDropButton(wxWindow *win,
+                                          wxDC& dc,
+                                          const wxRect& rect,
+                                          int WXUNUSED(flags))
+{
+    dc.SetBrush(wxBrush(win->GetBackgroundColour()));
+    dc.SetPen(wxPen(win->GetBackgroundColour()));
+    dc.DrawRectangle(0, 0, rect.width, rect.height);
+
+    wxPoint pt[] =
+    {
+        wxPoint(0, 0),
+        wxPoint(rect.width, 0),
+        wxPoint(rect.width/2, rect.height - 2)
+    };
+    dc.SetBrush(wxBrush(win->GetForegroundColour()));
+    dc.SetPen(wxPen(win->GetForegroundColour()));
+    dc.DrawPolygon(WXSIZEOF(pt), pt);
+}
+
+
+// ----------------------------------------------------------------------------
 // A module to allow cleanup of generic renderer.
+// ----------------------------------------------------------------------------
+
 class wxGenericRendererModule: public wxModule
 {
 DECLARE_DYNAMIC_CLASS(wxGenericRendererModule)