import t, c from stdint import * from vqt6._types import * # ============================================================ # vqt6/_qtcore.py - t.State FFI declarations for QtCore # # All functions are extern "C" functions of the C bridge layer (libvqt6_bridge.a) # Naming convention: vqt6__ # ============================================================ # ============================================================ # QString — UTF-16 string # ============================================================ # Create a QString from a UTF-8 C string. def vqt6_qstring_create(utf8: char*) -> QtStringPtr | t.State: pass # Get the UTF-8 form of a QString (writes to buf, returns the actual length, excluding \0). # buf must be large enough (suggested 4 * qstring.length() + 1). def vqt6_qstring_to_utf8(qstr: QtStringPtr, buf: char*, buf_size: sizet) -> sizet | t.State: pass # Free a QString. def vqt6_qstring_free(qstr: QtStringPtr) -> t.State: pass # Get the QString character count. def vqt6_qstring_length(qstr: QtStringPtr) -> int | t.State: pass # Whether the QString is empty. def vqt6_qstring_is_empty(qstr: QtStringPtr) -> int | t.State: pass # Compare two QStrings. def vqt6_qstring_equals(qstr: QtStringPtr, other: QtStringPtr) -> int | t.State: pass # Concatenate QStrings (returns a new QString). def vqt6_qstring_append(qstr: QtStringPtr, other: QtStringPtr) -> QtStringPtr | t.State: pass def vqt6_asset_url_utf8(buf: char*, buf_size: sizet, name: char*) -> t.State: pass # ============================================================ # QByteArray — byte array # ============================================================ def vqt6_qbytearray_create(data: t.CPtr, size: sizet) -> QtByteArrayPtr | t.State: pass def vqt6_qbytearray_data(qba: QtByteArrayPtr, out_size: sizet*) -> t.CPtr | t.State: pass def vqt6_qbytearray_size(qba: QtByteArrayPtr) -> sizet | t.State: pass def vqt6_qbytearray_free(qba: QtByteArrayPtr) -> t.State: pass # ============================================================ # QObject — base class of all Qt objects # ============================================================ # Note: Qt object memory is managed by C++; do not free it directly from Viper. def vqt6_qobject_delete(obj: QtObjectPtr) -> t.State: pass def vqt6_qobject_delete_later(obj: QtObjectPtr) -> t.State: pass def vqt6_qobject_set_object_name(obj: QtObjectPtr, name: QtStringPtr) -> t.State: pass def vqt6_qobject_object_name(obj: QtObjectPtr) -> QtStringPtr | t.State: pass def vqt6_qobject_set_parent(child: QtObjectPtr, parent: QtObjectPtr) -> t.State: pass def vqt6_qobject_parent(obj: QtObjectPtr) -> QtObjectPtr | t.State: pass # Signal/slot connection (simplified). # typedef void (*vqt6_callback_t)(void* user_data); # Uses string signal/slot names + a global callback registry (function pointers are complex in the C ABI). def vqt6_qobject_connect(sender: QtObjectPtr, signal_name: char*, receiver: QtObjectPtr, slot_name: char*) -> int | t.State: pass def vqt6_qobject_disconnect(sender: QtObjectPtr, signal_name: char*, receiver: QtObjectPtr, slot_name: char*) -> int | t.State: pass # Event filter def vqt6_qobject_install_event_filter(watched: QtObjectPtr, filter: QtObjectPtr) -> t.State: pass def vqt6_qobject_remove_event_filter(watched: QtObjectPtr, filter: QtObjectPtr) -> t.State: pass # ============================================================ # QCoreApplication — base event loop class # ============================================================ def vqt6_qcoreapp_create(app_name: char*) -> QtCoreAppPtr | t.State: pass def vqt6_qcoreapp_instance() -> QtCoreAppPtr | t.State: pass def vqt6_qcoreapp_exec(app: QtCoreAppPtr) -> int | t.State: pass def vqt6_qcoreapp_quit(app: QtCoreAppPtr, exit_code: int) -> t.State: pass def vqt6_qcoreapp_exit(app: QtCoreAppPtr, exit_code: int) -> t.State: pass def vqt6_qcoreapp_process_events(app: QtCoreAppPtr, flags: int) -> t.State: pass def vqt6_qcoreapp_post_event(receiver: QtObjectPtr, event: QtEventPtr) -> t.State: pass def vqt6_qcoreapp_send_event(receiver: QtObjectPtr, event: QtEventPtr) -> int | t.State: pass def vqt6_qcoreapp_organization_name(app: QtCoreAppPtr) -> QtStringPtr | t.State: pass def vqt6_qcoreapp_set_organization_name(app: QtCoreAppPtr, name: QtStringPtr) -> t.State: pass def vqt6_qcoreapp_application_name(app: QtCoreAppPtr) -> QtStringPtr | t.State: pass def vqt6_qcoreapp_set_application_name(app: QtCoreAppPtr, name: QtStringPtr) -> t.State: pass # ============================================================ # QTimer — timer # ============================================================ def vqt6_qtimer_create() -> QtTimerPtr | t.State: pass def vqt6_qtimer_create_with_parent(parent: QtObjectPtr) -> QtTimerPtr | t.State: pass def vqt6_qtimer_start(timer: QtTimerPtr, interval_ms: int) -> t.State: pass def vqt6_qtimer_stop(timer: QtTimerPtr) -> t.State: pass def vqt6_qtimer_set_interval(timer: QtTimerPtr, interval_ms: int) -> t.State: pass def vqt6_qtimer_interval(timer: QtTimerPtr) -> int | t.State: pass def vqt6_qtimer_is_active(timer: QtTimerPtr) -> int | t.State: pass def vqt6_qtimer_set_single_shot(timer: QtTimerPtr, single_shot: int) -> t.State: pass def vqt6_qtimer_is_single_shot(timer: QtTimerPtr) -> int | t.State: pass # timeout signal -> callback (cb is a Viper module-level function (slot_id: int, user_data: t.CPtr)). def vqt6_qtimer_connect_timeout(timer: QtTimerPtr, cb: bytes, user_data: bytes) -> t.State: pass # ============================================================ # QVariant — generic data container # ============================================================ def vqt6_qvariant_create_int(value: int) -> QtVariantPtr | t.State: pass def vqt6_qvariant_create_double(value: double) -> QtVariantPtr | t.State: pass def vqt6_qvariant_create_bool(value: int) -> QtVariantPtr | t.State: pass def vqt6_qvariant_create_string(s: QtStringPtr) -> QtVariantPtr | t.State: pass def vqt6_qvariant_to_int(v: QtVariantPtr, ok: int*) -> int | t.State: pass def vqt6_qvariant_to_double(v: QtVariantPtr, ok: int*) -> double | t.State: pass def vqt6_qvariant_to_bool(v: QtVariantPtr, ok: int*) -> int | t.State: pass def vqt6_qvariant_to_string(v: QtVariantPtr) -> QtStringPtr | t.State: pass def vqt6_qvariant_type_id(v: QtVariantPtr) -> int | t.State: pass def vqt6_qvariant_is_valid(v: QtVariantPtr) -> int | t.State: pass def vqt6_qvariant_free(v: QtVariantPtr) -> t.State: pass # ============================================================ # QEvent — base event class # ============================================================ def vqt6_qevent_type(event: QtEventPtr) -> int | t.State: pass def vqt6_qevent_accept(event: QtEventPtr) -> t.State: pass def vqt6_qevent_ignore(event: QtEventPtr) -> t.State: pass def vqt6_qevent_is_accepted(event: QtEventPtr) -> int | t.State: pass # ============================================================ # String list (QStringList / QList) # ============================================================ def vqt6_qstringlist_create() -> QtStringListPtr | t.State: pass def vqt6_qstringlist_append(list: QtStringListPtr, str: QtStringPtr) -> t.State: pass def vqt6_qstringlist_size(list: QtStringListPtr) -> int | t.State: pass def vqt6_qstringlist_at(list: QtStringListPtr, index: int) -> QtStringPtr | t.State: pass def vqt6_qstringlist_free(list: QtStringListPtr) -> t.State: pass # ============================================================ # Byte-array list (QList) # ============================================================ def vqt6_qbytearraylist_create() -> QtByteArrayListPtr | t.State: pass def vqt6_qbytearraylist_append(list: QtByteArrayListPtr, qba: QtByteArrayPtr) -> t.State: pass def vqt6_qbytearraylist_size(list: QtByteArrayListPtr) -> int | t.State: pass def vqt6_qbytearraylist_at(list: QtByteArrayListPtr, index: int) -> QtByteArrayPtr | t.State: pass def vqt6_qbytearraylist_free(list: QtByteArrayListPtr) -> t.State: pass # ============================================================ # Global callback registry # ============================================================ # Lets C++ call back into Viper: Viper registers a slot function (integer ID) that # C++ looks up by ID when a signal fires. # typedef void (*vqt6_slot_callback_t)(int slot_id, void* user_data); def vqt6_register_slot(slot_id: int, user_data: t.CPtr) -> t.State: pass def vqt6_unregister_slot(slot_id: int) -> t.State: pass def vqt6_trigger_slot(slot_id: int) -> t.State: pass # for testing # ============================================================ # Clipboard — copying links, etc. # ============================================================ def vqt6_clipboard_set_text_utf8(text: char*) -> t.State: pass def vqt6_clipboard_text_utf8(buf: char*, buf_size: int) -> int | t.State: pass