wxWidgets/include/wx/os2/icon.h
Vadim Zeitlin 55ccdb93e4 COW cleanup patch (1583966):
1. perform deep comparison for the classes for which it makes sense in the
   ports where this wasn't done yet
2. remove (shallow) comparison operators for the classes for which it does
   not make sense (such as wxBitmap)
3. makes wxBitmap use COW on all ports
4. adds wxObject::IsRefTo()
5. centralizes and improves COW docs


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-30 19:26:48 +00:00

91 lines
2.6 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: icon.h
// Purpose: wxIcon class
// Author: David Webster
// Modified by:
// Created: 10/09/99
// RCS-ID: $Id$
// Copyright: (c) David Webster
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_ICON_H_
#define _WX_ICON_H_
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "wx/bitmap.h"
#include "wx/os2/gdiimage.h"
#define wxIconRefDataBase wxGDIImageRefData
#define wxIconBase wxGDIImage
class WXDLLEXPORT wxIconRefData: public wxIconRefDataBase
{
public:
wxIconRefData() { };
virtual ~wxIconRefData() { Free(); }
virtual void Free();
}; // end of
// ---------------------------------------------------------------------------
// Icon
// ---------------------------------------------------------------------------
class WXDLLEXPORT wxIcon: public wxIconBase
{
public:
wxIcon();
wxIcon( const char bits[]
,int nWidth
,int nHeight
);
inline wxIcon(const char** ppData) { CreateIconFromXpm(ppData); }
inline wxIcon(char** ppData) { CreateIconFromXpm((const char**)ppData); }
wxIcon( const wxString& rName
,long lFlags = wxBITMAP_TYPE_ICO_RESOURCE
,int nDesiredWidth = -1
,int nDesiredHeight = -1
);
wxIcon(const wxIconLocation& loc)
{
LoadFile(loc.GetFileName(), wxBITMAP_TYPE_ICO);
}
virtual ~wxIcon();
bool LoadFile( const wxString& rName
,long lFlags = wxBITMAP_TYPE_ICO_RESOURCE
,int nDesiredWidth = -1
,int nDesiredHeight = -1
);
wxIconRefData *GetIconData() const { return (wxIconRefData *)m_refData; }
inline void SetHICON(WXHICON hIcon) { SetHandle((WXHANDLE)hIcon); }
inline WXHICON GetHICON() const { return (WXHICON)GetHandle(); }
inline bool IsXpm(void) const { return m_bIsXpm; };
inline const wxBitmap& GetXpmSrc(void) const { return m_vXpmSrc; }
void CopyFromBitmap(const wxBitmap& rBmp);
protected:
virtual wxGDIImageRefData* CreateData() const
{
return new wxIconRefData;
}
void CreateIconFromXpm(const char **ppData);
private:
bool m_bIsXpm;
wxBitmap m_vXpmSrc;
DECLARE_DYNAMIC_CLASS(wxIcon)
};
#endif
// _WX_ICON_H_