summaryrefslogtreecommitdiffstats
path: root/python/pyqt/sip/qtpe/qpeapplication.sip
diff options
context:
space:
mode:
Diffstat (limited to 'python/pyqt/sip/qtpe/qpeapplication.sip')
-rw-r--r--python/pyqt/sip/qtpe/qpeapplication.sip223
1 files changed, 223 insertions, 0 deletions
diff --git a/python/pyqt/sip/qtpe/qpeapplication.sip b/python/pyqt/sip/qtpe/qpeapplication.sip
new file mode 100644
index 00000000..f71240e8
--- /dev/null
+++ b/python/pyqt/sip/qtpe/qpeapplication.sip
@@ -0,0 +1,223 @@
+// This is the SIP interface definition for QPEApplication.
+//
+// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+// The documentation is in the main documentation file because SIP isn't clever
+// enough to handle the resulting %Timeline complexity.
+
+
+%If (WS_QWS)
+
+class QPEApplication : QApplication
+{
+%TypeHeaderCode
+#include <qpe/qpeapplication.h>
+#include <qwidgetlist.h>
+%End
+
+public:
+ QPEApplication(SIP_PYLIST,Type=GuiClient) [(int &,char **,Type=GuiClient)];
+%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.
+ int nargc = argc;
+
+ Py_BEGIN_ALLOW_THREADS
+ sipCpp = new sipQPEApplication(nargc,argv,(QApplication::Type)a1);
+ Py_END_ALLOW_THREADS
+
+ // Now modify the original list.
+ updatePyArgv(a0,argc,argv);
+ }
+%End
+
+ ~QPEApplication();
+%MethodCode
+ // See the comments in ~QApplication() to understand what's
+ // being done here.
+
+ 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
+
+%ConvertToSubClassCode
+ // The table of Python class objects indexed by their names. The table
+ // must be sorted by name.
+
+ static sipStringTypeClassMap map[] = {
+ {sipName_FileSelector, &sipClass_FileSelector},
+ {sipName_MenuButton, &sipClass_MenuButton},
+ {sipName_QPEApplication, &sipClass_QPEApplication},
+ {sipName_QPEMenuBar, &sipClass_QPEMenuBar},
+ {sipName_QPEToolBar, &sipClass_QPEToolBar},
+ };
+
+ sipClass = sipMapStringToClass(sipCpp -> className(),map,
+ sizeof (map)/sizeof (map[0]));
+%End
+
+ static QString qpeDir();
+ static QString documentDir();
+ void applyStyle();
+ static int defaultRotation();
+ static void setDefaultRotation(int);
+ static void grabKeyboard();
+ static void ungrabKeyboard();
+
+ enum StylusMode {
+ LeftOnly,
+ RightOnHold
+ };
+
+ static void setStylusOperation(QWidget *,StylusMode);
+ static StylusMode stylusOperation(QWidget *);
+
+ enum InputMethodHint {
+ Normal,
+ AlwaysOff,
+ AlwaysOn
+ };
+
+ enum screenSaverHint {
+ Disable,
+ DisableLightOff,
+ DisableSuspend,
+ Enable
+ };
+
+ static void setInputMethodHint(QWidget *,InputMethodHint);
+ static InputMethodHint inputMethodHint(QWidget *);
+
+ void showMainWidget(QWidget *,bool = 0);
+ void showMainDocumentWidget(QWidget *,bool = 0);
+
+ static void setKeepRunning();
+ bool keepRunning() const;
+
+ int exec() /PyName=exec_loop, ReleaseGIL,
+ PreHook=__pyQtPreEventLoopHook__,
+ PostHook=__pyQtPostEventLoopHook__/;
+
+signals:
+ void clientMoused();
+ void timeChanged();
+ void clockChanged(bool);
+ void volumeChanged(bool);
+ void appMessage(const QCString &,const QByteArray &);
+ void weekChanged(bool);
+ void dateFormatChanged(DateFormat);
+ void flush();
+ void reload();
+
+protected:
+// bool qwsEventFilter(QWSEvent *);
+// void internalSetStyle(const QString &);
+ void prepareForTermination(bool);
+ virtual void restart();
+ virtual void shutdown();
+ bool eventFilter(QObject *,QEvent *);
+ void timerEvent(QTimerEvent *);
+ bool keyboardGrabbed() const;
+ bool raiseAppropriateWindow();
+ virtual void tryQuit();
+
+
+%TypeCode
+#include <string.h>
+
+
+// Convert a Python argv list to a conventional C argc count and argv array.
+static char **pyArgvToC(PyObject *argvlist,int *argcp)
+{
+ 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;
+
+ *argcp = argc;
+
+ 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
+
+};
+
+%End