X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fluainstance.h;h=8ffc1d887eb8ce20d1205d6253ef62d727da4540;hb=c1eee02e1b4b39e98e1d78edb950dc60c47332ee;hp=42917320974a5608efbd226bb5433e1b3a2f3e31;hpb=bcee4e151867dab8c54b38efe101f90e34b1b70e;p=ardour.git diff --git a/gtk2_ardour/luainstance.h b/gtk2_ardour/luainstance.h index 4291732097..8ffc1d887e 100644 --- a/gtk2_ardour/luainstance.h +++ b/gtk2_ardour/luainstance.h @@ -3,6 +3,8 @@ #include +#include + #include "pbd/id.h" #include "pbd/signals.h" #include "pbd/xml++.h" @@ -79,11 +81,15 @@ class LuaInstance : public PBD::ScopedConnectionList, public ARDOUR::SessionHand { public: static LuaInstance* instance(); + static void destroy_instance(); ~LuaInstance(); static void register_classes (lua_State* L); static void register_hooks (lua_State* L); static void bind_cairo (lua_State* L); + static void bind_dialog (lua_State* L); + + static void render_action_icon (cairo_t* cr, int w, int h, uint32_t c, void* i); void set_session (ARDOUR::Session* s); @@ -95,12 +101,14 @@ public: /* actions */ void call_action (const int); + void render_icon (int i, cairo_t*, int, int, uint32_t); bool set_lua_action (const int, const std::string&, const std::string&, const ARDOUR::LuaScriptParamList&); bool remove_lua_action (const int); bool lua_action_name (const int, std::string&); std::vector lua_action_names (); bool lua_action (const int, std::string&, std::string&, ARDOUR::LuaScriptParamList&); + bool lua_action_has_icon (const int); sigc::signal ActionChanged; /* callbacks */ @@ -124,6 +132,7 @@ private: LuaState lua; luabridge::LuaRef * _lua_call_action; + luabridge::LuaRef * _lua_render_icon; luabridge::LuaRef * _lua_add_action; luabridge::LuaRef * _lua_del_action; luabridge::LuaRef * _lua_get_action;