sirEdit/src/gui/startupWindow.cpp

101 lines
2.7 KiB
C++
Raw Normal View History

2019-02-01 07:17:14 +00:00
#include <gtkmm.h>
#include <sirEdit/main.hpp>
2019-05-28 10:16:24 +00:00
extern std::string sirEdit_startupWindow_glade;
2019-02-01 07:17:14 +00:00
#include "startupWindow.hpp"
// INFO: Hack to to protect crashes after main program
static Glib::RefPtr<Gtk::Builder>* _startUpBuild = new Glib::RefPtr<Gtk::Builder>();
static Glib::RefPtr<Gtk::Builder>& startUpBuild = *_startUpBuild;
extern void sirEdit::gui::runStartupWindow() {
// TODO: Checks if all exists
// Load file
if(!startUpBuild)
2019-05-28 10:16:24 +00:00
startUpBuild = Gtk::Builder::create_from_string(sirEdit_startupWindow_glade);
2019-02-01 07:17:14 +00:00
// Window
Gtk::ApplicationWindow* window;
{
startUpBuild->get_widget("StartupWindow", window);
window->show_all();
sirEdit::mainApplication->add_window(*window);
}
// Settings
{
Gtk::Popover* popover;
Gtk::Button* button;
startUpBuild->get_widget("SettingMenu", popover);
startUpBuild->get_widget("Settings", button);
button->signal_clicked().connect([popover]() -> void {
popover->show_all();
popover->popup();
});
}
2019-04-11 04:02:36 +00:00
// TODO: Merge sir files
{
Gtk::Button* button;
Gtk::ApplicationWindow* window;
Gtk::ListBox* list;
startUpBuild->get_widget("Multispec", button);
startUpBuild->get_widget("MultispecWindow", window);
startUpBuild->get_widget("MultispecList", list);
auto tmp = new Gtk::HBox();
2019-05-28 10:16:24 +00:00
auto tmp_label = new Gtk::Label("skill.sir");
2019-04-11 04:02:36 +00:00
tmp_label->set_alignment(Gtk::Align::ALIGN_START, Gtk::Align::ALIGN_CENTER);
tmp->pack_start(*(tmp_label), true, true);
auto tmpButton = new Gtk::Button();
tmpButton->set_image(*(new Gtk::Image(Gtk::Stock::DELETE, Gtk::ICON_SIZE_BUTTON)));
tmpButton->set_relief(Gtk::RELIEF_NONE);
tmp->pack_end(*(tmpButton), false, true);
list->append(*tmp);
button->signal_clicked().connect([window]() -> void {
window->show_all();
});
}
2019-02-01 07:17:14 +00:00
// TODO: Info
// TODO: Import skill file
2019-05-28 10:16:24 +00:00
{
Gtk::Button* button;
Gtk::Button* doImport;
Gtk::ApplicationWindow* window;
Gtk::FileChooserButton* importFile;
startUpBuild->get_widget("ImportSKILL", button);
startUpBuild->get_widget("doImport", doImport);
startUpBuild->get_widget("ImportSKilLWindow", window);
startUpBuild->get_widget("importFile", importFile);
// Activation button
button->signal_clicked().connect([window]() -> void {
window->show_all();
});
// Set properties
doImport->set_sensitive(false);
importFile->set_sensitive(false);
}
2019-02-01 07:17:14 +00:00
// Open sir file
{
Gtk::Button* button;
startUpBuild->get_widget("OpenSir", button);
button->signal_clicked().connect([window]() -> void {
auto chooser = Gtk::FileChooserNative::create("SIR-Files", *window, Gtk::FILE_CHOOSER_ACTION_OPEN);
switch(chooser->run()) {
case Gtk::RESPONSE_ACCEPT:
sirEdit::loadFile(window, chooser.get());
break;
}
});
}
}