- set_size_request (400, 200);
-
- side_vbox.set_homogeneous (false);
- side_vbox.set_border_width (9);
- side_vbox.set_spacing (6);
- side_vbox.pack_start (azimuth_spinner, false, false);
- side_vbox.pack_start (add_speaker_button, false, false);
- side_vbox.pack_start (use_system_button, false, false);
-
- hbox.set_spacing (6);
- hbox.set_border_width (6);
- hbox.pack_start (darea, true, true);
- hbox.pack_start (side_vbox, false, false);
-
- get_vbox()->pack_start (hbox);
- get_vbox()->show_all ();
-
- darea.signal_size_allocate().connect (sigc::mem_fun (*this, &SpeakerDialog::darea_size_allocate));
- darea.signal_expose_event().connect (sigc::mem_fun (*this, &SpeakerDialog::darea_expose_event));
- darea.signal_button_press_event().connect (sigc::mem_fun (*this, &SpeakerDialog::darea_button_press_event));
- darea.signal_button_release_event().connect (sigc::mem_fun (*this, &SpeakerDialog::darea_button_release_event));
- darea.signal_motion_notify_event().connect (sigc::mem_fun (*this, &SpeakerDialog::darea_motion_notify_event));
-
- drag_index = -1;
+ side_vbox.set_homogeneous (false);
+ side_vbox.set_border_width (6);
+ side_vbox.set_spacing (6);
+ side_vbox.pack_start (add_speaker_button, false, false);
+
+ aspect_frame.set_size_request (300, 200);
+ aspect_frame.set_shadow_type (SHADOW_NONE);
+ aspect_frame.add (darea);
+
+ hbox.set_spacing (6);
+ hbox.set_border_width (6);
+ hbox.pack_start (aspect_frame, true, true);
+ hbox.pack_start (side_vbox, false, false);
+
+ HBox* current_speaker_hbox = manage (new HBox);
+ current_speaker_hbox->set_spacing (4);
+ current_speaker_hbox->pack_start (*manage (new Label (_("Azimuth:"))), false, false);
+ current_speaker_hbox->pack_start (azimuth_spinner, true, true);
+ current_speaker_hbox->pack_start (remove_speaker_button, true, true);
+
+ VBox* vbox = manage (new VBox);
+ vbox->pack_start (hbox);
+ vbox->pack_start (*current_speaker_hbox, true, true);
+ vbox->show_all ();
+ add (*vbox);
+
+ darea.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::POINTER_MOTION_MASK);
+
+ darea.signal_size_allocate().connect (sigc::mem_fun (*this, &SpeakerDialog::darea_size_allocate));
+ darea.signal_expose_event().connect (sigc::mem_fun (*this, &SpeakerDialog::darea_expose_event));
+ darea.signal_button_press_event().connect (sigc::mem_fun (*this, &SpeakerDialog::darea_button_press_event));
+ darea.signal_button_release_event().connect (sigc::mem_fun (*this, &SpeakerDialog::darea_button_release_event));
+ darea.signal_motion_notify_event().connect (sigc::mem_fun (*this, &SpeakerDialog::darea_motion_notify_event));
+
+ add_speaker_button.signal_clicked().connect (sigc::mem_fun (*this, &SpeakerDialog::add_speaker));
+ remove_speaker_button.signal_clicked().connect (sigc::mem_fun (*this, &SpeakerDialog::remove_speaker));
+ azimuth_adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &SpeakerDialog::azimuth_changed));
+
+ drag_index = -1;
+
+ /* selected index initialised to 0 above; this will set `no selection' and
+ sensitize widgets accordingly.
+ */
+ set_selected (-1);