X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/004867dbc54950a43acc7d250fa4a966f046a679..0ce8e27f685bf14f9e37130b3ee9ac9b8b7d692a:/include/wx/window.h diff --git a/include/wx/window.h b/include/wx/window.h index ec6a5644f9..7e2470214a 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(); @@ -402,7 +398,7 @@ public: // This function will merge the window's best size into the window's // minimum size, giving priority to the min size components, and // returns the results. - wxSize GetEffectiveMinSize() const; + virtual wxSize GetEffectiveMinSize() const; wxDEPRECATED( wxSize GetBestFittingSize() const ); // replaced by GetEffectiveMinSize wxDEPRECATED( wxSize GetAdjustedMinSize() const ); // replaced by GetEffectiveMinSize @@ -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) @@ -806,6 +802,13 @@ public: // be there) bool RemoveEventHandler(wxEvtHandler *handler); + // Process an event by calling GetEventHandler()->ProcessEvent(): this + // is a straightforward replacement for ProcessEvent() itself which + // shouldn't be used directly with windows as it doesn't take into + // account any event handlers associated with the window + bool ProcessWindowEvent(wxEvent& event) + { return GetEventHandler()->ProcessEvent(event); } + // Process an event by calling GetEventHandler()->ProcessEvent() and // handling any exceptions thrown by event handlers. It's mostly useful // when processing wx events when called from C code (e.g. in GTK+ @@ -817,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 @@ -828,12 +835,15 @@ protected: // or HandleWindowEvent(). // The same holds for all other wxEvtHandler functions. - wxEvtHandler::ProcessEvent; - wxEvtHandler::ProcessThreadEvent; - wxEvtHandler::SafelyProcessEvent; - wxEvtHandler::ProcessPendingEvents; - wxEvtHandler::AddPendingEvent; - wxEvtHandler::QueueEvent; + 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: @@ -1403,8 +1413,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 { @@ -1684,6 +1694,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; @@ -1700,7 +1715,7 @@ private: DECLARE_ABSTRACT_CLASS(wxWindowBase) - DECLARE_NO_COPY_CLASS(wxWindowBase) + wxDECLARE_NO_COPY_CLASS(wxWindowBase); DECLARE_EVENT_TABLE() };