X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a31a5f85341a2ef131d86a1dee12f3d6c8156118..bbd321ffc2d4e7f9e45c72af9e3f824fa9ccda51:/src/mac/carbon/colordlg.cpp diff --git a/src/mac/carbon/colordlg.cpp b/src/mac/carbon/colordlg.cpp index bb2361b3ff..113aa958a9 100644 --- a/src/mac/carbon/colordlg.cpp +++ b/src/mac/carbon/colordlg.cpp @@ -7,18 +7,18 @@ // Created: 1998-01-01 // RCS-ID: $Id$ // Copyright: (c) Stefan Csomor -// Licence: wxWindows licence +// 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__ @@ -42,29 +42,49 @@ wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data) bool wxColourDialog::Create(wxWindow *parent, wxColourData *data) { m_dialogParent = parent; - + if (data) m_colourData = *data; - return TRUE; + return true; } int wxColourDialog::ShowModal() { - Point where ; - RGBColor currentColor = *((RGBColor*)m_colourData.dataColour.GetPixel()) , newColor ; - - where.h = where.v = -1; - - if (GetColor( where, "\pSelect a new palette color.", ¤tColor, &newColor )) - { - m_colourData.dataColour.Set( (WXCOLORREF*) &newColor ) ; - return wxID_OK; - } - else - { - return wxID_CANCEL; - } + 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 ; + + 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; + } +#endif return wxID_CANCEL; } +#endif