X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c358ea4147c4ee2942155ed193c98b7d015a7aaf..be0e5d699f3681f291340f1e4d107a2348b40136:/include/wx/msw/window.h diff --git a/include/wx/msw/window.h b/include/wx/msw/window.h index bfd3cc190f..16e1139b6d 100644 --- a/include/wx/msw/window.h +++ b/include/wx/msw/window.h @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: wx/msw/window.h -// Purpose: wxWindow class +// Purpose: wxWindowMSW class // Author: Julian Smart // Modified by: Vadim Zeitlin on 13.05.99: complete refont of message handling, // elimination of Default(), ... @@ -62,8 +62,8 @@ public: const wxString& name = wxPanelNameStr); // implement base class pure virtuals - virtual void SetTitle( const wxString& title); - virtual wxString GetTitle() const; + virtual void SetLabel(const wxString& label); + virtual wxString GetLabel() const; virtual void Raise(); virtual void Lower(); @@ -84,7 +84,8 @@ public: virtual void Freeze(); virtual void Thaw(); - virtual void SetWindowStyleFlag( long style ); + virtual void SetWindowStyleFlag(long style); + virtual void SetExtraStyle(long exStyle); virtual bool SetCursor( const wxCursor &cursor ); virtual bool SetFont( const wxFont &font ); @@ -97,10 +98,6 @@ public: const wxFont *theFont = (const wxFont *) NULL) const; -#if wxUSE_MENUS_NATIVE - virtual bool DoPopupMenu( wxMenu *menu, int x, int y ); -#endif // wxUSE_MENUS_NATIVE - virtual void SetScrollbar( int orient, int pos, int thumbVisible, int range, bool refresh = true ); virtual void SetScrollPos( int orient, int pos, bool refresh = true ); @@ -141,6 +138,11 @@ public: virtual bool UnregisterHotKey(int hotkeyId); #endif // wxUSE_HOTKEY +#ifdef __POCKETPC__ + bool IsContextMenuEnabled() const { return m_contextMenuEnabled; } + void EnableContextMenu(bool enable = true) { m_contextMenuEnabled = enable; } +#endif + // window handle stuff // ------------------- @@ -186,6 +188,11 @@ public: // MSW only: true if this control is part of the main control 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 + virtual bool HasToolTips() const { return GetToolTip() != NULL; } +#endif // wxUSE_TOOLTIPS + // translate wxWidgets style flags for this control into the Windows style // and optional extended style for the corresponding native control // @@ -200,6 +207,11 @@ public: WXDWORD MSWGetCreateWindowFlags(WXDWORD *exflags = NULL) const { return MSWGetStyle(GetWindowStyle(), exflags); } + // update the real underlying window style flags to correspond to the + // current wxWindow object style (safe to call even if window isn't fully + // created yet) + void MSWUpdateStyle(long flagsOld, long exflagsOld); + // translate wxWidgets coords into Windows ones suitable to be passed to // ::CreateWindow() // @@ -270,9 +282,7 @@ public: WXWORD pos, WXHWND control); // child control notifications -#ifdef __WIN95__ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); -#endif // __WIN95__ // owner-drawn controls need to process these messages virtual bool MSWOnDrawItem(int id, WXDRAWITEMSTRUCT *item); @@ -305,6 +315,7 @@ public: bool HandleSysColorChange(); bool HandleDisplayChange(); bool HandleCaptureChanged(WXHWND gainedCapture); + virtual bool HandleSettingChange(WXWPARAM wParam, WXLPARAM lParam); bool HandleQueryEndSession(long logOff, bool *mayEnd); bool HandleEndSession(bool endSession, long logOff); @@ -327,11 +338,16 @@ public: #ifdef __WIN32__ int HandleMenuChar(int chAccel, WXLPARAM lParam); #endif + // Create and process a clipboard event specified by type. + bool HandleClipboardEvent( WXUINT nMsg ); bool HandleQueryDragIcon(WXHICON *hIcon); bool HandleSetCursor(WXHWND hWnd, short nHitTest, int mouseMsg); + bool HandlePower(WXWPARAM wParam, WXLPARAM lParam, bool *vetoed); + + // Window procedure virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); @@ -405,6 +421,11 @@ public: virtual void OnInternalIdle(); protected: + +#if wxUSE_MENUS_NATIVE + virtual bool DoPopupMenu( wxMenu *menu, int x, int y ); +#endif // wxUSE_MENUS_NATIVE + // the window handle WXHWND m_hWnd; @@ -469,10 +490,13 @@ protected: // the background, false otherwise (i.e. the system should erase it) bool DoEraseBackground(WXHDC hDC); - // generate WM_UPDATEUISTATE if it's needed for the OS we're running under + // generate WM_CHANGEUISTATE if it's needed for the OS we're running under // - // the parameter should be one of UIS_XXX constants - void MSWUpdateUIState(int action); + // action should be one of the UIS_XXX constants + // state should be one or more of the UISF_XXX constants + // if action == UIS_INITIALIZE then it doesn't seem to matter what we use + // for state as the system will decide for us what needs to be set + void MSWUpdateUIState(int action, int state = 0); private: // common part of all ctors @@ -482,10 +506,7 @@ private: bool HandleMove(int x, int y); bool HandleMoving(wxRect& rect); bool HandleJoystickEvent(WXUINT msg, int x, int y, WXUINT flags); - -#ifdef __WIN95__ bool HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); -#endif // __WIN95__ // list of disabled children before last call to our Disable() wxWindowList *m_childrenDisabled; @@ -502,6 +523,10 @@ private: wxPoint m_pendingPosition; wxSize m_pendingSize; +#ifdef __POCKETPC__ + bool m_contextMenuEnabled; +#endif + DECLARE_DYNAMIC_CLASS(wxWindowMSW) DECLARE_NO_COPY_CLASS(wxWindowMSW) DECLARE_EVENT_TABLE() @@ -554,5 +579,4 @@ WX_DECLARE_HASH(wxWindowMSW, wxWindowList, wxWinHashTable); extern wxWinHashTable *wxWinHandleHash; -#endif - // _WX_WINDOW_H_ +#endif // _WX_WINDOW_H_