X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1d451c5bd117cd7e7dcf3f1516049141093e46f0..899544330f37440c140b72a014c518a911b5b7a4:/src/mac/carbon/settings.cpp?ds=sidebyside diff --git a/src/mac/carbon/settings.cpp b/src/mac/carbon/settings.cpp index 3ba06cb040..c5593decfb 100644 --- a/src/mac/carbon/settings.cpp +++ b/src/mac/carbon/settings.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: settings.cpp +// Name: src/mac/carbon/settings.cpp // Purpose: wxSettings // Author: Stefan Csomor // Modified by: @@ -9,13 +9,14 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "settings.h" -#endif +#include "wx/wxprec.h" #include "wx/settings.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" + +#ifndef WX_PRECOMP + #include "wx/utils.h" + #include "wx/gdicmn.h" +#endif #include "wx/mac/uma.h" @@ -29,38 +30,43 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index) { - int major,minor; + int major, minor; + wxColour resultColor; + RGBColor macRGB; + ThemeBrush colorBrushID; + wxGetOsVersion( &major, &minor ); - - switch( index ) + + switch ( index ) { + case wxSYS_COLOUR_WINDOW: + resultColor = *wxWHITE ; + break ; case wxSYS_COLOUR_SCROLLBAR : case wxSYS_COLOUR_BACKGROUND: case wxSYS_COLOUR_ACTIVECAPTION: case wxSYS_COLOUR_INACTIVECAPTION: case wxSYS_COLOUR_MENU: - case wxSYS_COLOUR_WINDOW: case wxSYS_COLOUR_WINDOWFRAME: case wxSYS_COLOUR_ACTIVEBORDER: case wxSYS_COLOUR_INACTIVEBORDER: case wxSYS_COLOUR_BTNFACE: case wxSYS_COLOUR_MENUBAR: - return wxColor( 0xDD , 0xDD , 0xDD ) ; + resultColor = wxColor( 0xDD, 0xDD, 0xDD ); break ; case wxSYS_COLOUR_LISTBOX : - { if (major >= 10) - return *wxWHITE ; + resultColor = *wxWHITE ; else - return wxColor( 0xEE , 0xEE , 0xEE ) ; + resultColor = wxColor( 0xEE, 0xEE, 0xEE ); break ; - } + case wxSYS_COLOUR_BTNSHADOW: if (major >= 10) - return wxColor( 0xBE , 0xBE , 0xBE ) ; + resultColor = wxColor( 0xBE, 0xBE, 0xBE ); else - return wxColor( 0x44 , 0x44 , 0x44 ) ; + resultColor = wxColor( 0x44, 0x44, 0x44 ); break ; case wxSYS_COLOUR_BTNTEXT: @@ -69,53 +75,71 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index) case wxSYS_COLOUR_CAPTIONTEXT: case wxSYS_COLOUR_INFOTEXT: case wxSYS_COLOUR_INACTIVECAPTIONTEXT: - return *wxBLACK; + resultColor = *wxBLACK; break ; + case wxSYS_COLOUR_HIGHLIGHT: - { - RGBColor hilite ; - LMGetHiliteRGB(&hilite) ; - return wxColor( hilite.red >> 8 , hilite.green >> 8 , hilite.blue >> 8 ) ; - } + +#if 0 && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3) + // NB: enable this case as desired + colorBrushID = kThemeBrushAlternatePrimaryHighlightColor; +#else + colorBrushID = kThemeBrushPrimaryHighlightColor; +#endif + + GetThemeBrushAsColor( colorBrushID, 32, true, &macRGB ); + resultColor = wxColor( macRGB ); break ; + case wxSYS_COLOUR_BTNHIGHLIGHT: case wxSYS_COLOUR_GRAYTEXT: - return wxColor( 0xCC , 0xCC , 0xCC ) ; + resultColor = wxColor( 0xCC, 0xCC, 0xCC ); break ; - + case wxSYS_COLOUR_3DDKSHADOW: - return wxColor( 0x44 , 0x44 , 0x44 ) ; + resultColor = wxColor( 0x44, 0x44, 0x44 ); break ; + case wxSYS_COLOUR_3DLIGHT: - return wxColor( 0xCC , 0xCC , 0xCC ) ; + resultColor = wxColor( 0xCC, 0xCC, 0xCC ); break ; + case wxSYS_COLOUR_HIGHLIGHTTEXT : - { - RGBColor hilite ; - LMGetHiliteRGB(&hilite) ; - if ( ( hilite.red + hilite.green + hilite.blue ) == 0 ) - return *wxWHITE ; - else - return *wxBLACK ; - } +#if 0 && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3) + // NB: enable this case as desired + resultColor = *wxWHITE ; +#else + GetThemeBrushAsColor( kThemeBrushPrimaryHighlightColor, 32, true, &macRGB ); + if ((macRGB.red + macRGB.green + macRGB.blue) == 0) + resultColor = *wxWHITE ; + else + resultColor = *wxBLACK ; +#endif break ; + case wxSYS_COLOUR_INFOBK : - case wxSYS_COLOUR_APPWORKSPACE: - return *wxWHITE ; + resultColor = *wxWHITE ; + break ; + case wxSYS_COLOUR_APPWORKSPACE: + resultColor = wxColor( 0x80, 0x80, 0x80 ); ; 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") ); + // TODO: + resultColor = *wxBLACK; + break ; + + // case wxSYS_COLOUR_MAX: + default: + resultColor = *wxWHITE; + // wxCHECK_MSG( index >= wxSYS_COLOUR_MAX, false, _T("unknown system colour index") ); break ; } - return *wxWHITE; + + return resultColor; } // ---------------------------------------------------------------------------- @@ -130,20 +154,13 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index) case wxSYS_SYSTEM_FONT : case wxSYS_DEVICE_DEFAULT_FONT : case wxSYS_DEFAULT_GUI_FONT : - { - return *wxSMALL_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; } @@ -152,16 +169,16 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index) // ---------------------------------------------------------------------------- // Get a system metric, e.g. scrollbar size -int wxSystemSettingsNative::GetMetric(wxSystemMetric index) +int wxSystemSettingsNative::GetMetric(wxSystemMetric index, wxWindow* WXUNUSED(win)) { int value; - switch ( index) + switch ( index ) { case wxSYS_MOUSE_BUTTONS: - // we emulate a two button mouse (ctrl + click = right button ) + // 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: @@ -172,14 +189,12 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index) // TODO case wxSYS_DRAG_Y: // TODO case wxSYS_EDGE_X: // TODO case wxSYS_EDGE_Y: - + case wxSYS_HSCROLL_ARROW_X: - return 16; case wxSYS_HSCROLL_ARROW_Y: - return 16; case wxSYS_HTHUMB_X: return 16; - + // TODO case wxSYS_ICON_X: // TODO case wxSYS_ICON_Y: // TODO case wxSYS_ICONSPACING_X: @@ -188,55 +203,56 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index) // TODO case wxSYS_WINDOWMIN_Y: case wxSYS_SCREEN_X: - wxDisplaySize(&value, NULL); + wxDisplaySize( &value, NULL ); return value; + case wxSYS_SCREEN_Y: - wxDisplaySize(NULL, &value); + 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; case wxSYS_VSCROLL_X: - return 16; case wxSYS_VSCROLL_ARROW_X: - return 16; case wxSYS_VSCROLL_ARROW_Y: - return 16; case wxSYS_VTHUMB_Y: return 16; - - // TODO case wxSYS_CAPTION_Y: - // TODO case wxSYS_MENU_Y: - // TODO case wxSYS_NETWORK_PRESENT: - + case wxSYS_PENWINDOWS_PRESENT: return 0; - - // TODO case wxSYS_SHOW_SOUNDS: - + case wxSYS_SWAP_BUTTONS: return 0; + // TODO: case wxSYS_CAPTION_Y: + // TODO: case wxSYS_MENU_Y: + // TODO: case wxSYS_NETWORK_PRESENT: + // TODO: case wxSYS_SHOW_SOUNDS: + + case wxSYS_DCLICK_MSEC: + return (int)(GetDblTime() * 1000. / 60.); + default: - return -1; // unsupported metric + // unsupported metric + break; } - return 0; + + return -1; } 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; - + return true; + default: - return FALSE; + return false; } }