X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/00500f403cff8f1596157337b23fe2b40d51452b..81e2cbc6851553da7a733bbdeb3ab59f4081902c:/src/mac/carbon/settings.cpp diff --git a/src/mac/carbon/settings.cpp b/src/mac/carbon/settings.cpp index b272f5f5dd..d1ceaeae1a 100644 --- a/src/mac/carbon/settings.cpp +++ b/src/mac/carbon/settings.cpp @@ -1,27 +1,39 @@ ///////////////////////////////////////////////////////////////////////////// // Name: settings.cpp // Purpose: wxSettings -// Author: AUTHOR +// Author: Stefan Csomor // Modified by: -// Created: ??/??/98 +// Created: 1998-01-01 // RCS-ID: $Id$ -// Copyright: (c) AUTHOR +// Copyright: (c) Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "settings.h" #endif +#include "wx/wxprec.h" + #include "wx/settings.h" #include "wx/gdicmn.h" #include "wx/utils.h" -wxColour wxSystemSettings::GetSystemColour(int index) +#include "wx/mac/uma.h" + +// ---------------------------------------------------------------------------- +// wxSystemSettingsNative +// ---------------------------------------------------------------------------- + +// ---------------------------------------------------------------------------- +// colours +// ---------------------------------------------------------------------------- + +wxColour wxSystemSettingsNative::GetColour(wxSystemColour index) { int major,minor; wxGetOsVersion( &major, &minor ); - + switch( index ) { case wxSYS_COLOUR_SCROLLBAR : @@ -34,6 +46,7 @@ wxColour wxSystemSettings::GetSystemColour(int index) case wxSYS_COLOUR_ACTIVEBORDER: case wxSYS_COLOUR_INACTIVEBORDER: case wxSYS_COLOUR_BTNFACE: + case wxSYS_COLOUR_MENUBAR: return wxColor( 0xDD , 0xDD , 0xDD ) ; break ; @@ -46,7 +59,10 @@ wxColour wxSystemSettings::GetSystemColour(int index) break ; } case wxSYS_COLOUR_BTNSHADOW: - return wxColor( 0x44 , 0x44 , 0x44 ) ; + if (major >= 10) + return wxColor( 0xBE , 0xBE , 0xBE ) ; + else + return wxColor( 0x44 , 0x44 , 0x44 ) ; break ; case wxSYS_COLOUR_BTNTEXT: @@ -60,7 +76,7 @@ wxColour wxSystemSettings::GetSystemColour(int index) case wxSYS_COLOUR_HIGHLIGHT: { RGBColor hilite ; - LMGetHiliteRGB(&hilite) ; + GetThemeBrushAsColor( kThemeBrushPrimaryHighlightColor, 32, true, &hilite ); return wxColor( hilite.red >> 8 , hilite.green >> 8 , hilite.blue >> 8 ) ; } break ; @@ -68,7 +84,7 @@ wxColour wxSystemSettings::GetSystemColour(int index) case wxSYS_COLOUR_GRAYTEXT: return wxColor( 0xCC , 0xCC , 0xCC ) ; break ; - + case wxSYS_COLOUR_3DDKSHADOW: return wxColor( 0x44 , 0x44 , 0x44 ) ; break ; @@ -78,7 +94,7 @@ wxColour wxSystemSettings::GetSystemColour(int index) case wxSYS_COLOUR_HIGHLIGHTTEXT : { RGBColor hilite ; - LMGetHiliteRGB(&hilite) ; + GetThemeBrushAsColor( kThemeBrushPrimaryHighlightColor, 32, true, &hilite ); if ( ( hilite.red + hilite.green + hilite.blue ) == 0 ) return *wxWHITE ; else @@ -86,14 +102,29 @@ wxColour wxSystemSettings::GetSystemColour(int index) } break ; case wxSYS_COLOUR_INFOBK : - case wxSYS_COLOUR_APPWORKSPACE: + case wxSYS_COLOUR_APPWORKSPACE: return *wxWHITE ; break ; + + case wxSYS_COLOUR_HOTLIGHT: + case wxSYS_COLOUR_GRADIENTACTIVECAPTION: + case wxSYS_COLOUR_GRADIENTINACTIVECAPTION: + case wxSYS_COLOUR_MENUHILIGHT: + // TODO + return *wxBLACK; + + case wxSYS_COLOUR_MAX: + wxFAIL_MSG( _T("unknown system colour index") ); + break ; } return *wxWHITE; } -wxFont wxSystemSettings::GetSystemFont(int index) +// ---------------------------------------------------------------------------- +// fonts +// ---------------------------------------------------------------------------- + +wxFont wxSystemSettingsNative::GetFont(wxSystemFont index) { switch (index) { @@ -103,140 +134,105 @@ wxFont wxSystemSettings::GetSystemFont(int index) case wxSYS_DEFAULT_GUI_FONT : { return *wxSMALL_FONT ; - } ; + } ; break ; - case wxSYS_OEM_FIXED_FONT : - case wxSYS_ANSI_FIXED_FONT : - case wxSYS_SYSTEM_FIXED_FONT : + default : - { - return *wxNORMAL_FONT ; - } ; break ; - } return *wxNORMAL_FONT; } +// ---------------------------------------------------------------------------- +// system metrics/features +// ---------------------------------------------------------------------------- + // Get a system metric, e.g. scrollbar size -int wxSystemSettings::GetSystemMetric(int index) +int wxSystemSettingsNative::GetMetric(wxSystemMetric index, wxWindow* WXUNUSED(win)) { + int value; + switch ( index) { case wxSYS_MOUSE_BUTTONS: - return 2; // we emulate a two button mouse (ctrl + click = right button ) - case wxSYS_BORDER_X: - // TODO - return 0; - case wxSYS_BORDER_Y: - // TODO - return 0; - case wxSYS_CURSOR_X: - // TODO - return 0; - case wxSYS_CURSOR_Y: - // TODO - return 0; - case wxSYS_DCLICK_X: - // TODO - return 0; - case wxSYS_DCLICK_Y: - // TODO - return 0; - case wxSYS_DRAG_X: - // TODO - return 0; - case wxSYS_DRAG_Y: - // TODO - return 0; - case wxSYS_EDGE_X: - // TODO - return 0; - case wxSYS_EDGE_Y: - // TODO - return 0; + // we emulate a two button mouse (ctrl + click = right button ) + return 2; + + // TODO case wxSYS_BORDER_X: + // TODO case wxSYS_BORDER_Y: + // TODO case wxSYS_CURSOR_X: + // TODO case wxSYS_CURSOR_Y: + // TODO case wxSYS_DCLICK_X: + // TODO case wxSYS_DCLICK_Y: + // TODO case wxSYS_DRAG_X: + // TODO case wxSYS_DRAG_Y: + // TODO case wxSYS_EDGE_X: + // TODO case wxSYS_EDGE_Y: + case wxSYS_HSCROLL_ARROW_X: - return 16; + return 16; case wxSYS_HSCROLL_ARROW_Y: - return 16; + return 16; case wxSYS_HTHUMB_X: - return 16; - case wxSYS_ICON_X: - // TODO - return 0; - case wxSYS_ICON_Y: - // TODO - return 0; - case wxSYS_ICONSPACING_X: - // TODO - return 0; - case wxSYS_ICONSPACING_Y: - // TODO - return 0; - case wxSYS_WINDOWMIN_X: - // TODO - return 0; - case wxSYS_WINDOWMIN_Y: - // TODO - return 0; + return 16; + + // TODO case wxSYS_ICON_X: + // TODO case wxSYS_ICON_Y: + // TODO case wxSYS_ICONSPACING_X: + // TODO case wxSYS_ICONSPACING_Y: + // TODO case wxSYS_WINDOWMIN_X: + // TODO case wxSYS_WINDOWMIN_Y: + case wxSYS_SCREEN_X: - // TODO - return 0; + wxDisplaySize(&value, NULL); + return value; case wxSYS_SCREEN_Y: - // TODO - return 0; - case wxSYS_FRAMESIZE_X: - // TODO - return 0; - case wxSYS_FRAMESIZE_Y: - // TODO - return 0; - case wxSYS_SMALLICON_X: - // TODO - return 0; - case wxSYS_SMALLICON_Y: - // TODO - return 0; + wxDisplaySize(NULL, &value); + return value; + + // TODO case wxSYS_FRAMESIZE_X: + // TODO case wxSYS_FRAMESIZE_Y: + // TODO case wxSYS_SMALLICON_X: + // TODO case wxSYS_SMALLICON_Y: + case wxSYS_HSCROLL_Y: - return 16; + return 16; case wxSYS_VSCROLL_X: - return 16; + return 16; case wxSYS_VSCROLL_ARROW_X: - return 16; + return 16; case wxSYS_VSCROLL_ARROW_Y: - return 16; + return 16; case wxSYS_VTHUMB_Y: - return 16; - case wxSYS_CAPTION_Y: - // TODO - return 0; - case wxSYS_MENU_Y: - // TODO - return 0; - case wxSYS_NETWORK_PRESENT: - // TODO - return 0; + return 16; + + // TODO case wxSYS_CAPTION_Y: + // TODO case wxSYS_MENU_Y: + // TODO case wxSYS_NETWORK_PRESENT: + case wxSYS_PENWINDOWS_PRESENT: - return 0; - case wxSYS_SHOW_SOUNDS: - // TODO return 0; + + // TODO case wxSYS_SHOW_SOUNDS: + case wxSYS_SWAP_BUTTONS: - return 0; - default: - return 0; + return 0; + + default: + break; // unsupported metric } - return 0; + return -1; } -bool wxSystemSettings::GetCapability(int index) +bool wxSystemSettingsNative::HasFeature(wxSystemFeature index) { switch (index) { - case wxSYS_CAN_ICONIZE_FRAME: + case wxSYS_CAN_ICONIZE_FRAME: case wxSYS_CAN_DRAW_FRAME_DECORATIONS: - return TRUE; break; + return true; + default: - return FALSE; + return false; } }