Renamed src/cocoa/settings.cpp to settings.mm.
[wxWidgets.git] / src / cocoa / settings.mm
1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        settings.cpp
3 // Purpose:     wxSettings
4 // Author:      AUTHOR
5 // Modified by:
6 // Created:     ??/??/98
7 // RCS-ID:      $Id$
8 // Copyright:   (c) AUTHOR
9 // Licence:     wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifdef __GNUG__
13 #pragma implementation "settings.h"
14 #endif
15
16 #include "wx/settings.h"
17 #include "wx/gdicmn.h"
18 #include "wx/utils.h"
19
20 // ----------------------------------------------------------------------------
21 // wxSystemSettingsNative
22 // ----------------------------------------------------------------------------
23
24 // ----------------------------------------------------------------------------
25 // colours
26 // ----------------------------------------------------------------------------
27
28 wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
29 {
30     return wxColour();
31 #if 0
32     int major,minor;
33     wxGetOsVersion( &major, &minor );
34     
35     switch( index )
36     {
37         case wxSYS_COLOUR_SCROLLBAR :
38         case wxSYS_COLOUR_BACKGROUND:
39         case wxSYS_COLOUR_ACTIVECAPTION:
40         case wxSYS_COLOUR_INACTIVECAPTION:
41         case wxSYS_COLOUR_MENU:
42         case wxSYS_COLOUR_WINDOW:
43         case wxSYS_COLOUR_WINDOWFRAME:
44         case wxSYS_COLOUR_ACTIVEBORDER:
45         case wxSYS_COLOUR_INACTIVEBORDER:
46         case wxSYS_COLOUR_BTNFACE:
47         case wxSYS_COLOUR_MENUBAR:
48             return wxColor( 0xDD , 0xDD , 0xDD ) ;
49             break ;
50
51         case wxSYS_COLOUR_LISTBOX :
52         {
53             if (major >= 10)
54                 return *wxWHITE ;
55             else
56                 return wxColor( 0xEE , 0xEE , 0xEE ) ;
57             break ;
58         }
59         case wxSYS_COLOUR_BTNSHADOW:
60             return wxColor( 0x44 , 0x44 , 0x44 ) ;
61             break ;
62
63         case wxSYS_COLOUR_BTNTEXT:
64         case wxSYS_COLOUR_MENUTEXT:
65         case wxSYS_COLOUR_WINDOWTEXT:
66         case wxSYS_COLOUR_CAPTIONTEXT:
67         case wxSYS_COLOUR_INFOTEXT:
68         case wxSYS_COLOUR_INACTIVECAPTIONTEXT:
69             return *wxBLACK;
70             break ;
71         case wxSYS_COLOUR_HIGHLIGHT:
72             {
73                 RGBColor hilite ;
74                 LMGetHiliteRGB(&hilite) ;
75                 return wxColor( hilite.red >> 8 , hilite.green >> 8  , hilite.blue >> 8  ) ;
76             }
77             break ;
78         case wxSYS_COLOUR_BTNHIGHLIGHT:
79         case wxSYS_COLOUR_GRAYTEXT:
80             return wxColor( 0xCC , 0xCC , 0xCC ) ;
81             break ;
82     
83         case wxSYS_COLOUR_3DDKSHADOW:
84             return wxColor( 0x44 , 0x44 , 0x44 ) ;
85             break ;
86         case wxSYS_COLOUR_3DLIGHT:
87             return wxColor( 0xCC , 0xCC , 0xCC ) ;
88             break ;
89         case wxSYS_COLOUR_HIGHLIGHTTEXT :
90             {
91                 RGBColor hilite ;
92                 LMGetHiliteRGB(&hilite) ;
93                 if ( ( hilite.red + hilite.green + hilite.blue ) == 0 )
94                         return *wxWHITE ;
95                 else
96                         return *wxBLACK ;
97             }
98             break ;
99         case wxSYS_COLOUR_INFOBK :
100         case wxSYS_COLOUR_APPWORKSPACE: 
101             return *wxWHITE ;
102             break ;
103
104         case wxSYS_COLOUR_HOTLIGHT:
105         case wxSYS_COLOUR_GRADIENTACTIVECAPTION:
106         case wxSYS_COLOUR_GRADIENTINACTIVECAPTION:
107         case wxSYS_COLOUR_MENUHILIGHT:
108             // TODO
109             return *wxBLACK;
110          
111         case wxSYS_COLOUR_MAX:
112             wxFAIL_MSG( _T("unknown system colour index") );
113             break ;
114     }
115     return *wxWHITE;
116 #endif
117 }
118
119 // ----------------------------------------------------------------------------
120 // fonts
121 // ----------------------------------------------------------------------------
122
123 wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
124 {
125 // return a nonworking font object, crash from wxInitializeStockObjects
126     return wxFont();
127     switch (index)
128     {
129         case wxSYS_ANSI_VAR_FONT :
130         case wxSYS_SYSTEM_FONT :
131         case wxSYS_DEVICE_DEFAULT_FONT :
132         case wxSYS_DEFAULT_GUI_FONT :
133             {
134                 return *wxSMALL_FONT ;
135                     } ;
136             break ;
137         case wxSYS_OEM_FIXED_FONT :
138         case wxSYS_ANSI_FIXED_FONT :
139         case wxSYS_SYSTEM_FIXED_FONT :
140         default :
141             {
142                 return *wxNORMAL_FONT ;
143                     } ;
144             break ;
145                 
146     }
147     return *wxNORMAL_FONT;
148 }
149
150 // ----------------------------------------------------------------------------
151 // system metrics/features
152 // ----------------------------------------------------------------------------
153
154 // Get a system metric, e.g. scrollbar size
155 int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
156 {
157     switch ( index)
158     {
159         case wxSYS_MOUSE_BUTTONS:
160                     return 2; // we emulate a two button mouse (ctrl + click = right button )
161                     
162         // TODO case wxSYS_BORDER_X:
163         // TODO case wxSYS_BORDER_Y:
164         // TODO case wxSYS_CURSOR_X:
165         // TODO case wxSYS_CURSOR_Y:
166         // TODO case wxSYS_DCLICK_X:
167         // TODO case wxSYS_DCLICK_Y:
168         // TODO case wxSYS_DRAG_X:
169         // TODO case wxSYS_DRAG_Y:
170         // TODO case wxSYS_EDGE_X:
171         // TODO case wxSYS_EDGE_Y:
172
173         case wxSYS_HSCROLL_ARROW_X:
174             return 16;
175         case wxSYS_HSCROLL_ARROW_Y:
176             return 16;
177         case wxSYS_HTHUMB_X:
178             return 16;
179             
180         // TODO case wxSYS_ICON_X:
181         // TODO case wxSYS_ICON_Y:
182         // TODO case wxSYS_ICONSPACING_X:
183         // TODO case wxSYS_ICONSPACING_Y:
184         // TODO case wxSYS_WINDOWMIN_X:
185         // TODO case wxSYS_WINDOWMIN_Y:
186         // TODO case wxSYS_SCREEN_X:
187         // TODO case wxSYS_SCREEN_Y:
188         // TODO case wxSYS_FRAMESIZE_X:
189         // TODO case wxSYS_FRAMESIZE_Y:
190         // TODO case wxSYS_SMALLICON_X:
191         // TODO case wxSYS_SMALLICON_Y:
192             
193         case wxSYS_HSCROLL_Y:
194             return 16;
195         case wxSYS_VSCROLL_X:
196             return 16;
197         case wxSYS_VSCROLL_ARROW_X:
198             return 16;
199         case wxSYS_VSCROLL_ARROW_Y:
200             return 16;
201         case wxSYS_VTHUMB_Y:
202             return 16;
203             
204         // TODO case wxSYS_CAPTION_Y:
205         // TODO case wxSYS_MENU_Y:
206         // TODO case wxSYS_NETWORK_PRESENT:
207             
208         case wxSYS_PENWINDOWS_PRESENT:
209             return 0;
210             
211         // TODO case wxSYS_SHOW_SOUNDS:
212
213         case wxSYS_SWAP_BUTTONS:
214             return 0;
215             
216         default:
217             return -1;  // unsupported metric
218     }
219     return 0;
220 }
221
222 bool wxSystemSettingsNative::HasFeature(wxSystemFeature index)
223 {
224     switch (index)
225     {
226         case wxSYS_CAN_ICONIZE_FRAME: 
227         case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
228             return TRUE;
229             
230         default:
231             return FALSE;
232     }
233 }