X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0cf5b09998e7d4606387975a56b6a954a98fd7b7..138618acb91e2a879a735c5806f9f728220f14df:/include/wx/msw/window.h?ds=sidebyside diff --git a/include/wx/msw/window.h b/include/wx/msw/window.h index d16f521fd6..bd2d747fbd 100644 --- a/include/wx/msw/window.h +++ b/include/wx/msw/window.h @@ -86,6 +86,7 @@ public: virtual bool Enable( bool enable = TRUE ); virtual void SetFocus(); + virtual void SetFocusFromKbd(); virtual bool Reparent(wxWindowBase *newParent); @@ -98,6 +99,7 @@ public: virtual void Freeze(); virtual void Thaw(); + virtual void SetWindowStyleFlag( long style ); virtual bool SetCursor( const wxCursor &cursor ); virtual bool SetFont( const wxFont &font ); @@ -169,13 +171,6 @@ public: wxWindow* GetWindowChild(wxWindowID id); #endif // __WXUNIVERSAL__ - // a MSW only function which sends a size event to the window using its - // current size - this has an effect of refreshing the window layout -/* -FUNCTION IS NOW A MEMBER OF wxFrame - gt - void SendSizeEvent(); -*/ - // implementation from now on // -------------------------- @@ -209,18 +204,38 @@ public: WXFARPROC MSWGetOldWndProc() const { return m_oldWndProc; } void MSWSetOldWndProc(WXFARPROC proc) { m_oldWndProc = proc; } + // return TRUE if the window is of a standard (i.e. not wxWindows') class + // + // to understand why does it work, look at SubclassWin() code and comments + bool IsOfStandardClass() const { return m_oldWndProc != NULL; } + wxWindow *FindItem(long id) const; wxWindow *FindItemByHWND(WXHWND hWnd, bool controlOnly = FALSE) const; // Make a Windows extended style from the given wxWindows window style static WXDWORD MakeExtendedStyle(long style, bool eliminateBorders = FALSE); + // Determine whether 3D effects are wanted WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D) const; // MSW only: TRUE if this control is part of the main control virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; }; + // translate wxWindows style flags for this control into the Windows style + // and optional extended style for the corresponding native control + // + // this is the function that should be overridden in the derived classes, + // but you will mostly use MSWGetCreateWindowFlags() below + virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const; + + // get the MSW window flags corresponding to wxWindows ones + // + // the functions returns the flags (WS_XXX) directly and puts the ext + // (WS_EX_XXX) flags into the provided pointer if not NULL + WXDWORD MSWGetCreateWindowFlags(WXDWORD *exflags = NULL) const + { return MSWGetStyle(GetWindowStyle(), exflags); } + // translate wxWindows coords into Windows ones suitable to be passed to // ::CreateWindow() // @@ -230,6 +245,9 @@ public: int& x, int& y, int& w, int& h) const; + // get the HWND to be used as parent of this window with CreateWindow() + virtual WXHWND MSWGetParent() const; + // creates the window of specified Windows class with given style, extended // style, title and geometry (default values // @@ -331,6 +349,8 @@ public: bool HandlePaletteChanged(WXHWND hWndPalChange); bool HandleQueryNewPalette(); bool HandleSysColorChange(); + bool HandleDisplayChange(); + bool HandleCaptureChanged(WXHWND gainedCapture); bool HandleQueryEndSession(long logOff, bool *mayEnd); bool HandleEndSession(bool endSession, long logOff); @@ -347,6 +367,9 @@ public: bool HandleChar(WXWPARAM wParam, WXLPARAM lParam, bool isASCII = FALSE); bool HandleKeyDown(WXWPARAM wParam, WXLPARAM lParam); bool HandleKeyUp(WXWPARAM wParam, WXLPARAM lParam); +#ifdef __WIN32__ + int HandleMenuChar(int chAccel, WXLPARAM lParam); +#endif bool HandleQueryDragIcon(WXHICON *hIcon); @@ -407,7 +430,7 @@ protected: bool m_useCtl3D:1; // Using CTL3D for this control bool m_backgroundTransparent:1; bool m_mouseInWindow:1; - bool m_doubleClickAllowed:1; + bool m_lastKeydownProcessed:1; // the size of one page for scrolling int m_xThumbSize; @@ -444,10 +467,17 @@ protected: #if wxUSE_TOOLTIPS virtual void DoSetToolTip( wxToolTip *tip ); + + // process TTN_NEEDTEXT message properly (i.e. fixing the bugs in + // comctl32.dll in our code -- see the function body for more info) + bool HandleTooltipNotify(WXUINT code, + WXLPARAM lParam, + const wxString& ttip); #endif // wxUSE_TOOLTIPS // the helper functions used by HandleChar/KeyXXX methods - wxKeyEvent CreateKeyEvent(wxEventType evType, int id, WXLPARAM lp) const; + wxKeyEvent CreateKeyEvent(wxEventType evType, int id, + WXLPARAM lParam = 0, WXWPARAM wParam = 0) const; private: // common part of all ctors @@ -461,6 +491,9 @@ private: bool HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); #endif // __WIN95__ + // list of disabled children before last call to our Disable() + wxWindowList *m_childrenDisabled; + DECLARE_DYNAMIC_CLASS(wxWindowMSW) DECLARE_NO_COPY_CLASS(wxWindowMSW) DECLARE_EVENT_TABLE()