summaryrefslogtreecommitdiff
path: root/gtk2_ardour/simple_progress_dialog.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-03-11 17:26:27 +0100
committerRobin Gareus <robin@gareus.org>2016-03-11 17:26:42 +0100
commitc9d6d9ed85b2a2cc56e45d170dceb5a42c2d6a01 (patch)
treedef614d79ee5f1897b24f357915d8698d5a481d2 /gtk2_ardour/simple_progress_dialog.h
parent361309d83f3ef3f755af372e0ef3fe3ab0a254df (diff)
add region & range loudnless report
Diffstat (limited to 'gtk2_ardour/simple_progress_dialog.h')
-rw-r--r--gtk2_ardour/simple_progress_dialog.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/gtk2_ardour/simple_progress_dialog.h b/gtk2_ardour/simple_progress_dialog.h
new file mode 100644
index 0000000000..1e76f6bf9a
--- /dev/null
+++ b/gtk2_ardour/simple_progress_dialog.h
@@ -0,0 +1,39 @@
+#ifndef _ardour_gtk_simpple_progress_dialog_h_
+#define _ardour_gtk_simpple_progress_dialog_h_
+
+#include <gtkmm/messagedialog.h>
+#include <gtkmm/button.h>
+#include <gtkmm/progressbar.h>
+
+#include "ardour/types.h"
+
+class SimpleProgressDialog : public Gtk::MessageDialog
+{
+public:
+ SimpleProgressDialog (std::string title, const Glib::SignalProxy0< void >::SlotType & cancel)
+ : MessageDialog (title, false, MESSAGE_OTHER, BUTTONS_NONE, true)
+ {
+ get_vbox()->set_size_request(400,-1);
+ set_title (title);
+ pbar = manage (new Gtk::ProgressBar());
+ pbar->show();
+ get_vbox()->pack_start (*pbar, PACK_SHRINK, 4);
+
+ Gtk::Button *cancel_button = add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
+ cancel_button->signal_clicked().connect (cancel);
+ cancel_button->show();
+ get_vbox()->pack_start (*cancel_button, PACK_SHRINK);
+ }
+
+ void update_progress (framecnt_t c, framecnt_t t) {
+ pbar->set_fraction ((float) c / (float) t);
+ // see also ARDOUR_UI::gui_idle_handler();
+ int timeout = 30;
+ while (gtk_events_pending() && --timeout) {
+ gtk_main_iteration ();
+ }
+ }
+private:
+ Gtk::ProgressBar *pbar;
+};
+#endif