// 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();
// 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)
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
// 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:
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
// 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
{
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
{
// 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;
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;
DECLARE_ABSTRACT_CLASS(wxWindowBase)
- DECLARE_NO_COPY_CLASS(wxWindowBase)
+ wxDECLARE_NO_COPY_CLASS(wxWindowBase);
DECLARE_EVENT_TABLE()
};