X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..b5ec0c78b521cfa0f276e4d5d830f35b4fa26e91:/include/wx/os2/window.h diff --git a/include/wx/os2/window.h b/include/wx/os2/window.h index c71601d892..bd6193b209 100644 --- a/include/wx/os2/window.h +++ b/include/wx/os2/window.h @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: window.h +// Name: wx/os2/window.h // Purpose: wxWindow class // Author: David Webster // Modified by: // Created: 10/12/99 // RCS-ID: $Id$ // Copyright: (c) David Webster -// Licence: wxWidgets licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_WINDOW_H_ @@ -34,24 +34,13 @@ // forward declarations // --------------------------------------------------------------------------- -class WXDLLEXPORT wxButton; - -// --------------------------------------------------------------------------- -// constants -// --------------------------------------------------------------------------- - -// FIXME does anybody use those? they're unused by wxWidgets... -enum -{ - wxKEY_SHIFT = 1, - wxKEY_CTRL = 2 -}; +class WXDLLIMPEXP_FWD_CORE wxButton; // --------------------------------------------------------------------------- // wxWindow declaration for OS/2 PM // --------------------------------------------------------------------------- -class WXDLLEXPORT wxWindowOS2 : public wxWindowBase +class WXDLLIMPEXP_CORE wxWindowOS2 : public wxWindowBase { public: wxWindowOS2() @@ -88,63 +77,48 @@ public: ); // implement base class pure virtuals - virtual void SetTitle(const wxString& rTitle); - virtual wxString GetTitle(void) const; + virtual void SetLabel(const wxString& label); + virtual wxString GetLabel(void) const; virtual void Raise(void); virtual void Lower(void); - virtual bool Show(bool bShow = TRUE); - virtual bool Enable(bool bEnable = TRUE); + virtual bool Show(bool bShow = true); + virtual void DoEnable(bool bEnable); virtual void SetFocus(void); virtual void SetFocusFromKbd(void); - virtual bool Reparent(wxWindow* pNewParent); + virtual bool Reparent(wxWindowBase* pNewParent); virtual void WarpPointer( int x ,int y ); - virtual void Refresh( bool bEraseBackground = TRUE + virtual void Refresh( bool bEraseBackground = true ,const wxRect* pRect = (const wxRect *)NULL ); - virtual void Freeze(void); virtual void Update(void); - virtual void Thaw(void); virtual void SetWindowStyleFlag(long lStyle); virtual bool SetCursor(const wxCursor& rCursor); virtual bool SetFont(const wxFont& rFont); virtual int GetCharHeight(void) const; virtual int GetCharWidth(void) const; - virtual void GetTextExtent( const wxString& rString - ,int* pX - ,int* pY - ,int* pDescent = (int *)NULL - ,int* pExternalLeading = (int *)NULL - ,const wxFont* pTheFont = (const wxFont *)NULL - ) const; -#if wxUSE_MENUS_NATIVE - virtual bool DoPopupMenu( wxMenu* pMenu - ,int nX - ,int nY - ); -#endif // wxUSE_MENUS_NATIVE virtual void SetScrollbar( int nOrient ,int nPos ,int nThumbVisible ,int nRange - ,bool bRefresh = TRUE + ,bool bRefresh = true ); virtual void SetScrollPos( int nOrient ,int nPos - ,bool bRefresh = TRUE + ,bool bRefresh = true ); virtual int GetScrollPos(int nOrient) const; virtual int GetScrollThumb(int nOrient) const; virtual int GetScrollRange(int nOrient) const; virtual void ScrollWindow( int nDx ,int nDy - ,const wxRect* pRect = (wxRect *)NULL + ,const wxRect* pRect = NULL ); inline HWND GetScrollBarHorz(void) const {return m_hWndScrollBarHorz;} - inline HWND GetScrollBarVert(void) const {return m_hWndScrollBarVert;}; + inline HWND GetScrollBarVert(void) const {return m_hWndScrollBarVert;} #if wxUSE_DRAG_AND_DROP virtual void SetDropTarget(wxDropTarget* pDropTarget); #endif // wxUSE_DRAG_AND_DROP @@ -176,7 +150,7 @@ public: virtual WXWidget GetHandle(void) const { return GetHWND(); } bool GetUseCtl3D(void) const { return m_bUseCtl3D; } bool GetTransparentBackground(void) const { return m_bBackgroundTransparent; } - void SetTransparent(bool bT = TRUE) { m_bBackgroundTransparent = bT; } + void SetTransparentBackground(bool bT = true) { m_bBackgroundTransparent = bT; } // event handlers // -------------- @@ -186,10 +160,6 @@ public: public: - // For implementation purposes - sometimes decorations make the client area - // smaller - virtual wxPoint GetClientAreaOrigin(void) const; - // Windows subclassing void SubclassWin(WXHWND hWnd); void UnsubclassWin(void); @@ -197,22 +167,22 @@ public: WXFARPROC OS2GetOldWndProc(void) const { return m_fnOldWndProc; } void OS2SetOldWndProc(WXFARPROC fnProc) { m_fnOldWndProc = fnProc; } // - // Return TRUE if the window is of a standard (i.e. not wxWidgets') class + // Return true if the window is of a standard (i.e. not wxWidgets') class // bool IsOfStandardClass(void) const { return m_fnOldWndProc != NULL; } wxWindow* FindItem(long lId) const; wxWindow* FindItemByHWND( WXHWND hWnd - ,bool bControlOnly = FALSE + ,bool bControlOnly = false ) const; // Make a Windows extended style from the given wxWidgets window style ?? applicable to OS/2?? static WXDWORD MakeExtendedStyle( long lStyle - ,bool bEliminateBorders = TRUE + ,bool bEliminateBorders = true ); - // PM only: TRUE if this control is part of the main control - virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; }; + // PM only: true if this control is part of the main control + virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return false; } // translate wxWidgets style flags for this control into the PM style // and optional extended style for the corresponding native control @@ -234,9 +204,9 @@ public: // get the HWND to be used as parent of this window with CreateWindow() virtual WXHWND OS2GetParent(void) const; - // returns TRUE if the window has been created + // returns true if the window has been created bool OS2Create( PSZ zClass - ,const char* zTitle + ,const wxChar* zTitle ,WXDWORD dwStyle ,const wxPoint& rPos ,const wxSize& rSize @@ -293,7 +263,7 @@ public: // ------------------------------------------------------------------------ // internal handlers for OS2 messages: all handlers return a boolen value: - // TRUE means that the handler processed the event and FALSE that it didn't + // true means that the handler processed the event and false that it didn't // ------------------------------------------------------------------------ // there are several cases where we have virtual functions for PM @@ -369,7 +339,7 @@ public: ); bool HandleChar( WXWPARAM wParam ,WXLPARAM lParam - ,bool bIsASCII = FALSE + ,bool bIsASCII = false ); bool HandleKeyDown( WXWPARAM wParam ,WXLPARAM lParam @@ -431,6 +401,9 @@ public: PSWP GetSwp(void) {return &m_vWinSwp;} protected: + virtual void DoFreeze(void); + virtual void DoThaw(void); + // PM can't create some MSW styles natively but can perform these after // creation by sending messages typedef enum extra_flags { kFrameToolWindow = 0x0001 @@ -474,6 +447,19 @@ protected: long m_lDlgCode; // implement the base class pure virtuals + virtual void GetTextExtent( const wxString& rString + ,int* pX + ,int* pY + ,int* pDescent = NULL + ,int* pExternalLeading = NULL + ,const wxFont* pTheFont = NULL + ) const; +#if wxUSE_MENUS_NATIVE + virtual bool DoPopupMenu( wxMenu* pMenu + ,int nX + ,int nY + ); +#endif // wxUSE_MENUS_NATIVE virtual void DoClientToScreen( int* pX ,int* pY ) const; @@ -543,20 +529,13 @@ private: ,WXWPARAM wParam = 0 ) const; - wxWindowList* m_pChildrenDisabled; HWND m_hWndScrollBarHorz; HWND m_hWndScrollBarVert; SWP m_vWinSwp; DECLARE_DYNAMIC_CLASS(wxWindowOS2); - DECLARE_NO_COPY_CLASS(wxWindowOS2) + wxDECLARE_NO_COPY_CLASS(wxWindowOS2); DECLARE_EVENT_TABLE() - - // - // Virtual function hiding supression - // - inline virtual bool Reparent(wxWindowBase* pNewParent) - { return(wxWindowBase::Reparent(pNewParent));} }; // end of wxWindow class wxWindowCreationHook @@ -571,9 +550,22 @@ public: // --------------------------------------------------------------------------- // kbd code translation -WXDLLEXPORT int wxCharCodeOS2ToWX(int nKeySym); -WXDLLEXPORT int wxCharCodeWXToOS2( int nId - ,bool* pbIsVirtual +WXDLLIMPEXP_CORE int wxCharCodeOS2ToWX(int nKeySym); +WXDLLIMPEXP_CORE int wxCharCodeWXToOS2( int nId + ,bool* pbIsVirtual = NULL ); -#endif - // _WX_WINDOW_H_ + +// ---------------------------------------------------------------------------- +// 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(wxWindowOS2, wxWindowList, wxWinHashTable); + +extern wxWinHashTable *wxWinHandleHash; + +#endif // _WX_WINDOW_H_