+class wxStockGDI
+{
+public:
+ enum Item {
+ BRUSH_BLACK,
+ BRUSH_BLUE,
+ BRUSH_CYAN,
+ BRUSH_GREEN,
+ BRUSH_GREY,
+ BRUSH_LIGHTGREY,
+ BRUSH_MEDIUMGREY,
+ BRUSH_RED,
+ BRUSH_TRANSPARENT,
+ BRUSH_WHITE,
+ COLOUR_BLACK,
+ COLOUR_BLUE,
+ COLOUR_CYAN,
+ COLOUR_GREEN,
+ COLOUR_LIGHTGREY,
+ COLOUR_RED,
+ COLOUR_WHITE,
+ CURSOR_CROSS,
+ CURSOR_HOURGLASS,
+ CURSOR_STANDARD,
+ FONT_ITALIC,
+ FONT_NORMAL,
+ FONT_SMALL,
+ FONT_SWISS,
+ PEN_BLACK,
+ PEN_BLACKDASHED,
+ PEN_CYAN,
+ PEN_GREEN,
+ PEN_GREY,
+ PEN_LIGHTGREY,
+ PEN_MEDIUMGREY,
+ PEN_RED,
+ PEN_TRANSPARENT,
+ PEN_WHITE,
+ ITEMCOUNT
+ };
+
+ wxStockGDI();
+ virtual ~wxStockGDI();
+ static void DeleteAll();
+
+ static wxStockGDI& instance();
+
+ static const wxBrush* GetBrush(Item item);
+ static const wxColour* GetColour(Item item);
+ static const wxCursor* GetCursor(Item item);
+ static const wxPen* GetPen(Item item);
+
+ virtual const wxFont* GetFont(Item item);
+};
+
+
+%pythoncode {
+%# This function makes a class used to do delayed initialization of some
+%# stock wx objects. When they are used the first time then an init function
+%# is called to make the real instance, which is then used to replace the
+%# original instance and class seen by the programmer.
+def _wxPyMakeDelayedInitWrapper(initFunc):
+ class _wxPyStockObjectWrapper(object):
+ def __init__(self, *args):
+ self._args = args
+ def __getattr__(self, name):
+ obj = initFunc(*self._args)
+ self.__class__ = obj.__class__
+ self.__dict__ = obj.__dict__
+ return getattr(self, name)
+ def __str__(self):
+ return self.__getattr__("__str__")()
+ def __repr__(self):
+ return self.__getattr__("__repr__")()
+ return _wxPyStockObjectWrapper
+
+def _wxPyFontInit(id):
+ return StockGDI.instance().GetFont(id)
+
+_wxPyStockPen = _wxPyMakeDelayedInitWrapper(StockGDI.GetPen)
+_wxPyStockBrush = _wxPyMakeDelayedInitWrapper(StockGDI.GetBrush)
+_wxPyStockCursor = _wxPyMakeDelayedInitWrapper(StockGDI.GetCursor)
+_wxPyStockColour = _wxPyMakeDelayedInitWrapper(StockGDI.GetColour)
+_wxPyStockFont = _wxPyMakeDelayedInitWrapper(_wxPyFontInit)
+
+
+ITALIC_FONT = _wxPyStockCursor(StockGDI.FONT_ITALIC)
+NORMAL_FONT = _wxPyStockCursor(StockGDI.FONT_NORMAL)
+SMALL_FONT = _wxPyStockCursor(StockGDI.FONT_SMALL)
+SWISS_FONT = _wxPyStockCursor(StockGDI.FONT_SWISS)
+
+BLACK_DASHED_PEN = _wxPyStockPen(StockGDI.PEN_BLACKDASHED)
+BLACK_PEN = _wxPyStockPen(StockGDI.PEN_BLACK)
+CYAN_PEN = _wxPyStockPen(StockGDI.PEN_CYAN)
+GREEN_PEN = _wxPyStockPen(StockGDI.PEN_GREEN)
+GREY_PEN = _wxPyStockPen(StockGDI.PEN_GREY)
+LIGHT_GREY_PEN = _wxPyStockPen(StockGDI.PEN_LIGHTGREY)
+MEDIUM_GREY_PEN = _wxPyStockPen(StockGDI.PEN_MEDIUMGREY)
+RED_PEN = _wxPyStockPen(StockGDI.PEN_RED)
+TRANSPARENT_PEN = _wxPyStockPen(StockGDI.PEN_TRANSPARENT)
+WHITE_PEN = _wxPyStockPen(StockGDI.PEN_WHITE)
+
+BLACK_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_BLACK)
+BLUE_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_BLUE)
+CYAN_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_CYAN)
+GREEN_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_GREEN)
+GREY_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_GREY)
+LIGHT_GREY_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_LIGHTGREY)
+MEDIUM_GREY_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_MEDIUMGREY)
+RED_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_RED)
+TRANSPARENT_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_TRANSPARENT)
+WHITE_BRUSH = _wxPyStockBrush(StockGDI.BRUSH_WHITE)
+
+BLACK = _wxPyStockColour(StockGDI.COLOUR_BLACK)
+BLUE = _wxPyStockColour(StockGDI.COLOUR_BLUE)
+CYAN = _wxPyStockColour(StockGDI.COLOUR_CYAN)
+GREEN = _wxPyStockColour(StockGDI.COLOUR_GREEN)
+LIGHT_GREY = _wxPyStockColour(StockGDI.COLOUR_LIGHTGREY)
+RED = _wxPyStockColour(StockGDI.COLOUR_RED)
+WHITE = _wxPyStockColour(StockGDI.COLOUR_WHITE)
+
+CROSS_CURSOR = _wxPyStockCursor(StockGDI.CURSOR_CROSS)
+HOURGLASS_CURSOR = _wxPyStockCursor(StockGDI.CURSOR_HOURGLASS)
+STANDARD_CURSOR = _wxPyStockCursor(StockGDI.CURSOR_STANDARD)
+
+}
+