--- a/ui/qt/container.cpp Sun Jul 20 22:04:39 2025 +0200 +++ b/ui/qt/container.cpp Sun Aug 24 15:24:16 2025 +0200 @@ -35,6 +35,7 @@ #include <QSpacerItem> #include <QStackedWidget> #include <QLabel> +#include <QDockWidget> static void delete_container(UiContainerPrivate *ct) { delete ct; @@ -228,7 +229,7 @@ } } -UIEXPORT UIWIDGET ui_grid_create(UiObject *obj, UiContainerArgs *args) { +UIWIDGET ui_grid_create(UiObject *obj, UiContainerArgs *args) { UiContainerPrivate *ctn = (UiContainerPrivate*)ui_obj_container(obj); UI_APPLY_LAYOUT(ctn->layout, args); @@ -251,6 +252,25 @@ } +/* ---------------------------- UiSidebar ---------------------------- */ + +UIWIDGET ui_sidebar_create(UiObject *obj, UiSidebarArgs *args) { + QVariant v = obj->widget->property("ui_sidebar"); + QDockWidget *dock = (QDockWidget*)v.value<void*>(); + if(!dock) { + fprintf(stderr, "Error: window is not configured for sidebar\n"); + return nullptr; + } + + QWidget *widget = new QWidget(); + QBoxLayout *box = new QBoxLayout(QBoxLayout::TopToBottom); + widget->setLayout(box); + dock->setWidget(widget); + + ui_container_add(obj, new UiBoxContainer(box)); + + return dock; +} /* -------------------- Container Helper Functions -------------------- */