X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c539ab556d4e28999ea360567cddfcfe188d969e..3f480da37ca0840ddbe48b908d511d2e9fc20bf4:/include/wx/window.h diff --git a/include/wx/window.h b/include/wx/window.h index b12fa1de05..94ea50624a 100644 --- a/include/wx/window.h +++ b/include/wx/window.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// // Name: window.h -// Purpose: wxWindowBase class - the interface of wxWindowBase +// Purpose: wxWindowBase class - the interface of wxWindow // Author: Vadim Zeitlin // Modified by: // Created: 01/02/97 @@ -34,6 +34,7 @@ // forward declarations // ---------------------------------------------------------------------------- +class WXDLLEXPORT wxCaret; class WXDLLEXPORT wxClientData; class WXDLLEXPORT wxControl; class WXDLLEXPORT wxCursor; @@ -156,6 +157,7 @@ public: // label is just the same as the title (but for, e.g., buttons it // makes more sense to speak about labels) + virtual void SetLabel(const wxString& label) { SetTitle(label); } virtual wxString GetLabel() const { return GetTitle(); } // the window name is used for ressource setting in X, it is not the @@ -474,6 +476,13 @@ public: const wxFont& GetFont() const { return m_font; } wxFont& GetFont() { return m_font; } +#if wxUSE_CARET + // associate a caret with the window + void SetCaret(wxCaret *caret); + // get the current caret (may be NULL) + wxCaret *GetCaret() const { return m_caret; } +#endif // wxUSE_CARET + // get the (average) character size for the current font virtual int GetCharHeight() const = 0; virtual int GetCharWidth() const = 0; @@ -488,8 +497,25 @@ public: const = 0; // translate to/from screen/client coordinates (pointers may be NULL) - virtual void ClientToScreen( int *x, int *y ) const = 0; - virtual void ScreenToClient( int *x, int *y ) const = 0; + void ClientToScreen( int *x, int *y ) const + { DoClientToScreen(x, y); } + void ScreenToClient( int *x, int *y ) const + { DoScreenToClient(x, y); } + wxPoint ClientToScreen(const wxPoint& pt) const + { + int x = pt.x, y = pt.y; + DoClientToScreen(&x, &y); + + return wxPoint(x, y); + } + + wxPoint ScreenToClient(const wxPoint& pt) const + { + int x = pt.x, y = pt.y; + DoScreenToClient(&x, &y); + + return wxPoint(x, y); + } // misc // ---- @@ -611,7 +637,7 @@ public: virtual WXWidget GetHandle() const = 0; protected: - // the window id - a number which uniquely identifies a window among + // the window id - a number which uniquely identifies a window among // its siblings unless it is -1 wxWindowID m_windowId; @@ -640,6 +666,10 @@ protected: wxFont m_font; wxColour m_backgroundColour, m_foregroundColour; +#if wxUSE_CARET + wxCaret *m_caret; +#endif // wxUSE_CARET + // the region which should be repainted in response to paint event wxRegion m_updateRegion; @@ -706,6 +736,10 @@ protected: // overloaded Something()s in terms of DoSomething() which will be the // only one to be virtual. + // coordinates translation + virtual void DoClientToScreen( int *x, int *y ) const = 0; + virtual void DoScreenToClient( int *x, int *y ) const = 0; + // retrieve the position/size of the window virtual void DoGetPosition( int *x, int *y ) const = 0; virtual void DoGetSize( int *width, int *height ) const = 0; @@ -763,8 +797,8 @@ inline wxWindow *wxWindowBase::GetGrandParent() const // global function // ---------------------------------------------------------------------------- -extern wxWindow* WXDLLEXPORT wxGetActiveWindow(); -inline int WXDLLEXPORT NewControlId() { return wxWindowBase::NewControlId(); } +WXDLLEXPORT extern wxWindow* wxGetActiveWindow(); +inline WXDLLEXPORT int NewControlId() { return wxWindowBase::NewControlId(); } #endif // _WX_WINDOW_H_BASE_