Files
TransPyC/includes/vqt6/_bridge_widgets.h
T

490 lines
27 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ============================================================
// vqt6/_bridge_widgets.h — QtWidgets C 桥接函数声明
// ============================================================
#ifndef VQT6_BRIDGE_WIDGETS_H
#define VQT6_BRIDGE_WIDGETS_H
#include "_bridge.h"
#ifdef __cplusplus
extern "C" {
#endif
// ============================================================
// QApplication
// ============================================================
VQT6_API void* vqt6_qapplication_create(int argc, char** argv);
VQT6_API void* vqt6_qapplication_instance(void);
VQT6_API int vqt6_qapplication_exec(void* app);
VQT6_API void vqt6_qapplication_quit(void* app);
VQT6_API void vqt6_qapplication_exit(void* app, int exit_code);
VQT6_API void vqt6_qapplication_process_events(void* app);
VQT6_API int vqt6_qapplication_desktop_width(void* app);
VQT6_API int vqt6_qapplication_desktop_height(void* app);
VQT6_API void vqt6_qapplication_set_quit_on_last_window_closed(void* app, int quit);
VQT6_API int vqt6_qapplication_quit_on_last_window_closed(void* app);
VQT6_API void vqt6_qapplication_set_theme_palette(void* app, int theme);
VQT6_API void vqt6_enable_custom_item_checks(void* app);
// ============================================================
// QWidget
// ============================================================
VQT6_API void* vqt6_qwidget_create(void);
VQT6_API void* vqt6_qwidget_create_with_parent(void* parent);
VQT6_API void vqt6_qwidget_show(void* widget);
VQT6_API void vqt6_qwidget_hide(void* widget);
VQT6_API int vqt6_qwidget_close(void* widget);
VQT6_API int vqt6_qwidget_is_visible(void* widget);
VQT6_API void vqt6_qwidget_set_visible(void* widget, int visible);
VQT6_API void vqt6_qwidget_set_geometry(void* widget, int x, int y, int w, int h);
VQT6_API void vqt6_qwidget_geometry(void* widget, int* x, int* y, int* w, int* h);
VQT6_API void vqt6_qwidget_resize(void* widget, int w, int h);
VQT6_API void vqt6_qwidget_size(void* widget, int* w, int* h);
VQT6_API void vqt6_qwidget_move(void* widget, int x, int y);
VQT6_API void vqt6_qwidget_pos(void* widget, int* x, int* y);
VQT6_API int vqt6_qwidget_width(void* widget);
VQT6_API int vqt6_qwidget_height(void* widget);
VQT6_API int vqt6_qwidget_x(void* widget);
VQT6_API int vqt6_qwidget_y(void* widget);
VQT6_API void vqt6_qwidget_set_window_title(void* widget, void* title);
VQT6_API void* vqt6_qwidget_window_title(void* widget);
VQT6_API void vqt6_qwidget_set_text(void* widget, void* text);
VQT6_API void* vqt6_qwidget_text(void* widget);
// UTF-8 便捷版:直接传 C 字符串(Viper str),内部转 QString,避免 Viper 端手动创建/释放 QString
VQT6_API void vqt6_qlabel_set_text_utf8(void* label, const char* utf8);
VQT6_API void vqt6_qplaintextedit_append_utf8(void* pte, const char* utf8);
VQT6_API void vqt6_qplaintextedit_set_plain_text_utf8(void* pte, const char* utf8);
// Qt 样式表(QSS):直接传 C 字符串,深色主题等外观定制
VQT6_API void vqt6_qwidget_set_stylesheet_utf8(void* widget, const char* utf8);
VQT6_API void vqt6_qwidget_set_enabled(void* widget, int enabled);
VQT6_API int vqt6_qwidget_is_enabled(void* widget);
VQT6_API void vqt6_qwidget_set_parent(void* widget, void* parent);
VQT6_API void* vqt6_qwidget_parent_widget(void* widget);
VQT6_API void vqt6_qwidget_set_focus(void* widget);
VQT6_API void vqt6_qwidget_clear_focus(void* widget);
VQT6_API int vqt6_qwidget_has_focus(void* widget);
VQT6_API void vqt6_qwidget_set_focus_policy(void* widget, int policy);
VQT6_API void vqt6_qwidget_update(void* widget);
VQT6_API void vqt6_qwidget_repaint(void* widget);
VQT6_API void vqt6_qwidget_set_update_enabled(void* widget, int enabled);
VQT6_API void vqt6_qwidget_set_window_flags(void* widget, int flags);
VQT6_API int vqt6_qwidget_window_flags(void* widget);
VQT6_API void vqt6_qwidget_set_cursor(void* widget, void* cursor);
VQT6_API void* vqt6_qwidget_cursor(void* widget);
VQT6_API void vqt6_qwidget_unset_cursor(void* widget);
VQT6_API void vqt6_qwidget_set_tool_tip(void* widget, void* tip);
VQT6_API void* vqt6_qwidget_tool_tip(void* widget);
VQT6_API void vqt6_qwidget_set_status_tip(void* widget, void* tip);
VQT6_API void* vqt6_qwidget_status_tip(void* widget);
VQT6_API void vqt6_qwidget_set_minimum_size(void* widget, int w, int h);
VQT6_API void vqt6_qwidget_set_maximum_size(void* widget, int w, int h);
VQT6_API void vqt6_qwidget_set_fixed_size(void* widget, int w, int h);
VQT6_API void vqt6_qwidget_minimum_size(void* widget, int* w, int* h);
VQT6_API void vqt6_qwidget_maximum_size(void* widget, int* w, int* h);
// ============================================================
// QDialog
// ============================================================
VQT6_API void* vqt6_qdialog_create(void);
VQT6_API void* vqt6_qdialog_create_with_parent(void* parent);
VQT6_API int vqt6_qdialog_exec(void* dialog);
VQT6_API void vqt6_qdialog_done(void* dialog, int result);
VQT6_API void vqt6_qdialog_accept(void* dialog);
VQT6_API void vqt6_qdialog_reject(void* dialog);
VQT6_API void vqt6_qdialog_set_result(void* dialog, int result);
VQT6_API int vqt6_qdialog_result(void* dialog);
VQT6_API void vqt6_qdialog_set_modal(void* dialog, int modal);
VQT6_API int vqt6_qdialog_is_modal(void* dialog);
// ============================================================
// QMainWindow
// ============================================================
VQT6_API void* vqt6_qmainwindow_create(void);
VQT6_API void* vqt6_qmainwindow_create_with_parent(void* parent);
VQT6_API void vqt6_qmainwindow_set_central_widget(void* mw, void* widget);
VQT6_API void* vqt6_qmainwindow_central_widget(void* mw);
VQT6_API void* vqt6_qmainwindow_menu_bar(void* mw);
VQT6_API void vqt6_qmainwindow_set_menu_bar(void* mw, void* menubar);
VQT6_API void* vqt6_qmainwindow_status_bar(void* mw);
VQT6_API void vqt6_qmainwindow_set_status_bar(void* mw, void* statusbar);
VQT6_API void vqt6_qmainwindow_add_tool_bar(void* mw, void* toolbar);
VQT6_API void vqt6_qmainwindow_add_tool_bar_break(void* mw);
// ============================================================
// QLabel
// ============================================================
VQT6_API void* vqt6_qlabel_create(void);
VQT6_API void* vqt6_qlabel_create_with_text(void* text);
VQT6_API void* vqt6_qlabel_create_with_text_parent(void* text, void* parent);
VQT6_API void vqt6_qlabel_set_text(void* label, void* text);
VQT6_API void* vqt6_qlabel_text(void* label);
VQT6_API void vqt6_qlabel_set_alignment(void* label, int alignment);
VQT6_API int vqt6_qlabel_alignment(void* label);
VQT6_API void vqt6_qlabel_set_pixmap(void* label, void* pixmap);
VQT6_API void* vqt6_qlabel_pixmap(void* label);
VQT6_API void vqt6_qlabel_set_indent(void* label, int indent);
VQT6_API void vqt6_qlabel_set_margin(void* label, int margin);
VQT6_API void vqt6_qlabel_set_word_wrap(void* label, int wrap);
VQT6_API int vqt6_qlabel_word_wrap(void* label);
// ============================================================
// QPushButton
// ============================================================
VQT6_API void* vqt6_qpushbutton_create(void);
VQT6_API void* vqt6_qpushbutton_create_with_text(void* text);
VQT6_API void* vqt6_qpushbutton_create_with_text_parent(void* text, void* parent);
VQT6_API void vqt6_qpushbutton_set_text(void* btn, void* text);
VQT6_API void* vqt6_qpushbutton_text(void* btn);
VQT6_API void vqt6_qpushbutton_set_icon(void* btn, void* icon);
VQT6_API void* vqt6_qpushbutton_icon(void* btn);
VQT6_API void vqt6_qpushbutton_set_default(void* btn, int is_default);
VQT6_API int vqt6_qpushbutton_is_default(void* btn);
VQT6_API void vqt6_qpushbutton_set_flat(void* btn, int flat);
VQT6_API int vqt6_qpushbutton_is_flat(void* btn);
VQT6_API void vqt6_qpushbutton_set_checkable(void* btn, int checkable);
VQT6_API int vqt6_qpushbutton_is_checkable(void* btn);
VQT6_API void vqt6_qpushbutton_set_checked(void* btn, int checked);
VQT6_API int vqt6_qpushbutton_is_checked(void* btn);
VQT6_API void vqt6_qpushbutton_click(void* btn);
// ============================================================
// QLineEdit
// ============================================================
VQT6_API void* vqt6_qlineedit_create(void);
VQT6_API void* vqt6_qlineedit_create_with_text(void* text);
VQT6_API void* vqt6_qlineedit_create_with_text_parent(void* text, void* parent);
VQT6_API void* vqt6_qlineedit_text(void* le);
VQT6_API void vqt6_qlineedit_set_text(void* le, void* text);
VQT6_API void* vqt6_qlineedit_placeholder_text(void* le);
VQT6_API void vqt6_qlineedit_set_placeholder_text(void* le, void* text);
VQT6_API void vqt6_qlineedit_set_max_length(void* le, int max);
VQT6_API int vqt6_qlineedit_max_length(void* le);
VQT6_API void vqt6_qlineedit_set_read_only(void* le, int ro);
VQT6_API int vqt6_qlineedit_is_read_only(void* le);
VQT6_API void vqt6_qlineedit_set_echo_mode(void* le, int mode);
VQT6_API int vqt6_qlineedit_echo_mode(void* le);
VQT6_API void vqt6_qlineedit_select_all(void* le);
VQT6_API void vqt6_qlineedit_clear(void* le);
// ============================================================
// QTextEdit / QPlainTextEdit
// ============================================================
VQT6_API void* vqt6_qtextedit_create(void);
VQT6_API void* vqt6_qtextedit_create_with_parent(void* parent);
VQT6_API void* vqt6_qtextedit_to_plain_text(void* te);
VQT6_API void vqt6_qtextedit_set_plain_text(void* te, void* text);
VQT6_API void vqt6_qtextedit_set_html(void* te, void* html);
VQT6_API void* vqt6_qtextedit_to_html(void* te);
VQT6_API void vqt6_qtextedit_append(void* te, void* text);
VQT6_API void vqt6_qtextedit_clear(void* te);
VQT6_API void vqt6_qtextedit_set_read_only(void* te, int ro);
VQT6_API int vqt6_qtextedit_is_read_only(void* te);
VQT6_API void* vqt6_qplaintextedit_create(void);
VQT6_API void* vqt6_qplaintextedit_create_with_parent(void* parent);
VQT6_API void* vqt6_qplaintextedit_to_plain_text(void* pte);
VQT6_API void vqt6_qplaintextedit_set_plain_text(void* pte, void* text);
VQT6_API void vqt6_qplaintextedit_append(void* pte, void* text);
VQT6_API void vqt6_qplaintextedit_clear(void* pte);
VQT6_API void vqt6_qplaintextedit_set_read_only(void* pte, int ro);
VQT6_API int vqt6_qplaintextedit_line_count(void* pte);
// ============================================================
// QCheckBox / QRadioButton
// ============================================================
VQT6_API void* vqt6_qcheckbox_create(void);
VQT6_API void* vqt6_qcheckbox_create_with_text(void* text);
VQT6_API void* vqt6_qcheckbox_create_with_text_parent(void* text, void* parent);
VQT6_API void vqt6_qcheckbox_set_checked(void* cb, int checked);
VQT6_API int vqt6_qcheckbox_is_checked(void* cb);
VQT6_API void vqt6_qcheckbox_set_text(void* cb, void* text);
VQT6_API void* vqt6_qcheckbox_text(void* cb);
VQT6_API void vqt6_qcheckbox_set_tristate(void* cb, int tristate);
VQT6_API int vqt6_qcheckbox_is_tristate(void* cb);
VQT6_API void* vqt6_qradiobutton_create(void);
VQT6_API void* vqt6_qradiobutton_create_with_text(void* text);
VQT6_API void* vqt6_qradiobutton_create_with_text_parent(void* text, void* parent);
VQT6_API void vqt6_qradiobutton_set_checked(void* rb, int checked);
VQT6_API int vqt6_qradiobutton_is_checked(void* rb);
VQT6_API void vqt6_qradiobutton_set_text(void* rb, void* text);
VQT6_API void* vqt6_qradiobutton_text(void* rb);
// ============================================================
// QComboBox
// ============================================================
VQT6_API void* vqt6_qcombobox_create(void);
VQT6_API void* vqt6_qcombobox_create_with_parent(void* parent);
VQT6_API void vqt6_qcombobox_add_item(void* cb, void* text);
VQT6_API void vqt6_qcombobox_add_items(void* cb, void* items);
VQT6_API void vqt6_qcombobox_insert_item(void* cb, int index, void* text);
VQT6_API void vqt6_qcombobox_remove_item(void* cb, int index);
VQT6_API void vqt6_qcombobox_clear(void* cb);
VQT6_API int vqt6_qcombobox_count(void* cb);
VQT6_API int vqt6_qcombobox_current_index(void* cb);
VQT6_API void vqt6_qcombobox_set_current_index(void* cb, int index);
VQT6_API void* vqt6_qcombobox_current_text(void* cb);
VQT6_API void* vqt6_qcombobox_item_text(void* cb, int index);
VQT6_API void vqt6_qcombobox_set_editable(void* cb, int editable);
VQT6_API int vqt6_qcombobox_is_editable(void* cb);
// ============================================================
// QListWidget
// ============================================================
VQT6_API void* vqt6_qlistwidget_create(void);
VQT6_API void* vqt6_qlistwidget_create_with_parent(void* parent);
VQT6_API void vqt6_qlistwidget_add_item(void* lw, void* text);
VQT6_API void vqt6_qlistwidget_add_items(void* lw, void* items);
VQT6_API void vqt6_qlistwidget_insert_item(void* lw, int row, void* text);
VQT6_API void vqt6_qlistwidget_remove_item_widget(void* lw, int row);
VQT6_API void* vqt6_qlistwidget_take_item(void* lw, int row);
VQT6_API void vqt6_qlistwidget_clear(void* lw);
VQT6_API int vqt6_qlistwidget_count(void* lw);
VQT6_API int vqt6_qlistwidget_current_row(void* lw);
VQT6_API void vqt6_qlistwidget_set_current_row(void* lw, int row);
VQT6_API void* vqt6_qlistwidget_current_item_text(void* lw);
VQT6_API void* vqt6_qlistwidget_item_text(void* lw, int row);
VQT6_API void vqt6_qlistwidget_set_item_text(void* lw, int row, void* text);
// ============================================================
// QTreeWidget / QTreeWidgetItem
// ============================================================
VQT6_API void* vqt6_qtreewidget_create(void);
VQT6_API void* vqt6_qtreewidget_create_with_parent(void* parent);
VQT6_API void vqt6_qtreewidget_add_top_level_item(void* tw, void* item);
VQT6_API void vqt6_qtreewidget_insert_top_level_item(void* tw, int index, void* item);
VQT6_API int vqt6_qtreewidget_top_level_item_count(void* tw);
VQT6_API void* vqt6_qtreewidget_top_level_item(void* tw, int index);
VQT6_API void* vqt6_qtreewidget_current_item(void* tw);
VQT6_API void vqt6_qtreewidget_expand_all(void* tw);
VQT6_API void vqt6_qtreewidget_collapse_all(void* tw);
VQT6_API void vqt6_qtreewidget_set_header_hidden(void* tw, int hidden);
VQT6_API void vqt6_qtreewidget_set_column_count(void* tw, int count);
VQT6_API void vqt6_qtreewidget_set_item_expanded(void* tw, void* item, int expanded);
VQT6_API void* vqt6_qtreewidgetitem_create(void* text);
VQT6_API void vqt6_qtreewidgetitem_add_child(void* item, void* child);
VQT6_API int vqt6_qtreewidgetitem_child_count(void* item);
VQT6_API void* vqt6_qtreewidgetitem_child(void* item, int index);
VQT6_API void vqt6_qtreewidgetitem_set_text(void* item, void* text);
VQT6_API void* vqt6_qtreewidgetitem_text(void* item);
VQT6_API void vqt6_qtreewidgetitem_set_checkable(void* item, int checkable);
VQT6_API void vqt6_qtreewidgetitem_set_check_state(void* item, int state);
VQT6_API int vqt6_qtreewidgetitem_check_state(void* item);
VQT6_API void vqt6_qtreewidgetitem_set_expanded(void* item, int expanded);
VQT6_API int vqt6_qtreewidgetitem_is_expanded(void* item);
VQT6_API void vqt6_qtreewidgetitem_set_data_int(void* item, int value);
VQT6_API int vqt6_qtreewidgetitem_data_int(void* item);
// ============================================================
// QProgressBar
// ============================================================
VQT6_API void* vqt6_qprogressbar_create(void);
VQT6_API void* vqt6_qprogressbar_create_with_parent(void* parent);
VQT6_API void vqt6_qprogressbar_set_value(void* pb, int value);
VQT6_API int vqt6_qprogressbar_value(void* pb);
VQT6_API void vqt6_qprogressbar_set_minimum(void* pb, int min);
VQT6_API void vqt6_qprogressbar_set_maximum(void* pb, int max);
VQT6_API void vqt6_qprogressbar_set_range(void* pb, int min, int max);
VQT6_API int vqt6_qprogressbar_minimum(void* pb);
VQT6_API int vqt6_qprogressbar_maximum(void* pb);
VQT6_API void vqt6_qprogressbar_set_text_visible(void* pb, int visible);
VQT6_API void vqt6_qprogressbar_set_format(void* pb, void* format);
VQT6_API void vqt6_qprogressbar_reset(void* pb);
// ============================================================
// QSlider
// ============================================================
VQT6_API void* vqt6_qslider_create(void);
VQT6_API void* vqt6_qslider_create_with_orientation(int orientation);
VQT6_API void* vqt6_qslider_create_with_orientation_parent(int orientation, void* parent);
VQT6_API void vqt6_qslider_set_value(void* s, int value);
VQT6_API int vqt6_qslider_value(void* s);
VQT6_API void vqt6_qslider_set_minimum(void* s, int min);
VQT6_API void vqt6_qslider_set_maximum(void* s, int max);
VQT6_API void vqt6_qslider_set_range(void* s, int min, int max);
VQT6_API void vqt6_qslider_set_orientation(void* s, int orientation);
VQT6_API int vqt6_qslider_orientation(void* s);
VQT6_API void vqt6_qslider_set_single_step(void* s, int step);
VQT6_API void vqt6_qslider_set_page_step(void* s, int step);
// ============================================================
// QSpinBox
// ============================================================
VQT6_API void* vqt6_qspinbox_create(void);
VQT6_API void* vqt6_qspinbox_create_with_parent(void* parent);
VQT6_API int vqt6_qspinbox_value(void* sb);
VQT6_API void vqt6_qspinbox_set_value(void* sb, int value);
VQT6_API void vqt6_qspinbox_set_minimum(void* sb, int min);
VQT6_API void vqt6_qspinbox_set_maximum(void* sb, int max);
VQT6_API void vqt6_qspinbox_set_range(void* sb, int min, int max);
VQT6_API int vqt6_qspinbox_minimum(void* sb);
VQT6_API int vqt6_qspinbox_maximum(void* sb);
VQT6_API void vqt6_qspinbox_set_single_step(void* sb, int step);
VQT6_API void vqt6_qspinbox_set_prefix(void* sb, void* prefix);
VQT6_API void vqt6_qspinbox_set_suffix(void* sb, void* suffix);
VQT6_API void* vqt6_qspinbox_prefix(void* sb);
VQT6_API void* vqt6_qspinbox_suffix(void* sb);
// ============================================================
// Layouts
// ============================================================
VQT6_API void vqt6_qlayout_add_widget(void* layout, void* widget);
VQT6_API void vqt6_qlayout_remove_widget(void* layout, void* widget);
VQT6_API int vqt6_qlayout_count(void* layout);
VQT6_API void* vqt6_qlayout_item_at(void* layout, int index);
VQT6_API void vqt6_qlayout_set_contents_margins(void* layout, int left, int top, int right, int bottom);
VQT6_API void vqt6_qlayout_set_spacing(void* layout, int spacing);
VQT6_API int vqt6_qlayout_spacing(void* layout);
VQT6_API void vqt6_qlayout_invalidate(void* layout);
VQT6_API void* vqt6_qhboxlayout_create(void);
VQT6_API void* vqt6_qhboxlayout_create_with_parent(void* parent);
VQT6_API void vqt6_qhboxlayout_add_layout(void* layout, void* child);
VQT6_API void vqt6_qhboxlayout_add_stretch(void* layout, int stretch);
VQT6_API void vqt6_qhboxlayout_add_spacing(void* layout, int size);
VQT6_API void* vqt6_qvboxlayout_create(void);
VQT6_API void* vqt6_qvboxlayout_create_with_parent(void* parent);
VQT6_API void vqt6_qvboxlayout_add_layout(void* layout, void* child);
VQT6_API void vqt6_qvboxlayout_add_stretch(void* layout, int stretch);
VQT6_API void vqt6_qvboxlayout_add_spacing(void* layout, int size);
VQT6_API void* vqt6_qgridlayout_create(void);
VQT6_API void* vqt6_qgridlayout_create_with_parent(void* parent);
VQT6_API void vqt6_qgridlayout_add_widget(void* gl, void* w, int row, int col);
VQT6_API void vqt6_qgridlayout_add_widget_with_span(void* gl, void* w, int row, int col, int row_span, int col_span);
VQT6_API void* vqt6_qformlayout_create(void);
VQT6_API void* vqt6_qformlayout_create_with_parent(void* parent);
VQT6_API void vqt6_qformlayout_add_row(void* fl, void* label, void* field);
VQT6_API void vqt6_qformlayout_add_row_widget_pair(void* fl, void* label, void* field);
// ============================================================
// QStackedWidget / QTabWidget
// ============================================================
VQT6_API void* vqt6_qstackedwidget_create(void);
VQT6_API void* vqt6_qstackedwidget_create_with_parent(void* parent);
VQT6_API int vqt6_qstackedwidget_add_widget(void* sw, void* w);
VQT6_API void vqt6_qstackedwidget_remove_widget(void* sw, void* w);
VQT6_API int vqt6_qstackedwidget_count(void* sw);
VQT6_API int vqt6_qstackedwidget_current_index(void* sw);
VQT6_API void vqt6_qstackedwidget_set_current_index(void* sw, int index);
VQT6_API void* vqt6_qstackedwidget_current_widget(void* sw);
VQT6_API void* vqt6_qstackedwidget_widget(void* sw, int index);
VQT6_API void* vqt6_qtabwidget_create(void);
VQT6_API void* vqt6_qtabwidget_create_with_parent(void* parent);
VQT6_API int vqt6_qtabwidget_add_tab(void* tw, void* w, void* label);
VQT6_API int vqt6_qtabwidget_insert_tab(void* tw, int index, void* w, void* label);
VQT6_API void vqt6_qtabwidget_remove_tab(void* tw, int index);
VQT6_API int vqt6_qtabwidget_count(void* tw);
VQT6_API int vqt6_qtabwidget_current_index(void* tw);
VQT6_API void vqt6_qtabwidget_set_current_index(void* tw, int index);
VQT6_API void* vqt6_qtabwidget_tab_text(void* tw, int index);
VQT6_API void vqt6_qtabwidget_set_tab_text(void* tw, int index, void* text);
VQT6_API void vqt6_qtabwidget_set_tabs_closable(void* tw, int closable);
VQT6_API int vqt6_qtabwidget_tabs_closable(void* tw);
// ============================================================
// QMenuBar / QMenu / QAction
// ============================================================
VQT6_API void* vqt6_qmenubar_create(void);
VQT6_API void* vqt6_qmenubar_create_with_parent(void* parent);
VQT6_API void* vqt6_qmenubar_add_menu(void* mb, void* title);
VQT6_API void vqt6_qmenubar_add_menu_with_menu(void* mb, void* menu);
VQT6_API void vqt6_qmenubar_add_action(void* mb, void* action);
VQT6_API void vqt6_qmenubar_clear(void* mb);
VQT6_API void* vqt6_qmenu_create(void);
VQT6_API void* vqt6_qmenu_create_with_title(void* title);
VQT6_API void* vqt6_qmenu_create_with_title_parent(void* title, void* parent);
VQT6_API void* vqt6_qmenu_add_menu(void* menu, void* title);
VQT6_API void vqt6_qmenu_add_action(void* menu, void* action);
VQT6_API void vqt6_qmenu_add_separator(void* menu);
VQT6_API void vqt6_qmenu_clear(void* menu);
VQT6_API void vqt6_qmenu_set_title(void* menu, void* title);
VQT6_API void* vqt6_qmenu_title(void* menu);
VQT6_API void* vqt6_qmenu_add_action_with_text(void* menu, void* text);
VQT6_API void* vqt6_qaction_create(void);
VQT6_API void* vqt6_qaction_create_with_text(void* text);
VQT6_API void* vqt6_qaction_create_with_text_parent(void* text, void* parent);
VQT6_API void vqt6_qaction_set_text(void* action, void* text);
VQT6_API void* vqt6_qaction_text(void* action);
VQT6_API void vqt6_qaction_set_icon(void* action, void* icon);
VQT6_API void* vqt6_qaction_icon(void* action);
VQT6_API void vqt6_qaction_set_shortcut(void* action, void* key_sequence);
VQT6_API void* vqt6_qaction_shortcut(void* action);
VQT6_API void vqt6_qaction_set_checkable(void* action, int checkable);
VQT6_API int vqt6_qaction_is_checkable(void* action);
VQT6_API void vqt6_qaction_set_checked(void* action, int checked);
VQT6_API int vqt6_qaction_is_checked(void* action);
VQT6_API void vqt6_qaction_set_enabled(void* action, int enabled);
VQT6_API int vqt6_qaction_is_enabled(void* action);
VQT6_API void vqt6_qaction_trigger(void* action);
// ============================================================
// QStatusBar / QToolBar
// ============================================================
VQT6_API void* vqt6_qstatusbar_create(void);
VQT6_API void* vqt6_qstatusbar_create_with_parent(void* parent);
VQT6_API void vqt6_qstatusbar_show_message(void* sb, void* message, int timeout_ms);
VQT6_API void vqt6_qstatusbar_clear_message(void* sb);
VQT6_API void* vqt6_qstatusbar_current_message(void* sb);
VQT6_API void vqt6_qstatusbar_add_widget(void* sb, void* w, int stretch);
VQT6_API void vqt6_qstatusbar_add_permanent_widget(void* sb, void* w, int stretch);
VQT6_API void* vqt6_qtoolbar_create(void);
VQT6_API void* vqt6_qtoolbar_create_with_parent(void* parent);
VQT6_API void* vqt6_qtoolbar_add_widget(void* tb, void* w);
VQT6_API void vqt6_qtoolbar_add_action(void* tb, void* action);
VQT6_API void vqt6_qtoolbar_add_separator(void* tb);
VQT6_API void vqt6_qtoolbar_set_icon_size(void* tb, int w, int h);
VQT6_API void vqt6_qtoolbar_set_orientation(void* tb, int orientation);
VQT6_API int vqt6_qtoolbar_orientation(void* tb);
// ============================================================
// QMessageBox
// ============================================================
VQT6_API int vqt6_qmessagebox_information(void* parent, void* title, void* text, int buttons);
VQT6_API int vqt6_qmessagebox_warning(void* parent, void* title, void* text, int buttons);
VQT6_API int vqt6_qmessagebox_critical(void* parent, void* title, void* text, int buttons);
VQT6_API int vqt6_qmessagebox_question(void* parent, void* title, void* text, int buttons);
VQT6_API void vqt6_qmessagebox_about(void* parent, void* title, void* text);
VQT6_API void vqt6_qmessagebox_about_qt(void* parent);
// ============================================================
// QFileDialog
// ============================================================
VQT6_API void* vqt6_qfiledialog_get_open_file_name(void* parent, void* caption, void* dir, void* filter);
VQT6_API void* vqt6_qfiledialog_get_save_file_name(void* parent, void* caption, void* dir, void* filter);
VQT6_API void* vqt6_qfiledialog_get_existing_directory(void* parent, void* caption, void* dir);
VQT6_API void* vqt6_qfiledialog_get_open_file_names(void* parent, void* caption, void* dir, void* filter);
// ============================================================
// 信号连接(Qt 信号 → Viper 回调 vqt6_slot_callback_t)
// 回调统一签名: void cb(int slot_id, void* user_data)
// 触发时回调里可用 user_data(如控件指针)再查询控件状态
// ============================================================
VQT6_API void vqt6_qpushbutton_connect_clicked(void* btn, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qpushbutton_connect_toggled(void* btn, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qcheckbox_connect_toggled(void* cb_widget, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qcheckbox_connect_state_changed(void* cb_widget, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qradiobutton_connect_toggled(void* rb, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qlineedit_connect_text_changed(void* le, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qcombobox_connect_current_index_changed(void* cb_widget, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qslider_connect_value_changed(void* s, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qspinbox_connect_value_changed(void* sb, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qprogressbar_connect_value_changed(void* pb, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qlistwidget_connect_current_row_changed(void* lw, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qtabwidget_connect_current_changed(void* tw, vqt6_slot_callback_t cb, void* user_data);
VQT6_API void vqt6_qaction_connect_triggered(void* action, vqt6_slot_callback_t cb, void* user_data);
#ifdef __cplusplus
}
#endif
#endif // VQT6_BRIDGE_WIDGETS_H