Define _CRT_NONSTDC_NO_WARNINGS for zlib compilation with MSVC.
[wxWidgets.git] / src / osx / carbon / colordlg.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/osx/carbon/colordlg.cpp
3 // Purpose: wxColourDialog class. NOTE: you can use the generic class
4 // if you wish, instead of implementing this.
5 // Author: Stefan Csomor
6 // Modified by:
7 // Created: 1998-01-01
8 // Copyright: (c) Stefan Csomor
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #include "wx/wxprec.h"
13
14 #include "wx/colordlg.h"
15 #include "wx/fontdlg.h"
16 #include "wx/modalhook.h"
17
18
19 #if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
20
21 IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog)
22
23 #include "wx/osx/private.h"
24
25 /*
26 * wxColourDialog
27 */
28
29 wxColourDialog::wxColourDialog()
30 {
31 m_dialogParent = NULL;
32 }
33
34 wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data)
35 {
36 Create(parent, data);
37 }
38
39 bool wxColourDialog::Create(wxWindow *parent, wxColourData *data)
40 {
41 m_dialogParent = parent;
42
43 if (data)
44 m_colourData = *data;
45 return true;
46 }
47
48 int wxColourDialog::ShowModal()
49 {
50 WX_HOOK_MODAL_DIALOG();
51
52 RGBColor currentColor ;
53
54 m_colourData.m_dataColour.GetRGBColor( &currentColor );
55 NColorPickerInfo info;
56 OSStatus err ;
57 memset(&info, 0, sizeof(info)) ;
58 // TODO : use parent to determine better position and then kAtSpecifiedOrigin
59 info.placeWhere = kCenterOnMainScreen ;
60 info.flags = kColorPickerDialogIsMoveable | kColorPickerDialogIsModal ;
61 info.theColor.color.rgb.red = currentColor.red ;
62 info.theColor.color.rgb.green = currentColor.green ;
63 info.theColor.color.rgb.blue = currentColor.blue ;
64 wxDialog::OSXBeginModalDialog();
65 err = NPickColor(&info);
66 wxDialog::OSXEndModalDialog();
67 if ((err == noErr) && info.newColorChosen)
68 {
69 currentColor.red = info.theColor.color.rgb.red ;
70 currentColor.green = info.theColor.color.rgb.green ;
71 currentColor.blue = info.theColor.color.rgb.blue ;
72 m_colourData.m_dataColour = currentColor;
73
74 return wxID_OK;
75 }
76 return wxID_CANCEL;
77 }
78
79 #endif