pack_start (pan_vbox, true, true);
panner = 0;
+ big_window = 0;
set_width(Narrow);
}
{
connections.clear ();
- if (pan_astyle_menu) {
- delete pan_astyle_menu;
- pan_astyle_menu = 0;
- }
-
- if (pan_astate_menu) {
- delete pan_astate_menu;
- pan_astate_menu = 0;
- }
+ delete pan_astyle_menu;
+ pan_astyle_menu = 0;
+
+ delete pan_astate_menu;
+ pan_astate_menu = 0;
_io = io;
connections.push_back (_io->panner().LinkStateChanged.connect (mem_fun(*this, &PannerUI::update_pan_linkage)));
connections.push_back (_io->panner().StateChanged.connect (mem_fun(*this, &PannerUI::update_pan_state)));
- if (panner) {
- delete panner;
- panner = 0;
- }
+ delete panner;
+ panner = 0;
setup_pan ();
delete (*i);
}
- if (panner) {
- delete panner;
- }
-
- if (pan_menu) {
- delete pan_menu;
- }
-
- if (pan_astyle_menu) {
- delete pan_astyle_menu;
- }
-
- if (pan_astate_menu) {
- delete pan_astate_menu;
- }
+ delete panner;
+ delete big_window;
+ delete pan_menu;
+ delete pan_astyle_menu;
+ delete pan_astate_menu;
}
panner = new Panner2d (_io->panner(), 61);
panner->set_name ("MixerPanZone");
panner->show ();
+
+
+ panner->signal_button_press_event().connect
+ (bind (mem_fun(*this, &PannerUI::pan_button_event), (uint32_t) 0), false);
}
update_pan_sensitive ();
panner->reset (_io->n_inputs().n_audio());
+ if (big_window) {
+ big_window->reset (_io->n_inputs().n_audio());
+ }
panner->set_size_request (-1, 61);
/* and finally, add it to the panner frame */
PannerUI::pan_button_event (GdkEventButton* ev, uint32_t which)
{
switch (ev->button) {
+ case 1:
+ if (panner && ev->type == GDK_2BUTTON_PRESS) {
+ if (!big_window) {
+ big_window = new Panner2dWindow (panner->get_panner(), 400, _io->n_inputs().n_audio());
+ }
+ big_window->show ();
+ return true;
+ }
+ break;
+
case 3:
if (pan_menu == 0) {
pan_menu = manage (new Menu);
}
void
-PannerUI::update_pan_sensitive ()
+PannerUI::update_pan_sensitive ()
{
bool sensitive = !(_io->panner().automation_state() & Play);
if (panner) {
panner->set_sensitive (sensitive);
}
+ if (big_window) {
+ big_window->set_sensitive (sensitive);
+ }
break;
}
}