X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f68586e51b20dccee3fd5645aeaca7cc8ff298c2..794bcc2dea743ac907b839f54e451847c9ea4b72:/include/wx/window.h diff --git a/include/wx/window.h b/include/wx/window.h index afc521e18f..3a1e9362bb 100644 --- a/include/wx/window.h +++ b/include/wx/window.h @@ -30,9 +30,7 @@ #include "wx/region.h" #include "wx/utils.h" -#if wxUSE_VALIDATORS - #include "wx/validate.h" // defines wxDefaultValidator -#endif // wxUSE_VALIDATORS +#include "wx/validate.h" // for wxDefaultValidator (always include it) #if wxUSE_ACCEL #include "wx/accel.h" @@ -121,13 +119,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, -#if wxUSE_VALIDATORS -# if defined(__VISAGECPP__) - const wxValidator* validator = wxDefaultValidator, -# else const wxValidator& validator = wxDefaultValidator, -# endif -#endif // wxUSE_VALIDATORS const wxString& name = wxPanelNameStr); virtual ~wxWindowBase(); @@ -279,11 +271,19 @@ public: *h = s.y; } - // centre with respect to the the parent window + // the generic centre function - centers the window on parent by + // default or on screen if it doesn't have parent or + // wxCENTER_ON_SCREEN flag is given void Centre( int direction = wxBOTH ); void Center( int direction = wxBOTH ) { Centre(direction); } - void CentreOnParent( int dir = wxBOTH ) { Centre(dir | wxCENTER_FRAME); } - void CenterOnParent( int dir = wxBOTH ) { Centre(dir | wxCENTER_FRAME); } + + // centre on screen (only works for top level windows) + void CentreOnScreen(int dir = wxBOTH) { Centre(dir | wxCENTER_ON_SCREEN); } + void CenterOnScreen(int dir = wxBOTH) { CentreOnScreen(dir); } + + // centre with respect to the the parent window + void CentreOnParent(int dir = wxBOTH) { Centre(dir | wxCENTER_FRAME); } + void CenterOnParent(int dir = wxBOTH) { CentreOnParent(dir); } // set window size to wrap around its children virtual void Fit(); @@ -323,9 +323,12 @@ public: long GetWindowStyle() const { return GetWindowStyleFlag(); } bool HasFlag(int flag) const { return (m_windowStyle & flag) != 0; } + virtual bool IsRetained() const { return HasFlag(wxRETAINED); } - virtual bool IsRetained() const - { return (m_windowStyle & wxRETAINED) != 0; } + // extra style: the less often used style bits which can't be set with + // SetWindowStyleFlag() + void SetExtraStyle(long exStyle) { m_exStyle = exStyle; } + long GetExtraStyle() const { return m_exStyle; } // make the window modal (all other windows unresponsive) virtual void MakeModal(bool modal = TRUE); @@ -392,11 +395,7 @@ public: #if wxUSE_VALIDATORS // a window may have an associated validator which is used to control // user input -# if defined(__VISAGECPP__) - virtual void SetValidator( const wxValidator *validator ); -# else virtual void SetValidator( const wxValidator &validator ); -# endif virtual wxValidator *GetValidator() { return m_windowValidator; } #endif // wxUSE_VALIDATORS @@ -629,7 +628,7 @@ public: virtual void SetConstraintSizes(bool recurse = TRUE); virtual bool LayoutPhase1(int *noChanges); virtual bool LayoutPhase2(int *noChanges); - virtual bool DoPhase(int); + virtual bool DoPhase(int phase); // these methods are virtual but normally won't be overridden virtual void SetSizeConstraint(int x, int y, int w, int h); @@ -661,6 +660,7 @@ public: // event handlers void OnSysColourChanged( wxSysColourChangedEvent& event ); void OnInitDialog( wxInitDialogEvent &event ); + void OnMiddleClick( wxMouseEvent& event ); // get the haqndle of the window for the underlying window system: this // is only used for wxWin itself or for user code which wants to call @@ -751,7 +751,8 @@ protected: bool m_isBeingDeleted:1; // window attributes - long m_windowStyle; + long m_windowStyle, + m_exStyle; wxString m_windowName; protected: @@ -820,6 +821,12 @@ protected: // same as DoSetSize() for the client size virtual void DoSetClientSize(int width, int height) = 0; + // 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 + // arrange themselves inside the given rectangle + virtual void DoMoveWindow(int x, int y, int width, int height) = 0; + #if wxUSE_TOOLTIPS virtual void DoSetToolTip( wxToolTip *tip ); #endif // wxUSE_TOOLTIPS