]> git.saurik.com Git - wxWidgets.git/blame - include/wx/iconbndl.h
Applied patch [ 1212208 ] Fix a bug in wxTreeCtrl with wxTR_MULTIPLE
[wxWidgets.git] / include / wx / iconbndl.h
CommitLineData
f618020a
MB
1///////////////////////////////////////////////////////////////////////////////
2// Name: wx/iconbndl.h
3// Purpose: wxIconBundle
4// Author: Mattia barbon
5// Modified by:
6// Created: 23.03.02
7// RCS-ID: $Id$
8// Copyright: (c) Mattia Barbon
65571936 9// Licence: wxWindows licence
f618020a
MB
10///////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_ICONBNDL_H_
13#define _WX_ICONBNDL_H_
14
12028905 15#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
f618020a
MB
16#pragma interface "iconbndl.h"
17#endif
18
32f96f74 19#include "wx/dynarray.h"
f618020a
MB
20// for wxSize
21#include "wx/gdicmn.h"
22
62a9d04c
VS
23class WXDLLIMPEXP_CORE wxIcon;
24class WXDLLIMPEXP_BASE wxString;
f618020a
MB
25
26WX_DECLARE_EXPORTED_OBJARRAY( wxIcon, wxIconArray );
27
28// this class can't load bitmaps of type wxBITMAP_TYPE_ICO_RESOURCE,
29// if you need them, you have to load them manually and call
30// wxIconCollection::AddIcon
31class WXDLLEXPORT wxIconBundle
32{
33public:
34 // default constructor
d84afea9 35 wxIconBundle() : m_icons() {}
f618020a 36 // initializes the bundle with the icon(s) found in the file
d84afea9 37 wxIconBundle( const wxString& file, long type ) : m_icons()
f618020a
MB
38 { AddIcon( file, type ); }
39 // initializes the bundle with a single icon
d84afea9 40 wxIconBundle( const wxIcon& icon ) : m_icons()
f618020a
MB
41 { AddIcon( icon ); }
42
43 const wxIconBundle& operator =( const wxIconBundle& ic );
d84afea9 44 wxIconBundle( const wxIconBundle& ic ) : m_icons()
f618020a
MB
45 { *this = ic; }
46
47 ~wxIconBundle() { DeleteIcons(); }
48
49 // adds all the icons contained in the file to the collection,
50 // if the collection already contains icons with the same
51 // width and height, they are replaced
52 void AddIcon( const wxString& file, long type );
53 // adds the icon to the collection, if the collection already
54 // contains an icon with the same width and height, it is
55 // replaced
56 void AddIcon( const wxIcon& icon );
57
58 // returns the icon with the given size; if no such icon exists,
59 // returns the icon with size wxSYS_ICON_[XY]; if no such icon exists,
60 // returns the first icon in the bundle
61 const wxIcon& GetIcon( const wxSize& size ) const;
62 // equivalent to GetIcon( wxSize( size, size ) )
7beb59f3 63 const wxIcon& GetIcon( wxCoord size = wxDefaultCoord ) const
f618020a
MB
64 { return GetIcon( wxSize( size, size ) ); }
65private:
66 // delete all icons
67 void DeleteIcons();
68public:
69 wxIconArray m_icons;
70};
71
72#endif
73 // _WX_ICONBNDL_H_