]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/toplevel.cpp
typo fixed: should be lpthread, not -lpthread in THREAD_OPTS
[wxWidgets.git] / src / os2 / toplevel.cpp
index 55794c5bfeb4326480328835405610ff31cbd7b9..82cc9d56292a858fcd6f5639246174826b44c995 100644 (file)
@@ -112,22 +112,24 @@ void wxTopLevelWindowOS2::Init()
     memset(&m_vSwpClient, 0, sizeof(SWP));
 } // end of wxTopLevelWindowIOS2::Init
 
-long wxTopLevelWindowOS2::OS2GetCreateWindowFlags(
-  long*                             plExflags
+WXDWORD wxTopLevelWindowOS2::OS2GetStyle(
+  long                              lStyle
+, WXDWORD*                          pdwExflags
 ) const
 {
-    long                            lStyle = GetWindowStyle();
-    long                            lMsflags = 0;
+    long                            lMsflags = wxWindow::OS2GetStyle( (lStyle & ~wxBORDER_MASK) | wxBORDER_NONE
+                                                                     ,pdwExflags
+                                                                    );
 
     if (lStyle == wxDEFAULT_FRAME_STYLE)
-        lMsflags = FCF_SIZEBORDER | FCF_TITLEBAR | FCF_SYSMENU |
-                        FCF_MINMAX | FCF_TASKLIST;
+        lMsflags |= FCF_SIZEBORDER | FCF_TITLEBAR | FCF_SYSMENU |
+                    FCF_MINMAX | FCF_TASKLIST;
     else
     {
         if ((lStyle & wxCAPTION) == wxCAPTION)
-            lMsflags = FCF_TASKLIST;
+            lMsflags |= FCF_TASKLIST;
         else
-            lMsflags = FCF_NOMOVEWITHOWNER;
+            lMsflags |= FCF_NOMOVEWITHOWNER;
 
         if ((lStyle & wxVSCROLL) == wxVSCROLL)
             lMsflags |= FCF_VERTSCROLL;
@@ -156,7 +158,7 @@ long wxTopLevelWindowOS2::OS2GetCreateWindowFlags(
         if ((lStyle & wxTHICK_FRAME) == 0)
             lMsflags |= FCF_BORDER;
         if (lStyle & wxFRAME_TOOL_WINDOW)
-            *plExflags = kFrameToolWindow;
+            *pdwExflags = kFrameToolWindow;
 
         if (lStyle & wxSTAY_ON_TOP)
             lMsflags |= FCF_SYSMODAL;
@@ -303,8 +305,8 @@ bool wxTopLevelWindowOS2::CreateFrame(
 , const wxSize&                     rSize
 )
 {
-    long                            lExflags;
-    long                            lFlags = OS2GetCreateWindowFlags(&lExflags);
+    WXDWORD                         lExflags;
+    WXDWORD                         lFlags = OS2GetCreateWindowFlags(&lExflags);
     long                            lStyle = GetWindowStyleFlag();
     int                             nX = rPos.x;
     int                             nY = rPos.y;
@@ -593,35 +595,13 @@ bool wxTopLevelWindowOS2::Show(
         m_bIconized = vSwp.fl & SWP_MINIMIZE;
         ::WinQueryWindowPos(m_hWnd, &m_vSwpClient);
         ::WinSendMsg(m_hFrame, WM_UPDATEFRAME, (MPARAM)~0, 0);
+        ::WinQueryWindowPos(m_hWnd, &vSwp);
         ::WinEnableWindow(m_hFrame, TRUE);
 
         //
         // Deal with children
         //
         MoveChildren(m_vSwpClient.cy - vSwp.cy);
-
-
-        //
-        // Need to handle the case of a single child that not a control
-        // as this is probably a panel with its own children
-        //
-        if (GetChildren().GetCount() > 0)
-        {
-            for (wxWindowList::Node* pNode = GetChildren().GetFirst();
-                 pNode;
-                 pNode = pNode->GetNext())
-            {
-                wxWindow*                   pChild = pNode->GetData();
-
-                if ( GetChildren().GetCount() == 1 &&
-                    !pChild->IsKindOf(CLASSINFO(wxControl))
-                   )
-                    pChild->MoveChildren(m_vSwpClient.cy - vSwp.cy);
-                pChild->Refresh();
-                pChild = NULL;
-            }
-        }
-
         vEvent.SetEventObject(this);
         GetEventHandler()->ProcessEvent(vEvent);
     }
@@ -842,17 +822,26 @@ bool wxTopLevelWindowOS2::ShowFullScreen(
 void wxTopLevelWindowOS2::SetIcon(
   const wxIcon&                     rIcon
 )
+{
+    SetIcons(wxIconBundle(rIcon));
+} // end of wxTopLevelWindowOS2::SetIcon
+
+void wxTopLevelWindowOS2::SetIcons(
+  const wxIconBundle&               rIcons
+)
 {
     //
     // This sets m_icon
     //
-    wxTopLevelWindowBase::SetIcon(rIcon);
+    wxTopLevelWindowBase::SetIcons(rIcons);
+
+    const wxIcon&                   vIcon = rIcons.GetIcon(wxSize(32, 32));
 
-    if (m_icon.Ok())
+    if (vIcon.Ok() && vIcon.GetWidth() == 32 && vIcon.GetHeight() == 32)
     {
         ::WinSendMsg( m_hFrame
                      ,WM_SETICON
-                     ,(MPARAM)((HPOINTER)m_icon.GetHICON())
+                     ,(MPARAM)((HPOINTER)vIcon.GetHICON())
                      ,NULL
                     );
         ::WinSendMsg( m_hFrame