changed wxSystemSettings::HasFrameDecorations to more general GetCapability(index)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2001-10-30 23:30:04 +00:00
parent 6296744f45
commit 253293c103
17 changed files with 125 additions and 17 deletions

View File

@ -36,8 +36,8 @@ public:
// Get a system metric, e.g. scrollbar size // Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index); static int GetSystemMetric(int index);
// Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it) // Return true if the port has certain feature
static bool HasFrameDecorations() { return TRUE; } static bool GetCapability(int index);
}; };
#endif #endif

View File

@ -36,8 +36,8 @@ public:
// Get a system metric, e.g. scrollbar size // Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index); static int GetSystemMetric(int index);
// Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it) // Return true if the port has certain feature
static bool HasFrameDecorations() { return TRUE; } static bool GetCapability(int index);
}; };
#endif #endif

View File

@ -128,8 +128,9 @@ public:
// Get a system metric, e.g. scrollbar size // Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index); static int GetSystemMetric(int index);
// Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it) // Return true if the port has certain feature
static bool HasFrameDecorations() { return TRUE; } static bool GetCapability(int index);
}; };
#endif #endif

View File

@ -37,8 +37,8 @@ public:
// Get a system metric, e.g. scrollbar size // Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index); static int GetSystemMetric(int index);
// Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it) // Return true if the port has certain feature
static bool HasFrameDecorations() { return FALSE; } static bool GetCapability(int index);
}; };
#endif #endif

View File

@ -37,8 +37,9 @@ public:
// Get a system metric, e.g. scrollbar size // Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index); static int GetSystemMetric(int index);
// Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it) // Return true if the port has certain feature
static bool HasFrameDecorations() { return TRUE; } static bool GetCapability(int index);
}; };
#endif #endif

View File

@ -33,9 +33,8 @@ public:
// Get a system metric, e.g. scrollbar size // Get a system metric, e.g. scrollbar size
static int GetSystemMetric(int index); static int GetSystemMetric(int index);
// Return true if the port can draw frame titlebar (i.e. doesn't need wxUniv for it) // Return true if the port has certain feature
static bool HasFrameDecorations() { return TRUE; } static bool GetCapability(int index);
}; };
#endif #endif

View File

@ -24,7 +24,7 @@ public:
static wxColour GetSystemColour(int index); static wxColour GetSystemColour(int index);
static wxFont GetSystemFont(int index); static wxFont GetSystemFont(int index);
static int GetSystemMetric(int index); static int GetSystemMetric(int index);
static bool HasFrameDecorations() { return TRUE; } static bool GetCapability(int index);
}; // end of CLASS wxSystemSettings }; // end of CLASS wxSystemSettings
#endif #endif

View File

@ -106,6 +106,10 @@
#define wxSYS_SHOW_SOUNDS 36 #define wxSYS_SHOW_SOUNDS 36
#define wxSYS_SWAP_BUTTONS 37 #define wxSYS_SWAP_BUTTONS 37
// Platform capabilities
#define wxSYS_CAN_DRAW_FRAME_DECORATIONS 1
#define wxSYS_CAN_ICONIZE_FRAME 2
#if defined(__WXMSW__) #if defined(__WXMSW__)
#include "wx/msw/settings.h" #include "wx/msw/settings.h"
#elif defined(__WXMOTIF__) #elif defined(__WXMOTIF__)

View File

@ -369,3 +369,16 @@ int wxSystemSettings::GetSystemMetric( int index )
return 0; return 0;
} }
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;
}
}

View File

@ -369,3 +369,16 @@ int wxSystemSettings::GetSystemMetric( int index )
return 0; return 0;
} }
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;
}
}

View File

@ -220,3 +220,14 @@ int wxSystemSettings::GetSystemMetric(int index)
return 0; return 0;
} }
bool wxSystemSettings::GetCapability(int index)
{
switch (index)
{
case wxSYS_CAN_ICONIZE_FRAME:
case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
return TRUE; break;
default:
return FALSE;
}
}

View File

@ -220,3 +220,14 @@ int wxSystemSettings::GetSystemMetric(int index)
return 0; return 0;
} }
bool wxSystemSettings::GetCapability(int index)
{
switch (index)
{
case wxSYS_CAN_ICONIZE_FRAME:
case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
return TRUE; break;
default:
return FALSE;
}
}

View File

@ -32,3 +32,16 @@ int wxSystemSettings::GetSystemMetric(int WXUNUSED(index))
// FIXME_MGL // FIXME_MGL
return 1; return 1;
} }
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;
}
}

View File

@ -231,3 +231,14 @@ int wxSystemSettings::GetSystemMetric(int index)
} }
} }
bool wxSystemSettings::GetCapability(int index)
{
switch (index)
{
case wxSYS_CAN_ICONIZE_FRAME:
case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
return TRUE; break;
default:
return FALSE;
}
}

View File

@ -267,3 +267,14 @@ int wxSystemSettings::GetSystemMetric(int index)
// __WXMICROWIN__ // __WXMICROWIN__
} }
bool wxSystemSettings::GetCapability(int index)
{
switch (index)
{
case wxSYS_CAN_ICONIZE_FRAME:
case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
return TRUE; break;
default:
return FALSE;
}
}

View File

@ -357,3 +357,14 @@ int wxSystemSettings::GetSystemMetric(int index)
return 0; return 0;
} }
bool wxSystemSettings::GetCapability(int index)
{
switch (index)
{
case wxSYS_CAN_ICONIZE_FRAME:
case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
return TRUE; break;
default:
return FALSE;
}
}

View File

@ -55,6 +55,7 @@ WX_FORWARD_TO_INPUT_CONSUMER(wxTopLevelWindow)
// ============================================================================ // ============================================================================
int wxTopLevelWindow::ms_drawDecorations = -1; int wxTopLevelWindow::ms_drawDecorations = -1;
int wxTopLevelWindow::ms_canIconize = -1;
void wxTopLevelWindow::Init() void wxTopLevelWindow::Init()
{ {
@ -76,10 +77,18 @@ bool wxTopLevelWindow::Create(wxWindow *parent,
exstyleOrig = 0; exstyleOrig = 0;
if ( ms_drawDecorations == -1 ) 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! // FIXME -- wxUniv should provide a way to force non-native decorations!
// $WXDECOR is just a hack in absence of better wxUniv solution // $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 )
{ {
@ -138,7 +147,7 @@ long wxTopLevelWindow::GetDecorationsStyle() const
if ( m_windowStyle & wxCAPTION ) if ( m_windowStyle & wxCAPTION )
{ {
style |= wxTOPLEVEL_TITLEBAR | wxTOPLEVEL_BUTTON_CLOSE; style |= wxTOPLEVEL_TITLEBAR | wxTOPLEVEL_BUTTON_CLOSE;
if ( m_windowStyle & wxMINIMIZE_BOX ) if ( (m_windowStyle & wxMINIMIZE_BOX) && ms_canIconize )
style |= wxTOPLEVEL_BUTTON_ICONIZE; style |= wxTOPLEVEL_BUTTON_ICONIZE;
if ( m_windowStyle & wxMAXIMIZE_BOX ) if ( m_windowStyle & wxMAXIMIZE_BOX )
{ {