X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e78c4d503ecd57835502fb1bbd13a71cb99019d0..6e264973e636cc41915d166cb7eddf2a7e72cf9b:/include/wx/os2/window.h diff --git a/include/wx/os2/window.h b/include/wx/os2/window.h index 3688662527..358c0e849a 100644 --- a/include/wx/os2/window.h +++ b/include/wx/os2/window.h @@ -46,10 +46,11 @@ enum class WXDLLEXPORT wxWindow : public wxWindowBase { - DECLARE_DYNAMIC_CLASS(wxWindow); - public: - wxWindow() { Init(); } + wxWindow() + { + Init(); + } wxWindow( wxWindow* pParent ,wxWindowID vId @@ -205,6 +206,7 @@ public: // event handlers // -------------- + void OnSetFocus(wxFocusEvent& rEvent); void OnEraseBackground(wxEraseEvent& rEvent); void OnIdle(wxIdleEvent& rEvent); @@ -245,18 +247,20 @@ public: virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; }; // returns TRUE if the window has been created - bool OS2Create( int nId - ,wxWindow* pParent - ,const wxChar* zWclass - ,wxWindow* pWxWin + bool OS2Create( WXHWND hParent + ,PSZ zClass ,const wxChar* zTitle - ,int nX - ,int nY - ,int nWidth - ,int nHeight ,WXDWORD dwStyle - ,const wxChar* zDialogTemplate = NULL - ,WXDWORD dwExendedStyle = 0 + ,long lX + ,long lY + ,long lWidth + ,long lHeight + ,WXHWND hOwner + ,WXHWND hZOrder + ,unsigned long lId + ,void* pCtlData = NULL + ,void* pPresParams = NULL + ,WXDWORD dwExStyle = 0L ); virtual bool OS2Command( WXUINT uParam ,WXWORD nId @@ -295,7 +299,6 @@ public: void UnpackActivate( WXWPARAM wParam ,WXLPARAM lParam ,WXWORD* pState - ,WXWORD* pMinimized ,WXHWND* pHwnd ); void UnpackScroll( WXWPARAM wParam @@ -304,12 +307,6 @@ public: ,WXWORD* pPos ,WXHWND* pHwnd ); - void UnpackCtlColor( WXWPARAM wParam - ,WXLPARAM lParam - ,WXWORD* pCtlColor - ,WXHDC* pHdc - ,WXHWND* pHwnd - ); void UnpackMenuSelect( WXWPARAM wParam ,WXLPARAM lParam ,WXWORD* pTtem @@ -336,11 +333,6 @@ public: ,WXHWND control ); - virtual bool OS2OnNotify( int nIdCtrl - ,WXLPARAM lParam - ,WXLPARAM* pResult - ); - // owner-drawn controls need to process these messages virtual bool OS2OnDrawItem( int nId ,WXDRAWITEMSTRUCT* pItem @@ -363,12 +355,11 @@ public: ,int nY ,WXUINT uFlag ); - bool HandleGetMinMaxInfo(void* pMmInfo); + bool HandleGetMinMaxInfo(PSWP pMmInfo); bool HandleShow( bool bShow ,int nStatus ); bool HandleActivate( int nFlag - ,bool bMinimized ,WXHWND hActivate ); bool HandleCommand( WXWORD nId @@ -378,26 +369,16 @@ public: bool HandleSysCommand( WXWPARAM wParam ,WXLPARAM lParam ); - bool HandleCtlColor( WXHBRUSH* phBrush - ,WXHDC hDc - ,WXHWND hWnd - ,WXUINT uCtlColor - ,WXUINT uMessage - ,WXWPARAM wParam - ,WXLPARAM lParam - ); - bool HandlePaletteChanged(WXHWND hWndPalChange); - bool HandleQueryNewPalette(void); + bool HandleWindowParams( PWNDPARAMS pParams + ,WXLPARAM lParam + ); + bool HandlePaletteChanged(); + bool HandlePresParamChanged(WXWPARAM wParam); bool HandleSysColorChange(void); - bool HandleQueryEndSession( long lLogOff - ,bool* pbMayEnd - ); - bool HandleEndSession( bool bEndSession - ,long lLogOff - ); + bool HandleCtlColor(WXHBRUSH* hBrush); bool HandleSetFocus(WXHWND hWnd); bool HandleKillFocus(WXHWND hWnd); - bool HandleDropFiles(WXWPARAM wParam); + bool HandleEndDrag(WXWPARAM wParam); bool HandleMouseEvent( WXUINT uMsg ,int nX ,int nY @@ -418,21 +399,18 @@ public: ,WXLPARAM lParam ); bool HandleQueryDragIcon(WXHICON* phIcon); - bool HandleSetCursor( WXHWND hWnd - ,short nHitTest - ,int nMouseMsg + bool HandleSetCursor( USHORT vId + ,WXHWND hWnd ); // Window procedure - virtual MRESULT OS2WindowProc( HWND hwnd - ,WXUINT uMsg + virtual MRESULT OS2WindowProc( WXUINT uMsg ,WXWPARAM wParam ,WXLPARAM lParam ); // Calls an appropriate default window procedure - virtual MRESULT OS2DefWindowProc( HWND hwnd - ,WXUINT uMsg + virtual MRESULT OS2DefWindowProc( WXUINT uMsg ,WXWPARAM wParam ,WXLPARAM lParam ); @@ -469,18 +447,30 @@ public: ); protected: + // PM can't create some MSW styles natively but can perform these after + // creation by sending messages + typedef enum extra_flags { kFrameToolWindow = 0x0001 + ,kVertCaption = 0x0002 + ,kHorzCaption = 0x0004 + } EExtraFlags; + // Some internal sizeing id's to make it easy for event handlers + typedef enum size_types { kSizeNormal + ,kSizeMax + ,kSizeMin + } ESizeTypes; // the window handle WXHWND m_hWnd; // the old window proc (we subclass all windows) WXFARPROC m_fnOldWndProc; - // additional (MSW specific) flags + // additional (OS2 specific) flags bool m_bUseCtl3D:1; // Using CTL3D for this control bool m_bBackgroundTransparent:1; bool m_bMouseInWindow:1; bool m_bDoubleClickAllowed:1; bool m_bWinCaptured:1; + WXDWORD m_dwExStyle; // the size of one page for scrolling int m_nXThumbSize; @@ -494,6 +484,7 @@ protected: #endif // wxUSE_MOUSEEVENT_HACK WXHMENU m_hMenu; // Menu, if any + unsigned long m_ulMenubarId; // it's Id, if any // the return value of WM_GETDLGCODE handler long m_lDlgCode; @@ -526,7 +517,7 @@ protected: // move the window to the specified location and resize it: this is called // from both DoSetSize() and DoSetClientSize() and would usually just call - // ::MoveWindow() except for composite controls which will want to arrange + // ::WinSetWindowPos() except for composite controls which will want to arrange // themselves inside the given rectangle virtual void DoMoveWindow( int nX ,int nY @@ -556,13 +547,20 @@ private: ,WXLPARAM lParam ,WXLPARAM* pResult ); + // the helper functions used by HandleChar/KeyXXX methods + wxKeyEvent CreateKeyEvent(wxEventType evType, int id, WXLPARAM lp) const; + + DECLARE_DYNAMIC_CLASS(wxWindow); DECLARE_NO_COPY_CLASS(wxWindow); DECLARE_EVENT_TABLE() private: + HWND m_hWndScrollBarHorz; + HWND m_hWndScrollBarVert; + // Virtual function hiding supression inline virtual bool Reparent(wxWindowBase* pNewParent) { return(wxWindowBase::Reparent(pNewParent));}; -}; +}; // end of wxWindow // --------------------------------------------------------------------------- // global functions