Browse Source

BAB-23 #time 6h #close #comment fixed entry, focus entry and notbook focus

master
oyvang 11 years ago
parent
commit
16e98a9c85
  1. 1
      juci/CMakeLists.txt
  2. 55
      juci/entry.cc
  3. 43
      juci/entry.h
  4. 8
      juci/menu.cc
  5. 2
      juci/menu.h
  6. 29
      juci/notebook.cc
  7. 8
      juci/notebook.h
  8. 3
      juci/window.cc

1
juci/CMakeLists.txt

@ -70,6 +70,7 @@ add_executable(${project_name}
window window
api api
notebook notebook
entry
#there is no need for extentions #there is no need for extentions
) )

55
juci/entry.cc

@ -0,0 +1,55 @@
#include "entry.h"
Entry::Model::Model() :
next_("Next"),
prev_("Prev"){
std::cout<<"Model Entry"<<std::endl;
}
Entry::View::View() :
view_(Gtk::ORIENTATION_HORIZONTAL),
button_apply_(Gtk::Stock::APPLY),
button_cancel_(Gtk::Stock::CANCEL){
// container_.add(view_);
std::cout<<"View Entry"<<std::endl;
}
Gtk::Box& Entry::View::view() {
return view_;
}
void Entry::View::OnShowSetFilenName(std::string exstension) {
entry_.set_max_length(50);
entry_.set_text(exstension);
view_.pack_start(entry_);
view_.pack_end(button_cancel_, Gtk::PACK_SHRINK);
view_.pack_end(button_apply_, Gtk::PACK_SHRINK);
}
void Entry::View::OnHideEntry()
{
view_.remove(entry_);
view_.remove(button_cancel_);
view_.remove(button_apply_);
}
Entry::Controller::Controller() {
std::cout<<"Controller Entry"<<std::endl;
}
Gtk::Box& Entry::Controller::view() {
return view_.view();
}
Gtk::Button& Entry::Controller::button_apply(){
return view_.button_apply();
}
void Entry::Controller::OnShowSetFilenName(std::string exstension) {
view_.OnShowSetFilenName(exstension);
view_.view().show_all();
view_.entry().grab_focus();
view_.entry().set_position(0);
}
void Entry::Controller::OnHideEntries(){
view_.OnHideEntry();
}

43
juci/entry.h

@ -0,0 +1,43 @@
#ifndef JUCI_ENTRY_H_
#define JUCI_ENTRY_H_
#include <iostream>
#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_

8
juci/menu.cc

@ -14,7 +14,7 @@ Gtk::Box &Menu::View::view(
// CONTROLLER // CONTROLLER
Menu::Controller::Controller(Keybindings::Controller keybindings) : Menu::Controller::Controller(Keybindings::Controller& keybindings) :
menu_view_(Gtk::ORIENTATION_VERTICAL), menu_view_(Gtk::ORIENTATION_VERTICAL),
keybindings_(keybindings) { keybindings_(keybindings) {
/* Add action to menues */ /* Add action to menues */
@ -50,11 +50,7 @@ Menu::Controller::Controller(Keybindings::Controller keybindings) :
[this]() { [this]() {
OnEditPaste(); OnEditPaste();
}); });
keybindings_.action_group_menu()->add(Gtk::Action::create("EditFind",
Gtk::Stock::FIND),
[this]() {
OnEditFind();
});
/* END edit menu */ /* END edit menu */
/* START window menu */ /* START window menu */
keybindings_.action_group_menu()->add(Gtk::Action::create("WindowMenu", keybindings_.action_group_menu()->add(Gtk::Action::create("WindowMenu",

2
juci/menu.h

@ -20,7 +20,7 @@ namespace Menu {
class Controller { class Controller {
public: public:
explicit Controller(Keybindings::Controller keybindings); explicit Controller(Keybindings::Controller& keybindings);
Gtk::Box &view(); Gtk::Box &view();

29
juci/notebook.cc

@ -10,7 +10,7 @@ Gtk::Box& Notebook::View::view() {
return view_; return view_;
} }
Notebook::Controller::Controller(Keybindings::Controller keybindings) { Notebook::Controller::Controller(Keybindings::Controller& keybindings){
scrolledwindow_vec_.push_back(new Gtk::ScrolledWindow()); scrolledwindow_vec_.push_back(new Gtk::ScrolledWindow());
source_vec_.push_back(new Source::Controller); source_vec_.push_back(new Source::Controller);
scrolledwindow_vec_.back()->add(source_vec_.back()->view()); scrolledwindow_vec_.back()->add(source_vec_.back()->view());
@ -44,13 +44,28 @@ Notebook::Controller::Controller(Keybindings::Controller keybindings) {
[this]() { [this]() {
OnCloseCurrentPage(); 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() { Gtk::Box& Notebook::Controller::view() {
return view_.view(); return view_.view();
} }
Gtk::Box& Notebook::Controller::entry_view(){
return entry_.view();
}
void Notebook::Controller::OnNewPage(std::string name) { void Notebook::Controller::OnNewPage(std::string name) {
scrolledwindow_vec_.push_back(new Gtk::ScrolledWindow()); 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()); scrolledwindow_vec_.back()->add(source_vec_.back()->view());
view_.notebook().append_page(*scrolledwindow_vec_.back(), name); view_.notebook().append_page(*scrolledwindow_vec_.back(), name);
view_.notebook().show_all_children(); 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() { 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(); int page = view_.notebook().get_current_page();
view_.notebook().remove_page(page); view_.notebook().remove_page(page);
delete source_vec_.at(page); delete source_vec_.at(page);
@ -70,17 +89,17 @@ void Notebook::Controller::OnCloseCurrentPage() {
} }
void Notebook::Controller::OnFileNewEmptyfile() { void Notebook::Controller::OnFileNewEmptyfile() {
OnNewPage("New Page"); entry_.OnShowSetFilenName("");
//TODO(Oyvang) Legg til funksjon for Entry file name.extension //TODO(Oyvang) Legg til funksjon for Entry file name.extension
} }
void Notebook::Controller::OnFileNewCCFile() { void Notebook::Controller::OnFileNewCCFile() {
OnNewPage("New Page"); entry_.OnShowSetFilenName(".cc");
//TODO(Oyvang) Legg til funksjon for Entry file name.extension //TODO(Oyvang) Legg til funksjon for Entry file name.extension
} }
void Notebook::Controller::OnFileNewHeaderFile() { void Notebook::Controller::OnFileNewHeaderFile() {
OnNewPage("New Page"); entry_.OnShowSetFilenName(".h");
//TODO(Oyvang) Legg til funksjon for Entry file name.extension //TODO(Oyvang) Legg til funksjon for Entry file name.extension
} }

8
juci/notebook.h

@ -3,11 +3,11 @@
#include <iostream> #include <iostream>
#include "gtkmm.h" #include "gtkmm.h"
#include "keybindings.h" #include "entry.h"
#include "source.h" #include "source.h"
namespace Notebook { namespace Notebook {
class View : public Gtk::Box { class View {
public: public:
View(); View();
Gtk::Box& view(); Gtk::Box& view();
@ -18,12 +18,14 @@ namespace Notebook {
}; };
class Controller { class Controller {
public: public:
Controller(Keybindings::Controller keybindings); Controller(Keybindings::Controller& keybindings);
Gtk::Box& view(); Gtk::Box& view();
Gtk::Box& entry_view();
void OnNewPage(std::string name); void OnNewPage(std::string name);
void OnCloseCurrentPage(); void OnCloseCurrentPage();
private: private:
View view_; View view_;
Entry::Controller entry_;
std::vector<Source::Controller*> source_vec_; std::vector<Source::Controller*> source_vec_;
std::vector<Gtk::ScrolledWindow*> scrolledwindow_vec_; std::vector<Gtk::ScrolledWindow*> scrolledwindow_vec_;
void OnFileNewEmptyfile(); void OnFileNewEmptyfile();

3
juci/window.cc

@ -5,7 +5,7 @@ Window::Window() :
notebook_(keybindings_), notebook_(keybindings_),
menu_(keybindings_){ menu_(keybindings_){
set_title("juCi++"); set_title("juCi++");
set_default_size(600, 600); set_default_size(600, 00);
add(window_box_); add(window_box_);
keybindings_.action_group_menu()->add(Gtk::Action::create("FileQuit", keybindings_.action_group_menu()->add(Gtk::Action::create("FileQuit",
Gtk::Stock::QUIT), Gtk::Stock::QUIT),
@ -17,6 +17,7 @@ Window::Window() :
add_accel_group(keybindings_.ui_manager_hidden()->get_accel_group()); add_accel_group(keybindings_.ui_manager_hidden()->get_accel_group());
window_box_.pack_start(menu_.view(), Gtk::PACK_SHRINK); 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()); window_box_.pack_start(notebook_.view());
show_all_children(); show_all_children();

Loading…
Cancel
Save