diff --git a/juci/api_ext.cc b/juci/api_ext.cc index e69de29..9b8b1ba 100644 --- a/juci/api_ext.cc +++ b/juci/api_ext.cc @@ -0,0 +1,15 @@ +#include "api.h" + +BOOST_PYTHON_MODULE(juci_to_python_api) { + using namespace boost::python; + // plugin inclusion + def("addMenuElement", &libjuci::AddMenuElement); + def("addSubMenuElement", &libjuci::AddSubMenuElement); + def("loadPlugin", &libjuci::LoadPlugin); + def("initPlugin", &libjuci::InitPlugin); + + // text editing + def("replaceLine", &libjuci::ReplaceLine); + def("replaceWord", &libjuci::ReplaceWord); + def("getWord", &libjuci::GetWord); + } // module::juci_to_python_api diff --git a/juci/config.json b/juci/config.json index ca3fa5c..9b3e661 100644 --- a/juci/config.json +++ b/juci/config.json @@ -31,14 +31,23 @@ ] }, "keybindings": { - "split_window": "s", + "new_file": "n", "new_h_file": "h", - "new_cc_file": "c", - "close_tab": "w", + "new_cc_file": "c", "open_folder": "o", - "edit_undo": "z", + "open_file": "o", "save": "s", "save_as": "s", + "quit": "q", + + "split_window": "s", + "close_tab": "w", + + "edit_copy": "c", + "edit_cut": "x", + "edit_paste": "v", + "edit_undo": "z", + "edit_find": "f", "compile_and_run": "r", "compile": "r" }, diff --git a/juci/menu.cc b/juci/menu.cc index 4fba192..0f09906 100644 --- a/juci/menu.cc +++ b/juci/menu.cc @@ -15,7 +15,7 @@ Menu::Controller::Controller(Keybindings::Controller& keybindings) : menu_view_(Gtk::ORIENTATION_VERTICAL), keybindings_(keybindings) { keybindings_.action_group_menu()->add(Gtk::Action::create("FileNew", - Gtk::Stock::FILE)); + "New File")); keybindings_.action_group_menu()->add(Gtk::Action::create("EditMenu", Gtk::Stock::EDIT)); keybindings_.action_group_menu()->add(Gtk::Action::create("WindowMenu", diff --git a/juci/menu.xml b/juci/menu.xml index eb7bd04..dbe4b12 100644 --- a/juci/menu.xml +++ b/juci/menu.xml @@ -6,7 +6,7 @@ - + diff --git a/juci/notebook.cc b/juci/notebook.cc index 56fd5ba..ef168c8 100644 --- a/juci/notebook.cc +++ b/juci/notebook.cc @@ -42,17 +42,17 @@ void Notebook::Controller::CreateKeybindings(Keybindings::Controller Gtk::Stock::FILE)); keybindings.action_group_menu()-> - add(Gtk::Action::create("FileNewStandard", - Gtk::Stock::NEW, - "New empty file", - "Create a new file"), + add(Gtk::Action::create("FileNewStandard", + "New empty file"), + Gtk::AccelKey(keybindings.config_ + .key_map()["new_file"]), [this]() { is_new_file_ = true; OnFileNewEmptyfile(); }); keybindings.action_group_menu()-> add(Gtk::Action::create("FileNewCC", - "New cc file"), + "New source file"), Gtk::AccelKey(keybindings.config_ .key_map()["new_cc_file"]), [this]() { @@ -61,7 +61,7 @@ void Notebook::Controller::CreateKeybindings(Keybindings::Controller }); keybindings.action_group_menu()-> add(Gtk::Action::create("FileNewH", - "New h file"), + "New header file"), Gtk::AccelKey(keybindings.config_ .key_map()["new_h_file"]), [this]() { @@ -78,7 +78,9 @@ void Notebook::Controller::CreateKeybindings(Keybindings::Controller }); keybindings.action_group_menu()-> add(Gtk::Action::create("EditFind", - Gtk::Stock::FIND), + "Find"), + Gtk::AccelKey(keybindings.config_ + .key_map()["edit_find"]), [this]() { is_new_file_ = false; OnEditSearch(); @@ -86,19 +88,26 @@ void Notebook::Controller::CreateKeybindings(Keybindings::Controller }); keybindings.action_group_menu()-> add(Gtk::Action::create("EditCopy", - Gtk::Stock::COPY), + "Copy"), + Gtk::AccelKey(keybindings.config_ + .key_map()["edit_copy"]), + [this]() { OnEditCopy(); }); keybindings.action_group_menu()-> add(Gtk::Action::create("EditCut", - Gtk::Stock::CUT), + "Cut"), + Gtk::AccelKey(keybindings.config_ + .key_map()["edit_cut"]), [this]() { OnEditCut(); }); keybindings.action_group_menu()-> add(Gtk::Action::create("EditPaste", - Gtk::Stock::PASTE), + "Paste"), + Gtk::AccelKey(keybindings.config_ + .key_map()["edit_paste"]), [this]() { OnEditPaste(); }); diff --git a/juci/window.cc b/juci/window.cc index f8a150f..277eed9 100644 --- a/juci/window.cc +++ b/juci/window.cc @@ -16,12 +16,16 @@ Window::Window() : set_default_size(600, 400); add(window_box_); keybindings_.action_group_menu()->add(Gtk::Action::create("FileQuit", - Gtk::Stock::QUIT), + "Quit juCi++"), + Gtk::AccelKey(keybindings_.config_ + .key_map()["quit"]), [this]() { OnWindowHide(); }); keybindings_.action_group_menu()->add(Gtk::Action::create("FileOpenFile", - Gtk::Stock::OPEN), + "Open file"), + Gtk::AccelKey(keybindings_.config_ + .key_map()["open_file"]), [this]() { OnOpenFile(); }); @@ -33,6 +37,21 @@ Window::Window() : OnFileOpenFolder(); }); + keybindings_.action_group_menu()->add(Gtk::Action::create("FileSaveAs", + "Save as"), + Gtk::AccelKey(keybindings_.config_ + .key_map()["save_as"]), + [this]() { + notebook_.OnSaveFile(); + }); + + keybindings_.action_group_menu()->add(Gtk::Action::create("FileSave", + "Save file"), + Gtk::AccelKey(keybindings_.config_ + .key_map()["save"]), + [this]() { + notebook_.OnSaveFile(); + }); keybindings_. action_group_menu()-> add(Gtk::Action::create("FileSaveAs",