#include <ucx/mempool.h>
#include "../common/context.h"
#include "window.h"
#include "menu.h"
#include "toolbar.h"
#include "container.h"
#include <QVBoxLayout>
#include <QFileDialog>
static UiObject* create_window(
char *title,
void *window_data, bool simple) {
UcxMempool *mp = ucx_mempool_new(
256);
UiObject *obj = (UiObject*)ucx_mempool_calloc(mp,
1,
sizeof(UiObject));
obj->ctx = uic_context(obj, mp);
obj->window = window_data;
obj->next =
NULL;
QMainWindow *window = new QMainWindow();
obj->widget = window;
if(!simple) {
ui_add_menus(obj, window);
QToolBar *toolbar = ui_create_toolbar(obj);
window->addToolBar(Qt::TopToolBarArea, toolbar);
}
QBoxLayout *box = new QVBoxLayout();
QWidget *boxWidget = new QWidget();
boxWidget->setLayout(box);
window->setCentralWidget(boxWidget);
obj->container = new UiBoxContainer(box);
obj->widget = window;
return obj;
}
UiObject* ui_window(
char *title,
void *window_data) {
return create_window(title, window_data,
FALSE);
}
UiObject* ui_simplewindow(
char *title,
void *window_data) {
return create_window(title, window_data,
TRUE);
}
char* ui_openfiledialog(UiObject *obj) {
QString fileName = QFileDialog::getOpenFileName(obj->widget);
if(fileName.size() >
0) {
QByteArray array = fileName.toLocal8Bit();
const char *cstr = array.constData();
return strdup(cstr);
}
else {
return NULL;
}
}
char* ui_savefiledialog(UiObject *obj) {
QString fileName = QFileDialog::getSaveFileName(obj->widget);
if(fileName.size() >
0) {
QByteArray array = fileName.toLocal8Bit();
const char *cstr = array.constData();
return strdup(cstr);
}
else {
return NULL;
}
}