// ============================================================
// 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);

// ============================================================
// 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);
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);

// ============================================================
// 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);

#ifdef __cplusplus
}
#endif

#endif // VQT6_BRIDGE_WIDGETS_H
