]> git.saurik.com Git - wxWidgets.git/blob - wxPython/src/_icon.i
ATTRIBUTE_PRINTF doesn't work with wchar_t* format strings in gcc
[wxWidgets.git] / wxPython / src / _icon.i
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: _icon.i
3 // Purpose: SWIG interface for wxIcon and related classes
4 //
5 // Author: Robin Dunn
6 //
7 // Created: 7-July-1997
8 // RCS-ID: $Id$
9 // Copyright: (c) 2003 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
12
13 // Not a %module
14
15
16 //---------------------------------------------------------------------------
17 %{
18 #include <wx/iconbndl.h>
19 %}
20 //---------------------------------------------------------------------------
21
22
23 MustHaveApp(wxIcon);
24
25 class wxIcon : public wxGDIObject
26 {
27 public:
28 wxIcon(const wxString& name, wxBitmapType type,
29 int desiredWidth = -1, int desiredHeight = -1);
30 ~wxIcon();
31
32 // alternate constructors
33 %RenameCtor(EmptyIcon, wxIcon());
34 %RenameCtor(IconFromLocation, wxIcon(const wxIconLocation& loc));
35 %extend {
36 %RenameCtor(IconFromBitmap, wxIcon(const wxBitmap& bmp))
37 {
38 wxIcon* icon = new wxIcon();
39 icon->CopyFromBitmap(bmp);
40 return icon;
41 }
42 %RenameCtor(IconFromXPMData, wxIcon(PyObject* listOfStrings))
43 {
44 char** cArray = NULL;
45 wxIcon* icon;
46
47 cArray = ConvertListOfStrings(listOfStrings);
48 if (! cArray)
49 return NULL;
50 icon = new wxIcon(cArray);
51 delete [] cArray;
52 return icon;
53 }
54 }
55
56
57 #ifndef __WXMAC__
58 bool LoadFile(const wxString& name, wxBitmapType type);
59 #endif
60
61 // wxGDIImage methods
62 #ifdef __WXMSW__
63 long GetHandle();
64 %extend {
65 void SetHandle(long handle) { self->SetHandle((WXHANDLE)handle); }
66 }
67 #endif
68 bool IsOk();
69 %pythoncode { Ok = IsOk }
70 int GetWidth();
71 int GetHeight();
72 int GetDepth();
73 void SetWidth(int w);
74 void SetHeight(int h);
75 void SetDepth(int d);
76 #ifdef __WXMSW__
77 void SetSize(const wxSize& size);
78 #endif
79 void CopyFromBitmap(const wxBitmap& bmp);
80
81 %pythoncode { def __nonzero__(self): return self.IsOk() }
82
83 %property(Depth, GetDepth, SetDepth, doc="See `GetDepth` and `SetDepth`");
84 %property(Height, GetHeight, SetHeight, doc="See `GetHeight` and `SetHeight`");
85 %property(Width, GetWidth, SetWidth, doc="See `GetWidth` and `SetWidth`");
86
87 };
88
89 //---------------------------------------------------------------------------
90
91 class wxIconLocation
92 {
93 public:
94 // ctor takes the name of the file where the icon is
95 %extend {
96 wxIconLocation(const wxString* filename = &wxPyEmptyString, int num = 0) {
97 #ifdef __WXMSW__
98 return new wxIconLocation(*filename, num);
99 #else
100 return new wxIconLocation(*filename);
101 #endif
102 }
103 }
104
105 ~wxIconLocation();
106
107
108 // returns True if this object is valid/initialized
109 bool IsOk() const;
110 %pythoncode { def __nonzero__(self): return self.IsOk() }
111
112 // set/get the icon file name
113 void SetFileName(const wxString& filename);
114 const wxString& GetFileName() const;
115
116 %extend {
117 void SetIndex(int num) {
118 #ifdef __WXMSW__
119 self->SetIndex(num);
120 #else
121 // do nothing
122 #endif
123 }
124
125 int GetIndex() {
126 #ifdef __WXMSW__
127 return self->GetIndex();
128 #else
129 return -1;
130 #endif
131 }
132 }
133
134 %property(FileName, GetFileName, SetFileName, doc="See `GetFileName` and `SetFileName`");
135 %property(Index, GetIndex, SetIndex, doc="See `GetIndex` and `SetIndex`");
136
137 };
138
139
140
141
142 //---------------------------------------------------------------------------
143
144 class wxIconBundle
145 {
146 public:
147 // default constructor
148 wxIconBundle();
149
150 // initializes the bundle with the icon(s) found in the file
151 %RenameCtor(IconBundleFromFile, wxIconBundle( const wxString& file, long type ));
152
153 // initializes the bundle with a single icon
154 %RenameCtor(IconBundleFromIcon, wxIconBundle( const wxIcon& icon ));
155
156 ~wxIconBundle();
157
158 virtual bool IsOk() const;
159 %pythoncode { def __nonzero__(self): return self.IsOk() }
160
161
162 DocDeclStr(
163 void , AddIcon( const wxIcon& icon ),
164 "Adds the icon to the collection, if the collection already contains an
165 icon with the same width and height, it is replaced", "");
166
167
168 DocDeclStrName(
169 void , AddIcon( const wxString& file, long type ),
170 "Adds all the icons contained in the file to the collection, if the
171 collection already contains icons with the same width and height, they
172 are replaced", "",
173 AddIconFromFile);
174
175
176 DocDeclStr(
177 const wxIcon& , GetIcon( const wxSize& size ) const,
178 "Returns the icon with the given size; if no such icon exists, returns
179 the icon with size wxSYS_ICON_[XY]; if no such icon exists, returns
180 the first icon in the bundle", "");
181
182
183
184 DocDeclStr(
185 wxIcon , GetIconOfExactSize(const wxSize& size) const,
186 "Returns the icon exactly of the specified size or wxNullIcon if no
187 icon of exactly given size are available.", "");
188
189
190
191 DocDeclStr(
192 size_t , GetIconCount() const,
193 "return the number of available icons", "");
194
195
196 DocDeclStr(
197 wxIcon , GetIconByIndex(size_t n) const,
198 "Return the icon at index (must be < GetIconCount())", "");
199
200
201 DocDeclStr(
202 bool , IsEmpty() const,
203 "Check if we have any icons at all", "");
204
205 };
206
207 //---------------------------------------------------------------------------