8 changed files with 163 additions and 110 deletions
@ -1,7 +1,9 @@
|
||||
#include "juci.h" |
||||
|
||||
int main(int argc, char *argv[]) { |
||||
Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv, "no.sout.juci"); |
||||
Glib::RefPtr<Gtk::Application> app = Gtk::Application::create( |
||||
argc, |
||||
argv, |
||||
"no.sout.juci"); |
||||
Window window; |
||||
return app->run(window);; |
||||
return app->run(window); |
||||
} |
||||
|
||||
@ -1,28 +1,23 @@
|
||||
/*juCi++ main header file*/ |
||||
#ifndef JUCI_H |
||||
#define JUCI_H |
||||
#ifndef JUCI_JUCI_H_ |
||||
#define JUCI_JUCI_H_ |
||||
|
||||
#include <iostream> |
||||
#include "gtkmm.h" |
||||
#include "menu.h" |
||||
|
||||
#include "source.h" |
||||
|
||||
class Window : public Gtk::Window { |
||||
public: |
||||
Window(); |
||||
virtual ~Window(); |
||||
|
||||
Gtk::Box window_box_; |
||||
|
||||
Window(); |
||||
virtual ~Window() {} |
||||
Gtk::Box window_box_; |
||||
std::shared_ptr<Source::Controller> source(); |
||||
private: |
||||
Keybindings::Controller keybindings; |
||||
Menu::Controller menu; |
||||
|
||||
/*signal handler*/ |
||||
void onSystemQuit(); |
||||
|
||||
Menu::Controller menu; |
||||
Source::Controller source_; |
||||
/*signal handler*/ |
||||
void onSystemQuit(); |
||||
}; |
||||
|
||||
|
||||
|
||||
#endif // JUCI_H
|
||||
#endif // JUCI_JUCI_H_
|
||||
|
||||
@ -1,69 +1,53 @@
|
||||
#ifndef JUCI_MENU_H_ |
||||
#define JUCI_MENU_H_ |
||||
|
||||
#include <iostream> |
||||
#include "gtkmm.h" |
||||
#include "keybindings.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::UIManager> ui_manager); |
||||
|
||||
protected: |
||||
Gtk::Box view_; |
||||
|
||||
}; |
||||
|
||||
class Controller { |
||||
public: |
||||
Controller(Keybindings::Controller keybindings); |
||||
virtual ~Controller(); |
||||
Gtk::Box &view(); |
||||
private: |
||||
Keybindings::Controller keybindings_; |
||||
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(); |
||||
|
||||
}; |
||||
} |
||||
namespace Menu { |
||||
class Model { |
||||
public: |
||||
Model(); |
||||
virtual ~Model(); |
||||
std::string ui_string() { return ui_string_; } |
||||
private: |
||||
std::string ui_string_; |
||||
}; // class Model
|
||||
|
||||
class View { |
||||
public: |
||||
explicit View(Gtk::Orientation orient); |
||||
virtual ~View(); |
||||
Glib::RefPtr<Gtk::Box> view(Glib::RefPtr<Gtk::UIManager> ui_manager); |
||||
|
||||
protected: |
||||
Gtk::Box view_; |
||||
}; // class View
|
||||
// controller
|
||||
class Controller { |
||||
public: |
||||
explicit Controller(Keybindings::Controller keybindings); |
||||
virtual ~Controller(); |
||||
|
||||
private: |
||||
Keybindings::Controller keybindings_; |
||||
View menu_view_; |
||||
Model menu_model_; |
||||
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
|
||||
#endif // JUCI_MENU_H_
|
||||
|
||||
@ -0,0 +1,47 @@
|
||||
#include "source.h" |
||||
#include <iostream> |
||||
|
||||
using namespace std; |
||||
|
||||
|
||||
//////////////
|
||||
//// View ////
|
||||
//////////////
|
||||
Source::View::View() { |
||||
cout << "View construktor run" << endl; |
||||
} |
||||
|
||||
void Source::View::UpdateLine(Glib::RefPtr<Gtk::TextBuffer::Mark> mark) { |
||||
cout << "Update line called. linum: " << mark->get_iter().get_line() << endl; |
||||
} |
||||
|
||||
///////////////
|
||||
//// Model ////
|
||||
///////////////
|
||||
Source::Model::Model(){ |
||||
cout << "Model construktor run" << endl; |
||||
} |
||||
|
||||
////////////////////
|
||||
//// Controller ////
|
||||
////////////////////
|
||||
|
||||
/**
|
||||
* |
||||
*/ |
||||
Source::Controller::Controller() { |
||||
cout << "Controller construktor run" << endl; |
||||
} |
||||
/**
|
||||
* |
||||
*/ |
||||
std::shared_ptr<Source::View> Source::Controller::sourceview() { |
||||
sourceview(); |
||||
return std::shared_ptr<Source::View>(&sourceview_); |
||||
} |
||||
/**
|
||||
* |
||||
*/ |
||||
void Source::Controller::OnLineEdit(Glib::RefPtr<Gtk::TextBuffer::Mark> mark){ |
||||
|
||||
} |
||||
@ -0,0 +1,31 @@
|
||||
#ifndef JUCI_SOURCE_H_ |
||||
#define JUCI_SOURCE_H_ |
||||
|
||||
#include <iostream> |
||||
#include "gtkmm.h" |
||||
|
||||
namespace Source { |
||||
class View : public Gtk::TextView { |
||||
public: |
||||
View(); |
||||
void UpdateLine(Glib::RefPtr<Gtk::TextBuffer::Mark> mark); |
||||
private: |
||||
void UpdateSyntaxHighlighting(int line_number); |
||||
}; |
||||
|
||||
class Model{ |
||||
public: |
||||
Model(); |
||||
}; |
||||
|
||||
class Controller { |
||||
public: |
||||
Controller(); |
||||
std::shared_ptr<Source::View> sourceview(); |
||||
private: |
||||
void OnLineEdit(Glib::RefPtr<Gtk::TextBuffer::Mark> mark); |
||||
protected: |
||||
View sourceview_; |
||||
}; // class Controller
|
||||
} // namespace Source
|
||||
#endif // JUCI_SOURCE_H_
|
||||
@ -1,19 +1,17 @@
|
||||
#include "juci.h" |
||||
|
||||
Window::Window() : |
||||
window_box_(Gtk::ORIENTATION_HORIZONTAL), |
||||
keybindings(), |
||||
menu(keybindings) { |
||||
window_box_(Gtk::ORIENTATION_HORIZONTAL), |
||||
menu() { |
||||
set_title("example juCi++"); |
||||
set_default_size(600, 600); |
||||
// window_box_.add(*source_.sourceview());
|
||||
add(window_box_); |
||||
add_accel_group(menu.ui_manager()->get_accel_group()); |
||||
window_box_.pack_start(menu.view()); |
||||
add_accel_group(keybindings.ui_manager()->get_accel_group()); |
||||
show_all_children(); |
||||
}; |
||||
|
||||
Window::~Window() { |
||||
|
||||
} |
||||
|
||||
|
||||
std::shared_ptr<Source::Controller> Window::source() { |
||||
return std::shared_ptr<Source::Controller>(&source_); |
||||
} |
||||
|
||||
Loading…
Reference in new issue