Adding NSColor -> wxColour conversion.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Kevin Ollivier
2009-10-31 22:20:27 +00:00
parent a7ebaf0ddd
commit b478f24288
5 changed files with 91 additions and 25 deletions

View File

@@ -1,6 +1,6 @@
# ========================================================================= # =========================================================================
# This makefile was generated by # This makefile was generated by
# Bakefile 0.2.7 (http://www.bakefile.org) # Bakefile 0.2.8 (http://www.bakefile.org)
# Do not modify, all changes will be overwritten! # Do not modify, all changes will be overwritten!
# ========================================================================= # =========================================================================
@@ -4861,7 +4861,7 @@ COND_TOOLKIT_COCOA___GUI_SRC_OBJECTS = \
monodll_src_cocoa_choice.o \ monodll_src_cocoa_choice.o \
monodll_cocoa_clipbrd.o \ monodll_cocoa_clipbrd.o \
monodll_cocoa_colordlg.o \ monodll_cocoa_colordlg.o \
monodll_cocoa_colour.o \ monodll_src_cocoa_colour.o \
monodll_cocoa_combobox.o \ monodll_cocoa_combobox.o \
monodll_cocoa_control.o \ monodll_cocoa_control.o \
monodll_cocoa_cursor.o \ monodll_cocoa_cursor.o \
@@ -5198,6 +5198,7 @@ COND_TOOLKIT_OSX_COCOA___GUI_SRC_OBJECTS = \
monodll_osx_cocoa_button.o \ monodll_osx_cocoa_button.o \
monodll_osx_cocoa_checkbox.o \ monodll_osx_cocoa_checkbox.o \
monodll_osx_cocoa_choice.o \ monodll_osx_cocoa_choice.o \
monodll_osx_cocoa_colour.o \
monodll_osx_cocoa_dialog.o \ monodll_osx_cocoa_dialog.o \
monodll_osx_cocoa_dirdlg.o \ monodll_osx_cocoa_dirdlg.o \
monodll_osx_cocoa_evtloop.o \ monodll_osx_cocoa_evtloop.o \
@@ -6679,7 +6680,7 @@ COND_TOOLKIT_COCOA___GUI_SRC_OBJECTS_1 = \
monolib_src_cocoa_choice.o \ monolib_src_cocoa_choice.o \
monolib_cocoa_clipbrd.o \ monolib_cocoa_clipbrd.o \
monolib_cocoa_colordlg.o \ monolib_cocoa_colordlg.o \
monolib_cocoa_colour.o \ monolib_src_cocoa_colour.o \
monolib_cocoa_combobox.o \ monolib_cocoa_combobox.o \
monolib_cocoa_control.o \ monolib_cocoa_control.o \
monolib_cocoa_cursor.o \ monolib_cocoa_cursor.o \
@@ -7016,6 +7017,7 @@ COND_TOOLKIT_OSX_COCOA___GUI_SRC_OBJECTS_1 = \
monolib_osx_cocoa_button.o \ monolib_osx_cocoa_button.o \
monolib_osx_cocoa_checkbox.o \ monolib_osx_cocoa_checkbox.o \
monolib_osx_cocoa_choice.o \ monolib_osx_cocoa_choice.o \
monolib_osx_cocoa_colour.o \
monolib_osx_cocoa_dialog.o \ monolib_osx_cocoa_dialog.o \
monolib_osx_cocoa_dirdlg.o \ monolib_osx_cocoa_dirdlg.o \
monolib_osx_cocoa_evtloop.o \ monolib_osx_cocoa_evtloop.o \
@@ -8686,7 +8688,7 @@ COND_TOOLKIT_COCOA___GUI_SRC_OBJECTS_2 = \
coredll_src_cocoa_choice.o \ coredll_src_cocoa_choice.o \
coredll_cocoa_clipbrd.o \ coredll_cocoa_clipbrd.o \
coredll_cocoa_colordlg.o \ coredll_cocoa_colordlg.o \
coredll_cocoa_colour.o \ coredll_src_cocoa_colour.o \
coredll_cocoa_combobox.o \ coredll_cocoa_combobox.o \
coredll_cocoa_control.o \ coredll_cocoa_control.o \
coredll_cocoa_cursor.o \ coredll_cocoa_cursor.o \
@@ -9023,6 +9025,7 @@ COND_TOOLKIT_OSX_COCOA___GUI_SRC_OBJECTS_2 = \
coredll_osx_cocoa_button.o \ coredll_osx_cocoa_button.o \
coredll_osx_cocoa_checkbox.o \ coredll_osx_cocoa_checkbox.o \
coredll_osx_cocoa_choice.o \ coredll_osx_cocoa_choice.o \
coredll_osx_cocoa_colour.o \
coredll_osx_cocoa_dialog.o \ coredll_osx_cocoa_dialog.o \
coredll_osx_cocoa_dirdlg.o \ coredll_osx_cocoa_dirdlg.o \
coredll_osx_cocoa_evtloop.o \ coredll_osx_cocoa_evtloop.o \
@@ -10177,7 +10180,7 @@ COND_TOOLKIT_COCOA___GUI_SRC_OBJECTS_3 = \
corelib_src_cocoa_choice.o \ corelib_src_cocoa_choice.o \
corelib_cocoa_clipbrd.o \ corelib_cocoa_clipbrd.o \
corelib_cocoa_colordlg.o \ corelib_cocoa_colordlg.o \
corelib_cocoa_colour.o \ corelib_src_cocoa_colour.o \
corelib_cocoa_combobox.o \ corelib_cocoa_combobox.o \
corelib_cocoa_control.o \ corelib_cocoa_control.o \
corelib_cocoa_cursor.o \ corelib_cocoa_cursor.o \
@@ -10514,6 +10517,7 @@ COND_TOOLKIT_OSX_COCOA___GUI_SRC_OBJECTS_3 = \
corelib_osx_cocoa_button.o \ corelib_osx_cocoa_button.o \
corelib_osx_cocoa_checkbox.o \ corelib_osx_cocoa_checkbox.o \
corelib_osx_cocoa_choice.o \ corelib_osx_cocoa_choice.o \
corelib_osx_cocoa_colour.o \
corelib_osx_cocoa_dialog.o \ corelib_osx_cocoa_dialog.o \
corelib_osx_cocoa_dirdlg.o \ corelib_osx_cocoa_dirdlg.o \
corelib_osx_cocoa_evtloop.o \ corelib_osx_cocoa_evtloop.o \
@@ -15544,6 +15548,9 @@ monodll_osx_cocoa_checkbox.o: $(srcdir)/src/osx/cocoa/checkbox.mm $(MONODLL_ODEP
monodll_osx_cocoa_choice.o: $(srcdir)/src/osx/cocoa/choice.mm $(MONODLL_ODEP) monodll_osx_cocoa_choice.o: $(srcdir)/src/osx/cocoa/choice.mm $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/choice.mm $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/choice.mm
monodll_osx_cocoa_colour.o: $(srcdir)/src/osx/cocoa/colour.mm $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/colour.mm
monodll_osx_cocoa_dialog.o: $(srcdir)/src/osx/cocoa/dialog.mm $(MONODLL_ODEP) monodll_osx_cocoa_dialog.o: $(srcdir)/src/osx/cocoa/dialog.mm $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dialog.mm $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dialog.mm
@@ -15688,7 +15695,7 @@ monodll_cocoa_clipbrd.o: $(srcdir)/src/cocoa/clipbrd.mm $(MONODLL_ODEP)
monodll_cocoa_colordlg.o: $(srcdir)/src/cocoa/colordlg.mm $(MONODLL_ODEP) monodll_cocoa_colordlg.o: $(srcdir)/src/cocoa/colordlg.mm $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/cocoa/colordlg.mm $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/cocoa/colordlg.mm
monodll_cocoa_colour.o: $(srcdir)/src/cocoa/colour.mm $(MONODLL_ODEP) monodll_src_cocoa_colour.o: $(srcdir)/src/cocoa/colour.mm $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/cocoa/colour.mm $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/cocoa/colour.mm
monodll_cocoa_combobox.o: $(srcdir)/src/cocoa/combobox.mm $(MONODLL_ODEP) monodll_cocoa_combobox.o: $(srcdir)/src/cocoa/combobox.mm $(MONODLL_ODEP)
@@ -20341,6 +20348,9 @@ monolib_osx_cocoa_checkbox.o: $(srcdir)/src/osx/cocoa/checkbox.mm $(MONOLIB_ODEP
monolib_osx_cocoa_choice.o: $(srcdir)/src/osx/cocoa/choice.mm $(MONOLIB_ODEP) monolib_osx_cocoa_choice.o: $(srcdir)/src/osx/cocoa/choice.mm $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/choice.mm $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/choice.mm
monolib_osx_cocoa_colour.o: $(srcdir)/src/osx/cocoa/colour.mm $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/colour.mm
monolib_osx_cocoa_dialog.o: $(srcdir)/src/osx/cocoa/dialog.mm $(MONOLIB_ODEP) monolib_osx_cocoa_dialog.o: $(srcdir)/src/osx/cocoa/dialog.mm $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dialog.mm $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dialog.mm
@@ -20485,7 +20495,7 @@ monolib_cocoa_clipbrd.o: $(srcdir)/src/cocoa/clipbrd.mm $(MONOLIB_ODEP)
monolib_cocoa_colordlg.o: $(srcdir)/src/cocoa/colordlg.mm $(MONOLIB_ODEP) monolib_cocoa_colordlg.o: $(srcdir)/src/cocoa/colordlg.mm $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/cocoa/colordlg.mm $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/cocoa/colordlg.mm
monolib_cocoa_colour.o: $(srcdir)/src/cocoa/colour.mm $(MONOLIB_ODEP) monolib_src_cocoa_colour.o: $(srcdir)/src/cocoa/colour.mm $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/cocoa/colour.mm $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/cocoa/colour.mm
monolib_cocoa_combobox.o: $(srcdir)/src/cocoa/combobox.mm $(MONOLIB_ODEP) monolib_cocoa_combobox.o: $(srcdir)/src/cocoa/combobox.mm $(MONOLIB_ODEP)
@@ -25849,6 +25859,9 @@ coredll_osx_cocoa_checkbox.o: $(srcdir)/src/osx/cocoa/checkbox.mm $(COREDLL_ODEP
coredll_osx_cocoa_choice.o: $(srcdir)/src/osx/cocoa/choice.mm $(COREDLL_ODEP) coredll_osx_cocoa_choice.o: $(srcdir)/src/osx/cocoa/choice.mm $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/choice.mm $(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/choice.mm
coredll_osx_cocoa_colour.o: $(srcdir)/src/osx/cocoa/colour.mm $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/colour.mm
coredll_osx_cocoa_dialog.o: $(srcdir)/src/osx/cocoa/dialog.mm $(COREDLL_ODEP) coredll_osx_cocoa_dialog.o: $(srcdir)/src/osx/cocoa/dialog.mm $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dialog.mm $(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dialog.mm
@@ -25993,7 +26006,7 @@ coredll_cocoa_clipbrd.o: $(srcdir)/src/cocoa/clipbrd.mm $(COREDLL_ODEP)
coredll_cocoa_colordlg.o: $(srcdir)/src/cocoa/colordlg.mm $(COREDLL_ODEP) coredll_cocoa_colordlg.o: $(srcdir)/src/cocoa/colordlg.mm $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/cocoa/colordlg.mm $(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/cocoa/colordlg.mm
coredll_cocoa_colour.o: $(srcdir)/src/cocoa/colour.mm $(COREDLL_ODEP) coredll_src_cocoa_colour.o: $(srcdir)/src/cocoa/colour.mm $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/cocoa/colour.mm $(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/cocoa/colour.mm
coredll_cocoa_combobox.o: $(srcdir)/src/cocoa/combobox.mm $(COREDLL_ODEP) coredll_cocoa_combobox.o: $(srcdir)/src/cocoa/combobox.mm $(COREDLL_ODEP)
@@ -29377,6 +29390,9 @@ corelib_osx_cocoa_checkbox.o: $(srcdir)/src/osx/cocoa/checkbox.mm $(CORELIB_ODEP
corelib_osx_cocoa_choice.o: $(srcdir)/src/osx/cocoa/choice.mm $(CORELIB_ODEP) corelib_osx_cocoa_choice.o: $(srcdir)/src/osx/cocoa/choice.mm $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/choice.mm $(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/choice.mm
corelib_osx_cocoa_colour.o: $(srcdir)/src/osx/cocoa/colour.mm $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/colour.mm
corelib_osx_cocoa_dialog.o: $(srcdir)/src/osx/cocoa/dialog.mm $(CORELIB_ODEP) corelib_osx_cocoa_dialog.o: $(srcdir)/src/osx/cocoa/dialog.mm $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dialog.mm $(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dialog.mm
@@ -29521,7 +29537,7 @@ corelib_cocoa_clipbrd.o: $(srcdir)/src/cocoa/clipbrd.mm $(CORELIB_ODEP)
corelib_cocoa_colordlg.o: $(srcdir)/src/cocoa/colordlg.mm $(CORELIB_ODEP) corelib_cocoa_colordlg.o: $(srcdir)/src/cocoa/colordlg.mm $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/cocoa/colordlg.mm $(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/cocoa/colordlg.mm
corelib_cocoa_colour.o: $(srcdir)/src/cocoa/colour.mm $(CORELIB_ODEP) corelib_src_cocoa_colour.o: $(srcdir)/src/cocoa/colour.mm $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/cocoa/colour.mm $(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/cocoa/colour.mm
corelib_cocoa_combobox.o: $(srcdir)/src/cocoa/combobox.mm $(CORELIB_ODEP) corelib_cocoa_combobox.o: $(srcdir)/src/cocoa/combobox.mm $(CORELIB_ODEP)

View File

@@ -2462,6 +2462,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/osx/cocoa/button.mm src/osx/cocoa/button.mm
src/osx/cocoa/checkbox.mm src/osx/cocoa/checkbox.mm
src/osx/cocoa/choice.mm src/osx/cocoa/choice.mm
src/osx/cocoa/colour.mm
src/osx/cocoa/dialog.mm src/osx/cocoa/dialog.mm
src/osx/cocoa/dirdlg.mm src/osx/cocoa/dirdlg.mm
src/osx/cocoa/evtloop.mm src/osx/cocoa/evtloop.mm

View File

@@ -57,6 +57,9 @@ public:
#if wxOSX_USE_COCOA_OR_CARBON #if wxOSX_USE_COCOA_OR_CARBON
wxColour(const RGBColor& col); wxColour(const RGBColor& col);
wxColour& operator=(const RGBColor& col); wxColour& operator=(const RGBColor& col);
#endif
#if wxOSX_USE_COCOA
wxColour(WX_NSColor color);
#endif #endif
wxColour& operator=(CGColorRef col); wxColour& operator=(CGColorRef col);
wxColour& operator=(const wxColour& col); wxColour& operator=(const wxColour& col);
@@ -68,6 +71,7 @@ protected :
void InitRGBColor( const RGBColor& col ); void InitRGBColor( const RGBColor& col );
#endif #endif
void InitCGColorRef( CGColorRef col ); void InitCGColorRef( CGColorRef col );
void InitFromComponents(const CGFloat* components, size_t numComponents );
private: private:
wxCFRef<CGColorRef> m_cgColour; wxCFRef<CGColorRef> m_cgColour;

36
src/osx/cocoa/colour.mm Normal file
View File

@@ -0,0 +1,36 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/osx/cocoa/colour.mm
// Purpose: Cocoa additions to wxColour class
// Author: Kevin Ollivier
// Modified by:
// Created: 2009-10-31
// RCS-ID: $Id: colour.cpp 61724 2009-08-21 10:41:26Z VZ $
// Copyright: (c) Kevin Ollivier
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
#include "wx/colour.h"
#ifndef WX_PRECOMP
#include "wx/gdicmn.h"
#endif
#include "wx/osx/private.h"
#if wxOSX_USE_COCOA
wxColour::wxColour(WX_NSColor col)
{
size_t noComp = [col numberOfComponents];
CGFloat *components = NULL;
if ( noComp >= 1 && noComp <= 4 )
{
// TODO verify whether we really are on a RGB color space
m_alpha = wxALPHA_OPAQUE;
[col getComponents: components];
}
InitFromComponents(const_cast<const CGFloat*>(components), noComp);
}
#endif

View File

@@ -111,30 +111,39 @@ void wxColour::InitCGColorRef( CGColorRef col )
{ {
m_cgColour.reset( col ); m_cgColour.reset( col );
size_t noComp = CGColorGetNumberOfComponents( col ); size_t noComp = CGColorGetNumberOfComponents( col );
const CGFloat *components = NULL;
if ( noComp >= 1 && noComp <= 4 ) if ( noComp >= 1 && noComp <= 4 )
{ {
// TODO verify whether we really are on a RGB color space // TODO verify whether we really are on a RGB color space
m_alpha = wxALPHA_OPAQUE; m_alpha = wxALPHA_OPAQUE;
const CGFloat *components = CGColorGetComponents( col ); components = CGColorGetComponents( col );
if ( noComp >= 3 )
{
m_red = (int)(components[0]*255+0.5);
m_green = (int)(components[1]*255+0.5);
m_blue = (int)(components[2]*255+0.5);
if ( noComp == 4 )
m_alpha = (int)(components[3]*255+0.5);
}
else
{
m_red = (int)(components[0]*255+0.5);
m_green = (int)(components[0]*255+0.5);
m_blue = (int)(components[0]*255+0.5);
}
} }
else InitFromComponents(components, noComp);
}
void wxColour::InitFromComponents(const CGFloat* components, size_t numComponents )
{
if ( numComponents < 1 || !components )
{ {
m_alpha = wxALPHA_OPAQUE; m_alpha = wxALPHA_OPAQUE;
m_red = m_green = m_blue = 0; m_red = m_green = m_blue = 0;
return;
}
if ( numComponents >= 3 )
{
m_red = (int)(components[0]*255+0.5);
m_green = (int)(components[1]*255+0.5);
m_blue = (int)(components[2]*255+0.5);
if ( numComponents == 4 )
m_alpha = (int)(components[3]*255+0.5);
}
else
{
m_red = (int)(components[0]*255+0.5);
m_green = (int)(components[0]*255+0.5);
m_blue = (int)(components[0]*255+0.5);
} }
} }