X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4464bbee9cec909b2d73bc62285cc061d617cdff..9f06bcb3b8aea7aa709754a217c26e94fe2d5954:/utils/wxPython/src/helpers.cpp diff --git a/utils/wxPython/src/helpers.cpp b/utils/wxPython/src/helpers.cpp index 03adda6634..3dc40d7362 100644 --- a/utils/wxPython/src/helpers.cpp +++ b/utils/wxPython/src/helpers.cpp @@ -10,22 +10,23 @@ // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// -#ifdef __WXMSW__ -#include -#undef FindWindow -#undef GetCharWidth -#undef LoadAccelerators + +#ifdef __WXGTK__ +#include "gtk/gtk.h" #endif #undef DEBUG #include #include "helpers.h" - -#ifdef __WXGTK__ -#ifdef wxUSE_GDK_IMLIB -#include "gdk_imlib/gdk_imlib.h" -#endif +#ifdef __WXMSW__ +#include +#undef FindWindow +#undef GetCharWidth +#undef LoadAccelerators +#undef GetClassInfo +#undef GetClassName #endif +#include //--------------------------------------------------------------------------- @@ -39,8 +40,6 @@ wxString wxPyEmptyStr(""); #ifdef __WXMSW__ // If building for win32... -extern HINSTANCE wxhInstance; - //---------------------------------------------------------------------- // This gets run when the DLL is loaded. We just need to save a handle. //---------------------------------------------------------------------- @@ -51,7 +50,7 @@ BOOL WINAPI DllMain( LPVOID lpvReserved // reserved ) { - wxhInstance = hinstDLL; + wxSetInstance(hinstDLL); return 1; } #endif @@ -74,10 +73,10 @@ int wxPyApp::MainLoop(void) { return retval; } + void wxPyApp::AfterMainLoop(void) { // more stuff from wxEntry... -#ifdef __WXMSW__ if (wxPythonApp->GetTopWindow()) { // Forcibly delete the window. if (wxPythonApp->GetTopWindow()->IsKindOf(CLASSINFO(wxFrame)) || @@ -91,19 +90,13 @@ void wxPyApp::AfterMainLoop(void) { wxPythonApp->SetTopWindow(NULL); } } -#endif #ifdef __WXGTK__ wxPythonApp->DeletePendingObjects(); #endif wxPythonApp->OnExit(); -#ifdef __WXMSW__ wxApp::CleanUp(); -#endif -#ifdef __WXGTK__ - wxApp::CommonCleanUp(); -#endif - delete wxPythonApp; +// delete wxPythonApp; } @@ -126,9 +119,8 @@ void __wxPreStart() #ifdef __WXMSW__ wxApp::Initialize(); #endif -#ifdef __WXGTK__ - wxClassInfo::InitializeClasses(); +#ifdef __WXGTK__ PyObject* sysargv = PySys_GetObject("argv"); int argc = PyList_Size(sysargv); char** argv = new char*[argc+1]; @@ -137,16 +129,11 @@ void __wxPreStart() argv[x] = PyString_AsString(PyList_GetItem(sysargv, x)); argv[argc] = NULL; + gtk_set_locale(); gtk_init( &argc, &argv ); delete [] argv; -#ifdef wxUSE_GDK_IMLIB - gdk_imlib_init(); - gtk_widget_push_visual(gdk_imlib_get_visual()); - gtk_widget_push_colormap(gdk_imlib_get_colormap()); -#endif - - wxApp::CommonInit(); + wxApp::Initialize(); // may return FALSE. Should we check? #endif } @@ -195,12 +182,7 @@ PyObject* __wxStart(PyObject* /* self */, PyObject* args) if (! bResult) { wxPythonApp->DeletePendingObjects(); wxPythonApp->OnExit(); -#ifdef __WXMSW__ wxApp::CleanUp(); -#endif -#ifdef __WXGTK__ - wxApp::CommonCleanUp(); -#endif PyErr_SetString(PyExc_SystemExit, "OnInit returned false, exiting..."); return NULL; } @@ -370,6 +352,29 @@ void wxPyTimer::Notify() { // imcluded in every file... +byte* byte_LIST_helper(PyObject* source) { + if (!PyList_Check(source)) { + PyErr_SetString(PyExc_TypeError, "Expected a list object."); + return NULL; + } + int count = PyList_Size(source); + byte* temp = new byte[count]; + if (! temp) { + PyErr_SetString(PyExc_MemoryError, "Unable to allocate temporary array"); + return NULL; + } + for (int x=0; xargc; -// char** argv = wxPythonApp->argv; - -// for (int i = 1; i < argc; i++) { -// if (strncmp(argv[i], "wxpstderr=", 10) == 0) -// stderrfilename = argv[i]+10; -// else { -// PyList_Append(argvList, PyString_FromString(argv[i])); -// if (!script) -// script = argv[i]; -// pyargc++; -// } -// } - -// PySys_SetObject("argv", argvList); - -//#if 1 -// char buf[256]; -//// //PyRun_SimpleString("import sys; sys.stdout=open('wxpstdout.log','w')"); -// sprintf(buf, "import sys; sys.stdout=sys.stderr=open('%s','w')", stderrfilename); -// PyRun_SimpleString(buf); -//#endif - -// initwxPythonc(); - -// if (script) { -// FILE *fp = fopen(script, "r"); -// if (fp) { -// PyRun_SimpleFile(fp, script);// This returns after wxpApp constructor -// fclose(fp); -// } -// else { -// char msg[256]; -// sprintf(msg, "Cannot open %s", script); -// wxMessageBox(msg); -// } -// } -// else -// PyRun_SimpleString("import wxpide"); - -// return 0; -//} - - -//#endif - -//---------------------------------------------------------------------- ///////////////////////////////////////////////////////////////////////////// // // $Log$ +// Revision 1.19 1999/02/20 09:02:59 RD +// Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a +// window handle. If you can get the window handle into the python code, +// it should just work... More news on this later. +// +// Added wxImageList, wxToolTip. +// +// Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the +// wxRegConfig class. +// +// As usual, some bug fixes, tweaks, etc. +// +// Revision 1.18 1999/01/30 08:17:27 RD +// +// Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. +// +// Various cleanup, tweaks, minor additions, etc. to maintain +// compatibility with the current wxWindows. +// +// Revision 1.17 1999/01/30 07:30:12 RD +// +// Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. +// +// Various cleanup, tweaks, minor additions, etc. to maintain +// compatibility with the current wxWindows. +// +// Revision 1.16 1998/12/17 14:07:39 RR +// +// Removed minor differences between wxMSW and wxGTK +// +// Revision 1.15 1998/12/15 20:41:19 RD +// Changed the import semantics from "from wxPython import *" to "from +// wxPython.wx import *" This is for people who are worried about +// namespace pollution, they can use "from wxPython import wx" and then +// prefix all the wxPython identifiers with "wx." +// +// Added wxTaskbarIcon for wxMSW. +// +// Made the events work for wxGrid. +// +// Added wxConfig. +// +// Added wxMiniFrame for wxGTK, (untested.) +// +// Changed many of the args and return values that were pointers to gdi +// objects to references to reflect changes in the wxWindows API. +// +// Other assorted fixes and additions. +// +// Revision 1.14 1998/11/25 08:45:25 RD +// +// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon +// Added events for wxGrid +// Other various fixes and additions +// +// Revision 1.13 1998/11/15 23:03:45 RD +// Removing some ifdef's for wxGTK +// // Revision 1.12 1998/11/03 09:21:08 RD // fixed a typo //