qtbinding.h 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. #ifndef QTBINDING_H
  2. #define QTBINDING_H
  3. #include <stdlib.h>
  4. #include <stdint.h>
  5. #ifdef _WIN32
  6. #ifdef QTBINDING_WIN32_DLL
  7. #define EXPORT __declspec(dllexport)
  8. #else
  9. #define EXPORT __declspec(dllimport)
  10. #endif
  11. #else
  12. #define EXPORT
  13. #endif
  14. struct _QtConnHandle {
  15. void* ptr;
  16. };
  17. typedef struct _QtConnHandle QtConnHandle;
  18. typedef int QtBool;
  19. struct _QtString {
  20. void* ptr;
  21. };
  22. typedef struct _QtString QtString;
  23. struct _QtStringList {
  24. void* ptr;
  25. };
  26. typedef struct _QtStringList QtStringList;
  27. struct _QtVariantMap {
  28. void* ptr;
  29. };
  30. typedef struct _QtVariantMap QtVariantMap;
  31. struct _QtVariantList {
  32. void* ptr;
  33. };
  34. typedef struct _QtVariantList QtVariantList;
  35. struct _QtIcon {
  36. void* ptr;
  37. };
  38. typedef struct _QtIcon QtIcon;
  39. struct _QtPixmap {
  40. void* ptr;
  41. };
  42. typedef struct _QtPixmap QtPixmap;
  43. struct _QtEvent {
  44. void* ptr;
  45. };
  46. typedef struct _QtEvent QtEvent;
  47. struct _QtEventListener {
  48. void* ptr;
  49. };
  50. typedef struct _QtEventListener QtEventListener;
  51. struct _QtByteArray {
  52. void* ptr;
  53. };
  54. typedef struct _QtByteArray QtByteArray;
  55. struct _QtPoint {
  56. int x;
  57. int y;
  58. };
  59. typedef struct _QtPoint QtPoint;
  60. struct _KvdbSelectQuery {
  61. void* ptr;
  62. };
  63. typedef struct _KvdbSelectQuery KvdbSelectQuery;
  64. #ifdef __cplusplus
  65. extern "C" {
  66. #endif
  67. // Event Categories
  68. EXPORT extern const size_t QtEventMove;
  69. EXPORT extern const size_t QtEventResize;
  70. EXPORT extern const size_t QtEventClose;
  71. EXPORT extern const size_t QtEventFocusIn;
  72. EXPORT extern const size_t QtEventFocusOut;
  73. EXPORT extern const size_t QtEventDynamicPropertyChange;
  74. // Window Kinds
  75. EXPORT extern const size_t QtWindowKindOrdinary;
  76. EXPORT extern const size_t QtWindowKindDialog;
  77. EXPORT extern const size_t QtWindowKindPopup;
  78. // API
  79. EXPORT void QtInit();
  80. EXPORT int QtMain();
  81. EXPORT void QtCommitTask(void (*cb)(size_t), size_t payload);
  82. EXPORT void QtExit(int code);
  83. EXPORT void QtQuit();
  84. EXPORT QtString QtNewUUID();
  85. EXPORT void* QtLoadWidget(const char* definition, const char* directory);
  86. EXPORT void* QtObjectFindChild(void* object_ptr, const char* name);
  87. EXPORT void* QtWidgetFindChildWidget(void* widget_ptr, const char* name);
  88. EXPORT void* QtWidgetFindChildAction(void* widget_ptr, const char* name);
  89. EXPORT void QtWidgetShow(void* widget_ptr);
  90. EXPORT void QtWidgetHide(void* widget_ptr);
  91. EXPORT void QtWidgetMoveToScreenCenter(void* widget_ptr);
  92. EXPORT QtString QtObjectGetClassName(void* obj_ptr);
  93. EXPORT QtBool QtObjectSetPropBool(void* obj_ptr, const char* prop, QtBool val);
  94. EXPORT QtBool QtObjectGetPropBool(void* obj_ptr, const char* prop);
  95. EXPORT QtBool QtObjectSetPropString(void* obj_ptr, const char* prop, QtString val);
  96. EXPORT QtString QtObjectGetPropString(void* obj_ptr, const char* prop);
  97. EXPORT QtBool QtObjectSetPropInt(void* obj_ptr, const char* prop, int val);
  98. EXPORT int QtObjectGetPropInt(void* obj_ptr, const char* prop);
  99. EXPORT QtBool QtObjectSetPropPoint(void* obj_ptr, const char* prop, QtPoint val);
  100. EXPORT QtPoint QtObjectGetPropPoint(void* obj_ptr, const char* prop);
  101. EXPORT QtConnHandle QtConnect(void* obj_ptr, const char* signal, void (*cb)(size_t), size_t payload);
  102. EXPORT QtBool QtIsConnectionValid(QtConnHandle handle);
  103. EXPORT void QtDisconnect(QtConnHandle handle);
  104. EXPORT void QtBlockSignals(void* obj_ptr, QtBool block);
  105. EXPORT void QtBlockCallbacks(void* obj_ptr, QtBool block);
  106. EXPORT QtEventListener QtAddEventListener(void* obj_ptr, size_t kind, QtBool prevent, void (*cb)(size_t), size_t payload);
  107. EXPORT QtEvent QtGetCurrentEvent(QtEventListener listener);
  108. EXPORT void QtRemoveEventListener(void* obj_ptr, QtEventListener listener);
  109. EXPORT size_t QtResizeEventGetWidth(QtEvent ev);
  110. EXPORT size_t QtResizeEventGetHeight(QtEvent ev);
  111. EXPORT QtString QtDynamicPropertyChangeEventGetPropertyName(QtEvent ev);
  112. EXPORT QtPoint QtMakePoint(int x, int y);
  113. EXPORT int QtPointGetX(QtPoint p);
  114. EXPORT int QtPointGetY(QtPoint p);
  115. EXPORT QtString QtNewStringUTF8(const uint8_t* buf, size_t len);
  116. EXPORT QtString QtNewStringUTF32(const uint32_t* buf, size_t len);
  117. EXPORT void QtDeleteString(QtString str);
  118. EXPORT size_t QtStringListGetSize(QtStringList list);
  119. EXPORT QtString QtStringListGetItem(QtStringList list, size_t index);
  120. EXPORT void QtDeleteStringList(QtStringList list);
  121. EXPORT uint8_t* QtByteArrayGetBuffer(QtByteArray data);
  122. EXPORT size_t QtByteArrayGetSize(QtByteArray data);
  123. EXPORT void QtDeleteByteArray(QtByteArray data);
  124. EXPORT QtVariantList QtNewVariantList();
  125. EXPORT void QtVariantListAppendNumber(QtVariantList l, double n);
  126. EXPORT void QtVariantListAppendString(QtVariantList l, QtString str);
  127. EXPORT void QtDeleteVariantList(QtVariantList l);
  128. EXPORT QtString QtVariantMapGetString(QtVariantMap m, QtString key);
  129. EXPORT double QtVariantMapGetFloat(QtVariantMap m, QtString key);
  130. EXPORT QtBool QtVariantMapGetBool(QtVariantMap m, QtString key);
  131. EXPORT void QtDeleteVariantMap(QtVariantMap m);
  132. EXPORT size_t QtStringUTF16Length(QtString str);
  133. EXPORT size_t QtStringWriteToUTF32Buffer(QtString str, uint32_t *buf);
  134. EXPORT QtIcon QtNewIcon(QtPixmap pm);
  135. EXPORT QtIcon QtNewIconEmpty();
  136. EXPORT void QtDeleteIcon(QtIcon icon);
  137. EXPORT QtPixmap QtNewPixmapPNG(const uint8_t* buf, size_t len);
  138. EXPORT QtPixmap QtNewPixmapJPEG(const uint8_t* buf, size_t len);
  139. EXPORT void QtDeletePixmap(QtPixmap pm);
  140. EXPORT void QtListWidgetClear(void* widget_ptr);
  141. EXPORT void QtListWidgetAddItem(void* widget_ptr, QtString key_, QtIcon icon_, QtString label_, QtBool as_current);
  142. EXPORT QtBool QtListWidgetHasCurrentItem(void* widget_ptr);
  143. EXPORT QtString QtListWidgetGetCurrentItemKey(void* widget_ptr);
  144. EXPORT void QtTreeWidgetClear(void* widget_ptr);
  145. EXPORT size_t QtTreeWidgetGetColumnCount(void* widget_ptr);
  146. EXPORT void* QtTreeWidgetAddItem(void* widget_ptr, void* parent_item_ptr, QtString key_, QtIcon icon_, QtString* labels_, QtBool as_current);
  147. EXPORT QtBool QtTreeWidgetHasCurrentItem(void* widget_ptr);
  148. EXPORT QtString QtTreeWidgetGetCurrentItemKey(void* widget_ptr);
  149. EXPORT void QtWebViewDisableContextMenu(void* widget_ptr);
  150. EXPORT void QtWebViewEnableLinkDelegation(void* widget_ptr);
  151. EXPORT void QtWebViewSetHTML(void* widget_ptr, QtString html, QtString base_url);
  152. EXPORT void QtWebViewScrollToAnchor(void* widget_ptr, QtString anchor);
  153. EXPORT QtPoint QtWebViewGetScroll(void* widget_ptr);
  154. EXPORT void QtDialogExec(void* dialog_ptr);
  155. EXPORT void QtDialogAccept(void* dialog_ptr);
  156. EXPORT void QtDialogReject(void* dialog_ptr);
  157. EXPORT void QtWebViewSetScroll(void* widget_ptr, QtPoint pos);
  158. EXPORT void QtDialogShowModal(void* dialog_ptr);
  159. EXPORT void QtDialogSetParent(void* dialog_ptr, void* parent_ptr);
  160. EXPORT QtBool QtColorDialog(void* parent_ptr, QtString title, size_t* h, size_t* s, size_t* l, size_t* a);
  161. EXPORT QtString QtFileDialogOpen(void* parent_ptr, QtString title, QtString cwd, QtString filter);
  162. EXPORT QtStringList QtFileDialogOpenMultiple(void* parent_ptr, QtString title, QtString cwd, QtString filter);
  163. EXPORT QtString QtFileDialogSelectDirectory(void* parent_ptr, QtString title, QtString cwd);
  164. EXPORT QtString QtFileDialogSave(void* parent_ptr, QtString title, QtString cwd, QtString filter);
  165. EXPORT QtBool QtInputDialog(void* parent_ptr, QtString title, QtString prompt, QtBool password, QtString text);
  166. EXPORT QtBool QtInputDialogInt(void* parent_ptr, QtString title, QtString prompt, int min, int max, int step, int* value);
  167. EXPORT QtBool QtInputDialogDouble(void* parent_ptr, QtString title, QtString prompt, double min, double max, double step, int decimals, double* value);
  168. EXPORT QtBool QtMessageBoxConfirm(void* parent_ptr, QtString title, QtString content);
  169. EXPORT void QtMessageBoxError(void* parent_ptr, QtString title, QtString content);
  170. // API (Web)
  171. EXPORT void WebViewLoadContent(void* view_ptr);
  172. EXPORT void WebViewRegisterAsset(void* view_ptr, QtString key, QtString mime, const uint8_t* buf, size_t len);
  173. EXPORT QtString WebGetAssetURL(QtString key);
  174. EXPORT void WebViewInjectCSS(void* view_ptr, QtString key);
  175. EXPORT void WebViewInjectJS(void* view_ptr, QtString key);
  176. EXPORT void WebViewInjectTTF(void* view_ptr, QtString key, QtString family, QtString weight, QtString style);
  177. EXPORT void WebViewCallMethod(void* view_ptr, QtString id, QtString name, QtVariantList args);
  178. EXPORT QtString WebViewGetCurrentEventHandler(void* view_ptr);
  179. EXPORT QtVariantMap WebViewGetCurrentEventPayload(void* view_ptr);
  180. EXPORT void WebViewPatchActualDOM(void* view_ptr, QtString operations);
  181. EXPORT void* WebWindowCreate(void* parent_ptr, size_t kind, QtIcon icon, QtString title, int width, int height, QtBool closeBtn, QtBool modal, QtBool debug);
  182. EXPORT void* WebWindowGetWebView(void* w_ptr);
  183. EXPORT void WebWindowDispose(void* w_ptr);
  184. EXPORT void WebWindowShow(void* w_ptr, QtBool set_pos, int x, int y);
  185. // API (Kvdb)
  186. EXPORT QtBool KvdbOpen(void** handle_ptr, QtString path, QtBool exclusive);
  187. EXPORT void KvdbClose(void* handle);
  188. EXPORT QtBool KvdbInsert(void* handle, QtString key, int category, uint8_t* val_buf, size_t val_len);
  189. EXPORT QtBool KvdbRemove(void* handle, QtString key);
  190. EXPORT QtBool KvdbUpdate(void* handle, QtString key, uint8_t* val_buf, size_t val_len);
  191. EXPORT QtBool KvdbLookup(void* handle, QtString key, QtBool* found, QtByteArray* value);
  192. EXPORT QtBool KvdbReadAll(void* handle, KvdbSelectQuery* q);
  193. EXPORT QtBool KvdbReadCategory(void* handle, int category, KvdbSelectQuery* q);
  194. EXPORT QtBool KvdbSelectQueryNext(KvdbSelectQuery q, QtString* key, QtByteArray* value);
  195. EXPORT void KvdbDeleteSelectQuery(KvdbSelectQuery q);
  196. #ifdef __cplusplus
  197. }
  198. #endif
  199. #endif