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 
) ;