]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/topluniv.cpp
Fixed compile errors, warnings and other DSMs, and improved comments.
[wxWidgets.git] / src / univ / topluniv.cpp
index aa67c1fafe18e273097f2f4257576c2b00d6601c..556873599f2059cc1d89d60f9af98bd862ebba2d 100644 (file)
@@ -76,8 +76,10 @@ bool wxTopLevelWindow::Create(wxWindow *parent,
          exstyleOrig = 0;
 
     if ( ms_drawDecorations == -1 )
          exstyleOrig = 0;
 
     if ( ms_drawDecorations == -1 )
-        ms_drawDecorations = !wxSystemSettings::HasFrameDecorations();
+        ms_drawDecorations = !wxSystemSettings::HasFrameDecorations() ||
+                             wxGetEnv(wxT("WXDECOR"), NULL);
         // FIXME -- wxUniv should provide a way to force non-native decorations!
         // FIXME -- wxUniv should provide a way to force non-native decorations!
+        //          $WXDECOR is just a hack in absence of better wxUniv solution
 
     if ( ms_drawDecorations )
     {
 
     if ( ms_drawDecorations )
     {
@@ -97,15 +99,6 @@ bool wxTopLevelWindow::Create(wxWindow *parent,
                                          size, style, name) )
         return FALSE;
 
                                          size, style, name) )
         return FALSE;
 
-    // FIXME: to be removed as soon as wxTLW/wxFrame/wxDialog creation code in
-    //        wxMSW is rationalized
-#ifdef __WXMSW__
-    extern const wxChar *wxFrameClassName;
-    if ( !MSWCreate(id, NULL, wxFrameClassName, this, title,
-                    pos.x, pos.y, size.x, size.y, style) )
-        return FALSE;
-#endif // __WXMSW__
-
     if ( ms_drawDecorations )
     {
         m_windowStyle = styleOrig;
     if ( ms_drawDecorations )
     {
         m_windowStyle = styleOrig;
@@ -148,7 +141,12 @@ long wxTopLevelWindow::GetDecorationsStyle() const
         if ( m_windowStyle & wxMINIMIZE_BOX )
             style |= wxTOPLEVEL_BUTTON_ICONIZE;
         if ( m_windowStyle & wxMAXIMIZE_BOX )
         if ( m_windowStyle & wxMINIMIZE_BOX )
             style |= wxTOPLEVEL_BUTTON_ICONIZE;
         if ( m_windowStyle & wxMAXIMIZE_BOX )
-            style |= wxTOPLEVEL_BUTTON_MAXIMIZE;
+        {
+            if ( IsMaximized() )
+                style |= wxTOPLEVEL_BUTTON_RESTORE;
+            else
+                style |= wxTOPLEVEL_BUTTON_MAXIMIZE;
+        }
 #if wxUSE_HELP
         if ( m_exStyle & (wxFRAME_EX_CONTEXTHELP | wxDIALOG_EX_CONTEXTHELP))
             style |= wxTOPLEVEL_BUTTON_HELP;
 #if wxUSE_HELP
         if ( m_exStyle & (wxFRAME_EX_CONTEXTHELP | wxDIALOG_EX_CONTEXTHELP))
             style |= wxTOPLEVEL_BUTTON_HELP;
@@ -268,25 +266,27 @@ long wxTopLevelWindow::HitTest(const wxPoint& pt) const
 void wxTopLevelWindow::SetIcon(const wxIcon& icon)
 {
     wxTopLevelWindowNative::SetIcon(icon);
 void wxTopLevelWindow::SetIcon(const wxIcon& icon)
 {
     wxTopLevelWindowNative::SetIcon(icon);
-    if ( !m_renderer ) return;
-
-    wxSize size = m_renderer->GetFrameIconSize();
 
 
-    if ( !icon.Ok() || size.x == -1  )
-        m_titlebarIcon = icon;
-    else
+    if ( ms_drawDecorations && m_renderer )
     {
     {
-        wxBitmap bmp1;
-        bmp1.CopyFromIcon(icon);
-        if ( !bmp1.Ok() )
-            m_titlebarIcon = wxNullIcon;
-        else if ( bmp1.GetWidth() == size.x && bmp1.GetHeight() == size.y )
+        wxSize size = m_renderer->GetFrameIconSize();
+
+        if ( !icon.Ok() || size.x == -1  )
             m_titlebarIcon = icon;
         else
         {
             m_titlebarIcon = icon;
         else
         {
-            wxImage img = bmp1.ConvertToImage();
-            img.Rescale(size.x, size.y);
-            m_titlebarIcon.CopyFromBitmap(wxBitmap(img));
+            wxBitmap bmp1;
+            bmp1.CopyFromIcon(icon);
+            if ( !bmp1.Ok() )
+                m_titlebarIcon = wxNullIcon;
+            else if ( bmp1.GetWidth() == size.x && bmp1.GetHeight() == size.y )
+                m_titlebarIcon = icon;
+            else
+            {
+                wxImage img = bmp1.ConvertToImage();
+                img.Rescale(size.x, size.y);
+                m_titlebarIcon.CopyFromBitmap(wxBitmap(img));
+            }
         }
     }
 }
         }
     }
 }