From 112a1ab1c42ffce4822dbb1bbe4c26c95dbce63d Mon Sep 17 00:00:00 2001 From: Nikolaus Gullotta Date: Tue, 3 Apr 2018 15:38:54 -0500 Subject: add Gtk::ColorButton widget to LuaDialog and add ability to change multiple route colors at a time --- gtk2_ardour/luadialog.cc | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gtk2_ardour/luadialog.cc') diff --git a/gtk2_ardour/luadialog.cc b/gtk2_ardour/luadialog.cc index 90464d26af..943b077b77 100644 --- a/gtk2_ardour/luadialog.cc +++ b/gtk2_ardour/luadialog.cc @@ -22,6 +22,7 @@ #include "ardour/dB.h" #include "ardour/rc_configuration.h" +#include "gtk2_ardour/stripable_colorpicker.h" #include "gtkmm2ext/utils.h" @@ -169,6 +170,34 @@ protected: Gtk::HSeparator _sep; }; +class LuaColorPicker : public LuaDialogWidget +{ +public: + LuaColorPicker (std::string const& key) + : LuaDialogWidget (key, "", 0, 1) + {} + + Gtk::Widget* widget () + { + return &_cs; + } + void assign (luabridge::LuaRef* rv) const { + uint32_t rgba = ARDOUR_UI_UTILS::gdk_color_to_rgba(_cs.get_color()); + (*rv)[_key] = rgba; + } +protected: + Gtk::ColorButton _cs; +}; +/* +local a = { + {type = "color", key = "col", title = ""} +} + +local rv = LuaDialog.Dialog("", a):run() + +print(rv['col']) +*/ + class LuaDialogCheckbox : public LuaDialogWidget { public: @@ -675,6 +704,8 @@ Dialog::Dialog (std::string const& title, luabridge::LuaRef lr) path = i.value ()["path"].cast (); } w = new LuaFileChooser (key, title, Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER, path); + } else if (type == "color") { + w = new LuaColorPicker (key); } if (w) { -- cgit v1.2.3