X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/219f895a273cdf12ded3f79dbbcd1e076fe83901..befe54c6ca5d8f57be1d38f8826bdb080af29e89:/src/gtk1/bitmap.cpp diff --git a/src/gtk1/bitmap.cpp b/src/gtk1/bitmap.cpp index 05c3136acc..6f3e9146fb 100644 --- a/src/gtk1/bitmap.cpp +++ b/src/gtk1/bitmap.cpp @@ -13,6 +13,7 @@ #endif #include "wx/bitmap.h" +#include "wx/icon.h" #include "gdk/gdkprivate.h" #ifdef USE_GDK_IMLIB @@ -28,19 +29,19 @@ IMPLEMENT_DYNAMIC_CLASS(wxMask,wxObject) wxMask::wxMask(void) { m_bitmap = NULL; -}; +} wxMask::wxMask( const wxBitmap& WXUNUSED(bitmap), const wxColour& WXUNUSED(colour) ) { -}; +} wxMask::wxMask( const wxBitmap& WXUNUSED(bitmap), int WXUNUSED(paletteIndex) ) { -}; +} wxMask::wxMask( const wxBitmap& WXUNUSED(bitmap) ) { -}; +} wxMask::~wxMask(void) { @@ -49,12 +50,12 @@ wxMask::~wxMask(void) #else if (m_bitmap) gdk_bitmap_unref( m_bitmap ); #endif -}; +} GdkBitmap *wxMask::GetBitmap(void) const { return m_bitmap; -}; +} //----------------------------------------------------------------------------- // wxBitmap @@ -89,20 +90,23 @@ wxBitmapRefData::wxBitmapRefData(void) m_height = 0; m_bpp = 0; m_palette = NULL; -}; +#ifdef USE_GDK_IMLIB + m_image = NULL; +#endif +} wxBitmapRefData::~wxBitmapRefData(void) { #ifdef USE_GDK_IMLIB if (m_pixmap) gdk_imlib_free_pixmap( m_pixmap ); - if (m_image) gdk_imlib_destroy_image( m_image ); + if (m_image) gdk_imlib_kill_image( m_image ); #else if (m_pixmap) gdk_pixmap_unref( m_pixmap ); #endif if (m_bitmap) gdk_bitmap_unref( m_bitmap ); if (m_mask) delete m_mask; if (m_palette) delete m_palette; -}; +} //----------------------------------------------------------------------------- @@ -113,7 +117,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxBitmap,wxGDIObject) wxBitmap::wxBitmap(void) { if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -}; +} wxBitmap::wxBitmap( int width, int height, int depth ) { @@ -121,11 +125,12 @@ wxBitmap::wxBitmap( int width, int height, int depth ) M_BMPDATA->m_mask = NULL; M_BMPDATA->m_pixmap = gdk_pixmap_new( (GdkWindow*) &gdk_root_parent, width, height, depth ); - gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) ); + M_BMPDATA->m_width = width; + M_BMPDATA->m_height = height; M_BMPDATA->m_bpp = depth; if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -}; +} wxBitmap::wxBitmap( char **bits ) { @@ -142,7 +147,9 @@ wxBitmap::wxBitmap( char **bits ) { M_BMPDATA->m_mask = new wxMask(); M_BMPDATA->m_mask->m_bitmap = mask; - }; + } + + gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) ); #else @@ -151,30 +158,31 @@ wxBitmap::wxBitmap( char **bits ) #endif - gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) ); M_BMPDATA->m_bpp = 24; // ? if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -}; +} wxBitmap::wxBitmap( const wxBitmap& bmp ) { Ref( bmp ); if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -}; +} wxBitmap::wxBitmap( const wxBitmap* bmp ) { if (bmp) Ref( *bmp ); if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -}; +} wxBitmap::wxBitmap( const wxString &filename, int type ) { LoadFile( filename, type ); -}; + + if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); +} // CMB 15/5/98: add constructor for xbm bitmaps wxBitmap::wxBitmap( const char bits[], int width, int height, int WXUNUSED(depth)) @@ -184,7 +192,8 @@ wxBitmap::wxBitmap( const char bits[], int width, int height, int WXUNUSED(depth M_BMPDATA->m_mask = NULL; M_BMPDATA->m_bitmap = gdk_bitmap_create_from_data( (GdkWindow*) &gdk_root_parent, (gchar *) bits, width, height ); - gdk_window_get_size( M_BMPDATA->m_bitmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) ); + M_BMPDATA->m_width = width; + M_BMPDATA->m_height = height; M_BMPDATA->m_bpp = 1; if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); @@ -193,72 +202,72 @@ wxBitmap::wxBitmap( const char bits[], int width, int height, int WXUNUSED(depth wxBitmap::~wxBitmap(void) { if (wxTheBitmapList) wxTheBitmapList->DeleteObject(this); -}; +} wxBitmap& wxBitmap::operator = ( const wxBitmap& bmp ) { if (*this == bmp) return (*this); Ref( bmp ); return *this; -}; +} bool wxBitmap::operator == ( const wxBitmap& bmp ) { return m_refData == bmp.m_refData; -}; +} bool wxBitmap::operator != ( const wxBitmap& bmp ) { return m_refData != bmp.m_refData; -}; +} bool wxBitmap::Ok(void) const { return m_refData != NULL; -}; +} int wxBitmap::GetHeight(void) const { if (!Ok()) return 0; return M_BMPDATA->m_height; -}; +} int wxBitmap::GetWidth(void) const { if (!Ok()) return 0; return M_BMPDATA->m_width; -}; +} int wxBitmap::GetDepth(void) const { if (!Ok()) return 0; return M_BMPDATA->m_bpp; -}; +} void wxBitmap::SetHeight( int height ) { if (!Ok()) return; M_BMPDATA->m_height = height; -}; +} void wxBitmap::SetWidth( int width ) { if (!Ok()) return; M_BMPDATA->m_width = width; -}; +} void wxBitmap::SetDepth( int depth ) { if (!Ok()) return; M_BMPDATA->m_bpp = depth; -}; +} wxMask *wxBitmap::GetMask(void) const { if (!Ok()) return NULL; return M_BMPDATA->m_mask; -}; +} void wxBitmap::SetMask( wxMask *mask ) { @@ -266,14 +275,12 @@ void wxBitmap::SetMask( wxMask *mask ) if (M_BMPDATA->m_mask) delete M_BMPDATA->m_mask; M_BMPDATA->m_mask = mask; -}; +} void wxBitmap::Resize( int height, int width ) { if (!Ok()) return; - return; - #ifdef USE_GDK_IMLIB if (M_BMPDATA->m_bitmap) return; // not supported for bitmaps @@ -292,7 +299,7 @@ void wxBitmap::Resize( int height, int width ) Render(); #endif -}; +} bool wxBitmap::SaveFile( const wxString &name, int WXUNUSED(type), wxPalette *WXUNUSED(palette) ) @@ -308,7 +315,7 @@ bool wxBitmap::SaveFile( const wxString &name, int WXUNUSED(type), #endif return FALSE; -}; +} bool wxBitmap::LoadFile( const wxString &name, int WXUNUSED(type) ) { @@ -323,7 +330,7 @@ bool wxBitmap::LoadFile( const wxString &name, int WXUNUSED(type) ) { UnRef(); return FALSE; - }; + } Render(); @@ -334,26 +341,26 @@ bool wxBitmap::LoadFile( const wxString &name, int WXUNUSED(type) ) #endif return FALSE; -}; +} wxPalette *wxBitmap::GetPalette(void) const { if (!Ok()) return NULL; return M_BMPDATA->m_palette; -}; +} GdkPixmap *wxBitmap::GetPixmap(void) const { if (!Ok()) return NULL; return M_BMPDATA->m_pixmap; -}; +} GdkBitmap *wxBitmap::GetBitmap(void) const { if (!Ok()) return NULL; return M_BMPDATA->m_bitmap; -}; +} void wxBitmap::DestroyImage(void) { @@ -363,12 +370,12 @@ void wxBitmap::DestroyImage(void) { gdk_imlib_destroy_image( M_BMPDATA->m_image ); M_BMPDATA->m_image = NULL; - }; -}; + } +} void wxBitmap::RecreateImage(void) { -}; +} void wxBitmap::Render(void) { @@ -377,16 +384,17 @@ void wxBitmap::Render(void) #ifdef USE_GDK_IMLIB gdk_imlib_render( M_BMPDATA->m_image, M_BMPDATA->m_image->rgb_width, M_BMPDATA->m_image->rgb_height ); - + M_BMPDATA->m_width = M_BMPDATA->m_image->rgb_width; + M_BMPDATA->m_height = M_BMPDATA->m_image->rgb_height; M_BMPDATA->m_pixmap = gdk_imlib_move_image( M_BMPDATA->m_image ); GdkBitmap *mask = gdk_imlib_move_mask( M_BMPDATA->m_image ); if (mask) { M_BMPDATA->m_mask = new wxMask(); M_BMPDATA->m_mask->m_bitmap = mask; - }; + } #endif -}; +}