1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/settings.h 3// Purpose: wxSystemSettings class 4// Author: Julian Smart 5// Modified by: 6// Created: 01/02/97 7// RCS-ID: $Id: settings.h 67017 2011-02-25 09:37:28Z JS $ 8// Copyright: (c) Julian Smart 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_SETTINGS_H_BASE_ 13#define _WX_SETTINGS_H_BASE_ 14 15#include "wx/colour.h" 16#include "wx/font.h" 17 18class WXDLLIMPEXP_FWD_CORE wxWindow; 19 20// possible values for wxSystemSettings::GetFont() parameter 21// 22// NB: wxMSW assumes that they have the same values as the parameters of 23// Windows GetStockObject() API, don't change the values! 24enum wxSystemFont 25{ 26 wxSYS_OEM_FIXED_FONT = 10, 27 wxSYS_ANSI_FIXED_FONT, 28 wxSYS_ANSI_VAR_FONT, 29 wxSYS_SYSTEM_FONT, 30 wxSYS_DEVICE_DEFAULT_FONT, 31 wxSYS_DEFAULT_PALETTE, 32 wxSYS_SYSTEM_FIXED_FONT, 33 wxSYS_DEFAULT_GUI_FONT, 34 35 // this was just a temporary aberration, do not use it any more 36 wxSYS_ICONTITLE_FONT = wxSYS_DEFAULT_GUI_FONT 37}; 38 39// possible values for wxSystemSettings::GetColour() parameter 40// 41// NB: wxMSW assumes that they have the same values as the parameters of 42// Windows GetSysColor() API, don't change the values! 43enum wxSystemColour 44{ 45 wxSYS_COLOUR_SCROLLBAR, 46 wxSYS_COLOUR_BACKGROUND, 47 wxSYS_COLOUR_DESKTOP = wxSYS_COLOUR_BACKGROUND, 48 wxSYS_COLOUR_ACTIVECAPTION, 49 wxSYS_COLOUR_INACTIVECAPTION, 50 wxSYS_COLOUR_MENU, 51 wxSYS_COLOUR_WINDOW, 52 wxSYS_COLOUR_WINDOWFRAME, 53 wxSYS_COLOUR_MENUTEXT, 54 wxSYS_COLOUR_WINDOWTEXT, 55 wxSYS_COLOUR_CAPTIONTEXT, 56 wxSYS_COLOUR_ACTIVEBORDER, 57 wxSYS_COLOUR_INACTIVEBORDER, 58 wxSYS_COLOUR_APPWORKSPACE, 59 wxSYS_COLOUR_HIGHLIGHT, 60 wxSYS_COLOUR_HIGHLIGHTTEXT, 61 wxSYS_COLOUR_BTNFACE, 62 wxSYS_COLOUR_3DFACE = wxSYS_COLOUR_BTNFACE, 63 wxSYS_COLOUR_BTNSHADOW, 64 wxSYS_COLOUR_3DSHADOW = wxSYS_COLOUR_BTNSHADOW, 65 wxSYS_COLOUR_GRAYTEXT, 66 wxSYS_COLOUR_BTNTEXT, 67 wxSYS_COLOUR_INACTIVECAPTIONTEXT, 68 wxSYS_COLOUR_BTNHIGHLIGHT, 69 wxSYS_COLOUR_BTNHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, 70 wxSYS_COLOUR_3DHIGHLIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, 71 wxSYS_COLOUR_3DHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, 72 wxSYS_COLOUR_3DDKSHADOW, 73 wxSYS_COLOUR_3DLIGHT, 74 wxSYS_COLOUR_INFOTEXT, 75 wxSYS_COLOUR_INFOBK, 76 wxSYS_COLOUR_LISTBOX, 77 wxSYS_COLOUR_HOTLIGHT, 78 wxSYS_COLOUR_GRADIENTACTIVECAPTION, 79 wxSYS_COLOUR_GRADIENTINACTIVECAPTION, 80 wxSYS_COLOUR_MENUHILIGHT, 81 wxSYS_COLOUR_MENUBAR, 82 wxSYS_COLOUR_LISTBOXTEXT, 83 wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT, 84 85 wxSYS_COLOUR_MAX 86}; 87 88// possible values for wxSystemSettings::GetMetric() index parameter 89// 90// NB: update the conversion table in msw/settings.cpp if you change the values 91// of the elements of this enum 92enum wxSystemMetric 93{ 94 wxSYS_MOUSE_BUTTONS = 1, 95 wxSYS_BORDER_X, 96 wxSYS_BORDER_Y, 97 wxSYS_CURSOR_X, 98 wxSYS_CURSOR_Y, 99 wxSYS_DCLICK_X, 100 wxSYS_DCLICK_Y, 101 wxSYS_DRAG_X, 102 wxSYS_DRAG_Y, 103 wxSYS_EDGE_X, 104 wxSYS_EDGE_Y, 105 wxSYS_HSCROLL_ARROW_X, 106 wxSYS_HSCROLL_ARROW_Y, 107 wxSYS_HTHUMB_X, 108 wxSYS_ICON_X, 109 wxSYS_ICON_Y, 110 wxSYS_ICONSPACING_X, 111 wxSYS_ICONSPACING_Y, 112 wxSYS_WINDOWMIN_X, 113 wxSYS_WINDOWMIN_Y, 114 wxSYS_SCREEN_X, 115 wxSYS_SCREEN_Y, 116 wxSYS_FRAMESIZE_X, 117 wxSYS_FRAMESIZE_Y, 118 wxSYS_SMALLICON_X, 119 wxSYS_SMALLICON_Y, 120 wxSYS_HSCROLL_Y, 121 wxSYS_VSCROLL_X, 122 wxSYS_VSCROLL_ARROW_X, 123 wxSYS_VSCROLL_ARROW_Y, 124 wxSYS_VTHUMB_Y, 125 wxSYS_CAPTION_Y, 126 wxSYS_MENU_Y, 127 wxSYS_NETWORK_PRESENT, 128 wxSYS_PENWINDOWS_PRESENT, 129 wxSYS_SHOW_SOUNDS, 130 wxSYS_SWAP_BUTTONS 131}; 132 133// possible values for wxSystemSettings::HasFeature() parameter 134enum wxSystemFeature 135{ 136 wxSYS_CAN_DRAW_FRAME_DECORATIONS = 1, 137 wxSYS_CAN_ICONIZE_FRAME, 138 wxSYS_TABLET_PRESENT 139}; 140 141// values for different screen designs 142enum wxSystemScreenType 143{ 144 wxSYS_SCREEN_NONE = 0, // not yet defined 145 146 wxSYS_SCREEN_TINY, // < 147 wxSYS_SCREEN_PDA, // >= 320x240 148 wxSYS_SCREEN_SMALL, // >= 640x480 149 wxSYS_SCREEN_DESKTOP // >= 800x600 150}; 151 152// ---------------------------------------------------------------------------- 153// wxSystemSettingsNative: defines the API for wxSystemSettings class 154// ---------------------------------------------------------------------------- 155 156// this is a namespace rather than a class: it has only non virtual static 157// functions 158// 159// also note that the methods are implemented in the platform-specific source 160// files (i.e. this is not a real base class as we can't override its virtual 161// functions because it doesn't have any) 162 163class WXDLLEXPORT wxSystemSettingsNative 164{ 165public: 166 // get a standard system colour 167 static wxColour GetColour(wxSystemColour index); 168 169 // get a standard system font 170 static wxFont GetFont(wxSystemFont index); 171 172 // get a system-dependent metric 173 static int GetMetric(wxSystemMetric index, wxWindow * win = NULL); 174 175 // return true if the port has certain feature 176 static bool HasFeature(wxSystemFeature index); 177}; 178 179// ---------------------------------------------------------------------------- 180// include the declaration of the real platform-dependent class 181// ---------------------------------------------------------------------------- 182 183class WXDLLEXPORT wxSystemSettings : public wxSystemSettingsNative 184{ 185public: 186#ifdef __WXUNIVERSAL__ 187 // in wxUniversal we want to use the theme standard colours instead of the 188 // system ones, otherwise wxSystemSettings is just the same as 189 // wxSystemSettingsNative 190 static wxColour GetColour(wxSystemColour index); 191#endif // __WXUNIVERSAL__ 192 193 // Get system screen design (desktop, pda, ..) used for 194 // laying out various dialogs. 195 static wxSystemScreenType GetScreenType(); 196 197 // Override default. 198 static void SetScreenType( wxSystemScreenType screen ); 199 200 // Value 201 static wxSystemScreenType ms_screen; 202 203#if WXWIN_COMPATIBILITY_2_4 204 // the backwards compatible versions of wxSystemSettingsNative functions, 205 // don't use these methods in the new code! 206 wxDEPRECATED(static wxColour GetSystemColour(int index)); 207 wxDEPRECATED(static wxFont GetSystemFont(int index)); 208 wxDEPRECATED(static int GetSystemMetric(int index)); 209#endif 210}; 211 212#endif 213 // _WX_SETTINGS_H_BASE_ 214 215