X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/daa3eac94c219acca125c79177ac662961850929..e422162882bf4c5ae743fd618864e97206765fca:/wxPython/src/misc2.i diff --git a/wxPython/src/misc2.i b/wxPython/src/misc2.i index 235a17c705..22a8d2d7b7 100644 --- a/wxPython/src/misc2.i +++ b/wxPython/src/misc2.i @@ -162,9 +162,6 @@ void wxSetCursor(wxCursor& cursor); //---------------------------------------------------------------------- // Miscellaneous functions -wxWindow * wxFindWindowByLabel(const wxString& label, wxWindow *parent=NULL); -wxWindow * wxFindWindowByName(const wxString& name, wxWindow *parent=NULL); - void wxBeginBusyCursor(wxCursor *cursor = wxHOURGLASS_CURSOR); wxWindow * wxGetActiveWindow(); @@ -303,14 +300,14 @@ enum wxSystemFeature wxSYS_CAN_ICONIZE_FRAME }; -// values for different screen designs -enum wxSystemScreen +enum wxSystemScreenType { wxSYS_SCREEN_NONE = 0, // not yet defined - wxSYS_SCREEN_DESKTOP, // >= 800x600 - wxSYS_SCREEN_SMALL, // >= 640x480 + + wxSYS_SCREEN_TINY, // < wxSYS_SCREEN_PDA, // >= 320x240 - wxSYS_SCREEN_TINY // < + wxSYS_SCREEN_SMALL, // >= 640x480 + wxSYS_SCREEN_DESKTOP // >= 800x600 }; @@ -328,12 +325,12 @@ public: // return true if the port has certain feature static bool HasFeature(wxSystemFeature index); -// // Get system screen design (desktop, pda, ..) used for -// // laying out various dialogs. -// static wxSystemScreen GetScreen(); + // Get system screen design (desktop, pda, ..) used for + // laying out various dialogs. + static wxSystemScreenType GetScreenType(); -// // Override default. -// static void SetScreen( wxSystemScreen screen ); + // Override default. + static void SetScreenType( wxSystemScreenType screen ); }; @@ -566,6 +563,27 @@ enum wxLOG_User = 100 // user defined levels start here }; +#define wxTRACE_MemAlloc "memalloc" // trace memory allocation (new/delete) +#define wxTRACE_Messages "messages" // trace window messages/X callbacks +#define wxTRACE_ResAlloc "resalloc" // trace GDI resource allocation +#define wxTRACE_RefCount "refcount" // trace various ref counting operations + +#ifdef __WXMSW__ +#define wxTRACE_OleCalls "ole" // OLE interface calls +#endif + +enum { + wxTraceMemAlloc, + wxTraceMessages, + wxTraceResAlloc, + wxTraceRefCount, + +#ifdef __WXMSW__ + wxTraceOleCalls, +#endif +}; + + class wxLog { @@ -574,7 +592,7 @@ public: static bool IsEnabled(); static bool EnableLogging(bool doIt = TRUE); - static void OnLog(wxLogLevel level, const wxString& szString, int t=0); + static void OnLog(unsigned long level, const wxString& szString, int t=0); virtual void Flush(); bool HasPendingMessages() const; @@ -589,7 +607,7 @@ public: static void SetVerbose(bool bVerbose = TRUE); static void DontCreateOnDemand(); - static void SetTraceMask(wxTraceMask ulMask); + static void SetTraceMask(long ulMask); static void AddTraceMask(const wxString& str); static void RemoveTraceMask(const wxString& str); static void ClearTraceMasks(); @@ -599,7 +617,7 @@ public: bool GetVerbose() const; - static wxTraceMask GetTraceMask(); + static unsigned long GetTraceMask(); static bool IsAllowedTraceMask(const wxString& mask); // static void TimeStamp(wxString *str); @@ -663,15 +681,26 @@ public: unsigned long wxSysErrorCode(); const wxString wxSysErrorMsg(unsigned long nErrCode = 0); -void wxLogFatalError(const wxString& szFormat); -void wxLogError(const wxString& szFormat); -void wxLogWarning(const wxString& szFormat); -void wxLogMessage(const wxString& szFormat); -void wxLogInfo(const wxString& szFormat); -void wxLogVerbose(const wxString& szFormat); -void wxLogStatus(const wxString& szFormat); -%name(wxLogStatusFrame)void wxLogStatus(wxFrame *pFrame, const wxString& szFormat); -void wxLogSysError(const wxString& szFormat); +void wxLogFatalError(const wxString& msg); +void wxLogError(const wxString& msg); +void wxLogWarning(const wxString& msg); +void wxLogMessage(const wxString& msg); +void wxLogInfo(const wxString& msg); +void wxLogVerbose(const wxString& msg); +void wxLogStatus(const wxString& msg); +%name(wxLogStatusFrame)void wxLogStatus(wxFrame *pFrame, const wxString& msg); +void wxLogSysError(const wxString& msg); + +void wxLogTrace(const wxString& msg); +%name(wxLogTraceMask)void wxLogTrace(const wxString& mask, const wxString& msg); + +void wxLogGeneric(unsigned long level, const wxString& msg); + +// wxLogFatalError helper: show the (fatal) error to the user in a safe way, +// i.e. without using wxMessageBox() for example because it could crash +void wxSafeShowMessage(const wxString& title, const wxString& text); + + // Suspress logging while an instance of this class exists class wxLogNull @@ -693,9 +722,11 @@ public: virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t) { bool found; wxPyBeginBlockThreads(); - if ((found = wxPyCBH_findCallback(m_myInst, "DoLog"))) - wxPyCBH_callCallback(m_myInst, Py_BuildValue("(iOi)", level, - wx2PyString(szString), t)); + if ((found = wxPyCBH_findCallback(m_myInst, "DoLog"))) { + PyObject* s = wx2PyString(szString); + wxPyCBH_callCallback(m_myInst, Py_BuildValue("(iOi)", level, s, t)); + Py_DECREF(s); + } wxPyEndBlockThreads(); if (! found) wxLog::DoLog(level, szString, t); @@ -704,9 +735,11 @@ public: virtual void DoLogString(const wxChar *szString, time_t t) { bool found; wxPyBeginBlockThreads(); - if ((found = wxPyCBH_findCallback(m_myInst, "DoLogString"))) - wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", - wx2PyString(szString), t)); + if ((found = wxPyCBH_findCallback(m_myInst, "DoLogString"))) { + PyObject* s = wx2PyString(szString); + wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", s, t)); + Py_DECREF(s); + } wxPyEndBlockThreads(); if (! found) wxLog::DoLogString(szString, t); @@ -811,6 +844,25 @@ long wxExecute(const wxString& command, //---------------------------------------------------------------------- + +// Which joystick? Same as Windows ids so no conversion necessary. +enum +{ + wxJOYSTICK1, + wxJOYSTICK2 +}; + +// Which button is down? +enum +{ + wxJOY_BUTTON_ANY, + wxJOY_BUTTON1, + wxJOY_BUTTON2, + wxJOY_BUTTON3, + wxJOY_BUTTON4, +}; + + %{ #if !wxUSE_JOYSTICK && !defined(__WXMSW__) // A C++ stub class for wxJoystick for platforms that don't have it. @@ -1343,6 +1395,129 @@ extern wxMimeTypesManager* wxTheMimeTypesManager; %} %readwrite +//---------------------------------------------------------------------- + +%{ +#include + + DECLARE_DEF_STRING(ART_OTHER); + +%} + +// Art clients +#define wxART_TOOLBAR "toolbar_C" +#define wxART_MENU "menu_C" +#define wxART_FRAME_ICON "frame_icon_C" + +#define wxART_CMN_DIALOG "cmn_dialog_C" +#define wxART_HELP_BROWSER "help_browser_C" +#define wxART_MESSAGE_BOX "message_box_C" + +#define wxART_OTHER "other_C" + +// Art IDs +#define wxART_ADD_BOOKMARK "add_bookmark" +#define wxART_DEL_BOOKMARK "del_bookmark" +#define wxART_HELP_SIDE_PANEL "help_side_panel" +#define wxART_HELP_SETTINGS "help_settings" +#define wxART_HELP_BOOK "help_book" +#define wxART_HELP_FOLDER "help_folder" +#define wxART_HELP_PAGE "help_page" +#define wxART_GO_BACK "go_back" +#define wxART_GO_FORWARD "go_forward" +#define wxART_GO_UP "go_up" +#define wxART_GO_DOWN "go_down" +#define wxART_GO_TO_PARENT "go_to_parent" +#define wxART_GO_HOME "go_home" +#define wxART_FILE_OPEN "file_open" +#define wxART_PRINT "print" +#define wxART_HELP "help" +#define wxART_TIP "tip" +#define wxART_REPORT_VIEW "report_view" +#define wxART_LIST_VIEW "list_view" +#define wxART_NEW_DIR "new_dir" +#define wxART_FOLDER "folder" +#define wxART_GO_DIR_UP "go_dir_up" +#define wxART_EXECUTABLE_FILE "executable_file" +#define wxART_NORMAL_FILE "normal_file" +#define wxART_TICK_MARK "tick" +#define wxART_CROSS_MARK "cross" +#define wxART_ERROR "error" +#define wxART_QUESTION "question" +#define wxART_WARNING "warning" +#define wxART_INFORMATION "information" + + +%{ // Python aware wxArtProvider +class wxPyArtProvider : public wxArtProvider { +public: + + virtual wxBitmap CreateBitmap(const wxArtID& id, + const wxArtClient& client, + const wxSize& size) { + wxBitmap rval = wxNullBitmap; + wxPyBeginBlockThreads(); + if ((wxPyCBH_findCallback(m_myInst, "CreateBitmap"))) { + PyObject* so = wxPyConstructObject((void*)&size, "wxSize", 0); + PyObject* ro; + wxBitmap* ptr; + PyObject* s1, *s2; + s1 = wx2PyString(id); + s2 = wx2PyString(client); + ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(OOO)", s1, s2, so)); + Py_DECREF(so); + Py_DECREF(s1); + Py_DECREF(s2); + if (ro) { + if (!SWIG_GetPtrObj(ro, (void**)&ptr, "_wxBitmap_p")) + rval = *ptr; + Py_DECREF(ro); + } + } + wxPyEndBlockThreads(); + return rval; + } + + PYPRIVATE; +}; +%} + +// The one for SWIG to see +%name(wxArtProvider) class wxPyArtProvider : public wxObject +{ +public: + wxPyArtProvider(); + + void _setCallbackInfo(PyObject* self, PyObject* _class); + %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxArtProvider)" + + // Add new provider to the top of providers stack. + static void PushProvider(wxPyArtProvider *provider); + + // Remove latest added provider and delete it. + static bool PopProvider(); + + // Remove provider. The provider must have been added previously! + // The provider is _not_ deleted. + static bool RemoveProvider(wxPyArtProvider *provider); + + // Query the providers for bitmap with given ID and return it. Return + // wxNullBitmap if no provider provides it. + static wxBitmap GetBitmap(const wxString& id, + const wxString& client = wxPyART_OTHER, + const wxSize& size = wxDefaultSize); + + // Query the providers for icon with given ID and return it. Return + // wxNullIcon if no provider provides it. + static wxIcon GetIcon(const wxString& id, + const wxString& client = wxPyART_OTHER, + const wxSize& size = wxDefaultSize); + + // Destroy caches & all providers + static void CleanUpProviders(); +}; + + //---------------------------------------------------------------------- %{ @@ -1382,10 +1557,24 @@ public: //---------------------------------------------------------------------- //---------------------------------------------------------------------- +// %{ +// #if wxUSE_UNICODE +// #define ADD_STRING(dict, str) \ +// wxString tmp##str(str); \ +// PyDict_SetItemString(dict, #str, \ +// PyUnicode_FromUnicode(tmp##str.c_str(), tmp##str.Len())) +// #else +// #define ADD_STRING(dict, str) \ +// PyDict_SetItemString(d, #str, PyString_FromString(str)) +// #endif +// %} + %init %{ wxPyPtrTypeMap_Add("wxDragImage", "wxGenericDragImage"); wxPyPtrTypeMap_Add("wxProcess", "wxPyProcess"); + wxPyPtrTypeMap_Add("wxArtProvider", "wxPyArtProvider"); + %} //----------------------------------------------------------------------