101 lines
2.7 KiB
C++
101 lines
2.7 KiB
C++
#include <gtkmm.h>
|
|
#include <sirEdit/main.hpp>
|
|
|
|
extern std::string sirEdit_startupWindow_glade;
|
|
|
|
#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)
|
|
startUpBuild = Gtk::Builder::create_from_string(sirEdit_startupWindow_glade);
|
|
|
|
// 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();
|
|
});
|
|
}
|
|
|
|
// 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();
|
|
auto tmp_label = new Gtk::Label("skill.sir");
|
|
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();
|
|
});
|
|
}
|
|
|
|
// TODO: Info
|
|
|
|
// TODO: Import skill file
|
|
{
|
|
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);
|
|
}
|
|
|
|
// 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;
|
|
}
|
|
});
|
|
}
|
|
}
|