X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6528a7f14507ed235ab087d63e3a0be68ea9b1b8..fdf20a26dba64a6d31dead1e1d19b2d755c0af13:/include/wx/window.h diff --git a/include/wx/window.h b/include/wx/window.h index 7e2470214a..9d863ee516 100644 --- a/include/wx/window.h +++ b/include/wx/window.h @@ -148,7 +148,9 @@ WX_DECLARE_LIST_3(wxWindow, wxWindowBase, wxWindowList, wxWindowListNode, class // ---------------------------------------------------------------------------- extern WXDLLIMPEXP_DATA_CORE(wxWindowList) wxTopLevelWindows; -extern WXDLLIMPEXP_DATA_CORE(wxList) wxPendingDelete; + +// declared here for compatibility only, main declaration is in wx/app.h +extern WXDLLIMPEXP_DATA_BASE(wxList) wxPendingDelete; // ---------------------------------------------------------------------------- // wxWindowBase is the base class for all GUI controls/widgets, this is the public @@ -375,7 +377,7 @@ public: // acceptable size using which it will still look "nice" in // most situations) wxSize GetBestSize() const; - + void GetBestSize(int *w, int *h) const { wxSize s = GetBestSize(); @@ -1032,9 +1034,10 @@ public: wxColour GetForegroundColour() const; // Set/get the background style. - // Pass one of wxBG_STYLE_SYSTEM, wxBG_STYLE_COLOUR, wxBG_STYLE_CUSTOM - virtual bool SetBackgroundStyle(wxBackgroundStyle style) { m_backgroundStyle = style; return true; } - virtual wxBackgroundStyle GetBackgroundStyle() const { return m_backgroundStyle; } + virtual bool SetBackgroundStyle(wxBackgroundStyle style) + { m_backgroundStyle = style; return true; } + wxBackgroundStyle GetBackgroundStyle() const + { return m_backgroundStyle; } // returns true if the control has "transparent" areas such as a // wxStaticText and wxCheckBox and the background should be adapted @@ -1069,12 +1072,14 @@ public: // get the width/height/... of the text using current or specified // font - virtual void GetTextExtent(const wxString& string, - int *x, int *y, - int *descent = NULL, - int *externalLeading = NULL, - const wxFont *theFont = (const wxFont *) NULL) - const = 0; + void GetTextExtent(const wxString& string, + int *x, int *y, + int *descent = NULL, + int *externalLeading = NULL, + const wxFont *font = NULL) const + { + DoGetTextExtent(string, x, y, descent, externalLeading, font); + } wxSize GetTextExtent(const wxString& string) const { @@ -1155,13 +1160,16 @@ public: // scrollbars // ---------- - // does the window have the scrollbar for this orientation? - bool HasScrollbar(int orient) const + // can the window have the scrollbar in this orientation? + bool CanScroll(int orient) const { return (m_windowStyle & (orient == wxHORIZONTAL ? wxHSCROLL : wxVSCROLL)) != 0; } + // does the window have the scrollbar in this orientation? + bool HasScrollbar(int orient) const; + // configure the window scrollbars virtual void SetScrollbar( int orient, int pos, @@ -1602,6 +1610,13 @@ protected: // overloaded Something()s in terms of DoSomething() which will be the // only one to be virtual. + // text extent + virtual void DoGetTextExtent(const wxString& string, + int *x, int *y, + int *descent = NULL, + int *externalLeading = NULL, + const wxFont *font = NULL) const = 0; + // coordinates translation virtual void DoClientToScreen( int *x, int *y ) const = 0; virtual void DoScreenToClient( int *x, int *y ) const = 0; @@ -1623,6 +1638,11 @@ protected: // same size as it would have after a call to Fit() virtual wxSize DoGetBestSize() const; + // this method can be overridden instead of DoGetBestSize() if it computes + // the best size of the client area of the window only, excluding borders + // (GetBorderSize() will be used to add them) + virtual wxSize DoGetBestClientSize() const { return wxDefaultSize; } + // this is the virtual function to be overriden in any derived class which // wants to change how SetSize() or Move() works - it is called by all // versions of these functions in the base class @@ -1637,6 +1657,19 @@ protected: int maxW, int maxH, int incW, int incH ); + // return the total size of the window borders, i.e. the sum of the widths + // of the left and the right border in the x component of the returned size + // and the sum of the heights of the top and bottom borders in the y one + // + // NB: this is new/temporary API only implemented by wxMSW so far and + // subject to change, don't use + virtual wxSize DoGetBorderSize() const + { + wxFAIL_MSG( "must be overridden if called" ); + + return wxDefaultSize; + } + // move the window to the specified location and resize it: this is called // from both DoSetSize() and DoSetClientSize() and would usually just // reposition this window except for composite controls which will want to