diff options
author | Robin Gareus <robin@gareus.org> | 2016-03-11 17:26:27 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-03-11 17:26:42 +0100 |
commit | c9d6d9ed85b2a2cc56e45d170dceb5a42c2d6a01 (patch) | |
tree | def614d79ee5f1897b24f357915d8698d5a481d2 /gtk2_ardour/simple_progress_dialog.h | |
parent | 361309d83f3ef3f755af372e0ef3fe3ab0a254df (diff) |
add region & range loudnless report
Diffstat (limited to 'gtk2_ardour/simple_progress_dialog.h')
-rw-r--r-- | gtk2_ardour/simple_progress_dialog.h | 39 |
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 |