X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ef0e92205a01c7d0ca6f381cc690cb5d4fa595c9..cfcf1d6ee31a87a20b1e6f198612be41b2bfecfa:/include/wx/osx/icon.h diff --git a/include/wx/osx/icon.h b/include/wx/osx/icon.h index 8ef62dac14..d0b2d80be8 100644 --- a/include/wx/osx/icon.h +++ b/include/wx/osx/icon.h @@ -1,5 +1,97 @@ -#ifdef __WXMAC_CLASSIC__ -#include "wx/osx/classic/icon.h" -#else -#include "wx/osx/carbon/icon.h" +///////////////////////////////////////////////////////////////////////////// +// Name: wx/osx/icon.h +// Purpose: wxIcon class +// Author: Stefan Csomor +// Modified by: +// Created: 1998-01-01 +// RCS-ID: $Id$ +// Copyright: (c) Stefan Csomor +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_ICON_H_ +#define _WX_ICON_H_ + +#include "wx/bitmap.h" + +// Icon +class WXDLLIMPEXP_CORE wxIcon : public wxGDIObject +{ +public: + wxIcon(); + + wxIcon(const char* const* data); + wxIcon(const char bits[], int width , int height ); + wxIcon(const wxString& name, wxBitmapType flags = wxICON_DEFAULT_TYPE, + int desiredWidth = -1, int desiredHeight = -1); + wxIcon(const wxIconLocation& loc) + { + LoadFile(loc.GetFileName(), wxBITMAP_TYPE_ICON); + } + + wxIcon(WXHICON icon, const wxSize& size); + + virtual ~wxIcon(); + + bool LoadFile(const wxString& name, wxBitmapType flags = wxICON_DEFAULT_TYPE, + int desiredWidth = -1, int desiredHeight = -1); + + + // 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); + + int GetWidth() const; + int GetHeight() const; + int GetDepth() const; + void SetWidth(int w); + void SetHeight(int h); + void SetDepth(int d); + void SetOk(bool isOk); + + wxSize GetSize() const { return wxSize(GetWidth(), GetHeight()); } + + WXHICON GetHICON() const; + +protected: + virtual wxGDIRefData *CreateGDIRefData() const; + virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; + +private: + DECLARE_DYNAMIC_CLASS(wxIcon) + + bool LoadIconFromSystemResource(const wxString& resourceName, int desiredWidth, int desiredHeight); + bool LoadIconFromBundleResource(const wxString& resourceName, int desiredWidth, int desiredHeight); + bool LoadIconFromFile(const wxString& filename, int desiredWidth, int desiredHeight); + bool LoadIconAsBitmap(const wxString& filename, wxBitmapType flags = wxICON_DEFAULT_TYPE, int desiredWidth = -1, int desiredHeight = -1); +}; + +class WXDLLIMPEXP_CORE wxICONResourceHandler: public wxBitmapHandler +{ +public: + wxICONResourceHandler() + { + SetName(wxT("ICON resource")); + SetExtension(wxEmptyString); + SetType(wxBITMAP_TYPE_ICON_RESOURCE); + } + + virtual bool LoadFile(wxBitmap *bitmap, + const wxString& name, + wxBitmapType flags, + int desiredWidth = -1, + int desiredHeight = -1); + + // unhide the base class virtual + virtual bool LoadFile(wxBitmap *bitmap, + const wxString& name, + wxBitmapType flags) + { return LoadFile(bitmap, name, flags, -1, -1); } + +private: + DECLARE_DYNAMIC_CLASS(wxICONResourceHandler) +}; + #endif + // _WX_ICON_H_