// Main constructor
ModalProgressDialog::ModalProgressDialog(const Glib::RefPtr<Gtk::Window>& parent, const std::string& title)
: gtkutil::TransientWindow(title, GlobalMainFrame().getTopLevelWindow()),
  _label(Gtk::manage(new Gtk::Label)),
  _progressBar(Gtk::manage(new Gtk::ProgressBar)),
  _aborted(false)
{
  	// Window properties
	set_modal(true);
	set_position(Gtk::WIN_POS_CENTER_ON_PARENT);
	set_default_size(360, 80);
	set_border_width(12);

	// Create a vbox
	Gtk::VBox* vbx = Gtk::manage(new Gtk::VBox(false, 12));

	// Pack a progress bar into the window
	vbx->pack_start(*_progressBar, false, false, 0);

	// Pack the label into the window
	vbx->pack_start(*_label, true, false, 0);
	add(*vbx);

	// Pack a right-aligned cancel button at the bottom
	Gtk::Button* cancelButton = Gtk::manage(new Gtk::Button(Gtk::Stock::CANCEL));
	cancelButton->signal_clicked().connect(sigc::mem_fun(*this, &ModalProgressDialog::_onCancel));

	vbx->pack_end(*Gtk::manage(new gtkutil::RightAlignment(*cancelButton)), false, false, 0);

	// Connect the realize signal to remove the window decorations
	signal_realize().connect(sigc::mem_fun(*this, &ModalProgressDialog::_onRealize));

	// Show the window
	show_all();
	handleEvents();
}
Esempio n. 2
0
MainSynthWindow::MainSynthWindow (gthAudio *audio)
{
    gthPrefs *prefs = gthPrefs::instance();
    string **vals;

    audio_ = audio;

    set_title("thinksynth");
    set_default_size(520, 360);

    midiMap_ = NULL;
    patchSel_ = NULL;
    aboutBox_ = NULL;
    kbWin_ = NULL;

    vals = prefs->Get("dspdir");

    if (vals != NULL)
        prevDir_ = *(vals[0]);
    else
        prevDir_ = DSP_PATH;

    populateMenu();

#ifdef HAVE_JACK
    signal_realize().connect(
        sigc::mem_fun(*this, &MainSynthWindow::jackCheck));
#endif
    
    add(vbox_);

    dspEntryLbl_.set_label("DSP File: ");
    dspBrowseBtn_.set_label("Browse");
    dspEntryBox_.pack_start(dspEntryLbl_, Gtk::PACK_SHRINK);
    dspEntryBox_.pack_start(dspEntry_, Gtk::PACK_EXPAND_WIDGET);
    dspEntryBox_.pack_start(dspBrowseBtn_, Gtk::PACK_SHRINK);

    dspEntry_.signal_activate().connect(
        sigc::mem_fun(*this, &MainSynthWindow::onDspEntryActivate));

    dspBrowseBtn_.signal_clicked().connect(
        sigc::mem_fun(*this, &MainSynthWindow::onBrowseButton));

    vbox_.pack_start(menuBar_, Gtk::PACK_SHRINK);
    vbox_.pack_start(dspEntryBox_, Gtk::PACK_SHRINK);
    vbox_.pack_start(notebook_, Gtk::PACK_EXPAND_WIDGET);

    notebook_.set_scrollable();

    notebook_.signal_switch_page().connect(
        sigc::mem_fun(*this, &MainSynthWindow::onSwitchPage));

    populate();

    show_all_children();

    gthPatchManager *patchMgr = gthPatchManager::instance();
    patchMgr->signal_patches_changed().connect(
        sigc::mem_fun(*this, &MainSynthWindow::onPatchesChanged));
    patchMgr->signal_patch_load_error().connect(
        sigc::mem_fun(*this, &MainSynthWindow::onPatchLoadError));

    debug("signal connections made");

}