]> git.saurik.com Git - wxWidgets.git/commitdiff
Adding NSColor -> wxColour conversion.
authorKevin Ollivier <kevino@theolliviers.com>
Sat, 31 Oct 2009 22:20:27 +0000 (22:20 +0000)
committerKevin Ollivier <kevino@theolliviers.com>
Sat, 31 Oct 2009 22:20:27 +0000 (22:20 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

Makefile.in
build/bakefiles/files.bkl
include/wx/osx/core/colour.h
src/osx/cocoa/colour.mm [new file with mode: 0644]
src/osx/core/colour.cpp

index 9c96f239985fd40dc068ac74ed282a6fea0e3a99..096a307fe37c1cc7feb80ab3a83215ba81adacc5 100644 (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)
index 7b9e19a7aec54556d4483f90c85760cfbfc9a3e7..763e0eff83ec49dfae1f2a5e944150fca1eba04f 100644 (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
index 1cf694140c7e3ce7d81ea3801dd4dd8c42cac4a2..388b176f2a70b7b7bc9b9658e2194cf83527e71e 100644 (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;
 
diff --git a/src/osx/cocoa/colour.mm b/src/osx/cocoa/colour.mm
new file mode 100644 (file)
index 0000000..ffce54a
--- /dev/null
@@ -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
\ No newline at end of file
index 81913797624c071b1634b4a39d94128f09cd7f1f..e52d5b7aabf133951e038ab56bf82e362a15584d 100644 (file)
@@ -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);
     }
 }