diff --git a/juci/juci.cc b/juci/juci.cc index c7726db..5b206f6 100644 --- a/juci/juci.cc +++ b/juci/juci.cc @@ -1,9 +1,14 @@ #include "juci.h" + + + int main(int argc, char *argv[]) { Glib::RefPtr app = Gtk::Application::create( argc, argv, "no.sout.juci"); + // app->set_flags(Gio::APPLICATION_NON_UNIQUE); + Window window; return app->run(window); } diff --git a/juci/juci.h b/juci/juci.h index 6eb5018..b5d2b25 100644 --- a/juci/juci.h +++ b/juci/juci.h @@ -10,15 +10,20 @@ class Window : public Gtk::Window { public: Window(); - virtual ~Window() {} - Gtk::Box window_box_; + + virtual ~Window() { + } + std::shared_ptr source(); + private: Keybindings::Controller keybindings_; Menu::Controller menu_; Source::Controller source_; + Gtk::Box window_box_; + /*signal handler*/ - void onSystemQuit(); + void OnSystemQuit(); }; #endif // JUCI_JUCI_H_ diff --git a/juci/keybindings.h b/juci/keybindings.h index 440d1f0..c15a50c 100644 --- a/juci/keybindings.h +++ b/juci/keybindings.h @@ -2,10 +2,10 @@ #include "gtkmm.h" namespace Keybindings { - class Controller { public: Controller(); + virtual ~Controller(); Glib::RefPtr action_group() { @@ -15,11 +15,11 @@ namespace Keybindings { Glib::RefPtr ui_manager() { return ui_manager_; }; + void set_ui_manger_string(std::string ui_string); void set_ui_manager_action_group(Glib::RefPtr action_group); - protected: Glib::RefPtr ui_manager_; Glib::RefPtr action_group_; diff --git a/juci/menu.cc b/juci/menu.cc index 9d028f2..2fcd916 100644 --- a/juci/menu.cc +++ b/juci/menu.cc @@ -7,7 +7,7 @@ Menu::Model::Model() { ui_string_ = - " " + " " " " " " " " @@ -52,11 +52,11 @@ Menu::Model::~Model() { Menu::View::View(Gtk::Orientation orientation) : view_(orientation) { - + } -Gtk::Box& Menu::View::view( - Glib::RefPtr ui_manager) { +Gtk::Box &Menu::View::view( + Glib::RefPtr ui_manager) { view_.pack_start(*ui_manager->get_widget("/MenuBar"), Gtk::PACK_SHRINK); return view_; } @@ -70,7 +70,7 @@ Menu::View::~View() { Menu::Controller::Controller(Keybindings::Controller keybindings) : menu_view_(Gtk::ORIENTATION_VERTICAL), menu_model_(), - keybindings_(keybindings){ + keybindings_(keybindings) { /* Add action to menues */ /* START file menu */ keybindings_.action_group()->add(Gtk::Action::create("FileMenu", Gtk::Stock::FILE)); @@ -79,7 +79,7 @@ Menu::Controller::Controller(Keybindings::Controller keybindings) : keybindings_.action_group()->add(Gtk::Action::create("FileNewStandard", Gtk::Stock::NEW, "New empty file", "Create a new file"), [this]() { - OnFileNewEmptyfile(); + OnFileNewEmptyfile(); }); keybindings_.action_group()->add(Gtk::Action::create("FileNewCC", Gtk::Stock::NEW, "New cc file", "Create a new cc file"), @@ -87,7 +87,6 @@ Menu::Controller::Controller(Keybindings::Controller keybindings) : [this]() { OnFileNewCCFile(); }); - keybindings_.action_group()->add(Gtk::Action::create("FileNewH", Gtk::Stock::NEW, "New h file", "Create a new h file"), Gtk::AccelKey("h"), @@ -103,10 +102,6 @@ Menu::Controller::Controller(Keybindings::Controller keybindings) : [this]() { OnFileOpenFolder(); }); - keybindings_.action_group()->add(Gtk::Action::create("FileQuit", Gtk::Stock::QUIT), - [this]() { - OnSystemQuit(); - }); /* END file menu */ /* START edit menu */ keybindings_.action_group()->add(Gtk::Action::create("EditMenu", Gtk::Stock::EDIT)); @@ -169,7 +164,7 @@ Menu::Controller::Controller(Keybindings::Controller keybindings) : Menu::Controller::~Controller() { } -Gtk::Box& Menu::Controller::view() { +Gtk::Box &Menu::Controller::view() { return menu_view_.view(keybindings_.ui_manager()); } @@ -188,12 +183,6 @@ void Menu::Controller::OnFileNewHeaderFile() { //TODO(Oyvang) Legg til funksjon } -void Menu::Controller::OnSystemQuit() { - //TODO(Oyvang, Zalox, Forgie) Add everything that needs to be done before quiting - /*Quit the system*/ - -} - void Menu::Controller::OnPluginAddSnippet() { std::cout << "Add snipper" << std::endl; //TODO(Forgi add you snippet magic code) } diff --git a/juci/menu.h b/juci/menu.h index caa9e98..1eea96e 100644 --- a/juci/menu.h +++ b/juci/menu.h @@ -6,48 +6,71 @@ #include "keybindings.h" namespace Menu { - class Model { - public: - Model(); - virtual ~Model(); - std::string ui_string() { return ui_string_; } - private: - std::string ui_string_; - }; // class Model - - class View { - public: - explicit View(Gtk::Orientation orient); - virtual ~View(); - Gtk::Box& view(Glib::RefPtr ui_manager); - - protected: - Gtk::Box view_; - }; // class View - // controller - class Controller { - public: - explicit Controller(Keybindings::Controller keybindings); - virtual ~Controller(); - Gtk::Box& view(); - private: - Keybindings::Controller keybindings_; - View menu_view_; - Model menu_model_; - void OnFileNewEmptyfile(); /*Signal handlers*/ - void OnFileNewCCFile(); - void OnFileNewHeaderFile(); - void OnFileOpenFile(); - void OnFileOpenFolder(); - void OnSystemQuit(); - void OnPluginAddSnippet(); - void OnWindowCloseTab(); - void OnEditCopy(); - void OnEditCut(); - void OnEditPaste(); - void OnEditFind(); - void OnWindowSplitWindow(); - void OnHelpAbout(); - }; // class Controller + class Model { + public: + Model(); + + virtual ~Model(); + + std::string ui_string() { + return ui_string_; + } + + private: + std::string ui_string_; + }; // class Model + + class View { + public: + explicit View(Gtk::Orientation orient); + + virtual ~View(); + + Gtk::Box &view(Glib::RefPtr ui_manager); + + protected: + Gtk::Box view_; + }; // class View + // controller + class Controller { + public: + explicit Controller(Keybindings::Controller keybindings); + + virtual ~Controller(); + + Gtk::Box &view(); + + private: + Keybindings::Controller keybindings_; + View menu_view_; + Model menu_model_; + + void OnFileNewEmptyfile(); + + /*Signal handlers*/ + void OnFileNewCCFile(); + + void OnFileNewHeaderFile(); + + void OnFileOpenFile(); + + void OnFileOpenFolder(); + + void OnPluginAddSnippet(); + + void OnWindowCloseTab(); + + void OnEditCopy(); + + void OnEditCut(); + + void OnEditPaste(); + + void OnEditFind(); + + void OnWindowSplitWindow(); + + void OnHelpAbout(); + }; // class Controller } // namespace Menu #endif // JUCI_MENU_H_ diff --git a/juci/window.cc b/juci/window.cc index 4e27b3b..7d7857c 100644 --- a/juci/window.cc +++ b/juci/window.cc @@ -1,18 +1,26 @@ -#include "juci.h" - -Window::Window() : - window_box_(Gtk::ORIENTATION_HORIZONTAL), - menu_(keybindings_) { - set_title("example juCi++"); - set_default_size(600, 600); - // window_box_.add(*source_.sourceview()); - add(window_box_); - add_accel_group(keybindings_.ui_manager()->get_accel_group()); - window_box_.pack_start(menu_.view()); - show_all_children(); - -} - -std::shared_ptr Window::source() { - return std::shared_ptr(&source_); -} +#include "juci.h" +Window::Window() : + window_box_(Gtk::ORIENTATION_HORIZONTAL), + menu_(keybindings_) { + set_title("juCi++"); + set_default_size(600, 600); + // window_box_.add(*source_.sourceview()); + add(window_box_); + keybindings_.action_group()->add(Gtk::Action::create("FileQuit", + Gtk::Stock::QUIT), + [this]() { + OnSystemQuit(); + }); + add_accel_group(keybindings_.ui_manager()->get_accel_group()); + //Add views under here + window_box_.pack_start(menu_.view()); + show_all_children(); +} + +std::shared_ptr Window::source() { + return std::shared_ptr(&source_); +} + +void Window::OnSystemQuit() { + hide(); +} \ No newline at end of file