add_menu(trackmenu = new BC_Menu(_("Tracks")));
trackmenu->add_item(new MoveTracksUp(mwindow));
trackmenu->add_item(new MoveTracksDown(mwindow));
+ trackmenu->add_item(new RollTracksUp(mwindow));
+ trackmenu->add_item(new RollTracksDown(mwindow));
trackmenu->add_item(new DeleteTracks(mwindow));
trackmenu->add_item(new DeleteFirstTrack(mwindow));
trackmenu->add_item(new DeleteLastTrack(mwindow));
trackmenu->add_item(new ConcatenateTracks(mwindow));
trackmenu->add_item(new AlignTimecodes(mwindow));
- trackmenu->add_item(new SwapTracksUp(mwindow));
- trackmenu->add_item(new SwapTracksDown(mwindow));
AppendTracks *append_tracks;
trackmenu->add_item(append_tracks = new AppendTracks(mwindow));
append_tracks->create_objects();
settingsmenu->add_item(new SetFormat(mwindow));
settingsmenu->add_item(preferences = new PreferencesMenuitem(mwindow));
- ProxyMenuItem *proxy;
settingsmenu->add_item(proxy = new ProxyMenuItem(mwindow));
proxy->create_objects();
ConvertMenuItem *convert;
MoveTracksDown::MoveTracksDown(MWindow *mwindow)
: BC_MenuItem(_("Move tracks down"), _("Shift-Down"), DOWN)
{
- set_shift(); this->mwindow = mwindow;
+ this->mwindow = mwindow;
+ set_shift();
}
int MoveTracksDown::handle_event()
}
-SwapTracksUp::SwapTracksUp(MWindow *mwindow)
- : BC_MenuItem(_("Swap tracks up"), 0, UP)
+RollTracksUp::RollTracksUp(MWindow *mwindow)
+ : BC_MenuItem(_("Roll tracks up"), _("Ctrl-Shift-Up"), UP)
{
this->mwindow = mwindow;
+ set_ctrl();
set_shift();
}
-int SwapTracksUp::handle_event()
+int RollTracksUp::handle_event()
{
if( mwindow->session->current_operation == NO_OPERATION )
- mwindow->swap_tracks_up();
+ mwindow->roll_tracks_up();
return 1;
}
-SwapTracksDown::SwapTracksDown(MWindow *mwindow)
- : BC_MenuItem(_("Swap tracks down"), 0, DOWN)
+RollTracksDown::RollTracksDown(MWindow *mwindow)
+ : BC_MenuItem(_("Roll tracks down"), _("Ctrl-Shift-Down"), DOWN)
{
- set_shift(); this->mwindow = mwindow;
+ this->mwindow = mwindow;
+ set_ctrl();
+ set_shift();
}
-int SwapTracksDown::handle_event()
+int RollTracksDown::handle_event()
{
if( mwindow->session->current_operation == NO_OPERATION )
- mwindow->swap_tracks_down();
+ mwindow->roll_tracks_down();
return 1;
}
}
int ShowVWindow::handle_event()
{
- mwindow->gui->unlock_window();
- mwindow->show_vwindow();
- mwindow->gui->lock_window("ShowVWindow::handle_event");
+ if( mwindow->session->current_operation == NO_OPERATION ) {
+ mwindow->gui->unlock_window();
+ if( !mwindow->session->show_vwindow )
+ mwindow->show_vwindow(1);
+ else
+ mwindow->hide_vwindow(1);
+ mwindow->gui->lock_window("ShowVWindow::handle_event");
+ set_checked(mwindow->session->show_vwindow);
+ }
return 1;
}
}
int ShowAWindow::handle_event()
{
- mwindow->gui->unlock_window();
- mwindow->show_awindow();
- mwindow->gui->lock_window("ShowAWindow::handle_event");
+ if( mwindow->session->current_operation == NO_OPERATION ) {
+ mwindow->gui->unlock_window();
+ if( !mwindow->session->show_awindow )
+ mwindow->show_awindow();
+ else
+ mwindow->hide_awindow();
+ mwindow->gui->lock_window("ShowAWindow::handle_event");
+ set_checked(mwindow->session->show_awindow);
+
+ }
return 1;
}
}
int ShowCWindow::handle_event()
{
- mwindow->gui->unlock_window();
- mwindow->show_cwindow();
- mwindow->gui->lock_window("ShowCWindow::handle_event");
+ if( mwindow->session->current_operation == NO_OPERATION ) {
+ mwindow->gui->unlock_window();
+ if( !mwindow->session->show_cwindow )
+ mwindow->show_cwindow();
+ else
+ mwindow->hide_cwindow();
+ mwindow->gui->lock_window("ShowCWindow::handle_event");
+ set_checked(mwindow->session->show_cwindow);
+ }
return 1;
}
}
int ShowLWindow::handle_event()
{
- mwindow->gui->unlock_window();
- mwindow->show_lwindow();
- mwindow->gui->lock_window("ShowLWindow::handle_event");
+ if( mwindow->session->current_operation == NO_OPERATION ) {
+
+ mwindow->gui->unlock_window();
+ if( !mwindow->session->show_lwindow )
+ mwindow->show_lwindow();
+ else
+ mwindow->hide_lwindow();
+ mwindow->gui->lock_window("ShowLWindow::handle_event");
+ set_checked(mwindow->session->show_lwindow);
+ }
return 1;
}
BC_SubMenu *mixer_submenu = new BC_SubMenu();
add_submenu(mixer_submenu);
mixer_submenu->add_submenuitem(new MixerViewer(this));
- mixer_submenu->add_submenuitem(new TileMixers(this));
+ mixer_submenu->add_submenuitem(new DragTileMixers(this));
mixer_submenu->add_submenuitem(new AlignMixers(this));
mixer_submenu->add_submenuitem(new MixMasters(this));
}
return 1;
}
-TileMixers::TileMixers(MixerItems *mixer_items)
- : MixerItem(mixer_items, _("Tile mixers"), "Alt-t", 't')
+DragTileMixers::DragTileMixers(MixerItems *mixer_items)
+ : MixerItem(mixer_items, _("Drag Tile mixers"), "Alt-t", 't')
{
set_alt();
+ drag_box = 0;
}
-int TileMixers::handle_event()
+DragTileMixers::~DragTileMixers()
{
- MWindow *mwindow = mixer_items->mwindow;
- mwindow->tile_mixers();
+ delete drag_box;
+}
+
+int DragTileMixers::handle_event()
+{
+ if( !drag_box ) {
+ MWindow *mwindow = mixer_items->mwindow;
+ drag_box = new TileMixersDragBox(mwindow->gui);
+ }
+ if( !drag_box->running() )
+ drag_box->start(this);
+ return 1;
+}
+
+TileMixersDragBox::TileMixersDragBox(MWindowGUI *gui)
+ : BC_DragBox(gui)
+{
+ tile_mixers = 0;
+}
+
+void TileMixersDragBox::start(DragTileMixers *tile_mixers)
+{
+ this->tile_mixers = tile_mixers;
+ start_drag();
+}
+
+int TileMixersDragBox::handle_done_event(int x0, int y0, int x1, int y1)
+{
+ MWindow *mwindow = tile_mixers->mixer_items->mwindow;
+ if( x0 >= x1 || y0 >= y1 ) x0 = x1 = y0 = y1 = 0;
+ mwindow->session->tile_mixers_x = x0;
+ mwindow->session->tile_mixers_y = y0;
+ mwindow->session->tile_mixers_w = x1 - x0;
+ mwindow->session->tile_mixers_h = y1 - y0;
+ mwindow->tile_mixers(x0, y0, x1, y1);
+ tile_mixers = 0;
return 1;
}