// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "colordlg.h"
-#endif
+#include "wx/wxprec.h"
#include "wx/mac/colordlg.h"
#include "wx/fontdlg.h"
#if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
-#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog)
-#endif
#include "wx/mac/private.h"
#ifndef __DARWIN__
bool wxColourDialog::Create(wxWindow *parent, wxColourData *data)
{
m_dialogParent = parent;
-
+
if (data)
m_colourData = *data;
- return TRUE;
+ return true;
}
int wxColourDialog::ShowModal()
{
+ RGBColor currentColor = *((RGBColor*)m_colourData.m_dataColour.GetPixel()) ;
+
+#if TARGET_API_MAC_OSX
+ NColorPickerInfo info;
+ OSStatus err ;
+ memset(&info, 0, sizeof(info)) ;
+ // TODO : use parent to determine better position and then kAtSpecifiedOrigin
+ info.placeWhere = kCenterOnMainScreen ;
+ info.flags = kColorPickerDialogIsMoveable | kColorPickerDialogIsModal ;
+ info.theColor.color.rgb.red = currentColor.red ;
+ info.theColor.color.rgb.green = currentColor.green ;
+ info.theColor.color.rgb.blue = currentColor.blue ;
+ err = NPickColor(&info);
+ if ((err == noErr) && info.newColorChosen)
+ {
+ currentColor.red = info.theColor.color.rgb.red ;
+ currentColor.green = info.theColor.color.rgb.green ;
+ currentColor.blue = info.theColor.color.rgb.blue ;
+ m_colourData.m_dataColour.FromRGBColor((WXCOLORREF*) ¤tColor);
+
+ return wxID_OK;
+ }
+#else
+ RGBColor newColor ;
Point where ;
- RGBColor currentColor = *((RGBColor*)m_colourData.m_dataColour.GetPixel()) , newColor ;
-
+
where.h = where.v = -1;
if (GetColor( where, "\pSelect a new palette color.", ¤tColor, &newColor ))
m_colourData.m_dataColour.Set( (WXCOLORREF*) &newColor ) ;
return wxID_OK;
}
- else
- {
- return wxID_CANCEL;
- }
-
+#endif
return wxID_CANCEL;
}