X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4b94ddc44ced056bb862938d069d9148c4c782b1..2bf8f4c0d57be03ee27a0f84d041ebcb99202497:/include/wx/renderer.h diff --git a/include/wx/renderer.h b/include/wx/renderer.h index ebda812285..9345586fea 100644 --- a/include/wx/renderer.h +++ b/include/wx/renderer.h @@ -29,6 +29,10 @@ class WXDLLEXPORT wxDC; class WXDLLEXPORT wxWindow; #include "wx/gdicmn.h" // for wxPoint +#include "wx/colour.h" +#include "wx/font.h" +#include "wx/bitmap.h" +#include "wx/string.h" // some platforms have their own renderers, others use the generic one #if defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXGTK__) @@ -47,18 +51,18 @@ enum wxCONTROL_DISABLED = 0x00000001, // control is disabled wxCONTROL_FOCUSED = 0x00000002, // currently has keyboard focus wxCONTROL_PRESSED = 0x00000004, // (button) is pressed - wxCONTROL_ISDEFAULT = 0x00000008, // only applies to the buttons - wxCONTROL_ISSUBMENU = wxCONTROL_ISDEFAULT, // only for menu items - wxCONTROL_EXPANDED = wxCONTROL_ISDEFAULT, // only for the tree items + wxCONTROL_SPECIAL = 0x00000008, // control-specific bit: + wxCONTROL_ISDEFAULT = wxCONTROL_SPECIAL, // only for the buttons + wxCONTROL_ISSUBMENU = wxCONTROL_SPECIAL, // only for the menu items + wxCONTROL_EXPANDED = wxCONTROL_SPECIAL, // only for the tree items + wxCONTROL_SIZEGRIP = wxCONTROL_SPECIAL, // only for the status bar panes wxCONTROL_CURRENT = 0x00000010, // mouse is currently over the control wxCONTROL_SELECTED = 0x00000020, // selected item in e.g. listbox wxCONTROL_CHECKED = 0x00000040, // (check/radio button) is checked wxCONTROL_CHECKABLE = 0x00000080, // (menu) item can be checked wxCONTROL_UNDETERMINED = wxCONTROL_CHECKABLE, // (check) undetermined state - wxCONTROL_UPICON = 0x00000100, // header button has an up arrow icon - wxCONTROL_DOWNICON = 0x00000200, // header button has a down arrow icon - wxCONTROL_FLAGS_MASK = 0x000002ff, + wxCONTROL_FLAGS_MASK = 0x000000ff, // this is a pseudo flag not used directly by wxRenderer but rather by some // controls internally @@ -95,7 +99,7 @@ struct WXDLLEXPORT wxHeaderButtonParams wxHeaderButtonParams() : m_labelAlignment(wxALIGN_LEFT) { } - + wxColour m_arrowColour; wxColour m_selectionColour; wxString m_labelText; @@ -105,6 +109,12 @@ struct WXDLLEXPORT wxHeaderButtonParams int m_labelAlignment; }; +enum wxHeaderSortIconType { + wxHDR_SORT_ICON_NONE, // Header button has no sort arrow + wxHDR_SORT_ICON_UP, // Header button an an up sort arrow icon + wxHDR_SORT_ICON_DOWN // Header button an a down sort arrow icon +}; + // wxRendererNative interface version struct WXDLLEXPORT wxRendererVersion @@ -152,6 +162,7 @@ public: wxDC& dc, const wxRect& rect, int flags = 0, + wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, wxHeaderButtonParams* params=NULL) = 0; @@ -161,6 +172,7 @@ public: wxDC& dc, const wxRect& rect, int flags = 0, + wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, wxHeaderButtonParams* params=NULL) = 0; // Returns the default height of a header button, either a fixed platform @@ -224,7 +236,7 @@ public: // draw rectangle indicating that an item in e.g. a list control // has been selected or focused // - // flags may use + // flags may use // wxCONTROL_SELECTED (item is selected, e.g. draw background) // wxCONTROL_CURRENT (item is the current item, e.g. dotted border) // wxCONTROL_FOCUSED (the whole control has focus, e.g. blue background vs. grey otherwise) @@ -300,18 +312,18 @@ public: wxDC& dc, const wxRect& rect, int flags = 0, + wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, wxHeaderButtonParams* params = NULL) - { m_rendererNative.DrawHeaderButton(win, dc, rect, flags, params); } + { m_rendererNative.DrawHeaderButton(win, dc, rect, flags, sortArrow, params); } - virtual void DrawHeaderButtonContents(wxWindow *win, wxDC& dc, const wxRect& rect, int flags = 0, + wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, wxHeaderButtonParams* params = NULL) - { m_rendererNative.DrawHeaderButtonContents(win, dc, rect, flags, params); } + { m_rendererNative.DrawHeaderButtonContents(win, dc, rect, flags, sortArrow, params); } - virtual int GetHeaderButtonHeight(wxWindow *win) { return m_rendererNative.GetHeaderButtonHeight(win); }