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
# Bakefile 0.2.7 (http://www.bakefile.org)
# Bakefile 0.2.8 (http://www.bakefile.org)
# Do not modify, all changes will be overwritten!
# =========================================================================
@@ -4861,7 +4861,7 @@ COND_TOOLKIT_COCOA___GUI_SRC_OBJECTS = \
monodll_src_cocoa_choice.o \
monodll_cocoa_clipbrd.o \
monodll_cocoa_colordlg.o \
monodll_cocoa_colour.o \
monodll_src_cocoa_colour.o \
monodll_cocoa_combobox.o \
monodll_cocoa_control.o \
monodll_cocoa_cursor.o \
@@ -5198,6 +5198,7 @@ COND_TOOLKIT_OSX_COCOA___GUI_SRC_OBJECTS = \
monodll_osx_cocoa_button.o \
monodll_osx_cocoa_checkbox.o \
monodll_osx_cocoa_choice.o \
monodll_osx_cocoa_colour.o \
monodll_osx_cocoa_dialog.o \
monodll_osx_cocoa_dirdlg.o \
monodll_osx_cocoa_evtloop.o \
@@ -6679,7 +6680,7 @@ COND_TOOLKIT_COCOA___GUI_SRC_OBJECTS_1 = \
monolib_src_cocoa_choice.o \
monolib_cocoa_clipbrd.o \
monolib_cocoa_colordlg.o \
monolib_cocoa_colour.o \
monolib_src_cocoa_colour.o \
monolib_cocoa_combobox.o \
monolib_cocoa_control.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_checkbox.o \
monolib_osx_cocoa_choice.o \
monolib_osx_cocoa_colour.o \
monolib_osx_cocoa_dialog.o \
monolib_osx_cocoa_dirdlg.o \
monolib_osx_cocoa_evtloop.o \
@@ -8686,7 +8688,7 @@ COND_TOOLKIT_COCOA___GUI_SRC_OBJECTS_2 = \
coredll_src_cocoa_choice.o \
coredll_cocoa_clipbrd.o \
coredll_cocoa_colordlg.o \
coredll_cocoa_colour.o \
coredll_src_cocoa_colour.o \
coredll_cocoa_combobox.o \
coredll_cocoa_control.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_checkbox.o \
coredll_osx_cocoa_choice.o \
coredll_osx_cocoa_colour.o \
coredll_osx_cocoa_dialog.o \
coredll_osx_cocoa_dirdlg.o \
coredll_osx_cocoa_evtloop.o \
@@ -10177,7 +10180,7 @@ COND_TOOLKIT_COCOA___GUI_SRC_OBJECTS_3 = \
corelib_src_cocoa_choice.o \
corelib_cocoa_clipbrd.o \
corelib_cocoa_colordlg.o \
corelib_cocoa_colour.o \
corelib_src_cocoa_colour.o \
corelib_cocoa_combobox.o \
corelib_cocoa_control.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_checkbox.o \
corelib_osx_cocoa_choice.o \
corelib_osx_cocoa_colour.o \
corelib_osx_cocoa_dialog.o \
corelib_osx_cocoa_dirdlg.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)
$(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)
$(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)
$(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
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)
$(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)
$(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)
$(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
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)
$(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)
$(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)
$(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
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)
$(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)
$(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)
$(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
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/checkbox.mm
src/osx/cocoa/choice.mm
src/osx/cocoa/colour.mm
src/osx/cocoa/dialog.mm
src/osx/cocoa/dirdlg.mm
src/osx/cocoa/evtloop.mm

View File

@@ -57,6 +57,9 @@ public:
#if wxOSX_USE_COCOA_OR_CARBON
wxColour(const RGBColor& col);
wxColour& operator=(const RGBColor& col);
#endif
#if wxOSX_USE_COCOA
wxColour(WX_NSColor color);
#endif
wxColour& operator=(CGColorRef col);
wxColour& operator=(const wxColour& col);
@@ -68,6 +71,7 @@ protected :
void InitRGBColor( const RGBColor& col );
#endif
void InitCGColorRef( CGColorRef col );
void InitFromComponents(const CGFloat* components, size_t numComponents );
private:
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,17 +111,32 @@ void wxColour::InitCGColorRef( CGColorRef col )
{
m_cgColour.reset( col );
size_t noComp = CGColorGetNumberOfComponents( col );
const CGFloat *components = NULL;
if ( noComp >= 1 && noComp <= 4 )
{
// TODO verify whether we really are on a RGB color space
m_alpha = wxALPHA_OPAQUE;
const CGFloat *components = CGColorGetComponents( col );
if ( noComp >= 3 )
components = CGColorGetComponents( col );
}
InitFromComponents(components, noComp);
}
void wxColour::InitFromComponents(const CGFloat* components, size_t numComponents )
{
if ( numComponents < 1 || !components )
{
m_alpha = wxALPHA_OPAQUE;
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 ( noComp == 4 )
if ( numComponents == 4 )
m_alpha = (int)(components[3]*255+0.5);
}
else
@@ -131,12 +146,6 @@ void wxColour::InitCGColorRef( CGColorRef col )
m_blue = (int)(components[0]*255+0.5);
}
}
else
{
m_alpha = wxALPHA_OPAQUE;
m_red = m_green = m_blue = 0;
}
}
bool wxColour::operator == (const wxColour& colour) const
{