1//--------------------------------------------------------------------------
2// Name:        src/stockobj.sip
3// Purpose:     Wrapper definition and some Python code for wxStockGDI and
4//              using it to initialize the stock objects like wx.BLUE_BRUSH,
5//              etc.  We're putting it here because wxStockGDI is not
6//              documented, and probably should not be.
7//
8// Author:      Robin Dunn
9//
10// Created:     18-Sept-2011
11// Copyright:   (c) 2011-2018 by Total Control Software
12// Licence:     wxWindows license
13//--------------------------------------------------------------------------
14
15
16class wxStockGDI
17{
18public:
19    enum Item {
20        BRUSH_BLACK,
21        BRUSH_BLUE,
22        BRUSH_CYAN,
23        BRUSH_GREEN,
24        BRUSH_YELLOW,
25        BRUSH_GREY,
26        BRUSH_LIGHTGREY,
27        BRUSH_MEDIUMGREY,
28        BRUSH_RED,
29        BRUSH_TRANSPARENT,
30        BRUSH_WHITE,
31        COLOUR_BLACK,
32        COLOUR_BLUE,
33        COLOUR_CYAN,
34        COLOUR_GREEN,
35        COLOUR_YELLOW,
36        COLOUR_LIGHTGREY,
37        COLOUR_RED,
38        COLOUR_WHITE,
39        CURSOR_CROSS,
40        CURSOR_HOURGLASS,
41        CURSOR_STANDARD,
42        FONT_ITALIC,
43        FONT_NORMAL,
44        FONT_SMALL,
45        FONT_SWISS,
46        PEN_BLACK,
47        PEN_BLACKDASHED,
48        PEN_BLUE,
49        PEN_CYAN,
50        PEN_GREEN,
51        PEN_YELLOW,
52        PEN_GREY,
53        PEN_LIGHTGREY,
54        PEN_MEDIUMGREY,
55        PEN_RED,
56        PEN_TRANSPARENT,
57        PEN_WHITE
58    };
59
60    wxStockGDI();
61    virtual ~wxStockGDI();
62    static void DeleteAll();
63
64    static wxStockGDI& instance();
65
66    static const wxBrush* GetBrush(Item item);
67    static const wxColour* GetColour(Item item);
68    static const wxCursor* GetCursor(Item item);
69    static const wxPen* GetPen(Item item);
70
71    const wxFont* GetFont(Item item);
72
73    // Add some methods for fetching the various global gdi object lists so
74    // they can be set at app creation time too.
75    static wxFontList* _getTheFontList();
76    %MethodCode
77        sipRes = wxTheFontList;
78    %End
79
80    static wxPenList* _getThePenList();
81    %MethodCode
82        sipRes = wxThePenList;
83    %End
84
85    static wxBrushList* _getTheBrushList();
86    %MethodCode
87        sipRes = wxTheBrushList;
88    %End
89
90    static wxColourDatabase* _getTheColourDatabase();
91    %MethodCode
92        sipRes = wxTheColourDatabase;
93    %End
94
95
96private:
97    wxStockGDI(const wxStockGDI&);
98    wxStockGDI& operator=(const wxStockGDI&);
99};
100
101%Extract(id=pycode_core)
102def _initStockObjects():
103    import wx
104    wx.NORMAL_FONT._copyFrom(       StockGDI.instance().GetFont(StockGDI.FONT_NORMAL))
105    wx.SMALL_FONT._copyFrom(        StockGDI.instance().GetFont(StockGDI.FONT_SMALL))
106    wx.SWISS_FONT._copyFrom(        StockGDI.instance().GetFont(StockGDI.FONT_SWISS))
107    wx.ITALIC_FONT._copyFrom(       StockGDI.instance().GetFont(StockGDI.FONT_ITALIC))
108
109    wx.BLACK_DASHED_PEN._copyFrom(  StockGDI.GetPen(StockGDI.PEN_BLACKDASHED))
110    wx.BLACK_PEN._copyFrom(         StockGDI.GetPen(StockGDI.PEN_BLACK))
111    wx.BLUE_PEN._copyFrom(          StockGDI.GetPen(StockGDI.PEN_BLUE))
112    wx.CYAN_PEN._copyFrom(          StockGDI.GetPen(StockGDI.PEN_CYAN))
113    wx.GREEN_PEN._copyFrom(         StockGDI.GetPen(StockGDI.PEN_GREEN))
114    wx.YELLOW_PEN._copyFrom(        StockGDI.GetPen(StockGDI.PEN_YELLOW))
115    wx.GREY_PEN._copyFrom(          StockGDI.GetPen(StockGDI.PEN_GREY))
116    wx.LIGHT_GREY_PEN._copyFrom(    StockGDI.GetPen(StockGDI.PEN_LIGHTGREY))
117    wx.MEDIUM_GREY_PEN._copyFrom(   StockGDI.GetPen(StockGDI.PEN_MEDIUMGREY))
118    wx.RED_PEN._copyFrom(           StockGDI.GetPen(StockGDI.PEN_RED))
119    wx.TRANSPARENT_PEN._copyFrom(   StockGDI.GetPen(StockGDI.PEN_TRANSPARENT))
120    wx.WHITE_PEN._copyFrom(         StockGDI.GetPen(StockGDI.PEN_WHITE))
121
122    wx.BLACK_BRUSH._copyFrom(       StockGDI.GetBrush(StockGDI.BRUSH_BLACK))
123    wx.BLUE_BRUSH._copyFrom(        StockGDI.GetBrush(StockGDI.BRUSH_BLUE))
124    wx.CYAN_BRUSH._copyFrom(        StockGDI.GetBrush(StockGDI.BRUSH_CYAN))
125    wx.GREEN_BRUSH._copyFrom(       StockGDI.GetBrush(StockGDI.BRUSH_GREEN))
126    wx.YELLOW_BRUSH._copyFrom(      StockGDI.GetBrush(StockGDI.BRUSH_YELLOW))
127    wx.GREY_BRUSH._copyFrom(        StockGDI.GetBrush(StockGDI.BRUSH_GREY))
128    wx.LIGHT_GREY_BRUSH._copyFrom(  StockGDI.GetBrush(StockGDI.BRUSH_LIGHTGREY))
129    wx.MEDIUM_GREY_BRUSH._copyFrom( StockGDI.GetBrush(StockGDI.BRUSH_MEDIUMGREY))
130    wx.RED_BRUSH._copyFrom(         StockGDI.GetBrush(StockGDI.BRUSH_RED))
131    wx.TRANSPARENT_BRUSH._copyFrom( StockGDI.GetBrush(StockGDI.BRUSH_TRANSPARENT))
132    wx.WHITE_BRUSH._copyFrom(       StockGDI.GetBrush(StockGDI.BRUSH_WHITE))
133
134    wx.BLACK._copyFrom(             StockGDI.GetColour(StockGDI.COLOUR_BLACK))
135    wx.BLUE._copyFrom(              StockGDI.GetColour(StockGDI.COLOUR_BLUE))
136    wx.CYAN._copyFrom(              StockGDI.GetColour(StockGDI.COLOUR_CYAN))
137    wx.GREEN._copyFrom(             StockGDI.GetColour(StockGDI.COLOUR_GREEN))
138    wx.YELLOW._copyFrom(            StockGDI.GetColour(StockGDI.COLOUR_YELLOW))
139    wx.LIGHT_GREY._copyFrom(        StockGDI.GetColour(StockGDI.COLOUR_LIGHTGREY))
140    wx.RED._copyFrom(               StockGDI.GetColour(StockGDI.COLOUR_RED))
141    wx.WHITE._copyFrom(             StockGDI.GetColour(StockGDI.COLOUR_WHITE))
142
143    wx.CROSS_CURSOR._copyFrom(      StockGDI.GetCursor(StockGDI.CURSOR_CROSS))
144    wx.HOURGLASS_CURSOR._copyFrom(  StockGDI.GetCursor(StockGDI.CURSOR_HOURGLASS))
145    wx.STANDARD_CURSOR._copyFrom(   StockGDI.GetCursor(StockGDI.CURSOR_STANDARD))
146
147    wx.TheFontList       = StockGDI._getTheFontList()
148    wx.ThePenList        = StockGDI._getThePenList()
149    wx.TheBrushList      = StockGDI._getTheBrushList()
150    wx.TheColourDatabase = StockGDI._getTheColourDatabase()
151
152
153StockGDI._initStockObjects = staticmethod(_initStockObjects)
154%End
155