9 changed files with 197 additions and 231 deletions
@ -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
|
|
||||||
@ -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(); |
||||||
|
|
||||||
|
}; |
||||||
|
} |
||||||
@ -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
|
|
||||||
@ -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() { |
|
||||||
} |
|
||||||
@ -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
|
|
||||||
@ -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…
Reference in new issue