X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a20a357d928b6da93bc8b92193471f51a71127ba..86ac84b8ce086e6bbda58f422d41f84268606e35:/include/wx/window.h diff --git a/include/wx/window.h b/include/wx/window.h index 4a7c051835..913cd7d0aa 100644 --- a/include/wx/window.h +++ b/include/wx/window.h @@ -374,12 +374,8 @@ public: // get the size best suited for the window (in fact, minimal // acceptable size using which it will still look "nice" in // most situations) - wxSize GetBestSize() const - { - if (m_bestSizeCache.IsFullySpecified()) - return m_bestSizeCache; - return DoGetBestSize(); - } + wxSize GetBestSize() const; + void GetBestSize(int *w, int *h) const { wxSize s = GetBestSize(); @@ -458,8 +454,8 @@ public: // Call these to override what GetBestSize() returns. This // method is only virtual because it is overriden in wxTLW // as a different API for SetSizeHints(). - virtual void SetMinSize(const wxSize& minSize) { m_minWidth = minSize.x; m_minHeight = minSize.y; } - virtual void SetMaxSize(const wxSize& maxSize) { m_maxWidth = maxSize.x; m_maxHeight = maxSize.y; } + virtual void SetMinSize(const wxSize& minSize); + virtual void SetMaxSize(const wxSize& maxSize); // Like Set*Size, but for client, not window, size virtual void SetMinClientSize(const wxSize& size) @@ -824,6 +820,10 @@ public: virtual void SetNextHandler(wxEvtHandler *handler); virtual void SetPreviousHandler(wxEvtHandler *handler); + + // Watcom doesn't allow reducing access with using access declaration, see + // #10749 +#ifndef __WATCOMC__ protected: // NOTE: we change the access specifier of the following wxEvtHandler functions @@ -836,11 +836,14 @@ protected: // The same holds for all other wxEvtHandler functions. using wxEvtHandler::ProcessEvent; +#if wxUSE_THREADS using wxEvtHandler::ProcessThreadEvent; +#endif using wxEvtHandler::SafelyProcessEvent; using wxEvtHandler::ProcessPendingEvents; using wxEvtHandler::AddPendingEvent; using wxEvtHandler::QueueEvent; +#endif // __WATCOMC__ public: @@ -1029,9 +1032,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 @@ -1066,12 +1070,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 { @@ -1410,8 +1416,8 @@ public: protected: // event handling specific to wxWindow - virtual bool TryValidator(wxEvent& event); - virtual bool TryParent(wxEvent& event); + virtual bool TryBefore(wxEvent& event); + virtual bool TryAfter(wxEvent& event); enum WindowOrder { @@ -1599,6 +1605,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; @@ -1691,6 +1704,11 @@ private: int DoGetPopupMenuSelectionFromUser(wxMenu& menu, int x, int y); #endif // wxUSE_MENUS + // layout the window children when its size changes unless this was + // explicitly disabled with SetAutoLayout(false) + void InternalOnSize(wxSizeEvent& event); + + // the stack of windows which have captured the mouse static struct WXDLLIMPEXP_FWD_CORE wxWindowNext *ms_winCaptureNext; @@ -1707,7 +1725,7 @@ private: DECLARE_ABSTRACT_CLASS(wxWindowBase) - DECLARE_NO_COPY_CLASS(wxWindowBase) + wxDECLARE_NO_COPY_CLASS(wxWindowBase); DECLARE_EVENT_TABLE() };