icon support moved to wxBitmap, allowing for fully transparent usage

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10180 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2001-05-16 16:23:13 +00:00
parent 513903c4f9
commit 3dec57adfd
20 changed files with 1273 additions and 808 deletions

View File

@@ -69,7 +69,7 @@ protected:
WXHBITMAP m_maskBitmap;
};
enum { kMacBitmapTypeUnknownType , kMacBitmapTypeGrafWorld, kMacBitmapTypePict } ;
enum { kMacBitmapTypeUnknownType , kMacBitmapTypeGrafWorld, kMacBitmapTypePict , kMacBitmapTypeIcon } ;
class WXDLLEXPORT wxBitmapRefData: public wxGDIRefData
{
@@ -92,6 +92,7 @@ public:
int m_bitmapType ;
PicHandle m_hPict ;
WXHBITMAP m_hBitmap;
WXHICON m_hIcon ;
wxMask * m_bitmapMask; // Optional mask
};
@@ -211,6 +212,8 @@ protected:
public:
void SetHBITMAP(WXHBITMAP bmp);
WXHBITMAP GetHBITMAP() const;
void SetHICON(WXHICON ico);
inline WXHICON GetHICON() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_hIcon : 0); }
PicHandle GetPict() const;

View File

@@ -72,7 +72,7 @@ class WXDLLEXPORT wxDC: public wxDCBase
virtual void Clear();
virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return TRUE; };
virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return TRUE; }
virtual void EndDoc(void) {};
virtual void StartPage(void) {};
@@ -235,21 +235,22 @@ protected:
wxCoord xoffset, wxCoord yoffset,
int fillStyle = wxODDEVEN_RULE);
//
public:
//begin wxmac
protected:
//begin wxmac
// Variables used for scaling
double m_mm_to_pix_x,m_mm_to_pix_y;
bool m_needComputeScaleX,m_needComputeScaleY; // not yet used
long m_internalDeviceOriginX,m_internalDeviceOriginY; // If un-scrolled is non-zero or
// d.o. changes with scrolling.
// Set using SetInternalDeviceOrigin().
// not yet used
bool m_needComputeScaleX,m_needComputeScaleY;
// If un-scrolled is non-zero or d.o. changes with scrolling.
// Set using SetInternalDeviceOrigin().
long m_internalDeviceOriginX,m_internalDeviceOriginY;
// To be set by external classes such as wxScrolledWindow
// using SetDeviceOrigin()
long m_externalDeviceOriginX,m_externalDeviceOriginY;
// Begin implementation for Mac
public:
long m_externalDeviceOriginX,m_externalDeviceOriginY; // To be set by external classes
// such as wxScrolledWindow
// using SetDeviceOrigin()
GrafPtr m_macPort ;
GWorldPtr m_macMask ;

View File

@@ -18,21 +18,6 @@
#include "wx/bitmap.h"
class WXDLLEXPORT wxIconRefData: public wxBitmapRefData
{
friend class WXDLLEXPORT wxBitmap;
friend class WXDLLEXPORT wxIcon;
public:
wxIconRefData();
~wxIconRefData();
public:
WXHICON m_hIcon;
};
#define M_ICONDATA ((wxIconRefData *)m_refData)
#define M_ICONHANDLERDATA ((wxIconRefData *)bitmap->GetRefData())
// Icon
class WXDLLEXPORT wxIcon: public wxBitmap
{
@@ -44,8 +29,8 @@ public:
// Copy constructors
inline wxIcon(const wxIcon& icon) { Ref(icon); }
wxIcon( const char **bits, int width=-1, int height=-1 );
wxIcon( char **bits, int width=-1, int height=-1 );
wxIcon( const char **data );
wxIcon( char **data );
wxIcon(const char bits[], int width, int height);
wxIcon(const wxString& name, long flags = wxBITMAP_TYPE_ICON_RESOURCE,
int desiredWidth = -1, int desiredHeight = -1);
@@ -59,11 +44,6 @@ public:
inline wxIcon& operator = (const wxIcon& icon) { if (*this == icon) return (*this); Ref(icon); return *this; }
inline bool operator == (const wxIcon& icon) { return m_refData == icon.m_refData; }
inline bool operator != (const wxIcon& icon) { return m_refData != icon.m_refData; }
void SetHICON(WXHICON ico);
inline WXHICON GetHICON() const { return (M_ICONDATA ? M_ICONDATA->m_hIcon : 0); }
virtual bool Ok() const { return (m_refData != NULL) ; }
};
/*

View File

@@ -50,21 +50,9 @@ class WXDLLEXPORT wxStaticBitmap: public wxControl
virtual void OnPaint( wxPaintEvent &event ) ;
void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO);
inline wxBitmap& GetBitmap() const { return (wxBitmap&) m_messageBitmap; }
// for compatibility with wxMSW
const wxIcon& GetIcon() const
{
// don't use wxDynamicCast, icons and bitmaps are really the same thing
// in wxGTK
return (const wxIcon &)m_messageBitmap;
}
// for compatibility with wxMSW
void SetIcon(const wxIcon& icon)
{
SetBitmap( (const wxBitmap&) icon );
}
inline wxBitmap& GetBitmap() const { return m_messageBitmap; }
const wxIcon& GetIcon() const { return (const wxIcon&) GetBitmap() ; }
void SetIcon(const wxIcon& icon) {SetBitmap( icon ) ; }
// overriden base class virtuals
virtual bool AcceptsFocus() const { return FALSE; }