move frame decorations drawing to the base class

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-09-20 22:49:57 +00:00
parent bfd5f90953
commit 249803fbcd
5 changed files with 568 additions and 621 deletions

View File

@@ -162,6 +162,44 @@ public:
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 +221,16 @@ protected:
Arrow_StateMax
};
enum FrameButtonType
{
FrameButton_Close,
FrameButton_Minimize,
FrameButton_Maximize,
FrameButton_Restore,
FrameButton_Help,
FrameButton_Max
};
enum IndicatorType
{
IndicatorType_Check,
@@ -279,6 +327,9 @@ protected:
virtual wxBitmap GetRadioBitmap(int flags) = 0;
virtual wxBitmap GetCheckBitmap(int flags) = 0;
// return the frame icon bitmap
virtual wxBitmap GetFrameButtonBitmap(FrameButtonType type) = 0;
#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 +351,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;