summaryrefslogtreecommitdiff
path: root/gtk2_ardour/luainstance.cc
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/luainstance.cc
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/luainstance.cc')
-rw-r--r--gtk2_ardour/luainstance.cc91
1 files changed, 4 insertions, 87 deletions
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 ();