ui/qt/container.cpp

changeset 68
bd9fb6476b80
parent 67
f72c4f01bf4a
child 73
473acef47ddd
--- a/ui/qt/container.cpp	Wed Jan 07 20:11:36 2015 +0100
+++ b/ui/qt/container.cpp	Fri Jan 09 14:33:40 2015 +0100
@@ -30,6 +30,7 @@
 #include "container.h"
 
 #include <QSpacerItem>
+#include <QStackedWidget>
 
 /* -------------------- UiBoxContainer -------------------- */
 
@@ -121,6 +122,51 @@
     ui_reset_layout(layout);
 }
 
+
+/* -------------------- UiTabViewContainer -------------------- */
+
+UiTabViewContainer::UiTabViewContainer(QTabWidget* tabwidget) {
+    this->tabwidget = tabwidget;
+}
+
+void UiTabViewContainer::add(QWidget* widget, bool fill) {
+    QString str = QString::fromUtf8(layout.label);
+    tabwidget->addTab(widget, str);
+}
+
+UiStackContainer::UiStackContainer(QStackedWidget *stack) {
+    this->stack = stack;
+}
+
+void UiStackContainer::add(QWidget* widget, bool fill) {
+    stack->addWidget(widget);
+}
+
+UIWIDGET ui_tabview(UiObject *obj) {
+    QStackedWidget *tabwidget = new QStackedWidget();
+    
+    UiContainer *ct = uic_get_current_container(obj);
+    ct->add(tabwidget, true);
+    
+    UiObject *tabviewobj = uic_object_new(obj, tabwidget);
+    tabviewobj->container = new UiStackContainer(tabwidget);
+    uic_obj_add(obj, tabviewobj);
+    
+    return tabwidget;
+}
+
+void ui_tab(UiObject *obj, char *title) {
+    UiContainer *ct = uic_get_current_container(obj);
+    ct->layout.label = title;
+    ui_vbox(obj);
+}
+
+void ui_select_tab(UIWIDGET tabview, int tab) {
+    QStackedWidget *w = (QStackedWidget*)tabview;
+    w->setCurrentIndex(tab);
+}
+
+
 UIWIDGET ui_grid(UiObject *obj) {
     UiContainer *ct = uic_get_current_container(obj);
     QWidget *widget = new QWidget();

mercurial