From f33cef9fec16abad12ef95f293776d3926960ad3 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 21 Jan 2005 15:32:07 +0000 Subject: [PATCH] added DrawComboBoxDropButton() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31545 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/renderer.tex | 10 ++++++++++ include/wx/renderer.h | 14 ++++++++++++++ src/generic/renderg.cpp | 30 ++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/docs/latex/wx/renderer.tex b/docs/latex/wx/renderer.tex index 26f21944ce..221f659425 100644 --- a/docs/latex/wx/renderer.tex +++ b/docs/latex/wx/renderer.tex @@ -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}} diff --git a/include/wx/renderer.h b/include/wx/renderer.h index e450914bd4..f8c8c14d8a 100644 --- a/include/wx/renderer.h +++ b/include/wx/renderer.h @@ -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); } diff --git a/src/generic/renderg.cpp b/src/generic/renderg.cpp index 5aa4bc3d47..7675c9de83 100644 --- a/src/generic/renderg.cpp +++ b/src/generic/renderg.cpp @@ -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) -- 2.45.2