diff options
Diffstat (limited to 'python/pyqt/sip/qt/qapplication.sip')
-rw-r--r-- | python/pyqt/sip/qt/qapplication.sip | 574 |
1 files changed, 0 insertions, 574 deletions
diff --git a/python/pyqt/sip/qt/qapplication.sip b/python/pyqt/sip/qt/qapplication.sip deleted file mode 100644 index e32725de..00000000 --- a/python/pyqt/sip/qt/qapplication.sip +++ /dev/null @@ -1,574 +0,0 @@ -// This is the SIP interface definition for QApplication. -// -// Copyright (c) 2007 -// Riverbank Computing Limited <info@riverbankcomputing.co.uk> -// -// This file is part of PyQt. -// -// This copy of PyQt is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by the Free -// Software Foundation; either version 2, or (at your option) any later -// version. -// -// PyQt is supplied in the hope that it will be useful, but WITHOUT ANY -// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -// details. -// -// You should have received a copy of the GNU General Public License along with -// PyQt; see the file LICENSE. If not, write to the Free Software Foundation, -// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -%ExportedDoc -<Sect2><Title>QApplication</Title> -<FuncSynopsis> - <FuncDef><Function>QApplication</Function></FuncDef> - <ParamDef>int &<Parameter>argc</Parameter></ParamDef> - <ParamDef>char **<Parameter>argv</Parameter></ParamDef> -</FuncSynopsis> -<Para> -This takes one parameter which is a list of argument strings. Arguments -used by Qt are removed from the list. -</Para> - -<FuncSynopsis> - <FuncDef><Function>QApplication</Function></FuncDef> - <ParamDef>int &<Parameter>argc</Parameter></ParamDef> - <ParamDef>char **<Parameter>argv</Parameter></ParamDef> - <ParamDef>bool <Parameter>GUIenabled</Parameter></ParamDef> -</FuncSynopsis> -<Para> -This takes two parameters, the first of which is a list of argument strings. -Arguments used by Qt are removed from the list. -</Para> - -<FuncSynopsis> - <FuncDef><Function>QApplication</Function></FuncDef> - <ParamDef>int &<Parameter>argc</Parameter></ParamDef> - <ParamDef>char **<Parameter>argv</Parameter></ParamDef> - <ParamDef>Type <Parameter>type</Parameter></ParamDef> -</FuncSynopsis> -<Para> -This takes two parameters, the first of which is a list of argument strings. -Arguments used by Qt are removed from the list. (Qt v2.2+) -</Para> - -<FuncSynopsis> - <FuncDef>int <Function>exec</Function></FuncDef> - <ParamDef></ParamDef> -</FuncSynopsis> -<Para> -This has been renamed to <Literal>exec_loop</Literal> in Python. -</Para> -</Sect2> -%End - - -QApplication *qApp; - - -class QApplication : QObject -{ -%TypeHeaderCode -#include <qapplication.h> -#include <qwidgetlist.h> -%End - -public: - QApplication(SIP_PYLIST) /PostHook=__pyQtQAppHook__/ [(int &,char **)]; -%MethodCode - // The Python interface is a list of argument strings that is - // modified. - - int argc; - char **argv; - - // Convert the list. - if ((argv = pyArgvToC(a0,argc)) == NULL) - sipIsErr = 1; - else - { - // Create it now the arguments are right. - static int nargc; - nargc = argc; - - Py_BEGIN_ALLOW_THREADS - sipCpp = new sipQApplication(nargc,argv); - Py_END_ALLOW_THREADS - - // Now modify the original list. - updatePyArgv(a0,argc,argv); - } -%End - - QApplication(SIP_PYLIST,bool) /PostHook=__pyQtQAppHook__/ [(int &,char **,bool)]; -%MethodCode - // The Python interface is a list of argument strings that is - // modified. - - int argc; - char **argv; - - // Convert the list. - if ((argv = pyArgvToC(a0,argc)) == NULL) - sipIsErr = 1; - else - { - // Create it now the arguments are right. - static int nargc; - nargc = argc; - - Py_BEGIN_ALLOW_THREADS - sipCpp = new sipQApplication(nargc,argv,a1); - Py_END_ALLOW_THREADS - - // Now modify the original list. - updatePyArgv(a0,argc,argv); - } -%End - -%If (Qt_2_2_0 -) - enum Type { - Tty, - GuiClient, - GuiServer - }; - - QApplication(SIP_PYLIST,Type) /PostHook=__pyQtQAppHook__/ [(int &,char **,Type)]; -%MethodCode - // The Python interface is a list of argument strings that is - // modified. - - int argc; - char **argv; - - // Convert the list. - if ((argv = pyArgvToC(a0,argc)) == NULL) - sipIsErr = 1; - else - { - // Create it now the arguments are right. - static int nargc; - nargc = argc; - - Py_BEGIN_ALLOW_THREADS - sipCpp = new sipQApplication(nargc,argv,(QApplication::Type)a1); - Py_END_ALLOW_THREADS - - // Now modify the original list. - updatePyArgv(a0,argc,argv); - } -%End -%End - - ~QApplication(); -%MethodCode - // Make sure all remaining top level widgets are not owned by - // Python. When a PyQt script terminates we have no control - // over the order in which the QApplication instance and the - // top level widgets are destroyed. If the former happens - // first then we get a seg. fault. We could take the approach - // of only pretending to delete the QApplication instance, but - // Qt seems to allow an application to delete the QApplication - // instance and then create another one. The approach we take - // is to transfer ownership of all top level widgets away from - // Python so that the C++ dtor is not called if they are - // destroyed after the QApplication instance. This might be - // seen as a memory leak - but if we really are terminating - // then it doesn't matter, and if we are just deleting the - // QApplication instance then (I think) we should have already - // deleted the top level widgets manually. In any event, the X - // server resources will be freed. - - QWidgetList *tlw = QApplication::topLevelWidgets(); - QWidgetListIt it(*tlw); - QWidget *w; - - while ((w = it.current()) != 0) - { - PyObject *sw; - - if ((sw = sipGetWrapper(w,sipClass_QWidget)) != NULL) - sipTransferTo(sw,NULL); - - ++it; - } - - delete tlw; -%End - - int argc() const; - SIP_PYLIST argv() const; -%MethodCode - // The Python interface returns a list of strings. - - int argc = sipCpp -> argc(); - - if ((sipRes = PyList_New(argc)) == NULL) - sipIsErr = 1; - else - for (int a = 0; a < argc; ++a) - if (PyList_SetItem(sipRes,a,PyString_FromString(sipCpp -> argv()[a])) < 0) - { - Py_DECREF(sipRes); - sipIsErr = 1; - break; - } -%End - -%If (Qt_2_3_0 -) - Type type() const; -%End -%If (- Qt_2_00) - static GUIStyle style(); - static void setStyle(GUIStyle); -%End -%If (Qt_2_00 -) - static QStyle &style(); - static void setStyle(QStyle * /Transfer/); -%End -%If (Qt_3_0_0 -) - static QStyle *setStyle(const QString &); -%End - -%If (- Qt_2_00) - enum ColorSpec - { - NormalColor = 0, - CustomColor = 1, - PrivateColor = 4, - ManyColor = 4, - TrueColor = 4 - }; -%End -%If (Qt_2_00 -) - enum ColorSpec - { - NormalColor = 0, - CustomColor = 1, - ManyColor = 2 - }; -%End - - static int colorSpec(); - static void setColorSpec(int); - static QCursor *overrideCursor(); - static void setOverrideCursor(QCursor &,bool = 0); - static void restoreOverrideCursor(); - static bool hasGlobalMouseTracking(); - static void setGlobalMouseTracking(bool); -%If (- Qt_2_00) - static QPalette *palette(); - static void setPalette(QPalette &,bool = 0); - static QFont *font(); - static void setFont(const QFont &,bool = 0); -%End -%If (Qt_2_00 -) - static QPalette palette(const QWidget * = 0); - static void setPalette(QPalette &,bool = 0,const char * = 0); - static QFont font(const QWidget * = 0); - static void setFont(const QFont &,bool = 0,const char * = 0); -%End - static QFontMetrics fontMetrics(); - QWidget *mainWidget() const; -%If (- Qt_2_00) - // We may not need the /Transfer/ now that the QApplication dtor is - // instrumented, but we'll leave it in so as not to break old programs - // needlessly. - void setMainWidget(QWidget * /Transfer/); -%End -%If (Qt_2_00 -) - virtual void setMainWidget(QWidget *); - virtual void polish(QWidget *); -%End - static QWidgetList *allWidgets(); - static QWidgetList *topLevelWidgets(); -%If (- Qt_3_0_0) - static QWidget *desktop(); -%End -%If (Qt_3_0_0 -) - static QDesktopWidget *desktop(); -%End - static QWidget *activePopupWidget(); - static QWidget *activeModalWidget(); - static QClipboard *clipboard(); - QWidget *focusWidget() const; -%If (Qt_2_00 -) - QWidget *activeWindow() const; -%End - static QWidget *widgetAt(int,int,bool = 0); - static QWidget *widgetAt(const QPoint &,bool = 0); - -%If (Qt_3_1_0 -) - static QEventLoop *eventLoop(); -%End - - int exec() /PyName=exec_loop, ReleaseGIL, - PreHook=__pyQtPreEventLoopHook__, - PostHook=__pyQtPostEventLoopHook__/; - void processEvents() /ReleaseGIL/; - void processEvents(int) /ReleaseGIL/; - void processOneEvent() /ReleaseGIL/; -%If (Qt_3_0_0 -) - bool hasPendingEvents(); -%End - int enter_loop() /ReleaseGIL/; - void exit_loop(); -%If (Qt_2_00 -) - int loopLevel() const; -%End - static void exit(int = 0); - static bool sendEvent(QObject *,QEvent *) /ReleaseGIL/; - static void postEvent(QObject *,QEvent * /Transfer/) /ReleaseGIL/; - static void sendPostedEvents(QObject *,int) /ReleaseGIL/; -%If (Qt_2_00 -) - static void sendPostedEvents() /ReleaseGIL/; - static void removePostedEvents(QObject *); -%End - virtual bool notify(QObject *,QEvent *) /ReleaseGIL/; - static bool startingUp(); - static bool closingDown(); - static void flushX(); -%If (Qt_3_0_0 -) - static void flush(); -%End - static void syncX(); - static void beep(); -%If (Qt_2_00 -) - void setDefaultCodec(QTextCodec *); - QTextCodec *defaultCodec() const; - void installTranslator(QTranslator *); - void removeTranslator(QTranslator *); -%End -%If (Qt_2_00 - Qt_3_0_0) - QString translate(const char *,const char *) const; -%End -%If (Qt_2_2_0 - Qt_3_0_0) - QString translate(const char *,const char *,const char *) const; -%End -%If (Qt_3_0_0 -) - enum Encoding { - DefaultCodec, - UnicodeUTF8 - }; - - QString translate(const char *,const char *,const char * = 0, - Encoding = DefaultCodec) const; -%End -%If (Qt_3_2_0 -) - QString applicationDirPath(); - QString applicationFilePath(); -%End -%If (- Qt_3_0_0) - static void setWinStyleHighlightColor(const QColor &); - static const QColor &winStyleHighlightColor(); -%End -%If (Qt_2_00 -) - static void setDesktopSettingsAware(bool); - static bool desktopSettingsAware(); - static void setCursorFlashTime(int); - static int cursorFlashTime(); -%End - static void setDoubleClickInterval(int); - static int doubleClickInterval(); -%If (Qt_2_1_0 -) - static void setWheelScrollLines(int); - static int wheelScrollLines(); -%If (Qt_2_2_0 -) - static void setGlobalStrut(const QSize &); - static QSize globalStrut(); -%End -%If (Qt_3_0_0 -) - static void setLibraryPaths(const QStringList &); - static QStringList libraryPaths(); - static void addLibraryPath(const QString &); - static void removeLibraryPath(const QString &); -%End - static void setStartDragTime(int); - static int startDragTime(); - static void setStartDragDistance(int); - static int startDragDistance(); -%If (Qt_3_0_0 -) - static void setReverseLayout(bool); - static bool reverseLayout(); - - static int horizontalAlignment(int); -%End -%If (Qt_2_2_0 -) - static bool isEffectEnabled(Qt::UIEffect); - static void setEffectEnabled(Qt::UIEffect,bool = 1); -%End -%End - - -%If (Qt_2_00 -) - bool isSessionRestored() const; - QString sessionId() const; -%If (Qt_3_1_0 -) - QString sessionKey() const; -%End - virtual void commitData(QSessionManager &); - virtual void saveState(QSessionManager &); -%End -%If (Qt_2_1_0 -) - void wakeUpGuiThread(); -%End -%If (Qt_THREAD_SUPPORT) -%If (Qt_2_2_0 -) - void lock() /ReleaseGIL/; - void unlock(bool = 1); - bool locked(); -%End -%If (Qt_3_0_0 -) - bool tryLock(); -%End -%End - -signals: - void lastWindowClosed(); -%If (Qt_2_00 -) - void aboutToQuit(); -%End -%If (Qt_2_1_0 -) - void guiThreadAwake(); -%End - -public slots: - void quit(); -%If (Qt_2_00 -) - void closeAllWindows(); -%End -%If (Qt_3_2_0 -) - void aboutQt(); -%End - -protected: -%If (Qt_3_1_0 -) - bool event(QEvent *); -%End - -private: - QApplication(const QApplication &); - - -%TypeCode -#include <string.h> - - -// Convert a Python argv list to a conventional C argc count and argv array. -static char **pyArgvToC(PyObject *argvlist,int &argc) -{ - char **argv; - - argc = PyList_Size(argvlist); - - // Allocate space for two copies of the argument pointers, plus the - // terminating NULL. - if ((argv = (char **)sipMalloc(2 * (argc + 1) * sizeof (char *))) == NULL) - return NULL; - - // Convert the list. - for (int a = 0; a < argc; ++a) - { - char *arg; - - // Get the argument and allocate memory for it. - if ((arg = PyString_AsString(PyList_GetItem(argvlist,a))) == NULL || - (argv[a] = (char *)sipMalloc(strlen(arg) + 1)) == NULL) - return NULL; - - // Copy the argument and save a pointer to it. - strcpy(argv[a],arg); - argv[a + argc + 1] = argv[a]; - } - - argv[argc + argc + 1] = argv[argc] = NULL; - - return argv; -} - - -// Remove arguments from the Python argv list that have been removed from the -// C argv array. -static void updatePyArgv(PyObject *argvlist,int argc,char **argv) -{ - for (int a = 0, na = 0; a < argc; ++a) - { - // See if it was removed. - if (argv[na] == argv[a + argc + 1]) - ++na; - else - PyList_SetSlice(argvlist,na,na + 1,NULL); - } -} -%End - -}; - - -enum QtMsgType { - QtDebugMsg, - QtWarningMsg, - QtFatalMsg -}; - - -SIP_PYCALLABLE qInstallMsgHandler(SIP_PYCALLABLE /AllowNone/); -%MethodCode - void (*old)(QtMsgType, const char *); - - // Treat None as the default handler. - old = qInstallMsgHandler((a0 != Py_None) ? pyqtMsgHandler : 0); - - // If we recognise the old handler, then return it. Otherwise return - // the default handler. This doesn't exactly mimic the Qt behaviour - // but it is probably close enough for the way it will be used. - sipRes = (old == pyqtMsgHandler) ? pyqtPyMsgHandler : Py_None; - Py_INCREF(sipRes); - - // Save the new Python handler. - Py_XDECREF(pyqtPyMsgHandler); - pyqtPyMsgHandler = a0; - Py_INCREF(pyqtPyMsgHandler); -%End - -%ModuleCode -// The user supplied Python handler. -static PyObject *pyqtPyMsgHandler = 0; - -// The C++ wrapper around the Python handler. -static void pyqtMsgHandler(QtMsgType type, const char *msg) -{ - PyObject *res; - - SIP_BLOCK_THREADS - -#if SIP_VERSION >= 0x040200 - res = sipCallMethod(0, pyqtPyMsgHandler, "Es", type, sipEnum_QtMsgType, msg); -#elif SIP_VERSION >= 0x040000 - res = sipCallMethod(0, pyqtPyMsgHandler, "es", type, msg); -#else - PyObject *args = Py_BuildValue("is", type, msg); - - if (args != NULL) - { - res = PyEval_CallObject(pyqtPyMsgHandler, args); - Py_DECREF(args); - } -#endif - - Py_XDECREF(res); - - if (res != NULL && res != Py_None) - { - PyErr_SetString(PyExc_TypeError, "invalid result type from PyQt message handler"); - res = NULL; - } - - if (res == NULL) - PyErr_Print(); - - SIP_UNBLOCK_THREADS -} -%End |