X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1cd9779fce63b081d875de7a901c8eb6120d0b8a..bd9f3519cf4d3adec765a932a726e2f1d34e0df9:/include/wx/univ/stdrend.h diff --git a/include/wx/univ/stdrend.h b/include/wx/univ/stdrend.h index a78452202e..4fe5ab07fa 100644 --- a/include/wx/univ/stdrend.h +++ b/include/wx/univ/stdrend.h @@ -38,7 +38,7 @@ public: int flags); - virtual void DrawFocusRect(wxDC& dc, const wxRect& rect); + virtual void DrawFocusRect(wxDC& dc, const wxRect& rect, int flags = 0); virtual void DrawLabel(wxDC& dc, const wxString& label, const wxRect& rect, @@ -157,11 +157,53 @@ public: const wxString& label, int flags = 0, int style = 0); - virtual wxSize GetStatusBarBorders(wxCoord *borderBetweenFields) const; + virtual wxSize GetStatusBarBorders() const; + + virtual wxCoord GetStatusBarBorderBetweenFields() const; + + virtual wxSize GetStatusBarFieldMargins() const; #endif // wxUSE_STATUSBAR virtual wxCoord GetCheckItemMargin() const { return 0; } + + virtual void DrawFrameTitleBar(wxDC& dc, + const wxRect& rect, + const wxString& title, + const wxIcon& icon, + int flags, + int specialButton = 0, + int specialButtonFlag = 0); + virtual void DrawFrameBorder(wxDC& dc, + const wxRect& rect, + int flags); + virtual void DrawFrameBackground(wxDC& dc, + const wxRect& rect, + int flags); + virtual void DrawFrameTitle(wxDC& dc, + const wxRect& rect, + const wxString& title, + int flags); + virtual void DrawFrameIcon(wxDC& dc, + const wxRect& rect, + const wxIcon& icon, + int flags); + virtual void DrawFrameButton(wxDC& dc, + wxCoord x, wxCoord y, + int button, + int flags = 0); + + virtual wxRect GetFrameClientArea(const wxRect& rect, int flags) const; + + virtual wxSize GetFrameTotalSize(const wxSize& clientSize, int flags) const; + + virtual wxSize GetFrameMinSize(int flags) const; + + virtual wxSize GetFrameIconSize() const; + + virtual int HitTestFrame(const wxRect& rect, + const wxPoint& pt, + int flags = 0) const; protected: // various constants enum ArrowDirection @@ -183,6 +225,16 @@ protected: Arrow_StateMax }; + enum FrameButtonType + { + FrameButton_Close, + FrameButton_Minimize, + FrameButton_Maximize, + FrameButton_Restore, + FrameButton_Help, + FrameButton_Max + }; + enum IndicatorType { IndicatorType_Check, @@ -241,7 +293,9 @@ protected: virtual void DrawRaisedBorder(wxDC& dc, wxRect *rect); virtual void DrawSunkenBorder(wxDC& dc, wxRect *rect); virtual void DrawAntiSunkenBorder(wxDC& dc, wxRect *rect); - virtual void DrawFrameBorder(wxDC& dc, wxRect *rect); + virtual void DrawBoxBorder(wxDC& dc, wxRect *rect); + virtual void DrawStaticBorder(wxDC& dc, wxRect *rect); + virtual void DrawExtraBorder(wxDC& dc, wxRect *rect); // draw the frame with non-empty label inside the given rectText @@ -279,6 +333,17 @@ protected: virtual wxBitmap GetRadioBitmap(int flags) = 0; virtual wxBitmap GetCheckBitmap(int flags) = 0; + // return the frame icon bitmap + virtual wxBitmap GetFrameButtonBitmap(FrameButtonType type) = 0; + + // get the width of either normal or resizeable frame border depending on + // whether flags contains wxTOPLEVEL_RESIZEABLE bit + // + // notice that these methods only make sense with standard border drawing + // code which uses the borders of the same width on all sides, this is why + // they are only present here and not in wxRenderer itself + virtual int GetFrameBorderWidth(int flags) const; + #if wxUSE_TEXTCTRL // return the width of the border around the text area in the text control virtual int GetTextBorderWidth(const wxTextCtrl *text) const; @@ -300,6 +365,8 @@ protected: m_penLightGrey, m_penHighlight; + wxFont m_titlebarFont; + // the colours we use, they never change currently so we don't have to ever // update m_penXXX objects above const wxColourScheme * const m_scheme;