git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12222
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
17 files changed:
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
- // Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it)
- static bool HasFrameDecorations() { return TRUE; }
+ // Return true if the port has certain feature
+ static bool GetCapability(int index);
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
- // Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it)
- static bool HasFrameDecorations() { return TRUE; }
+ // Return true if the port has certain feature
+ static bool GetCapability(int index);
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
- // Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it)
- static bool HasFrameDecorations() { return TRUE; }
+ // Return true if the port has certain feature
+ static bool GetCapability(int index);
+
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
- // Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it)
- static bool HasFrameDecorations() { return FALSE; }
+ // Return true if the port has certain feature
+ static bool GetCapability(int index);
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
- // Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it)
- static bool HasFrameDecorations() { return TRUE; }
+ // Return true if the port has certain feature
+ static bool GetCapability(int index);
+
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
// Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index);
- // Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it)
- static bool HasFrameDecorations() { return TRUE; }
-
+ // Return true if the port has certain feature
+ static bool GetCapability(int index);
static wxColour GetSystemColour(int index);
static wxFont GetSystemFont(int index);
static int GetSystemMetric(int index);
static wxColour GetSystemColour(int index);
static wxFont GetSystemFont(int index);
static int GetSystemMetric(int index);
- static bool HasFrameDecorations() { return TRUE; }
+ static bool GetCapability(int index);
}; // end of CLASS wxSystemSettings
#endif
}; // end of CLASS wxSystemSettings
#endif
#define wxSYS_SHOW_SOUNDS 36
#define wxSYS_SWAP_BUTTONS 37
#define wxSYS_SHOW_SOUNDS 36
#define wxSYS_SWAP_BUTTONS 37
+// Platform capabilities
+#define wxSYS_CAN_DRAW_FRAME_DECORATIONS 1
+#define wxSYS_CAN_ICONIZE_FRAME 2
+
#if defined(__WXMSW__)
#include "wx/msw/settings.h"
#elif defined(__WXMOTIF__)
#if defined(__WXMSW__)
#include "wx/msw/settings.h"
#elif defined(__WXMOTIF__)
+
+bool wxSystemSettings::GetCapability(int index)
+{
+ switch (index)
+ {
+ case wxSYS_CAN_ICONIZE_FRAME:
+ return FALSE; break;
+ case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
+ return TRUE; break;
+ default:
+ return FALSE;
+ }
+}
+
+bool wxSystemSettings::GetCapability(int index)
+{
+ switch (index)
+ {
+ case wxSYS_CAN_ICONIZE_FRAME:
+ return FALSE; break;
+ case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
+ return TRUE; break;
+ default:
+ return FALSE;
+ }
+}
+bool wxSystemSettings::GetCapability(int index)
+{
+ switch (index)
+ {
+ case wxSYS_CAN_ICONIZE_FRAME:
+ case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
+ return TRUE; break;
+ default:
+ return FALSE;
+ }
+}
+bool wxSystemSettings::GetCapability(int index)
+{
+ switch (index)
+ {
+ case wxSYS_CAN_ICONIZE_FRAME:
+ case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
+ return TRUE; break;
+ default:
+ return FALSE;
+ }
+}
+
+bool wxSystemSettings::GetCapability(int index)
+{
+ switch (index)
+ {
+ case wxSYS_CAN_ICONIZE_FRAME:
+ return FALSE; break;
+ case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
+ return FALSE; break;
+ default:
+ return FALSE;
+ }
+}
+bool wxSystemSettings::GetCapability(int index)
+{
+ switch (index)
+ {
+ case wxSYS_CAN_ICONIZE_FRAME:
+ case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
+ return TRUE; break;
+ default:
+ return FALSE;
+ }
+}
+bool wxSystemSettings::GetCapability(int index)
+{
+ switch (index)
+ {
+ case wxSYS_CAN_ICONIZE_FRAME:
+ case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
+ return TRUE; break;
+ default:
+ return FALSE;
+ }
+}
+bool wxSystemSettings::GetCapability(int index)
+{
+ switch (index)
+ {
+ case wxSYS_CAN_ICONIZE_FRAME:
+ case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
+ return TRUE; break;
+ default:
+ return FALSE;
+ }
+}
// ============================================================================
int wxTopLevelWindow::ms_drawDecorations = -1;
// ============================================================================
int wxTopLevelWindow::ms_drawDecorations = -1;
+int wxTopLevelWindow::ms_canIconize = -1;
void wxTopLevelWindow::Init()
{
void wxTopLevelWindow::Init()
{
exstyleOrig = 0;
if ( ms_drawDecorations == -1 )
exstyleOrig = 0;
if ( ms_drawDecorations == -1 )
- ms_drawDecorations = !wxSystemSettings::HasFrameDecorations() ||
- wxGetEnv(wxT("WXDECOR"), NULL);
+ {
+ ms_drawDecorations =
+ !wxSystemSettings::GetCapability(wxSYS_CAN_DRAW_FRAME_DECORATIONS)
+ || wxGetEnv(wxT("WXDECOR"), NULL);
// FIXME -- wxUniv should provide a way to force non-native decorations!
// $WXDECOR is just a hack in absence of better wxUniv solution
// FIXME -- wxUniv should provide a way to force non-native decorations!
// $WXDECOR is just a hack in absence of better wxUniv solution
+ }
+
+ if ( ms_canIconize == -1 )
+ {
+ ms_canIconize = wxSystemSettings::GetCapability(wxSYS_CAN_ICONIZE_FRAME);
+ }
if ( ms_drawDecorations )
{
if ( ms_drawDecorations )
{
if ( m_windowStyle & wxCAPTION )
{
style |= wxTOPLEVEL_TITLEBAR | wxTOPLEVEL_BUTTON_CLOSE;
if ( m_windowStyle & wxCAPTION )
{
style |= wxTOPLEVEL_TITLEBAR | wxTOPLEVEL_BUTTON_CLOSE;
- if ( m_windowStyle & wxMINIMIZE_BOX )
+ if ( (m_windowStyle & wxMINIMIZE_BOX) && ms_canIconize )
style |= wxTOPLEVEL_BUTTON_ICONIZE;
if ( m_windowStyle & wxMAXIMIZE_BOX )
{
style |= wxTOPLEVEL_BUTTON_ICONIZE;
if ( m_windowStyle & wxMAXIMIZE_BOX )
{