ui/qt/window.cpp

changeset 106
a4f4123ca12a
parent 67
f72c4f01bf4a
child 157
0b33b9396851
equal deleted inserted replaced
105:86d729874ff4 106:a4f4123ca12a
33 #include "menu.h" 33 #include "menu.h"
34 #include "toolbar.h" 34 #include "toolbar.h"
35 #include "container.h" 35 #include "container.h"
36 36
37 #include <QVBoxLayout> 37 #include <QVBoxLayout>
38 #include <QFileDialog>
38 39
39 UiObject* ui_window(char *title, void *window_data) { 40 static UiObject* create_window(char *title, void *window_data, bool simple) {
40 UcxMempool *mp = ucx_mempool_new(256); 41 UcxMempool *mp = ucx_mempool_new(256);
41 UiObject *obj = (UiObject*)ucx_mempool_calloc(mp, 1, sizeof(UiObject)); 42 UiObject *obj = (UiObject*)ucx_mempool_calloc(mp, 1, sizeof(UiObject));
42 obj->ctx = uic_context(obj, mp); 43 obj->ctx = uic_context(obj, mp);
43 obj->window = window_data; 44 obj->window = window_data;
44 obj->next = NULL; 45 obj->next = NULL;
45 46
46 QMainWindow *window = new QMainWindow(); 47 QMainWindow *window = new QMainWindow();
47 obj->widget = window; 48 obj->widget = window;
48 49
49 ui_add_menus(obj, window); 50 if(!simple) {
50 51 ui_add_menus(obj, window);
51 QToolBar *toolbar = ui_create_toolbar(obj); 52 QToolBar *toolbar = ui_create_toolbar(obj);
52 window->addToolBar(Qt::TopToolBarArea, toolbar); 53 window->addToolBar(Qt::TopToolBarArea, toolbar);
54 }
53 55
54 QBoxLayout *box = new QVBoxLayout(); 56 QBoxLayout *box = new QVBoxLayout();
55 QWidget *boxWidget = new QWidget(); 57 QWidget *boxWidget = new QWidget();
56 boxWidget->setLayout(box); 58 boxWidget->setLayout(box);
57 window->setCentralWidget(boxWidget); 59 window->setCentralWidget(boxWidget);
58 obj->container = new UiBoxContainer(box); 60 obj->container = new UiBoxContainer(box);
59 61
60 obj->widget = window; 62 obj->widget = window;
61 return obj; 63 return obj;
62 } 64 }
65
66 UiObject* ui_window(char *title, void *window_data) {
67 return create_window(title, window_data, FALSE);
68 }
69
70 UiObject* ui_simplewindow(char *title, void *window_data) {
71 return create_window(title, window_data, TRUE);
72 }
73
74
75 char* ui_openfiledialog(UiObject *obj) {
76 QString fileName = QFileDialog::getOpenFileName(obj->widget);
77 if(fileName.size() > 0) {
78 QByteArray array = fileName.toLocal8Bit();
79 const char *cstr = array.constData();
80 return strdup(cstr);
81 } else {
82 return NULL;
83 }
84 }
85
86 char* ui_savefiledialog(UiObject *obj) {
87 QString fileName = QFileDialog::getSaveFileName(obj->widget);
88 if(fileName.size() > 0) {
89 QByteArray array = fileName.toLocal8Bit();
90 const char *cstr = array.constData();
91 return strdup(cstr);
92 } else {
93 return NULL;
94 }
95 }

mercurial