27 #include <glibmm/i18n.h> 39 SelectJackControlPgm::SelectJackControlPgm(BaseObjectType* cobject, Glib::RefPtr<GxBuilder> bld,
gx_engine::GxMachineBase& m)
40 : Gtk::Window(cobject),
47 signal_delete_event().connect(sigc::mem_fun(*
this, &SelectJackControlPgm::on_delete_event));
48 bld->find_widget(
"description", description);
49 bld->find_widget(
"customstarter", customstarter);
50 customstarter->set_text(machine.get_parameter_value<
string>(
"ui.jack_starter"));
51 bld->find_widget(
"startercombo", startercombo);
52 const char *v_id = machine.get_parameter(
"ui.jack_starter_idx").getValueNames()[machine.get_parameter_value<
int>(
"ui.jack_starter_idx")].value_id;
54 Glib::RefPtr<Gtk::TreeModel> model = startercombo->get_model();
55 for (Gtk::TreeIter i = model->children().begin(); i; ++i, ++n) {
59 startercombo->set_active(n);
62 startercombo->signal_changed().connect(sigc::mem_fun(*
this, &SelectJackControlPgm::on_starter_changed));
63 bld->find_widget(
"dontask", dontask);
64 dontask->set_active(!machine.get_parameter_value<
bool>(
"ui.ask_for_jack_starter"));
66 bld->find_widget(
"ok_button", button);
67 button->signal_clicked().connect(
68 sigc::mem_fun(*
this, &SelectJackControlPgm::on_ok_button));
69 bld->find_widget(
"cancel_button", button);
70 button->signal_clicked().connect(
71 sigc::mem_fun(*
this, &SelectJackControlPgm::on_cancel_button));
80 Glib::RefPtr<GxBuilder> bld = GxBuilder::create_from_file(opt.
get_builder_filepath(
"jackstarter.glade"), &m);
82 bld->get_toplevel_derived(
"selectjackstarter", w,
83 sigc::bind(sigc::ptr_fun(SelectJackControlPgm::create_from_builder), bld, sigc::ref(m)));
87 bool SelectJackControlPgm::on_key_press_event(GdkEventKey *event) {
88 if (event->keyval ==
GDK_KEY_Escape && (event->state & Gtk::AccelGroup::get_default_mod_mask()) == 0) {
92 return Gtk::Window::on_key_press_event(event);
95 bool SelectJackControlPgm::on_delete_event(GdkEventAny* event) {
100 void SelectJackControlPgm::on_starter_changed() {
101 Gtk::TreeModel::iterator i = startercombo->get_active();
107 description->set_markup(s);
110 customstarter->show();
112 customstarter->hide();
116 void SelectJackControlPgm::on_ok_button() {
119 startercombo->get_active()->get_value(1, s);
130 void SelectJackControlPgm::on_cancel_button() {
141 const guint nchoices = 3;
143 const char* labels[] = {
144 _(
"Start Jack"), _(
"Ignore Jack"), _(
"Exit")
147 const gint responses[] = {
148 GTK_RESPONSE_YES, GTK_RESPONSE_NO, GTK_RESPONSE_CANCEL
155 " The jack server is not currently running\n" 156 " You can choose to activate it or terminate gx_head \n\n" 157 " 1) activate jack \n" 158 " 2) ignore jack, start gx_head anyway \n" 159 " 3) exit gx_head \n" 161 " use options menu \"jack startup control\" to\n" 162 " set a jack start program\n"),
170 bool retstat =
false;
173 case GTK_RESPONSE_NO:
177 case GTK_RESPONSE_CANCEL:
181 case GTK_RESPONSE_YES:
virtual Parameter & get_parameter(const std::string &id)=0
gint gx_nchoice_dialog_without_entry(const char *window_title, const char *msg, const guint nchoice, const char *label[], const gint resp[], const gint default_response, Glib::RefPtr< Gdk::Pixbuf > gw_ib)
void gx_print_error(const char *, const std::string &)
static GxExit & get_instance()
virtual void set_parameter_value(const std::string &id, int value)=0
bool gx_start_jack_dialog(Glib::RefPtr< Gdk::Pixbuf > gw_ib)
void exit_program(std::string msg="", int errcode=1)
std::string get_builder_filepath(const std::string &basename) const
virtual int idx_from_id(string v_id)
static SelectJackControlPgm * create(gx_system::CmdlineOptions &opt, gx_engine::GxMachineBase &machine)