From 16e98a9c852808d2a49702762075b7624a5ab84d Mon Sep 17 00:00:00 2001 From: oyvang Date: Tue, 17 Feb 2015 15:19:20 +0100 Subject: [PATCH] BAB-23 #time 6h #close #comment fixed entry, focus entry and notbook focus --- juci/CMakeLists.txt | 1 + juci/entry.cc | 55 +++++++++++++++++++++++++++++++++++++++++++++ juci/entry.h | 43 +++++++++++++++++++++++++++++++++++ juci/menu.cc | 8 ++----- juci/menu.h | 2 +- juci/notebook.cc | 29 +++++++++++++++++++----- juci/notebook.h | 8 ++++--- juci/window.cc | 3 ++- 8 files changed, 133 insertions(+), 16 deletions(-) create mode 100644 juci/entry.cc create mode 100644 juci/entry.h diff --git a/juci/CMakeLists.txt b/juci/CMakeLists.txt index a18463f..d955509 100644 --- a/juci/CMakeLists.txt +++ b/juci/CMakeLists.txt @@ -70,6 +70,7 @@ add_executable(${project_name} window api notebook + entry #there is no need for extentions ) diff --git a/juci/entry.cc b/juci/entry.cc new file mode 100644 index 0000000..3aac46d --- /dev/null +++ b/juci/entry.cc @@ -0,0 +1,55 @@ +#include "entry.h" + +Entry::Model::Model() : + next_("Next"), + prev_("Prev"){ +std::cout<<"Model Entry"< +#include "gtkmm.h" +#include "keybindings.h" + +namespace Entry { + class View { + public: + View(); + Gtk::Box& view(); + Gtk::Entry& entry(){return entry_;} + Gtk::Button& button_apply(){return button_apply_;}; + Gtk::Button& button_cancel(){return button_cancel_;}; + void OnShowSetFilenName(std::string exstension); + void OnHideEntry(); + protected: + Gtk::Box view_; + Gtk::Entry entry_; + Gtk::Button button_apply_, button_cancel_; + }; + class Model { + public: + Model(); + std::string next(){return next_;}; + std::string prev(){return prev_;}; + private: + std::string next_, prev_; + }; + class Controller { + public: + Controller(); + Gtk::Box& view(); + Gtk::Button& button_apply(); + void OnShowSetFilenName(std::string exstension); + void OnHideEntries(); + View view_; + };// class controller +} // namespace notebook + + +#endif // JUCI_ENTRY_H_ diff --git a/juci/menu.cc b/juci/menu.cc index 020cf58..a634fe4 100644 --- a/juci/menu.cc +++ b/juci/menu.cc @@ -14,7 +14,7 @@ Gtk::Box &Menu::View::view( // CONTROLLER -Menu::Controller::Controller(Keybindings::Controller keybindings) : +Menu::Controller::Controller(Keybindings::Controller& keybindings) : menu_view_(Gtk::ORIENTATION_VERTICAL), keybindings_(keybindings) { /* Add action to menues */ @@ -50,11 +50,7 @@ Menu::Controller::Controller(Keybindings::Controller keybindings) : [this]() { OnEditPaste(); }); - keybindings_.action_group_menu()->add(Gtk::Action::create("EditFind", - Gtk::Stock::FIND), - [this]() { - OnEditFind(); - }); + /* END edit menu */ /* START window menu */ keybindings_.action_group_menu()->add(Gtk::Action::create("WindowMenu", diff --git a/juci/menu.h b/juci/menu.h index 8641bca..702858a 100644 --- a/juci/menu.h +++ b/juci/menu.h @@ -20,7 +20,7 @@ namespace Menu { class Controller { public: - explicit Controller(Keybindings::Controller keybindings); + explicit Controller(Keybindings::Controller& keybindings); Gtk::Box &view(); diff --git a/juci/notebook.cc b/juci/notebook.cc index 2a309d5..23a15d4 100644 --- a/juci/notebook.cc +++ b/juci/notebook.cc @@ -10,7 +10,7 @@ Gtk::Box& Notebook::View::view() { return view_; } -Notebook::Controller::Controller(Keybindings::Controller keybindings) { +Notebook::Controller::Controller(Keybindings::Controller& keybindings){ scrolledwindow_vec_.push_back(new Gtk::ScrolledWindow()); source_vec_.push_back(new Source::Controller); scrolledwindow_vec_.back()->add(source_vec_.back()->view()); @@ -44,13 +44,28 @@ Notebook::Controller::Controller(Keybindings::Controller keybindings) { [this]() { OnCloseCurrentPage(); }); + keybindings.action_group_menu()->add(Gtk::Action::create("EditFind", + Gtk::Stock::FIND), + [this]() { + // OnEditFind(); + }); + entry_.view_.entry().signal_activate().connect( + [this]() { + OnNewPage(entry_.view_.entry().get_text()); + entry_.OnHideEntries(); + }); } + Gtk::Box& Notebook::Controller::view() { return view_.view(); } +Gtk::Box& Notebook::Controller::entry_view(){ + return entry_.view(); +} + void Notebook::Controller::OnNewPage(std::string name) { scrolledwindow_vec_.push_back(new Gtk::ScrolledWindow()); @@ -58,9 +73,13 @@ void Notebook::Controller::OnNewPage(std::string name) { scrolledwindow_vec_.back()->add(source_vec_.back()->view()); view_.notebook().append_page(*scrolledwindow_vec_.back(), name); view_.notebook().show_all_children(); + view_.notebook().set_focus_child(*scrolledwindow_vec_.back()); + view().show_all_children(); + view_.notebook().set_current_page(view_.notebook().get_n_pages()-1); } - + void Notebook::Controller::OnCloseCurrentPage() { + //TODO (oyvang, zalox, forgi) Save a temp file, in case you close one you dont want to close? int page = view_.notebook().get_current_page(); view_.notebook().remove_page(page); delete source_vec_.at(page); @@ -70,17 +89,17 @@ void Notebook::Controller::OnCloseCurrentPage() { } void Notebook::Controller::OnFileNewEmptyfile() { - OnNewPage("New Page"); + entry_.OnShowSetFilenName(""); //TODO(Oyvang) Legg til funksjon for Entry file name.extension } void Notebook::Controller::OnFileNewCCFile() { - OnNewPage("New Page"); + entry_.OnShowSetFilenName(".cc"); //TODO(Oyvang) Legg til funksjon for Entry file name.extension } void Notebook::Controller::OnFileNewHeaderFile() { - OnNewPage("New Page"); + entry_.OnShowSetFilenName(".h"); //TODO(Oyvang) Legg til funksjon for Entry file name.extension } diff --git a/juci/notebook.h b/juci/notebook.h index 35adb9a..eee4892 100644 --- a/juci/notebook.h +++ b/juci/notebook.h @@ -3,11 +3,11 @@ #include #include "gtkmm.h" -#include "keybindings.h" +#include "entry.h" #include "source.h" namespace Notebook { - class View : public Gtk::Box { + class View { public: View(); Gtk::Box& view(); @@ -18,12 +18,14 @@ namespace Notebook { }; class Controller { public: - Controller(Keybindings::Controller keybindings); + Controller(Keybindings::Controller& keybindings); Gtk::Box& view(); + Gtk::Box& entry_view(); void OnNewPage(std::string name); void OnCloseCurrentPage(); private: View view_; + Entry::Controller entry_; std::vector source_vec_; std::vector scrolledwindow_vec_; void OnFileNewEmptyfile(); diff --git a/juci/window.cc b/juci/window.cc index 6cda23c..fd9295f 100644 --- a/juci/window.cc +++ b/juci/window.cc @@ -5,7 +5,7 @@ Window::Window() : notebook_(keybindings_), menu_(keybindings_){ set_title("juCi++"); - set_default_size(600, 600); + set_default_size(600, 00); add(window_box_); keybindings_.action_group_menu()->add(Gtk::Action::create("FileQuit", Gtk::Stock::QUIT), @@ -17,6 +17,7 @@ Window::Window() : add_accel_group(keybindings_.ui_manager_hidden()->get_accel_group()); window_box_.pack_start(menu_.view(), Gtk::PACK_SHRINK); + window_box_.pack_start(notebook_.entry_view(), Gtk::PACK_SHRINK); window_box_.pack_start(notebook_.view()); show_all_children();