X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d4a1433fccecbd5c3e80f921c6de91cbef287b44..f196316400fd247a760b2ef77d5064b4e10e5471:/include/wx/msw/window.h diff --git a/include/wx/msw/window.h b/include/wx/msw/window.h index d9a4f67610..2b56566a73 100644 --- a/include/wx/msw/window.h +++ b/include/wx/msw/window.h @@ -17,15 +17,6 @@ // constants // --------------------------------------------------------------------------- -#if WXWIN_COMPATIBILITY_2_4 -// they're unused by wxWidgets... -enum -{ - wxKEY_SHIFT = 1, - wxKEY_CTRL = 2 -}; -#endif - // --------------------------------------------------------------------------- // wxWindow declaration for MSW // --------------------------------------------------------------------------- @@ -69,7 +60,7 @@ public: virtual void Lower(); virtual bool Show( bool show = true ); - virtual bool Enable( bool enable = true ); + virtual void DoEnable( bool enable ); virtual void SetFocus(); virtual void SetFocusFromKbd(); @@ -124,12 +115,6 @@ public: // Accept files for dragging virtual void DragAcceptFiles(bool accept); -#if WXWIN_COMPATIBILITY_2_4 - wxDEPRECATED( bool GetUseCtl3D() const ); - wxDEPRECATED( bool GetTransparentBackground() const ); - wxDEPRECATED( void SetTransparent(bool t = true) ); -#endif // WXWIN_COMPATIBILITY_2_4 - #ifndef __WXUNIVERSAL__ // Native resource loading (implemented in src/msw/nativdlg.cpp) // FIXME: should they really be all virtual? @@ -163,6 +148,29 @@ public: // does this window have deferred position and/or size? bool IsSizeDeferred() const; + // these functions allow to register a global handler for the given Windows + // message: it will be called from MSWWindowProc() of any window which gets + // this event if it's not processed before (i.e. unlike a hook procedure it + // does not override the normal processing) + // + // notice that if you want to process a message for a given window only you + // should override its MSWWindowProc() instead + + // type of the handler: it is called with the message parameters (except + // that the window object is passed instead of window handle) and should + // return true if it handled the message or false if it should be passed to + // DefWindowProc() + typedef bool (*MSWMessageHandler)(wxWindowMSW *win, + WXUINT nMsg, + WXWPARAM wParam, + WXLPARAM lParam); + + // install a handler, shouldn't be called more than one for the same message + static bool MSWRegisterMessageHandler(int msg, MSWMessageHandler handler); + + // unregister a previously registered handler + static void MSWUnregisterMessageHandler(int msg, MSWMessageHandler handler); + // implementation from now on // ========================== @@ -193,7 +201,7 @@ public: wxWindow *FindItemByHWND(WXHWND hWnd, bool controlOnly = false) const; // MSW only: true if this control is part of the main control - virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return false; }; + virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return false; } #if wxUSE_TOOLTIPS // MSW only: true if this window or any of its children have a tooltip @@ -309,6 +317,8 @@ public: bool HandleSize(int x, int y, WXUINT flag); bool HandleSizing(wxRect& rect); bool HandleGetMinMaxInfo(void *mmInfo); + bool HandleEnterSizeMove(); + bool HandleExitSizeMove(); bool HandleShow(bool show, int status); bool HandleActivate(int flag, bool minimized, WXHWND activate); @@ -420,6 +430,14 @@ public: // check if mouse is in the window bool IsMouseInWindow() const; + // check if a native double-buffering applies for this window + virtual bool IsDoubleBuffered() const; + + // this allows you to implement standard control borders without + // repeating the code in different classes that are not derived from + // wxControl + virtual wxBorder GetDefaultBorderForControl() const; + // synthesize a wxEVT_LEAVE_WINDOW event and set m_mouseInWindow to false void GenerateMouseLeave(); @@ -512,8 +530,6 @@ private: bool HandleJoystickEvent(WXUINT msg, int x, int y, WXUINT flags); bool HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - // list of disabled children before last call to our Disable() - wxWindowList *m_childrenDisabled; // number of calls to Freeze() minus number of calls to Thaw() unsigned int m_frozenness; @@ -542,14 +558,6 @@ private: // inline functions // ---------------------------------------------------------------------------- -#if WXWIN_COMPATIBILITY_2_4 - -inline bool wxWindowMSW::GetUseCtl3D() const { return false; } -inline bool wxWindowMSW::GetTransparentBackground() const { return false; } -inline void wxWindowMSW::SetTransparent(bool WXUNUSED(t)) { } - -#endif // WXWIN_COMPATIBILITY_2_4 - // --------------------------------------------------------------------------- // global functions // --------------------------------------------------------------------------- @@ -577,11 +585,7 @@ public: #include "wx/hash.h" // pseudo-template HWND <-> wxWindow hash table -#if WXWIN_COMPATIBILITY_2_4 -WX_DECLARE_HASH(wxWindow, wxWindowList, wxWinHashTable); -#else WX_DECLARE_HASH(wxWindowMSW, wxWindowList, wxWinHashTable); -#endif extern wxWinHashTable *wxWinHandleHash;