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:
34
Makefile.in
34
Makefile.in
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -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
36
src/osx/cocoa/colour.mm
Normal 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
|
@@ -111,30 +111,39 @@ 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 )
|
||||
{
|
||||
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);
|
||||
}
|
||||
components = CGColorGetComponents( col );
|
||||
}
|
||||
else
|
||||
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 ( 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user