You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.9 KiB
80 lines
2.9 KiB
#include "controller.h" |
|
|
|
Controller::Menu::Menu() : |
|
menu_view_(Gtk::ORIENTATION_VERTICAL), |
|
menu_model_() { |
|
/*Add action to menues*/ |
|
/*File menu*/ |
|
menu_view_.action_group()->add(Gtk::Action::create("FileMenu", Gtk::Stock::FILE)); |
|
/*File->New files*/ |
|
menu_view_.action_group()->add(Gtk::Action::create("FileNew", "New")); |
|
|
|
menu_view_.action_group()->add(Gtk::Action::create("FileNewStandard", |
|
Gtk::Stock::NEW, "New empty file", "Create a new file"), |
|
[this]() { |
|
onFileNewEmptyfile(); |
|
}); |
|
menu_view_.action_group()->add(Gtk::Action::create("FileNewCC", |
|
Gtk::Stock::NEW, "New cc file", "Create a new cc file"), |
|
Gtk::AccelKey("<control><alt>c"), |
|
[this]() { |
|
onFileNewCCFile(); |
|
}); |
|
menu_view_.action_group()->add(Gtk::Action::create("FileNewH", |
|
Gtk::Stock::NEW, "New h file", "Create a new h file"), |
|
Gtk::AccelKey("<control><alt>h"), |
|
[this]() { |
|
onFileNewHeaderFile(); |
|
}); |
|
/* File-> New files end */ |
|
menu_view_.action_group()->add(Gtk::Action::create("FileOpenFile", Gtk::Stock::OPEN), |
|
[this]() { |
|
onFileNewEmptyfile(); |
|
}); |
|
menu_view_.action_group()->add(Gtk::Action::create("FileOpenFolder", "Open folder"), |
|
[this]() { |
|
onFileNewEmptyfile(); |
|
}); |
|
menu_view_.action_group()->add(Gtk::Action::create("FileQuit", Gtk::Stock::QUIT), |
|
[this]() { |
|
onSystemQuit(); |
|
}); |
|
menu_view_.action_group()->add(Gtk::Action::create("PluginMenu", "Plugins")); |
|
menu_view_.action_group()->add(Gtk::Action::create("PluginSnippet", "Snippet")); |
|
menu_view_.action_group()->add(Gtk::Action::create("PluginAddSnippet", "Add snippet"), |
|
Gtk::AccelKey("<alt>space"), |
|
[this]() { |
|
onPluginAddSnippet(); |
|
}); |
|
|
|
|
|
menu_view_.set_ui_manager_action_group(menu_view_.action_group()); |
|
menu_view_.set_ui_manger_string(menu_model_.ui_string()); |
|
} |
|
|
|
Controller::Menu::~Menu() { |
|
|
|
} |
|
|
|
Gtk::Box &Controller::Menu::view() { |
|
return menu_view_.view(); |
|
} |
|
|
|
void Controller::Menu::onFileNewEmptyfile() { |
|
std::cout << "New file clicked" << std::endl; |
|
} |
|
void Controller::Menu::onFileNewCCFile() { |
|
std::cout << "New cc file clicked" << std::endl; |
|
} |
|
|
|
void Controller::Menu::onFileNewHeaderFile() { |
|
std::cout << "New cc file clicked" << std::endl; |
|
} |
|
void Controller::Menu::onSystemQuit(){ |
|
//TODO(Oyvang, Zalox, Forgie) Add everything that needs to be done before quiting |
|
/*Quit the system*/ |
|
Gtk::Main::quit(); //TODO(Oyvang, Zalox, Forgie) methode is depricated, find a better solution. |
|
} |
|
void Controller::Menu::onPluginAddSnippet() { |
|
std::cout << "Add snipper" << std::endl; //TODO(Forgi add you snippet magic code) |
|
}
|
|
|