From 877325ea6ed7d31176c353f60e2dd04cd1b60eb0 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 18 Mar 2016 21:33:45 +0100 Subject: special case LuaProc Inline Display UI: direct cairo context --- gtk2_ardour/processor_box.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'gtk2_ardour/processor_box.h') diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h index 65e3612c56..2df431139c 100644 --- a/gtk2_ardour/processor_box.h +++ b/gtk2_ardour/processor_box.h @@ -44,6 +44,7 @@ #include "ardour/types.h" #include "ardour/ardour.h" #include "ardour/plugin_insert.h" +#include "ardour/luaproc.h" #include "ardour/port_insert.h" #include "ardour/processor.h" #include "ardour/route.h" @@ -224,9 +225,13 @@ private: public: PluginDisplay(boost::shared_ptr, uint32_t max_height = 80); ~PluginDisplay(); - private: + protected: bool on_expose_event (GdkEventExpose *); void on_size_request (Gtk::Requisition* req); + + void update_height_alloc (uint32_t inline_height); + virtual uint32_t render_inline (cairo_t *, uint32_t width); + boost::shared_ptr _plug; PBD::ScopedConnection _qdraw_connection; cairo_surface_t* _surf; @@ -235,6 +240,18 @@ private: bool _scroll; }; + class LuaPluginDisplay : public PluginDisplay { + public: + LuaPluginDisplay(boost::shared_ptr, uint32_t max_height = 80); + ~LuaPluginDisplay(); + protected: + virtual uint32_t render_inline (cairo_t *, uint32_t width); + private: + boost::shared_ptr _luaproc; + LuaState lua_gui; + luabridge::LuaRef * _lua_render_inline; + }; + class PortIcon : public Gtk::DrawingArea { public: PortIcon(bool input); -- cgit v1.2.3