Browse Source

Merge branch 'master' of bitbucket.org:cppit/juci

merge-requests/365/head
Jørgen Lien Sellæg 11 years ago
parent
commit
0d7c46ff14
  1. 9
      juci/CMakeLists.txt
  2. 50
      juci/controller.h
  3. 6
      juci/juci.h
  4. 122
      juci/menu.cc
  5. 90
      juci/menu.h
  6. 28
      juci/model.h
  7. 44
      juci/models.cc
  8. 43
      juci/view.h
  9. 36
      juci/views.cc

9
juci/CMakeLists.txt

@ -63,14 +63,9 @@ endif()
# name of the executable on Windows will be example.exe # name of the executable on Windows will be example.exe
add_executable(${project_name} add_executable(${project_name}
# list of every needed file to create the executable # list of every needed file to create the executable
model.h menu.h
models.cc
view.h menu.cc
views.cc
controller.h
controllers.cc
window.cc window.cc
juci.cc juci.cc

50
juci/controller.h

@ -1,50 +0,0 @@
/*juCi++ controller header file*/
#ifndef CONTROLLER_H
#define CONTROLLER_H
#include "view.h"
#include "model.h"
/* -------------------------- HOW TO ----------------------------- */
/* Controll classes under Controller->public */
/* Model object under Controller::class->private name:class_model */
/* View object under Controller::class->private name:class_view */
/* ------------------ Remove these comments ---------------------- */
class Controller {
public:
class Menu {
public:
Menu();
virtual ~Menu();
Gtk::Box &view();
Glib::RefPtr<Gtk::UIManager> ui_manager() {
return menu_view_.ui_manager();
};
private:
View::Menu menu_view_;
Model::Menu menu_model_;
/*Signal handlers*/
void onFileNewEmptyfile();
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();
};
};
#endif //CONTROLLER_H

6
juci/juci.h

@ -4,9 +4,7 @@
#include <iostream> #include <iostream>
#include "gtkmm.h" #include "gtkmm.h"
#include "view.h" #include "menu.h"
#include "model.h"
#include "controller.h"
class Window : public Gtk::Window { class Window : public Gtk::Window {
@ -18,7 +16,7 @@ public:
Gtk::Box window_box_; Gtk::Box window_box_;
private: private:
Controller::Menu menu; Menu::Controller menu;
/*signal handler*/ /*signal handler*/
void onSystemQuit(); void onSystemQuit();

122
juci/controllers.cc → juci/menu.cc

@ -1,6 +1,90 @@
#include "controller.h" #include "menu.h"
Controller::Menu::Menu() : /***********************************/
/* MODEL */
/***********************************/
Menu::Model::Model() {
ui_string_ =
"<ui> "
" <menubar name='MenuBar'> "
" <menu action='FileMenu'> "
" <menu action='FileNew'> "
" <menuitem action='FileNewStandard'/> "
" <menuitem action='FileNewCC'/> "
" <menuitem action='FileNewH'/> "
" </menu> "
" <menuitem action='FileOpenFile'/> "
" <menuitem action='FileOpenFolder'/> "
" <separator/> "
" <menuitem action='FileQuit'/> "
" </menu> "
" <menu action='EditMenu'> "
" <menuitem action='EditCopy'/> "
" <menuitem action='EditCut'/> "
" <menuitem action='EditPaste'/> "
" <separator/> "
" <menuitem action='EditFind'/> "
" </menu> "
" <menu action='WindowMenu'> "
" <menuitem action='WindowCloseTab'/> "
" <menuitem action='WindowSplitWindow'/> "
" </menu> "
" <menu action='PluginMenu'> "
" <menu action='PluginSnippet'> "
" <menuitem action='PluginAddSnippet'/> "
" </menu> "
" </menu> "
" <menu action='HelpMenu'> "
" <menuitem action='HelpAbout'/> "
" </menu> "
" </menubar> "
"</ui> ";
}
Menu::Model::~Model() {
}
/***********************************/
/* VIEW */
/***********************************/
Menu::View::View(Gtk::Orientation orientation) :
view_(orientation) {
action_group_ = Gtk::ActionGroup::create();
ui_manager_ = Gtk::UIManager::create();
}
void Menu::View::set_ui_manger_string(std::string ui_string) {
try {
ui_manager_->add_ui_from_string(ui_string);
}
catch (const Glib::Error &ex) {
std::cerr << "building menus failed: " << ex.what();
}
}
void Menu::View::set_ui_manager_action_group(Glib::RefPtr<Gtk::ActionGroup> action_group) {
ui_manager_->insert_action_group(action_group);
}
Gtk::Box &Menu::View::view() {
view_.pack_start(*ui_manager_->get_widget("/MenuBar"), Gtk::PACK_SHRINK);
return view_;
}
Menu::View::~View() {
}
/***********************************/
/* CONTROLLER */
/***********************************/
Menu::Controller::Controller() :
menu_view_(Gtk::ORIENTATION_VERTICAL), menu_view_(Gtk::ORIENTATION_VERTICAL),
menu_model_() { menu_model_() {
/* Add action to menues */ /* Add action to menues */
@ -96,68 +180,68 @@ Controller::Menu::Menu() :
menu_view_.set_ui_manger_string(menu_model_.ui_string()); menu_view_.set_ui_manger_string(menu_model_.ui_string());
} }
Controller::Menu::~Menu() { Menu::Controller::~Controller() {
} }
Gtk::Box &Controller::Menu::view() { Gtk::Box &Menu::Controller::view() {
return menu_view_.view(); return menu_view_.view();
} }
void Controller::Menu::onFileNewEmptyfile() { void Menu::Controller::onFileNewEmptyfile() {
std::cout << "New file clicked" << std::endl; std::cout << "New file clicked" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onFileNewCCFile() { void Menu::Controller::onFileNewCCFile() {
std::cout << "New cc file clicked" << std::endl; std::cout << "New cc file clicked" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onFileNewHeaderFile() { void Menu::Controller::onFileNewHeaderFile() {
std::cout << "New cc file clicked" << std::endl; std::cout << "New cc file clicked" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onSystemQuit(){ void Menu::Controller::onSystemQuit(){
//TODO(Oyvang, Zalox, Forgie) Add everything that needs to be done before quiting //TODO(Oyvang, Zalox, Forgie) Add everything that needs to be done before quiting
/*Quit the system*/ /*Quit the system*/
Gtk::Main::quit(); //TODO(Oyvang, Zalox, Forgie) methode is depricated, find a better solution. Gtk::Main::quit(); //TODO(Oyvang, Zalox, Forgie) methode is depricated, find a better solution.
} }
void Controller::Menu::onPluginAddSnippet() { void Menu::Controller::onPluginAddSnippet() {
std::cout << "Add snipper" << std::endl; //TODO(Forgi add you snippet magic code) std::cout << "Add snipper" << std::endl; //TODO(Forgi add you snippet magic code)
} }
void Controller::Menu::onFileOpenFile() { void Menu::Controller::onFileOpenFile() {
std::cout << "Open file clicked" << std::endl; std::cout << "Open file clicked" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onFileOpenFolder() { void Menu::Controller::onFileOpenFolder() {
std::cout << "Open folder clicked" << std::endl; std::cout << "Open folder clicked" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onWindowCloseTab() { void Menu::Controller::onWindowCloseTab() {
std::cout << "Closing tab clicked" << std::endl; std::cout << "Closing tab clicked" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onEditCopy() { void Menu::Controller::onEditCopy() {
std::cout << "Clicked copy" << std::endl; std::cout << "Clicked copy" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onEditCut() { void Menu::Controller::onEditCut() {
std::cout << "Clicked cut" << std::endl; std::cout << "Clicked cut" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onEditPaste() { void Menu::Controller::onEditPaste() {
std::cout << "Clicked paste" << std::endl; std::cout << "Clicked paste" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onEditFind() { void Menu::Controller::onEditFind() {
std::cout << "Clicked find" << std::endl; std::cout << "Clicked find" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onWindowSplitWindow() { void Menu::Controller::onWindowSplitWindow() {
std::cout << "Clicked split window" << std::endl; std::cout << "Clicked split window" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }
void Controller::Menu::onHelpAbout() { void Menu::Controller::onHelpAbout() {
std::cout << "Clicked about" << std::endl; std::cout << "Clicked about" << std::endl;
//TODO(Oyvang) Legg til funksjon //TODO(Oyvang) Legg til funksjon
} }

90
juci/menu.h

@ -0,0 +1,90 @@
#include <iostream>
#include "gtkmm.h"
namespace Menu {
class Model {
public:
Model();
virtual~Model();
std::string ui_string() {
return ui_string_;
};
private:
std::string ui_string_;
};
class View {
public:
View(Gtk::Orientation orient);
virtual ~View();
Gtk::Box &view();
Glib::RefPtr <Gtk::ActionGroup> action_group() {
return action_group_;
};
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:
Gtk::Box view_;
Glib::RefPtr <Gtk::UIManager> ui_manager_;
Glib::RefPtr <Gtk::ActionGroup> action_group_;
};
class Controller {
public:
Controller();
virtual ~Controller();
Gtk::Box &view();
Glib::RefPtr <Gtk::UIManager> ui_manager() {
return menu_view_.ui_manager();
};
private:
Menu::View menu_view_;
Menu::Model menu_model_;
/*Signal handlers*/
void onFileNewEmptyfile();
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();
};
}

28
juci/model.h

@ -1,28 +0,0 @@
/*juCi++ model header file*/
#ifndef MODEL_H
#define MODEL_H
#include "gtkmm.h"
/* -------------------------- HOW TO -------------------------- */
/* Model classes under Model if possible */
/* ------------------ Remove these comments ------------------- */
class Model {
public:
class Menu {
public:
Menu();
virtual~Menu();
std::string ui_string() {
return ui_string_;
};
private:
std::string ui_string_;
};
};
#endif //MODEL_H

44
juci/models.cc

@ -1,44 +0,0 @@
#include "model.h"
Model::Menu::Menu() {
ui_string_ =
"<ui> "
" <menubar name='MenuBar'> "
" <menu action='FileMenu'> "
" <menu action='FileNew'> "
" <menuitem action='FileNewStandard'/> "
" <menuitem action='FileNewCC'/> "
" <menuitem action='FileNewH'/> "
" </menu> "
" <menuitem action='FileOpenFile'/> "
" <menuitem action='FileOpenFolder'/> "
" <separator/> "
" <menuitem action='FileQuit'/> "
" </menu> "
" <menu action='EditMenu'> "
" <menuitem action='EditCopy'/> "
" <menuitem action='EditCut'/> "
" <menuitem action='EditPaste'/> "
" <separator/> "
" <menuitem action='EditFind'/> "
" </menu> "
" <menu action='WindowMenu'> "
" <menuitem action='WindowCloseTab'/> "
" <menuitem action='WindowSplitWindow'/> "
" </menu> "
" <menu action='PluginMenu'> "
" <menu action='PluginSnippet'> "
" <menuitem action='PluginAddSnippet'/> "
" </menu> "
" </menu> "
" <menu action='HelpMenu'> "
" <menuitem action='HelpAbout'/> "
" </menu> "
" </menubar> "
"</ui> ";
// TODO(oyvang) legg til <menuitem action='FileCloseTab'/> under en meny Window
}
Model::Menu::~Menu() {
}

43
juci/view.h

@ -1,43 +0,0 @@
/*juCi++ view header file*/
#ifndef VIEW_H
#define VIEW_H
#include "gtkmm.h"
#include "iostream"
/* -------------------------- HOW TO -------------------------- */
/* All view shall be under View if possible */
/* ------------------ Remove these comments ------------------- */
class View {
public:
class Menu {
public:
Menu(Gtk::Orientation orient);
virtual ~Menu();
Gtk::Box &view();
Glib::RefPtr<Gtk::ActionGroup> action_group() {
return action_group_;
};
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:
Gtk::Box view_;
Glib::RefPtr<Gtk::UIManager> ui_manager_;
Glib::RefPtr<Gtk::ActionGroup> action_group_;
};
};
#endif // VIEW_H

36
juci/views.cc

@ -1,36 +0,0 @@
#include "view.h"
/***********************************/
/* MENU */
/***********************************/
View::Menu::Menu(Gtk::Orientation orientation) :
view_(orientation) {
action_group_ = Gtk::ActionGroup::create();
ui_manager_ = Gtk::UIManager::create();
}
void View::Menu::set_ui_manger_string(std::string ui_string) {
try {
ui_manager_->add_ui_from_string(ui_string);
}
catch (const Glib::Error &ex) {
std::cerr << "building menus failed: " << ex.what();
}
}
void View::Menu::set_ui_manager_action_group(Glib::RefPtr<Gtk::ActionGroup> action_group) {
ui_manager_->insert_action_group(action_group);
}
Gtk::Box &View::Menu::view() {
view_.pack_start(*ui_manager_->get_widget("/MenuBar"), Gtk::PACK_SHRINK);
return view_;
}
View::Menu::~Menu() {
}
Loading…
Cancel
Save