]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/bitmap.cpp
Michael Fieldings patch 598106 applied in part
[wxWidgets.git] / src / motif / bitmap.cpp
index ec2dd2d84724310adf819d2a614c21467a70597f..fe00dc46faae2fe655e743a57c7137e10ae401bb 100644 (file)
@@ -120,15 +120,10 @@ wxList wxBitmap::sm_handlers;
 wxBitmap::wxBitmap()
 {
     m_refData = NULL;
-
-    if ( wxTheBitmapList )
-        wxTheBitmapList->AddBitmap(this);
 }
 
 wxBitmap::~wxBitmap()
 {
-    if (wxTheBitmapList)
-        wxTheBitmapList->DeleteObject(this);
 }
 
 wxBitmap::wxBitmap(const char bits[], int width, int height, int depth)
@@ -136,33 +131,21 @@ wxBitmap::wxBitmap(const char bits[], int width, int height, int depth)
     m_refData = new wxBitmapRefData;
 
     (void) Create((void*) bits, wxBITMAP_TYPE_XBM_DATA, width, height, depth);
-
-    if ( wxTheBitmapList )
-        wxTheBitmapList->AddBitmap(this);
 }
 
 wxBitmap::wxBitmap(int w, int h, int d)
 {
     (void)Create(w, h, d);
-
-    if ( wxTheBitmapList )
-        wxTheBitmapList->AddBitmap(this);
 }
 
 wxBitmap::wxBitmap(void *data, long type, int width, int height, int depth)
 {
     (void) Create(data, type, width, height, depth);
-
-    if ( wxTheBitmapList )
-        wxTheBitmapList->AddBitmap(this);
 }
 
-wxBitmap::wxBitmap(const wxString& filename, long type)
+wxBitmap::wxBitmap(const wxString& filename, int type)
 {
     LoadFile(filename, (int)type);
-
-    if ( wxTheBitmapList )
-        wxTheBitmapList->AddBitmap(this);
 }
 
 // Create from XPM data
@@ -184,6 +167,12 @@ bool wxBitmap::CreateFromXpm(const char **bits)
     return Create(bits, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0);
 }
 
+bool wxBitmap::CopyFromIcon(const wxIcon& icon)
+{
+    *this = icon;
+    return TRUE;
+}
+
 bool wxBitmap::Create(int w, int h, int d)
 {
     UnRef();
@@ -240,7 +229,7 @@ bool wxBitmap::Create(void *data, long type, int width, int height, int depth)
     wxBitmapHandler *handler = FindHandler(type);
 
     if ( handler == NULL ) {
-        wxLogWarning("no data bitmap handler for type %d defined.", type);
+        wxLogWarning("no data bitmap handler for type %ld defined.", type);
 
         return FALSE;
     }
@@ -840,6 +829,8 @@ void wxBitmap::InitStandardHandlers()
 
 WXPixmap wxBitmap::GetLabelPixmap (WXWidget w)
 {
+    if (!M_BITMAPDATA)
+        return (WXPixmap)NULL;
     if (M_BITMAPDATA->m_image == (WXPixmap) 0)
         return M_BITMAPDATA->m_pixmap;
 
@@ -916,7 +907,9 @@ WXPixmap wxBitmap::GetArmPixmap (WXWidget w)
 WXPixmap wxBitmap::GetInsensPixmap (WXWidget w)
 {
     Display *dpy = (Display*) M_BITMAPDATA->m_display;
-
+    
+    if (!M_BITMAPDATA)
+        return (WXPixmap)NULL;
     if (M_BITMAPDATA->m_insensPixmap)
         return M_BITMAPDATA->m_insensPixmap;
 
@@ -1256,8 +1249,6 @@ bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
     wxCHECK_MSG( depth == -1, FALSE, wxT("invalid bitmap depth") )
 
     m_refData = new wxBitmapRefData();
-      
-    if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
 
     int width = image.GetWidth();
     int height = image.GetHeight();