Files
Viper_VRTE/vqt6/_qtcore.vp
T
TermiNexus c0d56b127d chore(comments): includes 头注释英文化(R11 收尾)
把 includes 下 64 个 .vp 的文件头注释(含 traceback.vp 第 13-427 行的整块文件级说明)以及 2 处漏网的正文中文注释(ast/lexer.vp、json/__writer.vp)与 1 处中文 docstring(memhub.vp)逐行译为英文;同步把 fltk/gen_ffi.py 的生成模板与其自身注释英文化,使重新生成仍为英文。

只改注释/文档串文字:行数与代码逐字节不变(骨架比对 140 文件漂移 0),运行时中文字符串字面量 305 处保持原样。验证:三重重编 SUCCESS(170.21s)+ 全量 77/77 顺序回归通过 + VET 编译 SUCCESS / --search-paths 7 条 exit 0。
2026-10-06 09:42:25 +08:00

167 lines
8.7 KiB
Plaintext

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_<class>_<action>
# ============================================================
# ============================================================
# 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<QString>)
# ============================================================
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<QByteArray>)
# ============================================================
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