]>
Commit | Line | Data |
---|---|---|
1 | ///////////////////////////////////////////////////////////////////////////// | |
2 | // Name: _stockobjs.i | |
3 | // Purpose: SWIG interface defining "stock" GDI objects | |
4 | // | |
5 | // Author: Robin Dunn | |
6 | // | |
7 | // Created: 13-Sept-2003 | |
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 | %newgroup | |
18 | ||
19 | ||
20 | class wxStockGDI | |
21 | { | |
22 | public: | |
23 | enum Item { | |
24 | BRUSH_BLACK, | |
25 | BRUSH_BLUE, | |
26 | BRUSH_CYAN, | |
27 | BRUSH_GREEN, | |
28 | BRUSH_GREY, | |
29 | BRUSH_LIGHTGREY, | |
30 | BRUSH_MEDIUMGREY, | |
31 | BRUSH_RED, | |
32 | BRUSH_TRANSPARENT, | |
33 | BRUSH_WHITE, | |
34 | COLOUR_BLACK, | |
35 | COLOUR_BLUE, | |
36 | COLOUR_CYAN, | |
37 | COLOUR_GREEN, | |
38 | COLOUR_LIGHTGREY, | |
39 | COLOUR_RED, | |
40 | COLOUR_WHITE, | |
41 | CURSOR_CROSS, | |
42 | CURSOR_HOURGLASS, | |
43 | CURSOR_STANDARD, | |
44 | FONT_ITALIC, | |
45 | FONT_NORMAL, | |
46 | FONT_SMALL, | |
47 | FONT_SWISS, | |
48 | PEN_BLACK, | |
49 | PEN_BLACKDASHED, | |
50 | PEN_CYAN, | |
51 | PEN_GREEN, | |
52 | PEN_GREY, | |
53 | PEN_LIGHTGREY, | |
54 | PEN_MEDIUMGREY, | |
55 | PEN_RED, | |
56 | PEN_TRANSPARENT, | |
57 | PEN_WHITE, | |
58 | ITEMCOUNT | |
59 | }; | |
60 | ||
61 | wxStockGDI(); | |
62 | virtual ~wxStockGDI(); | |
63 | static void DeleteAll(); | |
64 | ||
65 | static wxStockGDI& instance(); | |
66 | ||
67 | static const wxBrush* GetBrush(Item item); | |
68 | static const wxColour* GetColour(Item item); | |
69 | static const wxCursor* GetCursor(Item item); | |
70 | static const wxPen* GetPen(Item item); | |
71 | ||
72 | virtual const wxFont* GetFont(Item item); | |
73 | ||
74 | %pythoncode { | |
75 | def _initStockObjects(): | |
76 | import wx | |
77 | wx.ITALIC_FONT.this = StockGDI.instance().GetFont(StockGDI.FONT_ITALIC).this | |
78 | wx.NORMAL_FONT.this = StockGDI.instance().GetFont(StockGDI.FONT_NORMAL).this | |
79 | wx.SMALL_FONT.this = StockGDI.instance().GetFont(StockGDI.FONT_SMALL).this | |
80 | wx.SWISS_FONT.this = StockGDI.instance().GetFont(StockGDI.FONT_SWISS).this | |
81 | ||
82 | wx.BLACK_DASHED_PEN.this = StockGDI.GetPen(StockGDI.PEN_BLACKDASHED).this | |
83 | wx.BLACK_PEN.this = StockGDI.GetPen(StockGDI.PEN_BLACK).this | |
84 | wx.CYAN_PEN.this = StockGDI.GetPen(StockGDI.PEN_CYAN).this | |
85 | wx.GREEN_PEN.this = StockGDI.GetPen(StockGDI.PEN_GREEN).this | |
86 | wx.GREY_PEN.this = StockGDI.GetPen(StockGDI.PEN_GREY).this | |
87 | wx.LIGHT_GREY_PEN.this = StockGDI.GetPen(StockGDI.PEN_LIGHTGREY).this | |
88 | wx.MEDIUM_GREY_PEN.this = StockGDI.GetPen(StockGDI.PEN_MEDIUMGREY).this | |
89 | wx.RED_PEN.this = StockGDI.GetPen(StockGDI.PEN_RED).this | |
90 | wx.TRANSPARENT_PEN.this = StockGDI.GetPen(StockGDI.PEN_TRANSPARENT).this | |
91 | wx.WHITE_PEN.this = StockGDI.GetPen(StockGDI.PEN_WHITE).this | |
92 | ||
93 | wx.BLACK_BRUSH.this = StockGDI.GetBrush(StockGDI.BRUSH_BLACK).this | |
94 | wx.BLUE_BRUSH.this = StockGDI.GetBrush(StockGDI.BRUSH_BLUE).this | |
95 | wx.CYAN_BRUSH.this = StockGDI.GetBrush(StockGDI.BRUSH_CYAN).this | |
96 | wx.GREEN_BRUSH.this = StockGDI.GetBrush(StockGDI.BRUSH_GREEN).this | |
97 | wx.GREY_BRUSH.this = StockGDI.GetBrush(StockGDI.BRUSH_GREY).this | |
98 | wx.LIGHT_GREY_BRUSH.this = StockGDI.GetBrush(StockGDI.BRUSH_LIGHTGREY).this | |
99 | wx.MEDIUM_GREY_BRUSH.this = StockGDI.GetBrush(StockGDI.BRUSH_MEDIUMGREY).this | |
100 | wx.RED_BRUSH.this = StockGDI.GetBrush(StockGDI.BRUSH_RED).this | |
101 | wx.TRANSPARENT_BRUSH.this = StockGDI.GetBrush(StockGDI.BRUSH_TRANSPARENT).this | |
102 | wx.WHITE_BRUSH.this = StockGDI.GetBrush(StockGDI.BRUSH_WHITE).this | |
103 | ||
104 | wx.BLACK.this = StockGDI.GetColour(StockGDI.COLOUR_BLACK).this | |
105 | wx.BLUE.this = StockGDI.GetColour(StockGDI.COLOUR_BLUE).this | |
106 | wx.CYAN.this = StockGDI.GetColour(StockGDI.COLOUR_CYAN).this | |
107 | wx.GREEN.this = StockGDI.GetColour(StockGDI.COLOUR_GREEN).this | |
108 | wx.LIGHT_GREY.this = StockGDI.GetColour(StockGDI.COLOUR_LIGHTGREY).this | |
109 | wx.RED.this = StockGDI.GetColour(StockGDI.COLOUR_RED).this | |
110 | wx.WHITE.this = StockGDI.GetColour(StockGDI.COLOUR_WHITE).this | |
111 | ||
112 | wx.CROSS_CURSOR.this = StockGDI.GetCursor(StockGDI.CURSOR_CROSS).this | |
113 | wx.HOURGLASS_CURSOR.this = StockGDI.GetCursor(StockGDI.CURSOR_HOURGLASS).this | |
114 | wx.STANDARD_CURSOR.this = StockGDI.GetCursor(StockGDI.CURSOR_STANDARD).this | |
115 | ||
116 | wx.TheFontList.this = _wxPyInitTheFontList().this | |
117 | wx.ThePenList.this = _wxPyInitThePenList().this | |
118 | wx.TheBrushList.this = _wxPyInitTheBrushList().this | |
119 | wx.TheColourDatabase.this = _wxPyInitTheColourDatabase().this | |
120 | ||
121 | ||
122 | _initStockObjects = staticmethod(_initStockObjects) | |
123 | } | |
124 | }; | |
125 | ||
126 | ||
127 | %pythoncode { | |
128 | %# Create an uninitialized instance for the stock objects, they will | |
129 | %# be initialized later when the wx.App object is created. | |
130 | ITALIC_FONT = Font.__new__(Font) | |
131 | NORMAL_FONT = Font.__new__(Font) | |
132 | SMALL_FONT = Font.__new__(Font) | |
133 | SWISS_FONT = Font.__new__(Font) | |
134 | ||
135 | BLACK_DASHED_PEN = Pen.__new__(Pen) | |
136 | BLACK_PEN = Pen.__new__(Pen) | |
137 | CYAN_PEN = Pen.__new__(Pen) | |
138 | GREEN_PEN = Pen.__new__(Pen) | |
139 | GREY_PEN = Pen.__new__(Pen) | |
140 | LIGHT_GREY_PEN = Pen.__new__(Pen) | |
141 | MEDIUM_GREY_PEN = Pen.__new__(Pen) | |
142 | RED_PEN = Pen.__new__(Pen) | |
143 | TRANSPARENT_PEN = Pen.__new__(Pen) | |
144 | WHITE_PEN = Pen.__new__(Pen) | |
145 | ||
146 | BLACK_BRUSH = Brush.__new__(Brush) | |
147 | BLUE_BRUSH = Brush.__new__(Brush) | |
148 | CYAN_BRUSH = Brush.__new__(Brush) | |
149 | GREEN_BRUSH = Brush.__new__(Brush) | |
150 | GREY_BRUSH = Brush.__new__(Brush) | |
151 | LIGHT_GREY_BRUSH = Brush.__new__(Brush) | |
152 | MEDIUM_GREY_BRUSH = Brush.__new__(Brush) | |
153 | RED_BRUSH = Brush.__new__(Brush) | |
154 | TRANSPARENT_BRUSH = Brush.__new__(Brush) | |
155 | WHITE_BRUSH = Brush.__new__(Brush) | |
156 | ||
157 | BLACK = Colour.__new__(Colour) | |
158 | BLUE = Colour.__new__(Colour) | |
159 | CYAN = Colour.__new__(Colour) | |
160 | GREEN = Colour.__new__(Colour) | |
161 | LIGHT_GREY = Colour.__new__(Colour) | |
162 | RED = Colour.__new__(Colour) | |
163 | WHITE = Colour.__new__(Colour) | |
164 | ||
165 | CROSS_CURSOR = Cursor.__new__(Cursor) | |
166 | HOURGLASS_CURSOR = Cursor.__new__(Cursor) | |
167 | STANDARD_CURSOR = Cursor.__new__(Cursor) | |
168 | } | |
169 | ||
170 | ||
171 | %immutable; | |
172 | %threadWrapperOff; | |
173 | ||
174 | const wxBitmap wxNullBitmap; | |
175 | const wxIcon wxNullIcon; | |
176 | const wxCursor wxNullCursor; | |
177 | const wxPen wxNullPen; | |
178 | const wxBrush wxNullBrush; | |
179 | const wxPalette wxNullPalette; | |
180 | const wxFont wxNullFont; | |
181 | const wxColour wxNullColour; | |
182 | const wxIconBundle wxNullIconBundle; | |
183 | ||
184 | %threadWrapperOn; | |
185 | %mutable; | |
186 | ||
187 | ||
188 | //--------------------------------------------------------------------------- | |
189 | ||
190 | ||
191 | class wxGDIObjListBase { | |
192 | public: | |
193 | wxGDIObjListBase(); | |
194 | ~wxGDIObjListBase(); | |
195 | }; | |
196 | ||
197 | ||
198 | class wxPenList : public wxGDIObjListBase { | |
199 | public: | |
200 | ||
201 | wxPen* FindOrCreatePen(const wxColour& colour, int width, int style); | |
202 | }; | |
203 | ||
204 | ||
205 | class wxBrushList : public wxGDIObjListBase { | |
206 | public: | |
207 | ||
208 | wxBrush * FindOrCreateBrush(const wxColour& colour, int style=wxSOLID); | |
209 | }; | |
210 | ||
211 | ||
212 | class wxFontList : public wxGDIObjListBase { | |
213 | public: | |
214 | ||
215 | wxFont * FindOrCreateFont(int point_size, int family, int style, int weight, | |
216 | bool underline = false, | |
217 | const wxString& facename = wxPyEmptyString, | |
218 | wxFontEncoding encoding = wxFONTENCODING_DEFAULT); | |
219 | }; | |
220 | ||
221 | //--------------------------------------------------------------------------- | |
222 | ||
223 | MustHaveApp(wxColourDatabase); | |
224 | ||
225 | class wxColourDatabase { | |
226 | public: | |
227 | wxColourDatabase(); | |
228 | ~wxColourDatabase(); | |
229 | ||
230 | // find colour by name or name for the given colour | |
231 | wxColour Find(const wxString& name) const; | |
232 | wxString FindName(const wxColour& colour) const; | |
233 | %pythoncode { FindColour = Find } | |
234 | ||
235 | // add a new colour to the database | |
236 | void AddColour(const wxString& name, const wxColour& colour); | |
237 | ||
238 | %extend { | |
239 | void Append(const wxString& name, int red, int green, int blue) { | |
240 | self->AddColour(name, wxColour(red, green, blue)); | |
241 | } | |
242 | } | |
243 | }; | |
244 | ||
245 | ||
246 | //--------------------------------------------------------------------------- | |
247 | %newgroup | |
248 | ||
249 | %inline { | |
250 | wxFontList* _wxPyInitTheFontList() { return wxTheFontList; } | |
251 | wxPenList* _wxPyInitThePenList() { return wxThePenList; } | |
252 | wxBrushList* _wxPyInitTheBrushList() { return wxTheBrushList; } | |
253 | wxColourDatabase* _wxPyInitTheColourDatabase() { return wxTheColourDatabase; } | |
254 | } | |
255 | ||
256 | %pythoncode { | |
257 | ||
258 | %# Create an uninitialized instance for the stock objects, they will | |
259 | %# be initialized later when the wx.App object is created. | |
260 | TheFontList = FontList.__new__(FontList) | |
261 | ThePenList = PenList.__new__(PenList) | |
262 | TheBrushList = BrushList.__new__(BrushList) | |
263 | TheColourDatabase = ColourDatabase.__new__(ColourDatabase) | |
264 | } | |
265 | ||
266 | ||
267 | //--------------------------------------------------------------------------- | |
268 | ||
269 | %pythoncode { NullColor = NullColour } | |
270 | ||
271 | ||
272 | ||
273 |