Browse Source

BPP21 #comment merged master #time 10m

master
forgie 11 years ago
parent
commit
18e21cdce6
  1. 3
      juci/CMakeLists.txt
  2. 5
      juci/juci.cc
  3. 10
      juci/juci.h
  4. 4
      juci/keybindings.h
  5. 17
      juci/menu.cc
  6. 33
      juci/menu.h
  7. 41
      juci/source.cc
  8. 8
      juci/source.h
  9. 21
      juci/window.cc

3
juci/CMakeLists.txt

@ -63,11 +63,12 @@ endif()
# name of the executable on Windows will be example.exe
add_executable(${project_name}
#list of every needed file to create the executable
juci.h
juci.cc
keybindings
menu
source
window
juci
api
#there is no need for extentions

5
juci/juci.cc

@ -1,9 +1,14 @@
#include "juci.h"
int main(int argc, char *argv[]) {
Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(
argc,
argv,
"no.sout.juci");
// app->set_flags(Gio::APPLICATION_NON_UNIQUE);
Window window;
return app->run(window);
}

10
juci/juci.h

@ -1,4 +1,4 @@
/*juCi++ main header file*/
//juCi++ main header file
#ifndef JUCI_JUCI_H_
#define JUCI_JUCI_H_
@ -11,14 +11,16 @@ class Window : public Gtk::Window {
public:
Window();
virtual ~Window() {}
Gtk::Box window_box_;
std::shared_ptr<Source::Controller> source();
private:
Keybindings::Controller keybindings_;
Menu::Controller menu_;
Source::Controller& source();
Source::Controller source_;
Gtk::Box window_box_;
/*signal handler*/
void onSystemQuit();
void OnSystemQuit();
};
#endif // JUCI_JUCI_H_

4
juci/keybindings.h

@ -2,10 +2,10 @@
#include "gtkmm.h"
namespace Keybindings {
class Controller {
public:
Controller();
virtual ~Controller();
Glib::RefPtr<Gtk::ActionGroup> action_group() {
@ -15,11 +15,11 @@ namespace Keybindings {
Glib::RefPtr<Gtk::UIManager> ui_manager() {
return ui_manager_;
};
void set_ui_manger_string(std::string ui_string);
void set_ui_manager_action_group(Glib::RefPtr<Gtk::ActionGroup> action_group);
protected:
Glib::RefPtr<Gtk::UIManager> ui_manager_;
Glib::RefPtr<Gtk::ActionGroup> action_group_;

17
juci/menu.cc

@ -55,7 +55,7 @@ Menu::View::View(Gtk::Orientation orientation) :
}
Gtk::Box& Menu::View::view(
Gtk::Box &Menu::View::view(
Glib::RefPtr<Gtk::UIManager> 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));
@ -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("<control><alt>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)
juci_api::py::LoadPlugin("snippet");

33
juci/menu.h

@ -11,8 +11,13 @@ namespace Menu {
class Model {
public:
Model();
virtual ~Model();
std::string ui_string() { return ui_string_; }
std::string ui_string() {
return ui_string_;
}
private:
std::string ui_string_;
}; // class Model
@ -20,8 +25,10 @@ namespace Menu {
class View {
public:
explicit View(Gtk::Orientation orient);
virtual ~View();
Gtk::Box& view(Glib::RefPtr<Gtk::UIManager> ui_manager);
Gtk::Box &view(Glib::RefPtr<Gtk::UIManager> ui_manager);
protected:
Gtk::Box view_;
@ -30,25 +37,41 @@ namespace Menu {
class Controller {
public:
explicit Controller(Keybindings::Controller keybindings);
virtual ~Controller();
Gtk::Box& view();
Gtk::Box &view();
private:
Keybindings::Controller keybindings_;
View menu_view_;
Model menu_model_;
void OnFileNewEmptyfile(); /*Signal handlers*/
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
} // namespace Menu

41
juci/source.cc

@ -1,47 +1,44 @@
#include "source.h"
#include <iostream>
using namespace std;
//////////////
//// View ////
//////////////
Source::View::View() {
cout << "View construktor run" << endl;
std::cout << "View constructor run" << std::endl;
}
void Source::View::UpdateLine(Glib::RefPtr<Gtk::TextBuffer::Mark> mark) {
cout << "Update line called. linum: " << mark->get_iter().get_line() << endl;
std::cout << "Update line called. linum: ";
std::cout << mark->get_iter().get_line() << std::endl;
}
///////////////
//// Model ////
///////////////
Source::Model::Model(){
cout << "Model construktor run" << endl;
Source::Model::Model() {
std::cout << "Model constructor run" << std::endl;
}
////////////////////
//// Controller ////
////////////////////
/**
*
*/
// Source::Controller::Controller()
// Constructor for Controller
Source::Controller::Controller() {
cout << "Controller construktor run" << endl;
std::cout << "Controller constructor run" << std::endl;
}
/**
*
*/
std::shared_ptr<Source::View> Source::Controller::sourceview() {
sourceview();
return std::shared_ptr<Source::View>(&sourceview_);
// Source::Controller::view()
// return shared_ptr to the view
Source::View& Source::Controller::view() {
return view_;
}
/**
*
*/
void Source::Controller::OnLineEdit(Glib::RefPtr<Gtk::TextBuffer::Mark> mark){
// Source::Controller::model()
// return shared_ptr to the model()
Source::Model& Source::Controller::model() {
return model_;
}
// Source::Controller::OnLineEdit()
// fired when a line in the buffer is edited
void Source::Controller::OnLineEdit(Glib::RefPtr<Gtk::TextBuffer::Mark> mark) {}

8
juci/source.h

@ -21,11 +21,15 @@ namespace Source {
class Controller {
public:
Controller();
std::shared_ptr<Source::View> sourceview();
View& view();
Model& model();
private:
void OnLineEdit(Glib::RefPtr<Gtk::TextBuffer::Mark> mark);
protected:
View sourceview_;
View view_;
Model model_;
}; // class Controller
} // namespace Source
#endif // JUCI_SOURCE_H_

21
juci/window.cc

@ -1,18 +1,27 @@
#include "juci.h"
Window::Window() :
window_box_(Gtk::ORIENTATION_HORIZONTAL),
window_box_(Gtk::ORIENTATION_VERTICAL),
menu_(keybindings_) {
set_title("example juCi++");
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());
window_box_.pack_start(menu_.view());
window_box_.pack_start(menu_.view(), Gtk::PACK_SHRINK);
window_box_.pack_start(source().view());
show_all_children();
}
Source::Controller& Window::source() {
return source_;
}
std::shared_ptr<Source::Controller> Window::source() {
return std::shared_ptr<Source::Controller>(&source_);
void Window::OnSystemQuit() {
hide();
}

Loading…
Cancel
Save