1. wxSystemSettings class API face lift: better names for its methods
2. wxSystemSettings under wxUniv uses the wxTheme and wxColourScheme git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1200,7 +1200,6 @@ regconf.h MSWH
|
|||||||
region.h MSWH
|
region.h MSWH
|
||||||
registry.h MSWH
|
registry.h MSWH
|
||||||
scrolbar.h MSWH
|
scrolbar.h MSWH
|
||||||
settings.h MSWH
|
|
||||||
setup0.h MSWH
|
setup0.h MSWH
|
||||||
slider95.h MSWH
|
slider95.h MSWH
|
||||||
slidrmsw.h MSWH
|
slidrmsw.h MSWH
|
||||||
|
@@ -1,41 +0,0 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/msw/settings.h
|
|
||||||
// Purpose: wxSystemSettings class
|
|
||||||
// Author: Julian Smart
|
|
||||||
// Modified by:
|
|
||||||
// Created: 01/02/97
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Julian Smart
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_SETTINGS_H_
|
|
||||||
#define _WX_SETTINGS_H_
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma interface "settings.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "wx/colour.h"
|
|
||||||
#include "wx/font.h"
|
|
||||||
|
|
||||||
class WXDLLEXPORT wxSystemSettings : public wxObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxSystemSettings() { }
|
|
||||||
|
|
||||||
// Get a system colour
|
|
||||||
static wxColour GetSystemColour(int index);
|
|
||||||
|
|
||||||
// Get a system font
|
|
||||||
static wxFont GetSystemFont(int index);
|
|
||||||
|
|
||||||
// Get a system metric, e.g. scrollbar size
|
|
||||||
static int GetSystemMetric(int index);
|
|
||||||
|
|
||||||
// Return true if the port has certain feature
|
|
||||||
static bool GetCapability(int index);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
// _WX_SETTINGS_H_
|
|
@@ -1,12 +1,12 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: wx/settings.h
|
// Name: wx/settings.h
|
||||||
// Purpose: wxSystemSettingsBase class
|
// Purpose: wxSystemSettings class
|
||||||
// Author: Julian Smart
|
// Author: Julian Smart
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 01/02/97
|
// Created: 01/02/97
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
// Copyright: (c) Julian Smart and Markus Holzem
|
// Copyright: (c) Julian Smart and Markus Holzem
|
||||||
// Licence: wxWindows licence
|
// Licence: wxWindows licence
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifndef _WX_SETTINGS_H_BASE_
|
#ifndef _WX_SETTINGS_H_BASE_
|
||||||
@@ -73,6 +73,9 @@ enum wxSystemColour
|
|||||||
};
|
};
|
||||||
|
|
||||||
// possible values for wxSystemSettings::GetMetric() parameter
|
// possible values for wxSystemSettings::GetMetric() parameter
|
||||||
|
//
|
||||||
|
// NB: update the conversion table in msw/settings.cpp if you change the values
|
||||||
|
// of the elements of this enum
|
||||||
enum wxSystemMetric
|
enum wxSystemMetric
|
||||||
{
|
{
|
||||||
wxSYS_MOUSE_BUTTONS = 1,
|
wxSYS_MOUSE_BUTTONS = 1,
|
||||||
@@ -122,7 +125,7 @@ enum wxSystemFeature
|
|||||||
};
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxSystemSettingsBase: defines the API for wxSystemSettings class
|
// wxSystemSettingsNative: defines the API for wxSystemSettings class
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
// this is a namespace rather than a class: it has only non virtual static
|
// this is a namespace rather than a class: it has only non virtual static
|
||||||
@@ -132,8 +135,7 @@ enum wxSystemFeature
|
|||||||
// files (i.e. this is not a real base class as we can't override its virtual
|
// files (i.e. this is not a real base class as we can't override its virtual
|
||||||
// functions because it doesn't have any)
|
// functions because it doesn't have any)
|
||||||
|
|
||||||
#if 0
|
class WXDLLEXPORT wxSystemSettingsNative
|
||||||
class WXDLLEXPORT wxSystemSettingsBase
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// get a standard system colour
|
// get a standard system colour
|
||||||
@@ -157,17 +159,14 @@ public:
|
|||||||
{ return GetFont((wxSystemFont)index); }
|
{ return GetFont((wxSystemFont)index); }
|
||||||
static int GetSystemMetric(int index)
|
static int GetSystemMetric(int index)
|
||||||
{ return GetMetric((wxSystemMetric)index); }
|
{ return GetMetric((wxSystemMetric)index); }
|
||||||
static bool GetCapability(int index)
|
|
||||||
{ return HasFeature((wxSystemFeature)index); }
|
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// include the declaration of the real platform-dependent class
|
// include the declaration of the real platform-dependent class
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#if defined(__WXMSW__)
|
#if defined(__WXMSW__)
|
||||||
#include "wx/msw/settings.h"
|
#define wxHAS_SS_NATIVE
|
||||||
#elif defined(__WXMOTIF__)
|
#elif defined(__WXMOTIF__)
|
||||||
#include "wx/motif/settings.h"
|
#include "wx/motif/settings.h"
|
||||||
#elif defined(__WXGTK__)
|
#elif defined(__WXGTK__)
|
||||||
@@ -180,6 +179,22 @@ public:
|
|||||||
#include "wx/os2/settings.h"
|
#include "wx/os2/settings.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// TODO: this should go away once all ports are updated to use wxSSNative
|
||||||
|
#ifdef wxHAS_SS_NATIVE
|
||||||
|
|
||||||
|
class wxSystemSettings : public wxSystemSettingsNative
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
#ifdef __WXUNIVERSAL__
|
||||||
|
// in wxUniversal we want to use the theme standard colours instead of the
|
||||||
|
// system ones, otherwuse wxSystemSettings is just the same as
|
||||||
|
// wxSystemSettingsNative
|
||||||
|
static wxColour GetColour(wxSystemColour index);
|
||||||
|
#endif // __WXUNIVERSAL__
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // wxHAS_SS_NATIVE
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// _WX_SETTINGS_H_BASE_
|
// _WX_SETTINGS_H_BASE_
|
||||||
|
|
||||||
|
@@ -169,9 +169,8 @@ void wxCalendarCtrl::Init()
|
|||||||
m_attrs[n] = NULL;
|
m_attrs[n] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxSystemSettings ss;
|
m_colHighlightFg = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
|
||||||
m_colHighlightFg = ss.GetSystemColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
|
m_colHighlightBg = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT);
|
||||||
m_colHighlightBg = ss.GetSystemColour(wxSYS_COLOUR_HIGHLIGHT);
|
|
||||||
|
|
||||||
m_colHolidayFg = *wxRED;
|
m_colHolidayFg = *wxRED;
|
||||||
// don't set m_colHolidayBg - by default, same as our bg colour
|
// don't set m_colHolidayBg - by default, same as our bg colour
|
||||||
|
@@ -234,8 +234,7 @@ bool wxToolBarSimple::Create(wxWindow *parent,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
// Set it to grey (or other 3D face colour)
|
// Set it to grey (or other 3D face colour)
|
||||||
wxSystemSettings settings;
|
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
|
||||||
SetBackgroundColour(settings.GetSystemColour(wxSYS_COLOUR_3DFACE));
|
|
||||||
|
|
||||||
if ( GetWindowStyleFlag() & wxTB_VERTICAL )
|
if ( GetWindowStyleFlag() & wxTB_VERTICAL )
|
||||||
{
|
{
|
||||||
|
@@ -145,8 +145,7 @@ bool wxListBox::Create(wxWindow *parent,
|
|||||||
if (parent)
|
if (parent)
|
||||||
parent->AddChild(this);
|
parent->AddChild(this);
|
||||||
|
|
||||||
wxSystemSettings settings;
|
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
|
||||||
SetBackgroundColour(settings.GetSystemColour(wxSYS_COLOUR_WINDOW));
|
|
||||||
SetForegroundColour(parent->GetForegroundColour());
|
SetForegroundColour(parent->GetForegroundColour());
|
||||||
|
|
||||||
m_windowId = ( id == -1 ) ? (int)NewControlId() : id;
|
m_windowId = ( id == -1 ) ? (int)NewControlId() : id;
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: msw/settings.cpp
|
// Name: msw/settings.cpp
|
||||||
// Purpose: wxSystemSettings
|
// Purpose: wxSystemSettingsNative implementation for MSW
|
||||||
// Author: Julian Smart
|
// Author: Julian Smart
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 04/01/98
|
// Created: 04/01/98
|
||||||
@@ -17,28 +17,21 @@
|
|||||||
// headers
|
// headers
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma implementation "settings.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// For compilers that support precompilation, includes "wx.h".
|
// For compilers that support precompilation, includes "wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include <stdio.h>
|
|
||||||
#include "wx/defs.h"
|
|
||||||
#include "wx/pen.h"
|
|
||||||
#include "wx/brush.h"
|
|
||||||
#include "wx/gdicmn.h"
|
#include "wx/gdicmn.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "wx/settings.h"
|
#include "wx/settings.h"
|
||||||
#include "wx/window.h"
|
|
||||||
#include "wx/msw/private.h"
|
#include "wx/msw/private.h"
|
||||||
|
|
||||||
#include "wx/module.h"
|
#include "wx/module.h"
|
||||||
#include "wx/fontutil.h"
|
#include "wx/fontutil.h"
|
||||||
|
|
||||||
@@ -46,11 +39,10 @@
|
|||||||
// private classes
|
// private classes
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
// the module which is used to clean up wxSystemSettings data (this is a
|
// the module which is used to clean up wxSystemSettingsNative data (this is a
|
||||||
// singleton class so it can't be done in the dtor)
|
// singleton class so it can't be done in the dtor)
|
||||||
class wxSystemSettingsModule : public wxModule
|
class wxSystemSettingsModule : public wxModule
|
||||||
{
|
{
|
||||||
friend class wxSystemSettings;
|
|
||||||
public:
|
public:
|
||||||
virtual bool OnInit();
|
virtual bool OnInit();
|
||||||
virtual void OnExit();
|
virtual void OnExit();
|
||||||
@@ -63,12 +55,21 @@ private:
|
|||||||
// global data
|
// global data
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// the font returned by GetFont(wxSYS_DEFAULT_GUI_FONT): it is created when
|
||||||
|
// GetFont() is called for the first time and deleted by wxSystemSettingsModule
|
||||||
static wxFont *gs_fontDefault = NULL;
|
static wxFont *gs_fontDefault = NULL;
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// implementation
|
// implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
|
// TODO: see ::SystemParametersInfo for all sorts of Windows settings.
|
||||||
|
// Different args are required depending on the id. How does this differ
|
||||||
|
// from GetSystemMetric, and should it? Perhaps call it GetSystemParameter
|
||||||
|
// and pass an optional void* arg to get further info.
|
||||||
|
// Should also have SetSystemParameter.
|
||||||
|
// Also implement WM_WININICHANGE (NT) / WM_SETTINGCHANGE (Win95)
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxSystemSettingsModule
|
// wxSystemSettingsModule
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -87,30 +88,24 @@ void wxSystemSettingsModule::OnExit()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxSystemSettings
|
// wxSystemSettingsNative
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
// TODO: see ::SystemParametersInfo for all sorts of Windows settings.
|
// ----------------------------------------------------------------------------
|
||||||
// Different args are required depending on the id. How does this differ
|
// colours
|
||||||
// from GetSystemMetric, and should it? Perhaps call it GetSystemParameter
|
// ----------------------------------------------------------------------------
|
||||||
// and pass an optional void* arg to get further info.
|
|
||||||
// Should also have SetSystemParameter.
|
|
||||||
// Also implement WM_WININICHANGE (NT) / WM_SETTINGCHANGE (Win95)
|
|
||||||
|
|
||||||
wxColour wxSystemSettings::GetSystemColour(int index)
|
wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
|
||||||
{
|
{
|
||||||
switch (index)
|
wxColour col;
|
||||||
{
|
wxRGBToColour(col, ::GetSysColor(index));
|
||||||
case wxSYS_COLOUR_LISTBOX:
|
return col;
|
||||||
return *wxWHITE;
|
|
||||||
|
|
||||||
default:
|
|
||||||
COLORREF ref = ::GetSysColor(index);
|
|
||||||
wxColour col(GetRValue(ref), GetGValue(ref), GetBValue(ref));
|
|
||||||
return col;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// fonts
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxFont wxCreateFontFromStockObject(int index)
|
wxFont wxCreateFontFromStockObject(int index)
|
||||||
{
|
{
|
||||||
wxFont font;
|
wxFont font;
|
||||||
@@ -141,10 +136,11 @@ wxFont wxCreateFontFromStockObject(int index)
|
|||||||
{
|
{
|
||||||
wxFAIL_MSG( _T("stock font not found") );
|
wxFAIL_MSG( _T("stock font not found") );
|
||||||
}
|
}
|
||||||
|
|
||||||
return font;
|
return font;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxFont wxSystemSettings::GetSystemFont(int index)
|
wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
|
||||||
{
|
{
|
||||||
// wxWindow ctor calls GetSystemFont(wxSYS_DEFAULT_GUI_FONT) so we're
|
// wxWindow ctor calls GetSystemFont(wxSYS_DEFAULT_GUI_FONT) so we're
|
||||||
// called fairly often - this is why we cache this particular font
|
// called fairly often - this is why we cache this particular font
|
||||||
@@ -165,116 +161,118 @@ wxFont wxSystemSettings::GetSystemFont(int index)
|
|||||||
return font;
|
return font;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// system metrics/features
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// TODO: some of the "metrics" clearly should be features now that we have
|
||||||
|
// HasFeature()!
|
||||||
|
|
||||||
|
// the conversion table from wxSystemMetric enum to GetSystemMetrics() param
|
||||||
|
//
|
||||||
|
// if the constant is not defined, put -1 in the table to indicate that it is
|
||||||
|
// unknown
|
||||||
|
static const int gs_metricsMap[] =
|
||||||
|
{
|
||||||
|
#ifdef __WIN32__
|
||||||
|
SM_CMOUSEBUTTONS,
|
||||||
|
#else
|
||||||
|
-1,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SM_CXBORDER,
|
||||||
|
SM_CYBORDER,
|
||||||
|
SM_CXCURSOR,
|
||||||
|
SM_CYCURSOR,
|
||||||
|
SM_CXDOUBLECLK,
|
||||||
|
SM_CYDOUBLECLK,
|
||||||
|
#if defined(__WIN32__) && defined(SM_CXDRAG)
|
||||||
|
SM_CXDRAG,
|
||||||
|
SM_CYDRAG,
|
||||||
|
SM_CXEDGE,
|
||||||
|
SM_CYEDGE,
|
||||||
|
#else
|
||||||
|
-1, -1, -1, -1
|
||||||
|
#endif
|
||||||
|
SM_CXHSCROLL,
|
||||||
|
SM_CYHSCROLL,
|
||||||
|
SM_CXHTHUMB,
|
||||||
|
SM_CXICON,
|
||||||
|
SM_CYICON,
|
||||||
|
SM_CXICONSPACING,
|
||||||
|
SM_CYICONSPACING,
|
||||||
|
SM_CXMIN,
|
||||||
|
SM_CYMIN,
|
||||||
|
SM_CXSCREEN,
|
||||||
|
SM_CYSCREEN,
|
||||||
|
|
||||||
|
#if defined(__WIN32__) && defined(SM_CXSIZEFRAME)
|
||||||
|
SM_CXSIZEFRAME,
|
||||||
|
SM_CYSIZEFRAME,
|
||||||
|
SM_CXSMICON,
|
||||||
|
SM_CYSMICON,
|
||||||
|
#else
|
||||||
|
-1, -1, -1, -1
|
||||||
|
#endif
|
||||||
|
SM_CYHSCROLL,
|
||||||
|
SM_CXVSCROLL,
|
||||||
|
SM_CXVSCROLL,
|
||||||
|
SM_CYVSCROLL,
|
||||||
|
SM_CYVTHUMB,
|
||||||
|
SM_CYCAPTION,
|
||||||
|
SM_CYMENU,
|
||||||
|
#if defined(__WIN32__) && defined(SM_NETWORK)
|
||||||
|
SM_NETWORK,
|
||||||
|
#else
|
||||||
|
-1,
|
||||||
|
#endif
|
||||||
|
SM_PENWINDOWS,
|
||||||
|
#if defined(__WIN32__) && defined(SM_SHOWSOUNDS)
|
||||||
|
SM_SHOWSOUNDS,
|
||||||
|
#else
|
||||||
|
-1,
|
||||||
|
#endif
|
||||||
|
SM_SWAPBUTTON,
|
||||||
|
};
|
||||||
|
|
||||||
// Get a system metric, e.g. scrollbar size
|
// Get a system metric, e.g. scrollbar size
|
||||||
int wxSystemSettings::GetSystemMetric(int index)
|
int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
|
||||||
{
|
{
|
||||||
#ifdef __WXMICROWIN__
|
#ifdef __WXMICROWIN__
|
||||||
// TODO: probably use wxUniv themes functionality
|
// TODO: probably use wxUniv themes functionality
|
||||||
return 0;
|
return 0;
|
||||||
#else
|
#else // !__WXMICROWIN__
|
||||||
switch ( index)
|
wxCHECK_MSG( index < WXSIZEOF(gs_metricsMap), 0, _T("invalid metric") );
|
||||||
|
|
||||||
|
int indexMSW = gs_metricsMap[index];
|
||||||
|
if ( indexMSW == -1 )
|
||||||
{
|
{
|
||||||
#ifdef __WIN32__
|
// not supported under current system
|
||||||
case wxSYS_MOUSE_BUTTONS:
|
return 0;
|
||||||
return ::GetSystemMetrics(SM_CMOUSEBUTTONS);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
case wxSYS_BORDER_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXBORDER);
|
|
||||||
case wxSYS_BORDER_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYBORDER);
|
|
||||||
case wxSYS_CURSOR_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXCURSOR);
|
|
||||||
case wxSYS_CURSOR_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYCURSOR);
|
|
||||||
case wxSYS_DCLICK_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXDOUBLECLK);
|
|
||||||
case wxSYS_DCLICK_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYDOUBLECLK);
|
|
||||||
#if defined(__WIN32__) && defined(SM_CXDRAG)
|
|
||||||
case wxSYS_DRAG_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXDRAG);
|
|
||||||
case wxSYS_DRAG_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYDRAG);
|
|
||||||
case wxSYS_EDGE_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXEDGE);
|
|
||||||
case wxSYS_EDGE_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYEDGE);
|
|
||||||
#endif
|
|
||||||
case wxSYS_HSCROLL_ARROW_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXHSCROLL);
|
|
||||||
case wxSYS_HSCROLL_ARROW_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYHSCROLL);
|
|
||||||
case wxSYS_HTHUMB_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXHTHUMB);
|
|
||||||
case wxSYS_ICON_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXICON);
|
|
||||||
case wxSYS_ICON_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYICON);
|
|
||||||
case wxSYS_ICONSPACING_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXICONSPACING);
|
|
||||||
case wxSYS_ICONSPACING_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYICONSPACING);
|
|
||||||
case wxSYS_WINDOWMIN_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXMIN);
|
|
||||||
case wxSYS_WINDOWMIN_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYMIN);
|
|
||||||
case wxSYS_SCREEN_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXSCREEN);
|
|
||||||
case wxSYS_SCREEN_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYSCREEN);
|
|
||||||
|
|
||||||
#if defined(__WIN32__) && defined(SM_CXSIZEFRAME)
|
|
||||||
case wxSYS_FRAMESIZE_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXSIZEFRAME);
|
|
||||||
case wxSYS_FRAMESIZE_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYSIZEFRAME);
|
|
||||||
case wxSYS_SMALLICON_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXSMICON);
|
|
||||||
case wxSYS_SMALLICON_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYSMICON);
|
|
||||||
#endif
|
|
||||||
case wxSYS_HSCROLL_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYHSCROLL);
|
|
||||||
case wxSYS_VSCROLL_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXVSCROLL);
|
|
||||||
case wxSYS_VSCROLL_ARROW_X:
|
|
||||||
return ::GetSystemMetrics(SM_CXVSCROLL);
|
|
||||||
case wxSYS_VSCROLL_ARROW_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYVSCROLL);
|
|
||||||
case wxSYS_VTHUMB_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYVTHUMB);
|
|
||||||
case wxSYS_CAPTION_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYCAPTION);
|
|
||||||
case wxSYS_MENU_Y:
|
|
||||||
return ::GetSystemMetrics(SM_CYMENU);
|
|
||||||
#if defined(__WIN32__) && defined(SM_NETWORK)
|
|
||||||
case wxSYS_NETWORK_PRESENT:
|
|
||||||
return ::GetSystemMetrics(SM_NETWORK) & 0x0001;
|
|
||||||
#endif
|
|
||||||
case wxSYS_PENWINDOWS_PRESENT:
|
|
||||||
return ::GetSystemMetrics(SM_PENWINDOWS);
|
|
||||||
#if defined(__WIN32__) && defined(SM_SHOWSOUNDS)
|
|
||||||
case wxSYS_SHOW_SOUNDS:
|
|
||||||
return ::GetSystemMetrics(SM_SHOWSOUNDS);
|
|
||||||
#endif
|
|
||||||
case wxSYS_SWAP_BUTTONS:
|
|
||||||
return ::GetSystemMetrics(SM_SWAPBUTTON);
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
// __WXMICROWIN__
|
int rc = ::GetSystemMetrics(indexMSW);
|
||||||
|
if ( index == wxSYS_NETWORK_PRESENT )
|
||||||
|
{
|
||||||
|
// only the last bit is significant according to the MSDN
|
||||||
|
rc &= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rc;
|
||||||
|
#endif // __WXMICROWIN__/!__WXMICROWIN__
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxSystemSettings::GetCapability(int index)
|
bool wxSystemSettingsNative::HasFeature(wxSystemFeature index)
|
||||||
{
|
{
|
||||||
switch (index)
|
switch ( index )
|
||||||
{
|
{
|
||||||
case wxSYS_CAN_ICONIZE_FRAME:
|
case wxSYS_CAN_ICONIZE_FRAME:
|
||||||
case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
|
case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
wxFAIL_MSG( _T("unknown system feature") );
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -31,12 +31,73 @@
|
|||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#endif // WX_PRECOMP
|
#endif // WX_PRECOMP
|
||||||
|
|
||||||
|
#include "wx/settings.h"
|
||||||
|
|
||||||
#include "wx/univ/colschem.h"
|
#include "wx/univ/colschem.h"
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// implementation
|
// implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxColourScheme
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxColourScheme::~wxColourScheme()
|
wxColourScheme::~wxColourScheme()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef wxHAS_SS_NATIVE
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxSystemSettings
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
wxColour wxSystemSettings::GetColour(wxSystemColour index)
|
||||||
|
{
|
||||||
|
// the elements of this enum must be kept in sync with wxSystemColour
|
||||||
|
static const wxColourScheme::StdColour s_mapSysToThemeCol[] =
|
||||||
|
{
|
||||||
|
wxColourScheme::SCROLLBAR /* wxSYS_COLOUR_SCROLLBAR */,
|
||||||
|
wxColourScheme::WINDOW /* wxSYS_COLOUR_BACKGROUND */,
|
||||||
|
wxColourScheme::TITLEBAR_ACTIVE_TEXT /* wxSYS_COLOUR_ACTIVECAPTION */,
|
||||||
|
wxColourScheme::TITLEBAR_TEXT /* wxSYS_COLOUR_INACTIVECAPTION */,
|
||||||
|
wxColourScheme::MAX /* wxSYS_COLOUR_MENU */,
|
||||||
|
wxColourScheme::MAX /* wxSYS_COLOUR_WINDOW */,
|
||||||
|
wxColourScheme::MAX /* wxSYS_COLOUR_WINDOWFRAME */,
|
||||||
|
wxColourScheme::CONTROL_TEXT /* wxSYS_COLOUR_MENUTEXT */,
|
||||||
|
wxColourScheme::CONTROL_TEXT /* wxSYS_COLOUR_WINDOWTEXT */,
|
||||||
|
wxColourScheme::CONTROL_TEXT /* wxSYS_COLOUR_CAPTIONTEXT */,
|
||||||
|
wxColourScheme::MAX /* wxSYS_COLOUR_ACTIVEBORDER */,
|
||||||
|
wxColourScheme::MAX /* wxSYS_COLOUR_INACTIVEBORDER */,
|
||||||
|
wxColourScheme::MAX /* wxSYS_COLOUR_APPWORKSPACE */,
|
||||||
|
wxColourScheme::HIGHLIGHT /* wxSYS_COLOUR_HIGHLIGHT */,
|
||||||
|
wxColourScheme::HIGHLIGHT_TEXT /* wxSYS_COLOUR_HIGHLIGHTTEXT */,
|
||||||
|
wxColourScheme::SCROLLBAR /* wxSYS_COLOUR_BTNFACE */,
|
||||||
|
wxColourScheme::SHADOW_DARK /* wxSYS_COLOUR_BTNSHADOW */,
|
||||||
|
wxColourScheme::CONTROL_TEXT_DISABLED /* wxSYS_COLOUR_GRAYTEXT */,
|
||||||
|
wxColourScheme::CONTROL_TEXT /* wxSYS_COLOUR_BTNTEXT */,
|
||||||
|
wxColourScheme::MAX /* wxSYS_COLOUR_INACTIVECAPTIONTEXT */,
|
||||||
|
wxColourScheme::SHADOW_HIGHLIGHT /* wxSYS_COLOUR_BTNHIGHLIGHT */,
|
||||||
|
wxColourScheme::SHADOW_IN /* wxSYS_COLOUR_3DDKSHADOW */,
|
||||||
|
wxColourScheme::SHADOW_OUT /* wxSYS_COLOUR_3DLIGHT */,
|
||||||
|
wxColourScheme::MAX /* wxSYS_COLOUR_INFOTEXT */,
|
||||||
|
wxColourScheme::MAX /* wxSYS_COLOUR_INFOBK */,
|
||||||
|
wxColourScheme::CONTROL /* wxSYS_COLOUR_LISTBOX */,
|
||||||
|
};
|
||||||
|
|
||||||
|
wxCHECK_MSG( index < WXSIZEOF(s_mapSysToThemeCol), wxNullColour,
|
||||||
|
_T("invalid wxSystemColour") );
|
||||||
|
|
||||||
|
wxColourScheme::StdColour col = s_mapSysToThemeCol[index];
|
||||||
|
if ( col == wxColourScheme::MAX )
|
||||||
|
{
|
||||||
|
// we don't have theme-equivalent for this colour
|
||||||
|
return wxSystemSettingsNative::GetColour(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
return wxTheme::Get()->GetColourScheme()->Get(col);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // wxHAS_SS_NATIVE
|
||||||
|
|
||||||
|
@@ -79,7 +79,7 @@ bool wxTopLevelWindow::Create(wxWindow *parent,
|
|||||||
if ( ms_drawDecorations == -1 )
|
if ( ms_drawDecorations == -1 )
|
||||||
{
|
{
|
||||||
ms_drawDecorations =
|
ms_drawDecorations =
|
||||||
!wxSystemSettings::GetCapability(wxSYS_CAN_DRAW_FRAME_DECORATIONS)
|
!wxSystemSettings::HasFeature(wxSYS_CAN_DRAW_FRAME_DECORATIONS)
|
||||||
|| wxGetEnv(wxT("WXDECOR"), NULL);
|
|| 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
|
||||||
@@ -87,7 +87,7 @@ bool wxTopLevelWindow::Create(wxWindow *parent,
|
|||||||
|
|
||||||
if ( ms_canIconize == -1 )
|
if ( ms_canIconize == -1 )
|
||||||
{
|
{
|
||||||
ms_canIconize = wxSystemSettings::GetCapability(wxSYS_CAN_ICONIZE_FRAME);
|
ms_canIconize = wxSystemSettings::HasFeature(wxSYS_CAN_ICONIZE_FRAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ms_drawDecorations )
|
if ( ms_drawDecorations )
|
||||||
|
Reference in New Issue
Block a user