Three more attempts to get metal look.
- Added a few flags for inheriting background. - Added wxWindow param to wxR::DrawBackground() - Added wxR::DrawButtonSurface() - Removed wxR::DrawBackground() from wxR::DrawButtonBorder() - Adde DrawMetal to Metal theme Fixed minor bug in wxGTK scrollbar. Changed code in wxX11 wxTLW so that startup flicker no longer occurs in wxFrame. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -109,6 +109,8 @@ protected:
|
||||
long numArg = -1,
|
||||
const wxString& strArg = wxEmptyString);
|
||||
virtual wxSize DoGetBestClientSize() const;
|
||||
|
||||
virtual bool DoDrawBackground(wxDC& dc);
|
||||
virtual void DoDraw(wxControlRenderer *renderer);
|
||||
|
||||
virtual bool CanBeHighlighted() const { return TRUE; }
|
||||
|
@@ -101,6 +101,8 @@ public:
|
||||
// overridden base class virtuals
|
||||
virtual bool IsPressed() const { return m_isPressed; }
|
||||
|
||||
virtual bool HasTransparentBackground() { return TRUE; }
|
||||
|
||||
protected:
|
||||
virtual bool PerformAction(const wxControlAction& action,
|
||||
long numArg = -1,
|
||||
|
@@ -69,7 +69,16 @@ public:
|
||||
virtual void DrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags) = 0;
|
||||
int flags,
|
||||
wxWindow *window = NULL ) = 0;
|
||||
|
||||
// draw the button surface
|
||||
virtual void DrawButtonSurface(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags )
|
||||
{ DrawBackground( dc, col, rect, flags ); }
|
||||
|
||||
|
||||
// draw the label inside the given rectangle with the specified alignment
|
||||
// and optionally emphasize the character with the given index
|
||||
@@ -497,8 +506,9 @@ public:
|
||||
virtual void DrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags)
|
||||
{ m_renderer->DrawBackground(dc, col, rect, flags); }
|
||||
int flags,
|
||||
wxWindow *window = NULL )
|
||||
{ m_renderer->DrawBackground(dc, col, rect, flags, window ); }
|
||||
virtual void DrawLabel(wxDC& dc,
|
||||
const wxString& label,
|
||||
const wxRect& rect,
|
||||
|
@@ -63,6 +63,8 @@ public:
|
||||
|
||||
wxIcon GetIcon() const;
|
||||
|
||||
virtual bool HasTransparentBackground() { return TRUE; }
|
||||
|
||||
private:
|
||||
virtual void DoDraw(wxControlRenderer *renderer);
|
||||
|
||||
|
@@ -51,6 +51,8 @@ public:
|
||||
// take account of this
|
||||
virtual wxPoint GetBoxAreaOrigin() const;
|
||||
|
||||
virtual bool HasTransparentBackground() { return TRUE; }
|
||||
|
||||
protected:
|
||||
// draw the control
|
||||
virtual void DoDraw(wxControlRenderer *renderer);
|
||||
|
@@ -55,6 +55,8 @@ public:
|
||||
|
||||
virtual void SetLabel(const wxString& label);
|
||||
|
||||
virtual bool HasTransparentBackground() { return TRUE; }
|
||||
|
||||
protected:
|
||||
// calculate the optimal size for the label
|
||||
virtual wxSize DoGetBestClientSize() const;
|
||||
|
@@ -143,6 +143,8 @@ public:
|
||||
virtual int GetMinWidth() const;
|
||||
virtual int GetMinHeight() const;
|
||||
|
||||
virtual bool ProvidesBackground() { return TRUE; }
|
||||
|
||||
protected:
|
||||
// handle titlebar button click event
|
||||
virtual void ClickTitleBarButton(long button);
|
||||
|
@@ -171,6 +171,16 @@ public:
|
||||
// control (e.g. a button, checkbox, ...)
|
||||
virtual bool IsContainerWindow() const { return FALSE; }
|
||||
|
||||
// returns TRUE if the control has "transparent" areas such
|
||||
// as a wxStaticText and wxCheckBox and the background should
|
||||
// be adapted from a parent window
|
||||
virtual bool HasTransparentBackground() { return FALSE; }
|
||||
|
||||
// to be used with function above: transparent windows get
|
||||
// their background from parents that return TRUE here,
|
||||
// so this is mostly for wxPanel, wxTopLevelWindow etc.
|
||||
virtual bool ProvidesBackground() { return FALSE; }
|
||||
|
||||
// return TRUE if this control can be highlighted when the mouse is over
|
||||
// it (the theme decides itself whether it is really highlighted or not)
|
||||
virtual bool CanBeHighlighted() const { return FALSE; }
|
||||
@@ -201,9 +211,6 @@ public:
|
||||
// erase part of the control
|
||||
virtual void EraseBackground(wxDC& dc, const wxRect& rect);
|
||||
|
||||
// see below
|
||||
bool HasDialogBackground() { return m_hasDialogBackground; }
|
||||
|
||||
// overridden base class methods
|
||||
// -----------------------------
|
||||
|
||||
@@ -270,10 +277,6 @@ protected:
|
||||
// the renderer we use
|
||||
wxRenderer *m_renderer;
|
||||
|
||||
// background like a dialog (e.g. wxStaticText,
|
||||
// wxRadioButton), not with a surface (wxButton)
|
||||
bool m_hasDialogBackground;
|
||||
|
||||
// background bitmap info
|
||||
wxBitmap m_bitmapBg;
|
||||
int m_alignBgBitmap;
|
||||
|
Reference in New Issue
Block a user