]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/colour.mm
Reflect changes in stc.cpp in stc.cpp.in from which it's generated.
[wxWidgets.git] / src / cocoa / colour.mm
index b191ab9a967cf871b3087adb817640a5c7f9ad74..50302bd93c2c0991fe7c5e1d6ade94b5c5968b3f 100644 (file)
@@ -1,27 +1,26 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        colour.mm
+// Name:        src/cococa/colour.mm
 // Purpose:     wxColour class
 // Author:      David Elliott
 // Modified by:
 // Created:     2003/06/17
 // Purpose:     wxColour class
 // Author:      David Elliott
 // Modified by:
 // Created:     2003/06/17
-// RCS-ID:      $Id$
 // Copyright:   (c) 2003 David Elliott
 // Copyright:   (c) 2003 David Elliott
-// Licence:    wxWidgets licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #include "wx/wxprec.h"
 /////////////////////////////////////////////////////////////////////////////
 
 #include "wx/wxprec.h"
-#ifndef WX_PRECOMP
-#endif //WX_PRECOMP
 
 
-#include "wx/gdicmn.h"
 #include "wx/colour.h"
 
 #include "wx/colour.h"
 
+#ifndef WX_PRECOMP
+    #include "wx/gdicmn.h"
+#endif //WX_PRECOMP
+
 #include "wx/cocoa/autorelease.h"
 #include "wx/cocoa/autorelease.h"
+#include "wx/cocoa/ObjcRef.h"
 
 #import <AppKit/NSColor.h>
 
 
 #import <AppKit/NSColor.h>
 
-IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject)
-
 void wxColour::Init()
 {
     m_cocoaNSColor = NULL;
 void wxColour::Init()
 {
     m_cocoaNSColor = NULL;
@@ -35,8 +34,9 @@ wxColour::wxColour (const wxColour& col)
 ,   m_red(col.m_red)
 ,   m_green(col.m_green)
 ,   m_blue(col.m_blue)
 ,   m_red(col.m_red)
 ,   m_green(col.m_green)
 ,   m_blue(col.m_blue)
+,   m_alpha(col.m_alpha)
 {
 {
-    [m_cocoaNSColor retain];
+    wxGCSafeRetain(m_cocoaNSColor);
 }
 
 wxColour::wxColour( WX_NSColor aColor )
 }
 
 wxColour::wxColour( WX_NSColor aColor )
@@ -47,57 +47,45 @@ wxColour::wxColour( WX_NSColor aColor )
 
 wxColour& wxColour::operator =(const wxColour& col)
 {
 
 wxColour& wxColour::operator =(const wxColour& col)
 {
-    m_cocoaNSColor = col.m_cocoaNSColor;
+    m_cocoaNSColor = wxGCSafeRetain(col.m_cocoaNSColor);
     m_red = col.m_red;
     m_green = col.m_green;
     m_blue = col.m_blue;
     m_red = col.m_red;
     m_green = col.m_green;
     m_blue = col.m_blue;
-    [m_cocoaNSColor retain];
+    m_alpha = col.m_alpha;
     return *this;
 }
 
     return *this;
 }
 
-void wxColour::InitFromName(const wxString& name)
-{
-    if ( wxTheColourDatabase )
-    {
-        wxColour col = wxTheColourDatabase->Find(name);
-        if ( col.Ok() )
-        {
-            *this = col;
-            return;
-        }
-    }
-
-    // leave invalid
-    Init();
-}
-
 wxColour::~wxColour ()
 {
 wxColour::~wxColour ()
 {
-    [m_cocoaNSColor release];
+    wxGCSafeRelease(m_cocoaNSColor);
 }
 
 }
 
-void wxColour::Set (unsigned char r, unsigned char g, unsigned char b)
+void wxColour::InitRGBA(unsigned char r,
+                        unsigned char g,
+                        unsigned char b,
+                        unsigned char a)
 {
     wxAutoNSAutoreleasePool pool;
 {
     wxAutoNSAutoreleasePool pool;
-    [m_cocoaNSColor release];
-    m_cocoaNSColor = [[NSColor colorWithCalibratedRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1.0] retain];
+    wxGCSafeRelease(m_cocoaNSColor);
+    m_cocoaNSColor = wxGCSafeRetain([NSColor colorWithCalibratedRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a/255.0]);
     m_red = r;
     m_green = g;
     m_blue = b;
     m_red = r;
     m_green = g;
     m_blue = b;
+    m_alpha = a;
 }
 
 void wxColour::Set( WX_NSColor aColor )
 {
 }
 
 void wxColour::Set( WX_NSColor aColor )
 {
-    [aColor retain];
-    [m_cocoaNSColor release];
+    wxGCSafeRetain(aColor);
+    wxGCSafeRelease(m_cocoaNSColor);
     m_cocoaNSColor = aColor;
 
     /* Make a temporary color in RGB format and get the values.  Note that
        unless the color was actually RGB to begin with it's likely that
        these will be fairly bogus. Particulary if the color is a pattern. */
     NSColor *rgbColor = [m_cocoaNSColor colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
     m_cocoaNSColor = aColor;
 
     /* Make a temporary color in RGB format and get the values.  Note that
        unless the color was actually RGB to begin with it's likely that
        these will be fairly bogus. Particulary if the color is a pattern. */
     NSColor *rgbColor = [m_cocoaNSColor colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
-    m_red      = (wxUint8) ([rgbColor redComponent]   * 255.0);
+    m_red   = (wxUint8) ([rgbColor redComponent]   * 255.0);
     m_green = (wxUint8) ([rgbColor greenComponent] * 255.0);
     m_green = (wxUint8) ([rgbColor greenComponent] * 255.0);
-    m_blue     = (wxUint8) ([rgbColor blueComponent]  * 255.0);
+    m_blue  = (wxUint8) ([rgbColor blueComponent]  * 255.0);
+    m_alpha  = (wxUint8) ([rgbColor alphaComponent]  * 255.0);
 }
 }
-