1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: SWIG interface defining "stock" GDI objects
7 // Created: 13-Sept-2003
9 // Copyright: (c) 2003 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
16 //---------------------------------------------------------------------------
62 virtual ~wxStockGDI();
63 static void DeleteAll();
65 static wxStockGDI& instance();
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);
72 virtual const wxFont* GetFont(Item item);
77 %# This function makes a class used to do delayed initialization of some
78 %# stock wx objects. When they are used the first time then an init function
79 %# is called to make the real instance, which is then used to replace the
80 %# original instance and class seen by the programmer.
81 def _wxPyMakeDelayedInitWrapper(initFunc):
82 class _wxPyStockObjectWrapper(object):
83 def __init__(self, *args):
85 def __getattr__(self, name):
86 obj = initFunc(*self._args)
87 self.__class__ = obj.__class__
88 self.__dict__ = obj.__dict__
89 return getattr(self, name)
91 return self.__getattr__("__str__")()
93 return self.__getattr__("__repr__")()
94 return _wxPyStockObjectWrapper
96 def _wxPyFontInit(id):
97 return StockGDI.instance().GetFont(id)
99 _wxPyStockPen = _wxPyMakeDelayedInitWrapper(StockGDI.GetPen)
100 _wxPyStockBrush = _wxPyMakeDelayedInitWrapper(StockGDI.GetBrush)
101 _wxPyStockCursor = _wxPyMakeDelayedInitWrapper(StockGDI.GetCursor)
102 _wxPyStockColour = _wxPyMakeDelayedInitWrapper(StockGDI.GetColour)
103 _wxPyStockFont = _wxPyMakeDelayedInitWrapper(_wxPyFontInit)
106 ITALIC_FONT = _wxPyStockCursor(StockGDI.FONT_ITALIC)
107 NORMAL_FONT = _wxPyStockCursor(StockGDI.FONT_NORMAL)
108 SMALL_FONT = _wxPyStockCursor(StockGDI.FONT_SMALL)
109 SWISS_FONT = _wxPyStockCursor(StockGDI.FONT_SWISS)
111 BLACK_DASHED_PEN = _wxPyStockPen(StockGDI.PEN_BLACKDASHED)
112 BLACK_PEN = _wxPyStockPen(StockGDI.PEN_BLACK)
113 CYAN_PEN = _wxPyStockPen(StockGDI.PEN_CYAN)
114 GREEN_PEN = _wxPyStockPen(StockGDI.PEN_GREEN)
115 GREY_PEN = _wxPyStockPen(StockGDI.PEN_GREY)
116 LIGHT_GREY_PEN = _wxPyStockPen(StockGDI.PEN_LIGHTGREY)
117 MEDIUM_GREY_PEN = _wxPyStockPen(StockGDI.PEN_MEDIUMGREY)
118 RED_PEN = _wxPyStockPen(StockGDI.PEN_RED)
119 TRANSPARENT_PEN = _wxPyStockPen(StockGDI.PEN_TRANSPARENT)
120 WHITE_PEN = _wxPyStockPen(StockGDI.PEN_WHITE)
122 BLACK_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_BLACK)
123 BLUE_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_BLUE)
124 CYAN_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_CYAN)
125 GREEN_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_GREEN)
126 GREY_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_GREY)
127 LIGHT_GREY_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_LIGHTGREY)
128 MEDIUM_GREY_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_MEDIUMGREY)
129 RED_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_RED)
130 TRANSPARENT_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_TRANSPARENT)
131 WHITE_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_WHITE)
133 BLACK = _wxPyStockColour(StockGDI.COLOUR_BLACK)
134 BLUE = _wxPyStockColour(StockGDI.COLOUR_BLUE)
135 CYAN = _wxPyStockColour(StockGDI.COLOUR_CYAN)
136 GREEN = _wxPyStockColour(StockGDI.COLOUR_GREEN)
137 LIGHT_GREY = _wxPyStockColour(StockGDI.COLOUR_LIGHTGREY)
138 RED = _wxPyStockColour(StockGDI.COLOUR_RED)
139 WHITE = _wxPyStockColour(StockGDI.COLOUR_WHITE)
141 CROSS_CURSOR = _wxPyStockCursor(StockGDI.CURSOR_CROSS)
142 HOURGLASS_CURSOR = _wxPyStockCursor(StockGDI.CURSOR_HOURGLASS)
143 STANDARD_CURSOR = _wxPyStockCursor(StockGDI.CURSOR_STANDARD)
153 const wxBitmap wxNullBitmap;
154 const wxIcon wxNullIcon;
155 const wxCursor wxNullCursor;
156 const wxPen wxNullPen;
157 const wxBrush wxNullBrush;
158 const wxPalette wxNullPalette;
159 const wxFont wxNullFont;
160 const wxColour wxNullColour;
167 // const wxBitmap& _wxPyInitNullBitmap() { return wxNullBitmap; }
168 // const wxIcon& _wxPyInitNullIcon() { return wxNullIcon; }
169 // const wxCursor& _wxPyInitNullCursor() { return wxNullCursor; }
170 // const wxPen& _wxPyInitNullPen() { return wxNullPen; }
171 // const wxBrush& _wxPyInitNullBrush() { return wxNullBrush; }
172 // const wxPalette& _wxPyInitNullPalette() { return wxNullPalette; }
173 // const wxFont& _wxPyInitNullFont() { return wxNullFont; }
174 // const wxColour& _wxPyInitNullColour() { return wxNullColour; }
178 // NullBitmap = _wxPyMakeDelayedInitWrapper(_wxPyInitNullBitmap)()
179 // NullIcon = _wxPyMakeDelayedInitWrapper(_wxPyInitNullIcon)()
180 // NullCursor = _wxPyMakeDelayedInitWrapper(_wxPyInitNullCursor)()
181 // NullPen = _wxPyMakeDelayedInitWrapper(_wxPyInitNullPen)()
182 // NullBrush = _wxPyMakeDelayedInitWrapper(_wxPyInitNullBrush)()
183 // NullPalette = _wxPyMakeDelayedInitWrapper(_wxPyInitNullPalette)()
184 // NullFont = _wxPyMakeDelayedInitWrapper(_wxPyInitNullFont)()
185 // NullColour = _wxPyMakeDelayedInitWrapper(_wxPyInitNullColour)()
189 //---------------------------------------------------------------------------
192 class wxGDIObjListBase {
199 class wxPenList : public wxGDIObjListBase {
202 wxPen* FindOrCreatePen(const wxColour& colour, int width, int style);
204 void AddPen(wxPen* pen);
205 void RemovePen(wxPen* pen);
207 AddPen = wx._deprecated(AddPen)
208 RemovePen = wx._deprecated(RemovePen)
214 class wxBrushList : public wxGDIObjListBase {
217 wxBrush * FindOrCreateBrush(const wxColour& colour, int style=wxSOLID);
219 void AddBrush(wxBrush *brush);
220 void RemoveBrush(wxBrush *brush);
222 AddBrush = wx._deprecated(AddBrush)
223 RemoveBrush = wx._deprecated(RemoveBrush)
229 class wxFontList : public wxGDIObjListBase {
232 wxFont * FindOrCreateFont(int point_size, int family, int style, int weight,
233 bool underline = false,
234 const wxString& facename = wxPyEmptyString,
235 wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
237 void AddFont(wxFont* font);
238 void RemoveFont(wxFont *font);
240 AddFont = wx._deprecated(AddFont)
241 RemoveFont = wx._deprecated(RemoveFont)
247 //---------------------------------------------------------------------------
249 MustHaveApp(wxColourDatabase);
251 class wxColourDatabase {
256 // find colour by name or name for the given colour
257 wxColour Find(const wxString& name) const;
258 wxString FindName(const wxColour& colour) const;
259 %pythoncode { FindColour = Find }
261 // add a new colour to the database
262 void AddColour(const wxString& name, const wxColour& colour);
265 void Append(const wxString& name, int red, int green, int blue) {
266 self->AddColour(name, wxColour(red, green, blue));
272 //---------------------------------------------------------------------------
276 wxFontList* _wxPyInitTheFontList() { return wxTheFontList; }
277 wxPenList* _wxPyInitThePenList() { return wxThePenList; }
278 wxBrushList* _wxPyInitTheBrushList() { return wxTheBrushList; }
279 wxColourDatabase* _wxPyInitTheColourDatabase() { return wxTheColourDatabase; }
283 wxTheFontList = _wxPyMakeDelayedInitWrapper(_wxPyInitTheFontList)()
284 wxThePenList = _wxPyMakeDelayedInitWrapper(_wxPyInitThePenList)()
285 wxTheBrushList = _wxPyMakeDelayedInitWrapper(_wxPyInitTheBrushList)()
286 wxTheColourDatabase = _wxPyMakeDelayedInitWrapper(_wxPyInitTheColourDatabase)()
289 //---------------------------------------------------------------------------
291 %pythoncode { NullColor = NullColour }