1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Definitions and stuff
9 // Copyright: (c) 1998 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
14 // Globally turn on the autodoc feature
15 %feature("autodoc", "1"); // 0 == no param types, 1 == show param types
18 //---------------------------------------------------------------------------
19 // some type definitions to simplify things for SWIG
21 // typedef int wxWindowID;
22 // typedef int wxCoord;
23 // typedef int wxInt32;
24 // typedef unsigned int wxUint32;
25 typedef int wxEventType;
26 typedef unsigned int size_t;
27 typedef unsigned int time_t;
28 typedef unsigned char byte;
30 #define wxWindowID int
33 #define wxUint32 unsigned int
34 //#define wxEventType int
35 //#define size_t unsigned int
36 //#define time_t unsigned int
37 //#define byte unsigned char
40 //----------------------------------------------------------------------
41 // Various SWIG macros and such
43 #define %pythonAppend %feature("pythonappend")
44 #define %pythonPrepend %feature("pythonprepend")
45 #define %kwargs %feature("kwargs")
46 #define %nokwargs %feature("nokwargs")
49 //#define %shadow %insert("shadow")
53 #define %pythoncode %insert("python")
59 // Given the name of a wxChar (or wxString) constant in C++, make
60 // a static wxString for wxPython, and also let SWIG wrap it.
61 %define MAKE_CONST_WXSTRING(strname)
62 %{ static const wxString wxPy##strname(wx##strname); %}
64 %name(strname) const wxString wxPy##strname;
68 %define MAKE_CONST_WXSTRING2(strname, val)
69 %{ static const wxString wxPy##strname(val); %}
71 %name(strname) const wxString wxPy##strname;
75 %define MAKE_CONST_WXSTRING_NOSWIG(strname)
76 %{ static const wxString wxPy##strname(wx##strname); %}
79 // Generate code in the module init for the event types, since they may not be
80 // initialized yet when they are used in the static swig_const_table.
81 %typemap(consttab) wxEventType; // TODO: how to prevent code inserted into the consttab?
82 %typemap(constcode) wxEventType "PyDict_SetItemString(d, \"$symname\", PyInt_FromLong($value));";
86 // Macros for the docstring and autodoc features of SWIG.
88 // Set the docsring for the given full or partial declaration
89 %define DocStr(decl, docstr)
90 %feature("docstring") decl docstr;
91 //%feature("refdoc") decl "";
94 // Set the autodoc string for a full or partial declaration
95 %define DocA(decl, astr)
96 %feature("autodoc") decl astr;
99 // Set both the autodoc and docstring for a full or partial declaration
100 %define DocAStr(decl, astr, docstr)
101 %feature("autodoc") decl astr;
102 %feature("docstring") decl docstr
105 // Set the detailed reference docs for full or partial declaration
106 #define DocRef(decl, str) %feature("docref") decl str
111 // Set the docstring for a decl and then define the decl too. Must use the
112 // full declaration of the item.
113 %define DocDeclStr(type, decl, docstr)
114 %feature("docstring") decl docstr;
118 // As above, but also give the decl a new %name
119 %define DocDeclStrName(type, decl, docstr, newname)
120 %feature("docstring") decl docstr;
121 %name(newname) type decl
125 // Set the autodoc string for a decl and then define the decl too. Must use the
126 // full declaration of the item.
127 %define DocDeclA(type, decl, astr)
128 %feature("autodoc") decl astr;
132 // As above, but also give the decl a new %name
133 %define DocDeclAName(type, decl, astr, newname)
134 %feature("autodoc") decl astr;
135 %name(newname) type decl
140 // Set the autodoc and the docstring for a decl and then define the decl too.
141 // Must use the full declaration of the item.
142 %define DocDeclAStr(type, decl, astr, docstr)
143 %feature("autodoc") decl astr;
144 %feature("docstring") decl docstr;
148 // As above, but also give the decl a new %name
149 %define DocDeclAStrName(type, decl, astr, docstr, newname)
150 %feature("autodoc") decl astr;
151 %feature("docstring") decl docstr;
152 %name(newname) type decl
158 // Set the docstring for a constructor decl and then define the decl too.
159 // Must use the full declaration of the item.
160 %define DocCtorStr(decl, docstr)
161 %feature("docstring") decl docstr;
165 // As above, but also give the decl a new %name
166 %define DocCtorStrName(decl, docstr, newname)
167 %feature("docstring") decl docstr;
172 // Set the autodoc string for a decl and then define the decl too. Must use the
173 // full declaration of the item.
174 %define DocCtorA(decl, astr)
175 %feature("autodoc") decl astr;
179 // As above, but also give the decl a new %name
180 %define DocCtorAname(decl, astr, newname)
181 %feature("autodoc") decl astr;
187 // Set the autodoc and the docstring for a decl and then define the decl too.
188 // Must use the full declaration of the item.
189 %define DocCtorAStr(decl, astr, docstr)
190 %feature("autodoc") decl astr;
191 %feature("docstring") decl docstr;
195 // As above, but also give the decl a new %name
196 %define DocCtorAStrName(decl, astr, docstr, newname)
197 %feature("autodoc") decl astr;
198 %feature("docstring") decl docstr;
203 // A placeholder for the detailed reference docs.
204 %define RefDoc(decl, docstr)
205 %feature("refdoc") decl docstr;
211 %#---------------------------------------------------------------------------
215 //---------------------------------------------------------------------------
216 // Forward declarations and %renames for some classes, so the autodoc strings
217 // will be able to use the right types even when the real class declaration is
218 // not in the module being processed.
220 #ifdef BUILDING_RENAMERS
221 #define FORWARD_DECLARE(wxName, Name)
223 %define FORWARD_DECLARE(wxName, Name)
224 %rename(Name) wxName;
229 FORWARD_DECLARE(wxString, String);
230 FORWARD_DECLARE(wxBitmap, Bitmap);
231 FORWARD_DECLARE(wxDateTime, DateTime);
232 FORWARD_DECLARE(wxInputStream, InputStream);
233 FORWARD_DECLARE(wxDC, DC);
234 FORWARD_DECLARE(wxCursor, Cursor);
235 FORWARD_DECLARE(wxRegion, Region);
236 FORWARD_DECLARE(wxColour, Colour);
237 FORWARD_DECLARE(wxFont, Font);
238 FORWARD_DECLARE(wxCaret, Caret);
239 FORWARD_DECLARE(wxToolTip, ToolTip);
240 FORWARD_DECLARE(wxPyDropTarget, DropTarget);
241 FORWARD_DECLARE(wxImageList, ImageList);
242 FORWARD_DECLARE(wxMemoryDC, MemoryDC);
243 FORWARD_DECLARE(wxHtmlTagHandler, HtmlTagHandler);
244 FORWARD_DECLARE(wxConfigBase, ConfigBase);
245 FORWARD_DECLARE(wxIcon, Icon);
248 //---------------------------------------------------------------------------
250 // General numeric #define's and etc. Making them all enums makes SWIG use the
251 // real macro when making the Python Int
269 wxTRANSPARENT_WINDOW,
367 wxSIZE_ALLOW_MINUS_ONE,
370 wxPRINT_QUALITY_HIGH,
371 wxPRINT_QUALITY_MEDIUM,
373 wxPRINT_QUALITY_DRAFT,
395 wxID_HELP_PROCEDURES,
414 wxID_VIEW_LARGEICONS,
415 wxID_VIEW_SMALLICONS,
478 wxNO_FULL_REPAINT_ON_RESIZE,
479 wxFULL_REPAINT_ON_RESIZE,
484 wxWS_EX_VALIDATE_RECURSIVELY,
485 wxWS_EX_BLOCK_EVENTS,
488 wxWS_EX_THEMED_BACKGROUND,
489 wxWS_EX_PROCESS_IDLE,
490 wxWS_EX_PROCESS_UI_UPDATES,
493 // Mapping modes (as per Windows)
506 // It looks like wxTabCtrl may rise from the dead. Uncomment these if
507 // it gets an implementation for all platforms...
508 // wxTC_RIGHTJUSTIFY,
521 #define wxDEFAULT_STATUSBAR_STYLE wxST_SIZEGRIP|wxFULL_REPAINT_ON_RESIZE
523 #define wxDEFAULT_STATUSBAR_STYLE wxST_SIZEGRIP
528 enum wxGeometryCentre
563 wxALIGN_CENTER_HORIZONTAL,
564 wxALIGN_CENTRE_HORIZONTAL,
569 wxALIGN_CENTER_VERTICAL,
570 wxALIGN_CENTRE_VERTICAL,
643 wxXOR, // src XOR dst
645 wxOR_REVERSE, // src OR (NOT dst)
646 wxAND_REVERSE,// src AND (NOT dst)
648 wxAND, // src AND dst
649 wxAND_INVERT, // (NOT src) AND dst
651 wxNOR, // (NOT src) AND (NOT dst)
652 wxEQUIV, // (NOT src) XOR dst
653 wxSRC_INVERT, // (NOT src)
654 wxOR_INVERT, // (NOT src) OR dst
655 wxNAND, // (NOT src) OR (NOT dst)
658 // wxSRC_OR, // source _bitmap_ OR destination
659 // wxSRC_AND // source _bitmap_ AND destination
682 WXK_PRIOR, /* Page up */
683 WXK_NEXT, /* Page down */
764 WXK_NUMPAD_SEPARATOR,
778 wxPAPER_NONE, // Use specific dimensions
779 wxPAPER_LETTER, // Letter, 8 1/2 by 11 inches
780 wxPAPER_LEGAL, // Legal, 8 1/2 by 14 inches
781 wxPAPER_A4, // A4 Sheet, 210 by 297 millimeters
782 wxPAPER_CSHEET, // C Sheet, 17 by 22 inches
783 wxPAPER_DSHEET, // D Sheet, 22 by 34 inches
784 wxPAPER_ESHEET, // E Sheet, 34 by 44 inches
785 wxPAPER_LETTERSMALL, // Letter Small, 8 1/2 by 11 inches
786 wxPAPER_TABLOID, // Tabloid, 11 by 17 inches
787 wxPAPER_LEDGER, // Ledger, 17 by 11 inches
788 wxPAPER_STATEMENT, // Statement, 5 1/2 by 8 1/2 inches
789 wxPAPER_EXECUTIVE, // Executive, 7 1/4 by 10 1/2 inches
790 wxPAPER_A3, // A3 sheet, 297 by 420 millimeters
791 wxPAPER_A4SMALL, // A4 small sheet, 210 by 297 millimeters
792 wxPAPER_A5, // A5 sheet, 148 by 210 millimeters
793 wxPAPER_B4, // B4 sheet, 250 by 354 millimeters
794 wxPAPER_B5, // B5 sheet, 182-by-257-millimeter paper
795 wxPAPER_FOLIO, // Folio, 8-1/2-by-13-inch paper
796 wxPAPER_QUARTO, // Quarto, 215-by-275-millimeter paper
797 wxPAPER_10X14, // 10-by-14-inch sheet
798 wxPAPER_11X17, // 11-by-17-inch sheet
799 wxPAPER_NOTE, // Note, 8 1/2 by 11 inches
800 wxPAPER_ENV_9, // #9 Envelope, 3 7/8 by 8 7/8 inches
801 wxPAPER_ENV_10, // #10 Envelope, 4 1/8 by 9 1/2 inches
802 wxPAPER_ENV_11, // #11 Envelope, 4 1/2 by 10 3/8 inches
803 wxPAPER_ENV_12, // #12 Envelope, 4 3/4 by 11 inches
804 wxPAPER_ENV_14, // #14 Envelope, 5 by 11 1/2 inches
805 wxPAPER_ENV_DL, // DL Envelope, 110 by 220 millimeters
806 wxPAPER_ENV_C5, // C5 Envelope, 162 by 229 millimeters
807 wxPAPER_ENV_C3, // C3 Envelope, 324 by 458 millimeters
808 wxPAPER_ENV_C4, // C4 Envelope, 229 by 324 millimeters
809 wxPAPER_ENV_C6, // C6 Envelope, 114 by 162 millimeters
810 wxPAPER_ENV_C65, // C65 Envelope, 114 by 229 millimeters
811 wxPAPER_ENV_B4, // B4 Envelope, 250 by 353 millimeters
812 wxPAPER_ENV_B5, // B5 Envelope, 176 by 250 millimeters
813 wxPAPER_ENV_B6, // B6 Envelope, 176 by 125 millimeters
814 wxPAPER_ENV_ITALY, // Italy Envelope, 110 by 230 millimeters
815 wxPAPER_ENV_MONARCH, // Monarch Envelope, 3 7/8 by 7 1/2 inches
816 wxPAPER_ENV_PERSONAL, // 6 3/4 Envelope, 3 5/8 by 6 1/2 inches
817 wxPAPER_FANFOLD_US, // US Std Fanfold, 14 7/8 by 11 inches
818 wxPAPER_FANFOLD_STD_GERMAN, // German Std Fanfold, 8 1/2 by 12 inches
819 wxPAPER_FANFOLD_LGL_GERMAN, // German Legal Fanfold, 8 1/2 by 13 inches
821 wxPAPER_ISO_B4, // B4 (ISO) 250 x 353 mm
822 wxPAPER_JAPANESE_POSTCARD, // Japanese Postcard 100 x 148 mm
823 wxPAPER_9X11, // 9 x 11 in
824 wxPAPER_10X11, // 10 x 11 in
825 wxPAPER_15X11, // 15 x 11 in
826 wxPAPER_ENV_INVITE, // Envelope Invite 220 x 220 mm
827 wxPAPER_LETTER_EXTRA, // Letter Extra 9 \275 x 12 in
828 wxPAPER_LEGAL_EXTRA, // Legal Extra 9 \275 x 15 in
829 wxPAPER_TABLOID_EXTRA, // Tabloid Extra 11.69 x 18 in
830 wxPAPER_A4_EXTRA, // A4 Extra 9.27 x 12.69 in
831 wxPAPER_LETTER_TRANSVERSE, // Letter Transverse 8 \275 x 11 in
832 wxPAPER_A4_TRANSVERSE, // A4 Transverse 210 x 297 mm
833 wxPAPER_LETTER_EXTRA_TRANSVERSE, // Letter Extra Transverse 9\275 x 12 in
834 wxPAPER_A_PLUS, // SuperA/SuperA/A4 227 x 356 mm
835 wxPAPER_B_PLUS, // SuperB/SuperB/A3 305 x 487 mm
836 wxPAPER_LETTER_PLUS, // Letter Plus 8.5 x 12.69 in
837 wxPAPER_A4_PLUS, // A4 Plus 210 x 330 mm
838 wxPAPER_A5_TRANSVERSE, // A5 Transverse 148 x 210 mm
839 wxPAPER_B5_TRANSVERSE, // B5 (JIS) Transverse 182 x 257 mm
840 wxPAPER_A3_EXTRA, // A3 Extra 322 x 445 mm
841 wxPAPER_A5_EXTRA, // A5 Extra 174 x 235 mm
842 wxPAPER_B5_EXTRA, // B5 (ISO) Extra 201 x 276 mm
843 wxPAPER_A2, // A2 420 x 594 mm
844 wxPAPER_A3_TRANSVERSE, // A3 Transverse 297 x 420 mm
845 wxPAPER_A3_EXTRA_TRANSVERSE // A3 Extra Transverse 322 x 445 mm
850 wxDUPLEX_SIMPLEX, // Non-duplex
857 // menu and toolbar item kinds
873 wxHT_SCROLLBAR_FIRST = wxHT_NOWHERE,
874 wxHT_SCROLLBAR_ARROW_LINE_1, // left or upper arrow to scroll by line
875 wxHT_SCROLLBAR_ARROW_LINE_2, // right or down
876 wxHT_SCROLLBAR_ARROW_PAGE_1, // left or upper arrow to scroll by page
877 wxHT_SCROLLBAR_ARROW_PAGE_2, // right or down
878 wxHT_SCROLLBAR_THUMB, // on the thumb
879 wxHT_SCROLLBAR_BAR_1, // bar to the left/above the thumb
880 wxHT_SCROLLBAR_BAR_2, // bar to the right/below the thumb
884 wxHT_WINDOW_OUTSIDE, // not in this window at all
885 wxHT_WINDOW_INSIDE, // in the client area
886 wxHT_WINDOW_VERT_SCROLLBAR, // on the vertical scrollbar
887 wxHT_WINDOW_HORZ_SCROLLBAR, // on the horizontal scrollbar
888 wxHT_WINDOW_CORNER, // on the corner between 2 scrollbars
896 enum wxHotkeyModifier
904 #define wxEVT_HOTKEY 9999
908 enum wxHotkeyModifier
920 wxUPDATE_UI_NONE = 0x0000,
921 wxUPDATE_UI_RECURSE = 0x0001,
922 wxUPDATE_UI_FROMIDLE = 0x0002 // Invoked from On(Internal)Idle
927 //---------------------------------------------------------------------------