1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxColourDialog class. NOTE: you can use the generic class
4 // if you wish, instead of implementing this.
5 // Author: Stefan Csomor
9 // Copyright: (c) Stefan Csomor
10 // Licence: wxWindows licence
11 /////////////////////////////////////////////////////////////////////////////
13 #include "wx/wxprec.h"
15 #include "wx/mac/colordlg.h"
16 #include "wx/fontdlg.h"
19 #if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
21 IMPLEMENT_DYNAMIC_CLASS(wxColourDialog
, wxDialog
)
23 #include "wx/mac/private.h"
25 #include <ColorPicker.h>
32 wxColourDialog::wxColourDialog()
34 m_dialogParent
= NULL
;
37 wxColourDialog::wxColourDialog(wxWindow
*parent
, wxColourData
*data
)
42 bool wxColourDialog::Create(wxWindow
*parent
, wxColourData
*data
)
44 m_dialogParent
= parent
;
51 int wxColourDialog::ShowModal()
53 RGBColor currentColor
= *((RGBColor
*)m_colourData
.m_dataColour
.GetPixel()) ;
55 #if TARGET_API_MAC_OSX
56 NColorPickerInfo info
;
58 memset(&info
, 0, sizeof(info
)) ;
59 // TODO : use parent to determine better position and then kAtSpecifiedOrigin
60 info
.placeWhere
= kCenterOnMainScreen
;
61 info
.flags
= kColorPickerDialogIsMoveable
| kColorPickerDialogIsModal
;
62 info
.theColor
.color
.rgb
.red
= currentColor
.red
;
63 info
.theColor
.color
.rgb
.green
= currentColor
.green
;
64 info
.theColor
.color
.rgb
.blue
= currentColor
.blue
;
65 err
= NPickColor(&info
);
66 if ((err
== noErr
) && info
.newColorChosen
)
68 currentColor
.red
= info
.theColor
.color
.rgb
.red
;
69 currentColor
.green
= info
.theColor
.color
.rgb
.green
;
70 currentColor
.blue
= info
.theColor
.color
.rgb
.blue
;
71 m_colourData
.m_dataColour
.FromRGBColor((WXCOLORREF
*) ¤tColor
);
79 where
.h
= where
.v
= -1;
81 if (GetColor( where
, "\pSelect a new palette color.", ¤tColor
, &newColor
))
83 m_colourData
.m_dataColour
.Set( (WXCOLORREF
*) &newColor
) ;