33#include " config.h"
44#include < iostream>
55#include < pygobject.h>
6+ #include " menu.h"
7+ #include " directories.h"
68
79inline pybind11::module pyobject_from_gobj (gpointer ptr){
810 auto obj=G_OBJECT (ptr);
@@ -13,14 +15,35 @@ inline pybind11::module pyobject_from_gobj(gpointer ptr){
1315
1416PythonInterpreter::PythonInterpreter (){
1517 auto init_juci_api=[](){
16- pybind11::module (pygobject_init (-1 ,-1 ,-1 ), false );
17- pybind11::module api (" jucpp" , " Python bindings for juCi++" );
18- api.def (" get_current_text_buffer" , [](){
18+ pybind11::module (pygobject_init (-1 ,-1 ,-1 ),false );
19+ pybind11::module api (" jucpp" ," Python bindings for juCi++" );
20+ api.def (" get_juci_home" ,[](){return Config::get ().juci_home_path ().string ();})
21+ .def (" get_plugin_folder" ,[](){return Config::get ().python .plugin_directory ;})
22+ .def (" get_current_gtk_source_view" ,[](){
1923 auto view=Notebook::get ().get_current_view ();
2024 if (view)
2125 return pyobject_from_gobj (view->gobj ());
22- return pybind11::module (Py_None, false );
23- });
26+ return pybind11::module (Py_None,false );
27+ })
28+ .def (" get_gio_plugin_menu" ,[](){
29+ auto &plugin_menu=Menu::get ().plugin_menu ;
30+ if (!plugin_menu){
31+ plugin_menu=Gio::Menu::create ();
32+ plugin_menu->append (" <empty>" );
33+ Menu::get ().window_menu ->append_submenu (" _Plugins" ,plugin_menu);
34+ }
35+ return pyobject_from_gobj (plugin_menu->gobj ());
36+ })
37+ .def (" get_gio_window_menu" ,[](){return pyobject_from_gobj (Menu::get ().window_menu ->gobj ());})
38+ .def (" get_gio_juci_menu" ,[](){return pyobject_from_gobj (Menu::get ().juci_menu ->gobj ());})
39+ .def (" get_gtk_notebook" ,[](){return pyobject_from_gobj (Notebook::get ().gobj ());})
40+ .def_submodule (" terminal" )
41+ .def (" get_gtk_text_view" ,[](){return pyobject_from_gobj (Terminal::get ().gobj ());})
42+ .def (" println" , [](const std::string &message){ Terminal::get ().print (message +" \n " ); });
43+ api.def_submodule (" directories" )
44+ .def (" get_gtk_treeview" ,[](){return pyobject_from_gobj (Directories::get ().gobj ());})
45+ .def (" open" ,[](const std::string &directory){Directories::get ().open (directory);})
46+ .def (" update" ,[](){Directories::get ().update ();});
2447 return api.ptr ();
2548 };
2649 PyImport_AppendInittab (" jucipp" , init_juci_api);
0 commit comments