summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-09-02 15:42:34 +0200
committerRobin Gareus <robin@gareus.org>2019-09-02 15:44:43 +0200
commit2d680f30610623d32c7db1b16be6068d7f71a87a (patch)
tree6647a8adafa52cf1d20b004a5ac3b8e64c64bbe7 /gtk2_ardour
parent487503cab89eea17b74199c35eac6364e05d2c2c (diff)
Move LuaProgressDialog into "LuaDialog" namespace
Define class in header file Match C++ and Lua binding namespaces (for documentation)
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/luadialog.cc51
-rw-r--r--gtk2_ardour/luadialog.h44
-rw-r--r--gtk2_ardour/luainstance.cc91
3 files changed, 97 insertions, 89 deletions
diff --git a/gtk2_ardour/luadialog.cc b/gtk2_ardour/luadialog.cc
index 9ce1e4b03c..79ba81f700 100644
--- a/gtk2_ardour/luadialog.cc
+++ b/gtk2_ardour/luadialog.cc
@@ -37,7 +37,7 @@
using namespace LuaDialog;
-/*******************************************************************************
+/* *****************************************************************************
* Simple Message Dialog
*/
Message::Message (std::string const& title, std::string const& msg, Message::MessageType mt, Message::ButtonType bt)
@@ -589,9 +589,10 @@ protected:
Gtk::FileChooserWidget _fc;
};
-/*******************************************************************************
+/* *****************************************************************************
* Lua Parameter Dialog
*/
+
Dialog::Dialog (std::string const& title, luabridge::LuaRef lr)
:_ad (title, true, false)
, _title (title)
@@ -840,3 +841,49 @@ Dialog::table_size_alloc (Gtk::Allocation& allocation)
_ad.set_size_request (-1, 512);
}
}
+
+/* *****************************************************************************
+ * Lua Progress Dialog
+ */
+
+ProgressWindow::ProgressWindow (std::string const& title, bool allow_cancel)
+ : ArdourDialog (title, true)
+ , _canceled (false)
+{
+ _bar.set_orientation (Gtk::PROGRESS_LEFT_TO_RIGHT);
+
+ set_border_width (12);
+ get_vbox()->set_spacing (6);
+ get_vbox()->pack_start (_bar, false, false);
+
+ if (allow_cancel) {
+ using namespace Gtk;
+ Button* b = add_button (Stock::CANCEL, RESPONSE_CANCEL);
+ b->signal_clicked().connect (sigc::mem_fun (*this, &ProgressWindow::cancel_clicked));
+ }
+
+ set_default_size (200, -1);
+ show_all ();
+}
+
+bool
+ProgressWindow::progress (float prog, std::string const& text)
+{
+ if (!text.empty ()) {
+ _bar.set_text (text);
+ }
+ if (prog < 0 || prog > 1) {
+ std::cerr << "pulse\n";
+ _bar.set_pulse_step(.1);
+ _bar.pulse();
+ } else {
+ _bar.set_fraction (prog);
+ }
+ ARDOUR::GUIIdle ();
+ return _canceled;
+}
+
+void
+ProgressWindow::done () {
+ Gtk::Dialog::response(_canceled ? Gtk::RESPONSE_CANCEL : Gtk::RESPONSE_OK);
+}
diff --git a/gtk2_ardour/luadialog.h b/gtk2_ardour/luadialog.h
index 68d332d0a5..a2acff6574 100644
--- a/gtk2_ardour/luadialog.h
+++ b/gtk2_ardour/luadialog.h
@@ -22,6 +22,7 @@
#include <cassert>
#include <gtkmm/table.h>
#include <gtkmm/messagedialog.h>
+#include <gtkmm/progressbar.h>
#include "LuaBridge/LuaBridge.h"
@@ -98,6 +99,49 @@ private:
std::string _title;
};
+/** Synchronous GUI-thread Progress dialog
+ *
+ * This shows a modal progress dialog with an optional
+ * "Cancel" button. Since it runs in the UI thread
+ * the script needs to regularly call progress(),
+ * as well as close the dialog, as needed.
+ */
+class ProgressWindow : public ArdourDialog
+{
+public:
+ /** Create a new progress window.
+ * @param title Window title
+ * @param allow_cancel include a "Cancel" option
+ */
+ ProgressWindow (std::string const& title, bool allow_cancel);
+
+ /** Report progress and update GUI.
+ * @param prog progress in range 0..1 show a bar, values outside this range show a pulsing dialog.
+ * @param text optional text to show on the progress-bar
+ * @return true if cancel was clicked, false otherwise
+ */
+ bool progress (float prog, std::string const& text = "");
+
+ bool canceled () const {
+ return _canceled;
+ }
+
+ /** Close and hide the dialog.
+ *
+ * This is required to be at the end, since the dialog
+ * is modal and prevents other UI operations while visible.
+ */
+ void done ();
+
+private:
+ void cancel_clicked () {
+ _canceled = true;
+ }
+
+ Gtk::ProgressBar _bar;
+ bool _canceled;
+};
+
}; // namespace
#endif
diff --git a/gtk2_ardour/luainstance.cc b/gtk2_ardour/luainstance.cc
index 248891d0ac..49b794823d 100644
--- a/gtk2_ardour/luainstance.cc
+++ b/gtk2_ardour/luainstance.cc
@@ -23,9 +23,6 @@
#include <cairomm/surface.h>
#include <pango/pangocairo.h>
-#include <gtkmm/progressbar.h>
-#include <gtkmm/stock.h>
-
#include "pbd/file_utils.h"
#include "pbd/strsplit.h"
@@ -43,7 +40,6 @@
#include "LuaBridge/LuaBridge.h"
-#include "ardour_dialog.h"
#include "ardour_http.h"
#include "ardour_ui.h"
#include "public_editor.h"
@@ -463,85 +459,6 @@ lua_exec (std::string cmd)
////////////////////////////////////////////////////////////////////////////////
-/** Synchronous GUI-thread Progress dialog
- *
- * This shows a modal progress dialog with an optional
- * "Cancel" button. Since it runs in the UI thread
- * the script needs to regularly call progress(),
- * as well as close the dialog, as needed.
- */
-class LuaProgressWindow : public ArdourDialog
-{
-public:
- /** Create a new progress window.
- * @param title Window title
- * @param allow_cancel include a "Cancel" option
- */
- LuaProgressWindow (std::string const& title, bool allow_cancel)
- : ArdourDialog (title, true)
- , _canceled (false)
- {
- _bar.set_orientation (Gtk::PROGRESS_LEFT_TO_RIGHT);
-
- set_border_width (12);
- get_vbox()->set_spacing (6);
- get_vbox()->pack_start (_bar, false, false);
-
- if (allow_cancel) {
- using namespace Gtk;
- Button* b = add_button (Stock::CANCEL, RESPONSE_CANCEL);
- b->signal_clicked().connect (sigc::mem_fun (*this, &LuaProgressWindow::cancel_clicked));
- }
-
- set_default_size (200, -1);
- show_all ();
- }
-
- /** Report progress and update GUI.
- * @param prog progress in range 0..1 show a bar, values outside this range show a pulsing dialog.
- * @param text optional text to show on the progress-bar
- * @return true if cancel was clicked, false otherwise
- */
- bool progress (float prog, std::string const& text = "")
- {
- if (!text.empty ()) {
- _bar.set_text (text);
- }
- if (prog < 0 || prog > 1) {
- std::cerr << "pulse\n";
- _bar.set_pulse_step(.1);
- _bar.pulse();
- } else {
- _bar.set_fraction (prog);
- }
- ARDOUR::GUIIdle ();
- return _canceled;
- }
-
- bool canceled () const {
- return _canceled;
- }
-
- /** Close and hide the dialog.
- *
- * This is required to be at the end, since the dialog
- * is modal and prevents other UI operations while visible.
- */
- void done () {
- Gtk::Dialog::response(_canceled ? Gtk::RESPONSE_CANCEL : Gtk::RESPONSE_OK);
- }
-
-private:
- void cancel_clicked () {
- _canceled = true;
- }
-
- Gtk::ProgressBar _bar;
- bool _canceled;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-
static int
lua_actionlist (lua_State *L)
{
@@ -841,11 +758,11 @@ LuaInstance::bind_dialog (lua_State* L)
.addConst ("None", -1)
.endNamespace ()
- .beginClass <LuaProgressWindow> ("LuaProgressWindow")
+ .beginClass <LuaDialog::ProgressWindow> ("ProgressWindow")
.addConstructor <void (*) (std::string const&, bool)> ()
- .addFunction ("progress", &LuaProgressWindow::progress)
- .addFunction ("done", &LuaProgressWindow::done)
- .addFunction ("canceled", &LuaProgressWindow::canceled)
+ .addFunction ("progress", &LuaDialog::ProgressWindow::progress)
+ .addFunction ("done", &LuaDialog::ProgressWindow::done)
+ .addFunction ("canceled", &LuaDialog::ProgressWindow::canceled)
.endClass ()
.endNamespace ();