X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f3f9b50aa275243ade3541ecccb95de22cf57a9..b04237742c51e022af8ca8fe8933437734f392a3:/include/wx/msw/window.h?ds=inline diff --git a/include/wx/msw/window.h b/include/wx/msw/window.h index cd55625acd..9ec35ebfa4 100644 --- a/include/wx/msw/window.h +++ b/include/wx/msw/window.h @@ -21,7 +21,7 @@ // wxWindow declaration for MSW // --------------------------------------------------------------------------- -class WXDLLEXPORT wxWindowMSW : public wxWindowBase +class WXDLLIMPEXP_CORE wxWindowMSW : public wxWindowBase { friend class wxSpinCtrl; friend class wxSlider; @@ -59,8 +59,17 @@ public: virtual void Raise(); virtual void Lower(); - virtual bool Show( bool show = true ); - virtual void DoEnable( bool enable ); + virtual bool Show(bool show = true); + virtual bool ShowWithEffect(wxShowEffect effect, + unsigned timeout = 0) + { + return MSWShowWithEffect(true, effect, timeout); + } + virtual bool HideWithEffect(wxShowEffect effect, + unsigned timeout = 0) + { + return MSWShowWithEffect(false, effect, timeout); + } virtual void SetFocus(); virtual void SetFocusFromKbd(); @@ -72,9 +81,6 @@ public: virtual void Refresh( bool eraseBackground = true, const wxRect *rect = (const wxRect *) NULL ); virtual void Update(); - virtual void Freeze(); - virtual void Thaw(); - virtual bool IsFrozen() const { return m_frozenness > 0; } virtual void SetWindowStyleFlag(long style); virtual void SetExtraStyle(long exStyle); @@ -85,8 +91,8 @@ public: virtual int GetCharWidth() const; virtual void GetTextExtent(const wxString& string, int *x, int *y, - int *descent = (int *) NULL, - int *externalLeading = (int *) NULL, + int *descent = NULL, + int *externalLeading = NULL, const wxFont *theFont = (const wxFont *) NULL) const; @@ -97,7 +103,7 @@ public: virtual int GetScrollThumb( int orient ) const; virtual int GetScrollRange( int orient ) const; virtual void ScrollWindow( int dx, int dy, - const wxRect* rect = (wxRect *) NULL ); + const wxRect* rect = NULL ); virtual bool ScrollLines(int lines); virtual bool ScrollPages(int pages); @@ -239,6 +245,9 @@ public: // get the HWND to be used as parent of this window with CreateWindow() virtual WXHWND MSWGetParent() const; + // get the Win32 window class name used by all wxWindow objects by default + static const wxChar *MSWGetRegisteredClassName(); + // creates the window of specified Windows class with given style, extended // style, title and geometry (default values // @@ -420,6 +429,10 @@ public: return true; } + // common part of Show/HideWithEffect() + bool MSWShowWithEffect(bool show, + wxShowEffect effect, + unsigned timeout); // Responds to colour changes: passes event on to children. void OnSysColourChanged(wxSysColourChangedEvent& event); @@ -432,7 +445,17 @@ public: // check if a native double-buffering applies for this window virtual bool IsDoubleBuffered() const; + + void SetDoubleBuffered(bool on); + + // synthesize a wxEVT_LEAVE_WINDOW event and set m_mouseInWindow to false + void GenerateMouseLeave(); + // virtual function for implementing internal idle + // behaviour + virtual void OnInternalIdle(); + +protected: // this allows you to implement standard control borders without // repeating the code in different classes that are not derived from // wxControl @@ -441,14 +464,9 @@ public: // choose the default border for this window virtual wxBorder GetDefaultBorder() const; - // synthesize a wxEVT_LEAVE_WINDOW event and set m_mouseInWindow to false - void GenerateMouseLeave(); - - // virtual function for implementing internal idle - // behaviour - virtual void OnInternalIdle(); - -protected: + // Translate wxBORDER_THEME (and other border styles if necessary to the value + // that makes most sense for this Windows environment + virtual wxBorder TranslateBorder(wxBorder border) const; #if wxUSE_MENUS_NATIVE virtual bool DoPopupMenu( wxMenu *menu, int x, int y ); @@ -482,6 +500,11 @@ protected: virtual void DoCaptureMouse(); virtual void DoReleaseMouse(); + virtual void DoEnable(bool enable); + + virtual void DoFreeze(); + virtual void DoThaw(); + // this simply moves/resizes the given HWND which is supposed to be our // sibling (this is useful for controls which are composite at MSW level // and for which DoMoveWindow() is not enough) @@ -534,9 +557,6 @@ private: bool HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - // number of calls to Freeze() minus number of calls to Thaw() - unsigned int m_frozenness; - // current defer window position operation handle (may be NULL) WXHANDLE m_hDWP; @@ -553,7 +573,7 @@ private: #endif DECLARE_DYNAMIC_CLASS(wxWindowMSW) - DECLARE_NO_COPY_CLASS(wxWindowMSW) + wxDECLARE_NO_COPY_CLASS(wxWindowMSW); DECLARE_EVENT_TABLE() }; @@ -566,8 +586,8 @@ private: // --------------------------------------------------------------------------- // kbd code translation -WXDLLEXPORT int wxCharCodeMSWToWX(int keySym, WXLPARAM lParam = 0); -WXDLLEXPORT WXWORD wxCharCodeWXToMSW(int id, bool *IsVirtual = NULL); +WXDLLIMPEXP_CORE int wxCharCodeMSWToWX(int keySym, WXLPARAM lParam = 0); +WXDLLIMPEXP_CORE WXWORD wxCharCodeWXToMSW(int id, bool *IsVirtual = NULL); // window creation helper class: before creating a new HWND, instantiate an // object of this class on stack - this allows to process the messages sent to @@ -579,17 +599,4 @@ public: ~wxWindowCreationHook(); }; -// ---------------------------------------------------------------------------- -// global objects -// ---------------------------------------------------------------------------- - -// notice that this hash must be defined after wxWindow declaration as it -// needs to "see" its dtor and not just forward declaration -#include "wx/hash.h" - -// pseudo-template HWND <-> wxWindow hash table -WX_DECLARE_HASH(wxWindowMSW, wxWindowList, wxWinHashTable); - -extern wxWinHashTable *wxWinHandleHash; - #endif // _WX_WINDOW_H_