qguiapplication.sip 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. // qguiapplication.sip generated by MetaSIP
  2. //
  3. // This file is part of the QtGui Python extension module.
  4. //
  5. // Copyright (c) 2026 Riverbank Computing Limited <info@riverbankcomputing.com>
  6. //
  7. // This file is part of PyQt6.
  8. //
  9. // This file may be used under the terms of the GNU General Public License
  10. // version 3.0 as published by the Free Software Foundation and appearing in
  11. // the file LICENSE included in the packaging of this file. Please review the
  12. // following information to ensure the GNU General Public License version 3.0
  13. // requirements will be met: http://www.gnu.org/copyleft/gpl.html.
  14. //
  15. // If you do not wish to use this file under the terms of the GPL version 3.0
  16. // then you may purchase a commercial license. For more information contact
  17. // info@riverbankcomputing.com.
  18. //
  19. // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  20. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  21. class QGuiApplication : public QCoreApplication
  22. {
  23. %TypeHeaderCode
  24. #include <qguiapplication.h>
  25. %End
  26. %ConvertToSubClassCode
  27. static struct class_graph {
  28. const char *name;
  29. sipTypeDef **type;
  30. int yes, no;
  31. } graph[] = {
  32. {sipName_QAbstractTextDocumentLayout, &sipType_QAbstractTextDocumentLayout, -1, 1},
  33. #if QT_VERSION >= 0x060a00
  34. {sipName_QAccessibilityHints, &sipType_QAccessibilityHints, -1, 2},
  35. #else
  36. {0, 0, -1, 2},
  37. #endif
  38. {sipName_QAction, &sipType_QAction, -1, 3},
  39. {sipName_QActionGroup, &sipType_QActionGroup, -1, 4},
  40. {sipName_QClipboard, &sipType_QClipboard, -1, 5},
  41. {sipName_QValidator, &sipType_QValidator, 27, 6},
  42. {sipName_QDrag, &sipType_QDrag, -1, 7},
  43. {sipName_QFileSystemModel, &sipType_QFileSystemModel, -1, 8},
  44. {sipName_QGuiApplication, &sipType_QGuiApplication, -1, 9},
  45. {sipName_QInputDevice, &sipType_QInputDevice, 30, 10},
  46. {sipName_QInputMethod, &sipType_QInputMethod, -1, 11},
  47. {sipName_QMovie, &sipType_QMovie, -1, 12},
  48. {sipName_QOffscreenSurface, &sipType_QOffscreenSurface, -1, 13},
  49. #if defined(SIP_FEATURE_PyQt_OpenGL)
  50. {sipName_QOpenGLContext, &sipType_QOpenGLContext, -1, 14},
  51. #else
  52. {0, 0, -1, 14},
  53. #endif
  54. #if defined(SIP_FEATURE_PyQt_OpenGL)
  55. {sipName_QOpenGLContextGroup, &sipType_QOpenGLContextGroup, -1, 15},
  56. #else
  57. {0, 0, -1, 15},
  58. #endif
  59. {sipName_QWindow, &sipType_QWindow, 31, 16},
  60. {sipName_QPdfWriter, &sipType_QPdfWriter, -1, 17},
  61. {sipName_QScreen, &sipType_QScreen, -1, 18},
  62. #if defined(SIP_FEATURE_PyQt_SessionManager)
  63. {sipName_QSessionManager, &sipType_QSessionManager, -1, 19},
  64. #else
  65. {0, 0, -1, 19},
  66. #endif
  67. {sipName_QShortcut, &sipType_QShortcut, -1, 20},
  68. {sipName_QStandardItemModel, &sipType_QStandardItemModel, -1, 21},
  69. {sipName_QStyleHints, &sipType_QStyleHints, -1, 22},
  70. {sipName_QSyntaxHighlighter, &sipType_QSyntaxHighlighter, -1, 23},
  71. {sipName_QTextObject, &sipType_QTextObject, 33, 24},
  72. {sipName_QTextDocument, &sipType_QTextDocument, -1, 25},
  73. {sipName_QUndoGroup, &sipType_QUndoGroup, -1, 26},
  74. {sipName_QUndoStack, &sipType_QUndoStack, -1, -1},
  75. {sipName_QDoubleValidator, &sipType_QDoubleValidator, -1, 28},
  76. {sipName_QIntValidator, &sipType_QIntValidator, -1, 29},
  77. {sipName_QRegularExpressionValidator, &sipType_QRegularExpressionValidator, -1, -1},
  78. {sipName_QPointingDevice, &sipType_QPointingDevice, -1, -1},
  79. {sipName_QPaintDeviceWindow, &sipType_QPaintDeviceWindow, 32, -1},
  80. {sipName_QRasterWindow, &sipType_QRasterWindow, -1, -1},
  81. {sipName_QTextBlockGroup, &sipType_QTextBlockGroup, 35, 34},
  82. {sipName_QTextFrame, &sipType_QTextFrame, 36, -1},
  83. {sipName_QTextList, &sipType_QTextList, -1, -1},
  84. {sipName_QTextTable, &sipType_QTextTable, -1, -1},
  85. };
  86. int i = 0;
  87. sipType = NULL;
  88. do
  89. {
  90. struct class_graph *cg = &graph[i];
  91. if (cg->name != NULL && sipCpp->inherits(cg->name))
  92. {
  93. sipType = *cg->type;
  94. i = cg->yes;
  95. }
  96. else
  97. i = cg->no;
  98. }
  99. while (i >= 0);
  100. %End
  101. public:
  102. QGuiApplication(SIP_PYLIST argv /TypeHint="List[str]"/) /PostHook=__pyQtQAppHook__/ [(int &argc, char **argv, int = QCoreApplication::ApplicationFlags)];
  103. %MethodCode
  104. // The Python interface is a list of argument strings that is modified.
  105. int argc;
  106. char **argv;
  107. // Convert the list.
  108. if ((argv = pyqt6_qtgui_from_argv_list(a0, argc)) == NULL)
  109. sipIsErr = 1;
  110. else
  111. {
  112. // Create it now the arguments are right.
  113. static int nargc;
  114. nargc = argc;
  115. Py_BEGIN_ALLOW_THREADS
  116. sipCpp = new sipQGuiApplication(nargc, argv, QT_VERSION);
  117. Py_END_ALLOW_THREADS
  118. // Now modify the original list.
  119. pyqt6_qtgui_update_argv_list(a0, argc, argv);
  120. }
  121. %End
  122. virtual ~QGuiApplication() /ReleaseGIL/;
  123. %MethodCode
  124. pyqt6_qtgui_cleanup_qobjects();
  125. %End
  126. static QWindowList allWindows();
  127. static QWindowList topLevelWindows();
  128. static QWindow *topLevelAt(const QPoint &pos);
  129. static QString platformName();
  130. static QWindow *focusWindow();
  131. static QObject *focusObject();
  132. static QScreen *primaryScreen();
  133. static QList<QScreen *> screens();
  134. static QCursor *overrideCursor();
  135. static void setOverrideCursor(const QCursor &);
  136. static void changeOverrideCursor(const QCursor &);
  137. static void restoreOverrideCursor();
  138. static QFont font();
  139. static void setFont(const QFont &);
  140. static QClipboard *clipboard();
  141. static QPalette palette();
  142. static void setPalette(const QPalette &pal);
  143. static Qt::KeyboardModifiers keyboardModifiers();
  144. static Qt::KeyboardModifiers queryKeyboardModifiers();
  145. static Qt::MouseButtons mouseButtons();
  146. static void setLayoutDirection(Qt::LayoutDirection direction);
  147. static Qt::LayoutDirection layoutDirection();
  148. static bool isRightToLeft();
  149. static bool isLeftToRight();
  150. static void setDesktopSettingsAware(bool on);
  151. static bool desktopSettingsAware();
  152. static void setQuitOnLastWindowClosed(bool quit);
  153. static bool quitOnLastWindowClosed();
  154. static int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/;
  155. virtual bool notify(QObject *, QEvent *);
  156. signals:
  157. void fontDatabaseChanged();
  158. void screenAdded(QScreen *screen);
  159. void lastWindowClosed();
  160. void focusObjectChanged(QObject *focusObject);
  161. %If (PyQt_SessionManager)
  162. void commitDataRequest(QSessionManager &sessionManager);
  163. %End
  164. %If (PyQt_SessionManager)
  165. void saveStateRequest(QSessionManager &sessionManager);
  166. %End
  167. void focusWindowChanged(QWindow *focusWindow);
  168. void applicationStateChanged(Qt::ApplicationState state);
  169. void applicationDisplayNameChanged();
  170. public:
  171. static void setApplicationDisplayName(const QString &name);
  172. static QString applicationDisplayName();
  173. static QWindow *modalWindow();
  174. static QStyleHints *styleHints();
  175. static QInputMethod *inputMethod();
  176. qreal devicePixelRatio() const;
  177. %If (PyQt_SessionManager)
  178. bool isSessionRestored() const;
  179. %End
  180. %If (PyQt_SessionManager)
  181. QString sessionId() const;
  182. %End
  183. %If (PyQt_SessionManager)
  184. QString sessionKey() const;
  185. %End
  186. %If (PyQt_SessionManager)
  187. bool isSavingSession() const;
  188. %End
  189. static Qt::ApplicationState applicationState();
  190. static void sync();
  191. static void setWindowIcon(const QIcon &icon);
  192. static QIcon windowIcon();
  193. signals:
  194. void screenRemoved(QScreen *screen);
  195. void layoutDirectionChanged(Qt::LayoutDirection direction);
  196. void primaryScreenChanged(QScreen *screen);
  197. public:
  198. static void setDesktopFileName(const QString &name);
  199. static QString desktopFileName();
  200. static QScreen *screenAt(const QPoint &point);
  201. static void setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy);
  202. static Qt::HighDpiScaleFactorRoundingPolicy highDpiScaleFactorRoundingPolicy();
  203. %If (Qt_6_5_0 -)
  204. void setBadgeNumber(qint64 number);
  205. %End
  206. SIP_PYOBJECT nativeInterface(SIP_PYTYPE platform) const;
  207. %MethodCode
  208. bool handled = false;
  209. #if defined(SIP_FEATURE_PyQt_Wayland)
  210. if (a0 == (PyObject *)sipTypeAsPyTypeObject(sipType_QNativeInterface_QWaylandApplication))
  211. {
  212. auto *iface = sipCpp->nativeInterface<QNativeInterface::QWaylandApplication>();
  213. if (iface)
  214. {
  215. sipRes = sipConvertFromType(iface, sipType_QNativeInterface_QWaylandApplication, SIP_NULLPTR);
  216. handled = true;
  217. }
  218. }
  219. #endif
  220. #if defined(SIP_FEATURE_PyQt_XCB)
  221. if (a0 == (PyObject *)sipTypeAsPyTypeObject(sipType_QNativeInterface_QX11Application))
  222. {
  223. auto *iface = sipCpp->nativeInterface<QNativeInterface::QX11Application>();
  224. if (iface)
  225. {
  226. sipRes = sipConvertFromType(iface, sipType_QNativeInterface_QX11Application, SIP_NULLPTR);
  227. handled = true;
  228. }
  229. }
  230. #endif
  231. if (!handled)
  232. {
  233. sipRes = Py_None;
  234. Py_INCREF(sipRes);
  235. }
  236. %End
  237. protected:
  238. virtual bool event(QEvent *);
  239. };
  240. %ModuleHeaderCode
  241. // Imports from QtCore.
  242. typedef void (*pyqt6_qtgui_cleanup_qobjects_t)();
  243. extern pyqt6_qtgui_cleanup_qobjects_t pyqt6_qtgui_cleanup_qobjects;
  244. typedef char **(*pyqt6_qtgui_from_argv_list_t)(PyObject *, int &);
  245. extern pyqt6_qtgui_from_argv_list_t pyqt6_qtgui_from_argv_list;
  246. typedef void (*pyqt6_qtgui_update_argv_list_t)(PyObject *, int, char **);
  247. extern pyqt6_qtgui_update_argv_list_t pyqt6_qtgui_update_argv_list;
  248. %End
  249. %ModuleCode
  250. // Imports from QtCore.
  251. pyqt6_qtgui_cleanup_qobjects_t pyqt6_qtgui_cleanup_qobjects;
  252. pyqt6_qtgui_from_argv_list_t pyqt6_qtgui_from_argv_list;
  253. pyqt6_qtgui_update_argv_list_t pyqt6_qtgui_update_argv_list;
  254. // Forward declarations not in any header files but are part of the API.
  255. void qt_set_sequence_auto_mnemonic(bool enable);
  256. %End
  257. %InitialisationCode
  258. // Export our own helpers.
  259. sipExportSymbol("qtgui_wrap_ancestors", (void *)qtgui_wrap_ancestors);
  260. %End
  261. %PostInitialisationCode
  262. // Imports from QtCore.
  263. pyqt6_qtgui_cleanup_qobjects = (pyqt6_qtgui_cleanup_qobjects_t)sipImportSymbol("pyqt6_cleanup_qobjects");
  264. Q_ASSERT(pyqt6_qtgui_cleanup_qobjects);
  265. pyqt6_qtgui_from_argv_list = (pyqt6_qtgui_from_argv_list_t)sipImportSymbol("pyqt6_from_argv_list");
  266. Q_ASSERT(pyqt6_qtgui_from_argv_list);
  267. pyqt6_qtgui_update_argv_list = (pyqt6_qtgui_update_argv_list_t)sipImportSymbol("pyqt6_update_argv_list");
  268. Q_ASSERT(pyqt6_qtgui_update_argv_list);
  269. %End