wxWidgets/wxPython/src/wx.i
Robin Dunn 293a0a8677 Fixed a typemap.
Added a Python list --> wxArrayInt typemap and wxArrayInt --> Python
list helper.

Added wxMultiChoiceDialog.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-01-21 21:33:07 +00:00

262 lines
6.4 KiB
OpenEdge ABL

/////////////////////////////////////////////////////////////////////////////
// Name: wxp.i
// Purpose: SWIG interface file for a python wxWindows module
//
// Author: Robin Dunn
//
// Created: 5/22/98
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
%module wx
%{
#include "helpers.h"
%}
// %pragma(python) code="
// # This gives this module's dictionary to the C++ extension code...
// wxc._wxSetDictionary(vars())
// "
//----------------------------------------------------------------------
// This is where we include the other wrapper definition files for SWIG
//----------------------------------------------------------------------
%include typemaps.i
%include my_typemaps.i
%include _defs.i
%include pointer.i
%import misc.i
%import misc2.i
%import windows.i
%import events.i
%import gdi.i
%import mdi.i
%import controls.i
%import controls2.i
%import windows2.i
%import cmndlgs.i
%import stattool.i
%import frames.i
%import windows3.i
%import image.i
%import printfw.i
%import sizers.i
%import streams.i
%import filesys.i
%native(_wxStart) __wxStart;
%native(_wxSetDictionary) __wxSetDictionary;
//---------------------------------------------------------------------------
#define __version__ "0.0.0" // The real value is now in setup.py...
%readonly
wxPoint wxDefaultPosition;
wxSize wxDefaultSize;
%readwrite
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
class wxPyApp : public wxEvtHandler {
public:
%addmethods {
wxPyApp() {
wxPythonApp = new wxPyApp();
return wxPythonApp;
}
}
~wxPyApp();
wxString GetAppName();
#ifdef __WXMSW__
bool GetAuto3D();
#endif
wxString GetClassName();
bool GetExitOnFrameDelete();
int GetPrintMode();
wxWindow * GetTopWindow();
wxString GetVendorName();
bool GetUseBestVisual();
void Dispatch();
void ExitMainLoop();
bool Initialized();
int MainLoop();
bool Pending();
bool ProcessIdle();
void SetAppName(const wxString& name);
#ifdef __WXMSW__
void SetAuto3D(bool auto3D);
#endif
void SetClassName(const wxString& name);
void SetExitOnFrameDelete(bool flag);
void SetPrintMode(int mode);
void SetTopWindow(wxWindow* window);
void SetVendorName(const wxString& name);
void SetUseBestVisual(bool flag);
wxIcon GetStdIcon(int which);
};
%inline %{
wxPyApp* wxGetApp() {
return wxPythonApp;
}
%}
//----------------------------------------------------------------------
// this is used to cleanup after wxWindows when Python shuts down.
%inline %{
void wxApp_CleanUp() {
__wxCleanup();
}
%}
//----------------------------------------------------------------------
// This code gets added to the module initialization function
//----------------------------------------------------------------------
%{
extern "C" SWIGEXPORT(void) initwindowsc();
extern "C" SWIGEXPORT(void) initwindows2c();
extern "C" SWIGEXPORT(void) initeventsc();
extern "C" SWIGEXPORT(void) initmiscc();
extern "C" SWIGEXPORT(void) initmisc2c();
extern "C" SWIGEXPORT(void) initgdic();
extern "C" SWIGEXPORT(void) initmdic();
extern "C" SWIGEXPORT(void) initcontrolsc();
extern "C" SWIGEXPORT(void) initcontrols2c();
extern "C" SWIGEXPORT(void) initcmndlgsc();
extern "C" SWIGEXPORT(void) initstattoolc();
extern "C" SWIGEXPORT(void) initframesc();
extern "C" SWIGEXPORT(void) initwindows3c();
extern "C" SWIGEXPORT(void) initimagec();
extern "C" SWIGEXPORT(void) initprintfwc();
extern "C" SWIGEXPORT(void) initsizersc();
extern "C" SWIGEXPORT(void) initclip_dndc();
extern "C" SWIGEXPORT(void) initstreamsc();
extern "C" SWIGEXPORT(void) initfilesysc();
// Export a C API in a struct. Other modules will be able to load this from
// the wxc module and will then have safe access to these functions, even if
// in another shared library.
static wxPyCoreAPI API = {
SWIG_MakePtr,
SWIG_GetPtr,
SWIG_GetPtrObj,
SWIG_RegisterMapping,
SWIG_addvarlink,
SWIG_newvarlink,
wxPyBeginAllowThreads,
wxPyEndAllowThreads,
wxPyBeginBlockThreads,
wxPyEndBlockThreads,
wxPyConstructObject,
wxPy_ConvertList,
byte_LIST_helper,
int_LIST_helper,
long_LIST_helper,
string_LIST_helper,
wxPoint_LIST_helper,
wxBitmap_LIST_helper,
wxString_LIST_helper,
wxAcceleratorEntry_LIST_helper,
wxSize_helper,
wxPoint_helper,
wxRealPoint_helper,
wxRect_helper,
wxColour_helper,
wxPyCBH_setCallbackInfo,
wxPyCBH_findCallback,
wxPyCBH_callCallback,
wxPyCBH_callCallbackObj,
wxPyCBH_delete,
wxPyClassExists,
wxPyMake_wxObject,
wxPyMake_wxSizer,
wxPyPtrTypeMap_Add,
wxArrayString2PyList_helper,
wxArrayInt2PyList_helper
};
%}
%init %{
// Make our API structure a CObject so other modules can import it
// from this module.
PyObject* v = PyCObject_FromVoidPtr(&API, NULL);
PyDict_SetItemString(d,"wxPyCoreAPI", v);
Py_XDECREF(v);
__wxPreStart(); // initialize the GUI toolkit, if needed.
// Since these modules are all linked together, initialize them now
// because Python won't be able to find their shared library files,
// (since there isn't any.)
initwindowsc();
initwindows2c();
initeventsc();
initmiscc();
initmisc2c();
initgdic();
initmdic();
initcontrolsc();
initcontrols2c();
initcmndlgsc();
initstattoolc();
initframesc();
initwindows3c();
initimagec();
initprintfwc();
initsizersc();
initclip_dndc();
initstreamsc();
initfilesysc();
PyDict_SetItemString(d,"wxMAJOR_VERSION", PyInt_FromLong((long)wxMAJOR_VERSION ));
PyDict_SetItemString(d,"wxMINOR_VERSION", PyInt_FromLong((long)wxMINOR_VERSION ));
PyDict_SetItemString(d,"wxRELEASE_NUMBER", PyInt_FromLong((long)wxRELEASE_NUMBER ));
PyDict_SetItemString(d,"wxVERSION_NUMBER", PyInt_FromLong((long)wxVERSION_NUMBER ));
PyDict_SetItemString(d,"wxVERSION_STRING", PyString_FromString(wxVERSION_STRING));
%}
//----------------------------------------------------------------------
// And this gets appended to the shadow class file.
//----------------------------------------------------------------------
%pragma(python) include="_extras.py";