]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/window.h
Added IFF handler.
[wxWidgets.git] / include / wx / os2 / window.h
index 323fa4570a547b98166afbb21f80b0fd5dbed62c..15267db30711a7c9ef03972e2efc8d8c998b4f60 100644 (file)
 #include <os2.h>
 
 
+// ---------------------------------------------------------------------------
+// forward declarations
+// ---------------------------------------------------------------------------
+#ifndef CW_USEDEFAULT
+#  define  CW_USEDEFAULT ((int)0x80000000)
+#endif
+
 // ---------------------------------------------------------------------------
 // forward declarations
 // ---------------------------------------------------------------------------
@@ -44,21 +51,21 @@ enum
 // wxWindow declaration for OS/2 PM
 // ---------------------------------------------------------------------------
 
-class WXDLLEXPORT wxWindow : public wxWindowBase
+class WXDLLEXPORT wxWindowOS2 : public wxWindowBase
 {
 public:
-    wxWindow()
+    wxWindowOS2()
     {
         Init();
     }
 
-    wxWindow( wxWindow*       pParent
-             ,wxWindowID      vId
-             ,const wxPoint&  rPos = wxDefaultPosition
-             ,const wxSize&   rSize = wxDefaultSize
-             ,long            lStyle = 0
-             ,const wxString& rName = wxPanelNameStr
-            )
+    wxWindowOS2( wxWindow*       pParent
+                ,wxWindowID      vId
+                ,const wxPoint&  rPos = wxDefaultPosition
+                ,const wxSize&   rSize = wxDefaultSize
+                ,long            lStyle = 0
+                ,const wxString& rName = wxPanelNameStr
+               )
     {
         Init();
         Create( pParent
@@ -70,7 +77,7 @@ public:
               );
     }
 
-    virtual ~wxWindow();
+    virtual ~wxWindowOS2();
 
     bool Create( wxWindow*       pParent
                 ,wxWindowID      vId
@@ -98,6 +105,9 @@ public:
                              ,const wxRect* pRect = (const wxRect *)NULL
                             );
     virtual void     Clear(void);
+    virtual void     Freeze(void);
+    virtual void     Update(void);
+    virtual void     Thaw(void);
     virtual bool     SetCursor(const wxCursor& rCursor);
     virtual bool     SetFont(const wxFont& rFont);
     virtual int      GetCharHeight(void) const;
@@ -109,10 +119,12 @@ public:
                                    ,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
@@ -180,6 +192,7 @@ public:
                     ) const;
 #endif // wxUSE_CARET
 
+#ifndef __WXUNIVERSAL__
     // Native resource loading (implemented in src/os2/nativdlg.cpp)
     // FIXME: should they really be all virtual?
     virtual bool LoadNativeDialog( wxWindow*   pParent
@@ -190,6 +203,7 @@ public:
                                  );
     wxWindow*    GetWindowChild1(wxWindowID vId);
     wxWindow*    GetWindowChild(wxWindowID vId);
+#endif //__WXUNIVERSAL__
 
     // implementation from now on
     // --------------------------
@@ -215,13 +229,6 @@ public:
     // smaller
     virtual wxPoint GetClientAreaOrigin(void) const;
 
-    // Makes an adjustment to the window position (for example, a frame that has
-    // a toolbar that it manages itself).
-    virtual void AdjustForParentClientOrigin( int& rX
-                                             ,int& rY
-                                             ,int  nSizeFlags
-                                            );
-
     // Windows subclassing
     void SubclassWin(WXHWND hWnd);
     void UnsubclassWin(void);
@@ -247,20 +254,15 @@ public:
     virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; };
 
     // returns TRUE if the window has been created
-    bool OS2Create( WXHWND        hParent
-                   ,PSZ           zClass
-                   ,const wxChar* zTitle
-                   ,WXDWORD       dwStyle
-                   ,long          lX
-                   ,long          lY
-                   ,long          lWidth
-                   ,long          lHeight
-                   ,WXHWND        hOwner
-                   ,WXHWND        hZOrder
-                   ,unsigned long lId
-                   ,void*         pCtlData = NULL
-                   ,void*         pPresParams = NULL
-                  );
+    bool         OS2Create( PSZ            zClass
+                           ,const char*    zTitle
+                           ,WXDWORD        dwStyle
+                           ,const wxPoint& rPos
+                           ,const wxSize&  rSize
+                           ,void*          pCtlData
+                           ,WXDWORD        dwExStyle
+                           ,bool           bIsChild
+                          );
     virtual bool OS2Command( WXUINT uParam
                             ,WXWORD nId
                            );
@@ -272,6 +274,7 @@ public:
                                    ) const;
 #endif // WXWIN_COMPATIBILITY
 
+#ifndef __WXUNIVERSAL__
     // Create an appropriate wxWindow from a HWND
     virtual wxWindow* CreateWindowFromHWND( wxWindow* pParent
                                            ,WXHWND    hWnd
@@ -279,6 +282,7 @@ public:
 
     // Make sure the window style reflects the HWND style (roughly)
     virtual void AdoptAttributesFromHWND(void);
+#endif
 
     // Setup background and foreground colours correctly
     virtual void SetupColours(void);
@@ -368,11 +372,7 @@ public:
     bool HandleSysCommand( WXWPARAM wParam
                           ,WXLPARAM lParam
                          );
-    bool HandleWindowParams( PWNDPARAMS pParams
-                            ,WXLPARAM   lParam
-                           );
     bool HandlePaletteChanged();
-    bool HandlePresParamChanged(WXWPARAM wParam);
     bool HandleSysColorChange(void);
     bool HandleCtlColor(WXHBRUSH* hBrush);
     bool HandleSetFocus(WXHWND hWnd);
@@ -387,14 +387,14 @@ public:
                          ,int    nY
                          ,WXUINT uFlags
                         );
-    bool HandleChar( WXWORD   wParam
+    bool HandleChar( WXDWORD  wParam
                     ,WXLPARAM lParam
                     ,bool     bIsASCII = FALSE
                    );
     bool HandleKeyDown( WXWORD   wParam
                        ,WXLPARAM lParam
                       );
-    bool HandleKeyUp( WXWORD   wParam
+    bool HandleKeyUp( WXDWORD  wParam
                      ,WXLPARAM lParam
                     );
     bool HandleQueryDragIcon(WXHICON* phIcon);
@@ -402,6 +402,15 @@ public:
                          ,WXHWND hWnd
                         );
 
+    bool IsMouseInWindow(void) const;
+    bool OS2GetCreateWindowCoords( const wxPoint& rPos
+                                  ,const wxSize&  rSize
+                                  ,int&           rnX
+                                  ,int&           rnY
+                                  ,int&           rnWidth
+                                  ,int&           rnHeight
+                                 ) const;
+
     // Window procedure
     virtual MRESULT OS2WindowProc( WXUINT   uMsg
                                   ,WXWPARAM wParam
@@ -445,6 +454,8 @@ public:
                         ,WXUINT        uFlags
                        );
 
+    void MoveChildren(int nDiff);
+
 protected:
     // PM can't create some MSW styles natively but can perform these after
     // creation by sending messages
@@ -463,12 +474,13 @@ protected:
     // 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;
@@ -527,6 +539,8 @@ protected:
     virtual void DoSetToolTip(wxToolTip* pTip);
 #endif // wxUSE_TOOLTIPS
 
+    int  GetOS2ParentHeight(wxWindowOS2* pParent);
+
 private:
     // common part of all ctors
     void Init(void);
@@ -548,8 +562,8 @@ private:
     // 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_DYNAMIC_CLASS(wxWindowOS2);
+    DECLARE_NO_COPY_CLASS(wxWindowOS2)
     DECLARE_EVENT_TABLE()
 private:
     HWND                            m_hWndScrollBarHorz;
@@ -560,6 +574,13 @@ private:
     { return(wxWindowBase::Reparent(pNewParent));};
 }; // end of wxWindow
 
+class wxWindowCreationHook
+{
+public:
+    wxWindowCreationHook(wxWindow* pWinBeingCreated);
+    ~wxWindowCreationHook();
+}; // end of CLASS wxWindowCreationHook
+
 // ---------------------------------------------------------------------------
 // global functions
 // ---------------------------------------------------------------------------