#endif
#include "wx/defs.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/dcclient.h"
+ #include "wx/settings.h"
+#endif
+
#include "wx/toplevel.h"
#include "wx/univ/renderer.h"
-#include "wx/dcclient.h"
#include "wx/bitmap.h"
#include "wx/image.h"
#include "wx/cshelp.h"
long styleOrig = 0,
exstyleOrig = 0;
+ // FIXME -- wxUniv should provide a way to force non-native decorations!
if ( ms_drawDecorations == -1 )
- ms_drawDecorations = TRUE;
- // FIXME_MGL -- this is temporary; we assume for now that native TLW
- // can't do decorations, which is not true
+ ms_drawDecorations = !wxSystemSettings::HasFrameDecorations();
if ( ms_drawDecorations )
{
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 ( 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;
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
{
- 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));
+ }
}
}
}