130 lines
3.8 KiB
C++
130 lines
3.8 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/icon.h
|
|
// Purpose: wxIcon base header
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created:
|
|
// Copyright: (c) Julian Smart
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_ICON_H_BASE_
|
|
#define _WX_ICON_H_BASE_
|
|
|
|
#include "wx/iconloc.h"
|
|
|
|
|
|
// a more readable way to tell
|
|
#define wxICON_SCREEN_DEPTH (-1)
|
|
|
|
|
|
// the wxICON_DEFAULT_TYPE (the wxIcon equivalent of wxBITMAP_DEFAULT_TYPE)
|
|
// constant defines the default argument value for wxIcon ctor and wxIcon::LoadFile()
|
|
// functions.
|
|
|
|
#if defined(__WXMSW__)
|
|
#define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_ICO_RESOURCE
|
|
#include "wx/msw/icon.h"
|
|
|
|
#define wxICON_DIFFERENT_FROM_BITMAP
|
|
#elif defined(__WXMOTIF__)
|
|
#define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM
|
|
#include "wx/motif/icon.h"
|
|
#elif defined(__WXGTK20__)
|
|
#ifdef __WINDOWS__
|
|
#define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_ICO_RESOURCE
|
|
#else
|
|
#define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM
|
|
#endif
|
|
#include "wx/generic/icon.h"
|
|
#elif defined(__WXGTK__)
|
|
#define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM
|
|
#include "wx/generic/icon.h"
|
|
#elif defined(__WXX11__)
|
|
#define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM
|
|
#include "wx/generic/icon.h"
|
|
#elif defined(__WXDFB__)
|
|
#define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM
|
|
#include "wx/generic/icon.h"
|
|
#elif defined(__WXMAC__)
|
|
#if wxOSX_USE_COCOA_OR_CARBON
|
|
#define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_ICON_RESOURCE
|
|
#ifndef __CPPAST__
|
|
#include "wx/generic/icon.h"
|
|
#else
|
|
#ifndef _WX_GENERIC_ICON_H_
|
|
#define _WX_GENERIC_ICON_H_
|
|
|
|
#include "wx/bitmap.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// wxIcon
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxIcon: public wxBitmap
|
|
{
|
|
public:
|
|
wxIcon();
|
|
|
|
wxIcon(const char* const* bits);
|
|
|
|
// For compatibility with wxMSW where desired size is sometimes required to
|
|
// distinguish between multiple icons in a resource.
|
|
wxIcon( const wxString& filename,
|
|
wxBitmapType type = wxICON_DEFAULT_TYPE,
|
|
int WXUNUSED(desiredWidth)=-1, int WXUNUSED(desiredHeight)=-1 ) :
|
|
wxBitmap(filename, type)
|
|
{
|
|
}
|
|
|
|
wxIcon(const wxIconLocation& loc)
|
|
: wxBitmap(loc.GetFileName(), wxBITMAP_TYPE_ANY)
|
|
{
|
|
}
|
|
|
|
bool LoadFile(const wxString& name, wxBitmapType flags,
|
|
int WXUNUSED(desiredWidth), int WXUNUSED(desiredHeight))
|
|
{ return wxBitmap::LoadFile(name, flags); }
|
|
|
|
// unhide the base class version
|
|
virtual bool LoadFile(const wxString& name,
|
|
wxBitmapType flags = wxICON_DEFAULT_TYPE) wxOVERRIDE
|
|
{ return wxBitmap::LoadFile(name, flags); }
|
|
|
|
// create from bitmap (which should have a mask unless it's monochrome):
|
|
// there shouldn't be any implicit bitmap -> icon conversion (i.e. no
|
|
// ctors, assignment operators...), but it's ok to have such function
|
|
void CopyFromBitmap(const wxBitmap& bmp);
|
|
|
|
private:
|
|
wxDECLARE_DYNAMIC_CLASS(wxIcon);
|
|
};
|
|
|
|
#endif // _WX_GENERIC_ICON_H_
|
|
#endif
|
|
#else
|
|
// iOS and others
|
|
#define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_PNG_RESOURCE
|
|
#include "wx/generic/icon.h"
|
|
#endif
|
|
#elif defined(__WXQT__)
|
|
#define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM
|
|
#include "wx/generic/icon.h"
|
|
#endif
|
|
|
|
#ifndef wxICON_DIFFERENT_FROM_BITMAP
|
|
#define wxICON_IS_BITMAP
|
|
#endif
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// wxVariant support
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#if wxUSE_VARIANT
|
|
#include "wx/variant.h"
|
|
DECLARE_VARIANT_OBJECT_EXPORTED(wxIcon,WXDLLIMPEXP_CORE)
|
|
#endif
|
|
|
|
|
|
#endif
|
|
// _WX_ICON_H_BASE_
|