]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_stockobjs.i
Include and use the shared docopydocs function.
[wxWidgets.git] / wxPython / src / _stockobjs.i
index 12aa01349259a6e338a7b80ec3a77ca65c307db9..08a5956c2876314a194c637275d99040591168a5 100644 (file)
 %newgroup
 
 
-// See also wxPy_ReinitStockObjects in helpers.cpp
-%immutable;
+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)
+    
+}
+
 
-wxFont* const wxNORMAL_FONT;
-wxFont* const wxSMALL_FONT;
-wxFont* const wxITALIC_FONT;
-wxFont* const wxSWISS_FONT;
-
-wxPen* const wxRED_PEN;
-wxPen* const wxCYAN_PEN;
-wxPen* const wxGREEN_PEN;
-wxPen* const wxBLACK_PEN;
-wxPen* const wxWHITE_PEN;
-wxPen* const wxTRANSPARENT_PEN;
-wxPen* const wxBLACK_DASHED_PEN;
-wxPen* const wxGREY_PEN;
-wxPen* const wxMEDIUM_GREY_PEN;
-wxPen* const wxLIGHT_GREY_PEN;
-
-wxBrush* const wxBLUE_BRUSH;
-wxBrush* const wxGREEN_BRUSH;
-wxBrush* const wxWHITE_BRUSH;
-wxBrush* const wxBLACK_BRUSH;
-wxBrush* const wxTRANSPARENT_BRUSH;
-wxBrush* const wxCYAN_BRUSH;
-wxBrush* const wxRED_BRUSH;
-wxBrush* const wxGREY_BRUSH;
-wxBrush* const wxMEDIUM_GREY_BRUSH;
-wxBrush* const wxLIGHT_GREY_BRUSH;
-
-wxColour* const wxBLACK;
-wxColour* const wxWHITE;
-wxColour* const wxRED;
-wxColour* const wxBLUE;
-wxColour* const wxGREEN;
-wxColour* const wxCYAN;
-wxColour* const wxLIGHT_GREY;
-
-wxCursor* const wxSTANDARD_CURSOR;
-wxCursor* const wxHOURGLASS_CURSOR;
-wxCursor* const wxCROSS_CURSOR;
 
 
+%immutable;
+%threadWrapperOff;
+
 const wxBitmap wxNullBitmap;
 const wxIcon   wxNullIcon;
 const wxCursor wxNullCursor;
@@ -69,37 +159,96 @@ const wxPalette wxNullPalette;
 const wxFont   wxNullFont;
 const wxColour wxNullColour;
 
+%threadWrapperOn;
 %mutable;
 
 
+// %inline {
+//     const wxBitmap& _wxPyInitNullBitmap() { return wxNullBitmap; }
+//     const wxIcon&   _wxPyInitNullIcon() { return wxNullIcon; }
+//     const wxCursor& _wxPyInitNullCursor() { return wxNullCursor; }
+//     const wxPen&    _wxPyInitNullPen() { return wxNullPen; }
+//     const wxBrush&  _wxPyInitNullBrush() { return wxNullBrush; }
+//     const wxPalette& _wxPyInitNullPalette() { return wxNullPalette; }
+//     const wxFont&   _wxPyInitNullFont() { return wxNullFont; }
+//     const wxColour& _wxPyInitNullColour() { return wxNullColour; }
+// }
+
+// %pythoncode {
+// NullBitmap   = _wxPyMakeDelayedInitWrapper(_wxPyInitNullBitmap)()
+// NullIcon     = _wxPyMakeDelayedInitWrapper(_wxPyInitNullIcon)()
+// NullCursor   = _wxPyMakeDelayedInitWrapper(_wxPyInitNullCursor)()
+// NullPen      = _wxPyMakeDelayedInitWrapper(_wxPyInitNullPen)()
+// NullBrush    = _wxPyMakeDelayedInitWrapper(_wxPyInitNullBrush)()
+// NullPalette  = _wxPyMakeDelayedInitWrapper(_wxPyInitNullPalette)()
+// NullFont     = _wxPyMakeDelayedInitWrapper(_wxPyInitNullFont)()
+// NullColour   = _wxPyMakeDelayedInitWrapper(_wxPyInitNullColour)()   
+// }
+
+
 //---------------------------------------------------------------------------
 
-class wxPenList : public wxObject {
+
+class wxGDIObjListBase {
+public:
+    wxGDIObjListBase();
+    ~wxGDIObjListBase();
+};
+
+
+class wxPenList : public wxGDIObjListBase {
 public:
 
-    void AddPen(wxPen* pen);
     wxPen* FindOrCreatePen(const wxColour& colour, int width, int style);
-    void RemovePen(wxPen* pen);
 
-    int GetCount();
+    void AddPen(wxPen* pen);
+    void RemovePen(wxPen* pen);
+    %pythoncode {
+        AddPen = wx._deprecated(AddPen)
+        RemovePen = wx._deprecated(RemovePen)
+    }            
+//    int GetCount();
 };
 
 
-//---------------------------------------------------------------------------
-
-class wxBrushList : public wxObject {
+class wxBrushList : public wxGDIObjListBase {
 public:
 
+    wxBrush * FindOrCreateBrush(const wxColour& colour, int style=wxSOLID);
+
     void AddBrush(wxBrush *brush);
-    wxBrush * FindOrCreateBrush(const wxColour& colour, int style);
     void RemoveBrush(wxBrush *brush);
+    %pythoncode {
+        AddBrush = wx._deprecated(AddBrush)
+        RemoveBrush = wx._deprecated(RemoveBrush)
+    }
+//    int GetCount();
+};
+
 
-    int GetCount();
+class wxFontList : public wxGDIObjListBase {
+public:
+
+    wxFont * FindOrCreateFont(int point_size, int family, int style, int weight,
+                              bool underline = false,
+                              const wxString& facename = wxPyEmptyString,
+                              wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
+
+    void AddFont(wxFont* font);
+    void RemoveFont(wxFont *font);
+    %pythoncode {
+        AddFont = wx._deprecated(AddFont)
+        RemoveFont = wx._deprecated(RemoveFont)
+    }
+
+//    int GetCount();
 };
 
 //---------------------------------------------------------------------------
 
-class wxColourDatabase : public wxObject {
+MustHaveApp(wxColourDatabase);
+
+class wxColourDatabase {
 public:
     wxColourDatabase();
     ~wxColourDatabase();
@@ -119,35 +268,23 @@ public:
     }
 };
 
-//---------------------------------------------------------------------------
-
-class wxFontList : public wxObject {
-public:
-
-    void AddFont(wxFont* font);
-    wxFont * FindOrCreateFont(int point_size, int family, int style, int weight,
-                              bool underline = False, const wxString& facename = wxPyEmptyString,
-                              wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
-    void RemoveFont(wxFont *font);
-
-    int GetCount();
-};
 
 //---------------------------------------------------------------------------
 %newgroup
 
-
-
-// See also wxPy_ReinitStockObjects in helpers.cpp
-%immutable;
-
-wxFontList*       const wxTheFontList;
-wxPenList*        const wxThePenList;
-wxBrushList*      const wxTheBrushList;
-wxColourDatabase* const wxTheColourDatabase;
-
-%mutable;
-
+%inline {
+    wxFontList* _wxPyInitTheFontList() { return wxTheFontList; }
+    wxPenList* _wxPyInitThePenList() { return wxThePenList; }
+    wxBrushList* _wxPyInitTheBrushList() { return wxTheBrushList; }
+    wxColourDatabase* _wxPyInitTheColourDatabase() { return wxTheColourDatabase; }
+}
+
+%pythoncode {
+wxTheFontList       = _wxPyMakeDelayedInitWrapper(_wxPyInitTheFontList)()
+wxThePenList        = _wxPyMakeDelayedInitWrapper(_wxPyInitThePenList)()
+wxTheBrushList      = _wxPyMakeDelayedInitWrapper(_wxPyInitTheBrushList)()
+wxTheColourDatabase = _wxPyMakeDelayedInitWrapper(_wxPyInitTheColourDatabase)()
+}
 
 //---------------------------------------------------------------------------