00001 #include "assets.h"
00002 #include "batchrender.h"
00003 #include "bcsignals.h"
00004 #include "cache.h"
00005 #include "cplayback.h"
00006 #include "cropvideo.h"
00007 #include "cwindow.h"
00008 #include "cwindowgui.h"
00009 #include "bchash.h"
00010 #include "edl.h"
00011 #include "edlsession.h"
00012 #include "featheredits.h"
00013 #include "filesystem.h"
00014 #include "filexml.h"
00015 #include "keys.h"
00016 #include "language.h"
00017 #include "levelwindow.h"
00018 #include "loadfile.h"
00019 #include "localsession.h"
00020 #include "mainclock.h"
00021 #include "mainmenu.h"
00022 #include "mainsession.h"
00023 #include "mainundo.h"
00024 #include "menuaeffects.h"
00025 #include "menuveffects.h"
00026 #include "mwindowgui.h"
00027 #include "mwindow.h"
00028 #include "new.h"
00029 #include "patchbay.h"
00030 #include "playbackengine.h"
00031 #include "preferences.h"
00032 #include "preferencesthread.h"
00033 #include "quit.h"
00034 #include "record.h"
00035 #include "render.h"
00036 #include "savefile.h"
00037 #include "setformat.h"
00038 #include "timebar.h"
00039 #include "trackcanvas.h"
00040 #include "tracks.h"
00041 #include "transition.h"
00042 #include "transportque.h"
00043 #include "viewmenu.h"
00044 #include "zoombar.h"
00045 #include "exportedl.h"
00046
00047 #include <string.h>
00048
00049
00050 MainMenu::MainMenu(MWindow *mwindow, MWindowGUI *gui)
00051 : BC_MenuBar(0, 0, gui->get_w())
00052 {
00053 this->gui = gui;
00054 this->mwindow = mwindow;
00055 }
00056
00057 MainMenu::~MainMenu()
00058 {
00059 }
00060
00061 int MainMenu::create_objects()
00062 {
00063 BC_Menu *viewmenu, *windowmenu, *settingsmenu, *trackmenu;
00064 PreferencesMenuitem *preferences;
00065
00066 recent_load = new BC_RecentList("PATH", mwindow->defaults);
00067 SET_TRACE
00068
00069 add_menu(filemenu = new BC_Menu(_("File")));
00070 filemenu->add_item(new_project = new New(mwindow));
00071 new_project->create_objects();
00072
00073 SET_TRACE
00074
00075 filemenu->add_item(load_file = new Load(mwindow, this));
00076 load_file->create_objects();
00077
00078 SET_TRACE
00079
00080 Save *save;
00081 filemenu->add_item(save = new Save(mwindow));
00082 SaveAs *saveas;
00083 filemenu->add_item(saveas = new SaveAs(mwindow));
00084 save->create_objects(saveas);
00085 saveas->set_mainmenu(this);
00086 filemenu->add_item(record = new RecordMenuItem(mwindow));
00087
00088 filemenu->add_item(render = new RenderItem(mwindow));
00089 filemenu->add_item(new ExportEDLItem(mwindow));
00090 filemenu->add_item(new BatchRenderMenuItem(mwindow));
00091 filemenu->add_item(new BC_MenuItem("-"));
00092 filemenu->add_item(quit_program = new Quit(mwindow));
00093 quit_program->create_objects(save);
00094 filemenu->add_item(new DumpEDL(mwindow));
00095 filemenu->add_item(new DumpPlugins(mwindow));
00096 filemenu->add_item(new LoadBackup(mwindow));
00097 filemenu->add_item(new SaveBackup(mwindow));
00098
00099 BC_Menu *editmenu;
00100 add_menu(editmenu = new BC_Menu(_("Edit")));
00101 editmenu->add_item(undo = new Undo(mwindow));
00102 editmenu->add_item(redo = new Redo(mwindow));
00103 editmenu->add_item(new BC_MenuItem("-"));
00104 editmenu->add_item(new Cut(mwindow));
00105 editmenu->add_item(new Copy(mwindow));
00106 editmenu->add_item(new Paste(mwindow));
00107 editmenu->add_item(new Clear(mwindow));
00108 editmenu->add_item(new PasteSilence(mwindow));
00109 editmenu->add_item(new MuteSelection(mwindow));
00110 editmenu->add_item(new TrimSelection(mwindow));
00111 editmenu->add_item(new SelectAll(mwindow));
00112 editmenu->add_item(new BC_MenuItem("-"));
00113 editmenu->add_item(new ClearLabels(mwindow));
00114
00115 BC_Menu *keyframemenu;
00116 add_menu(keyframemenu = new BC_Menu(_("Keyframes")));
00117 keyframemenu->add_item(new CutKeyframes(mwindow));
00118 keyframemenu->add_item(new CopyKeyframes(mwindow));
00119 keyframemenu->add_item(new PasteKeyframes(mwindow));
00120 keyframemenu->add_item(new ClearKeyframes(mwindow));
00121 keyframemenu->add_item(new StraightenKeyframes(mwindow));
00122 keyframemenu->add_item(new BC_MenuItem("-"));
00123 keyframemenu->add_item(new CopyDefaultKeyframe(mwindow));
00124 keyframemenu->add_item(new PasteDefaultKeyframe(mwindow));
00125
00126
00127
00128
00129 add_menu(audiomenu = new BC_Menu(_("Audio")));
00130 audiomenu->add_item(new AddAudioTrack(mwindow));
00131 audiomenu->add_item(new DefaultATransition(mwindow));
00132 audiomenu->add_item(new MapAudio1(mwindow));
00133 audiomenu->add_item(new MapAudio2(mwindow));
00134 audiomenu->add_item(aeffects = new MenuAEffects(mwindow));
00135
00136 add_menu(videomenu = new BC_Menu(_("Video")));
00137 videomenu->add_item(new AddVideoTrack(mwindow));
00138 videomenu->add_item(new DefaultVTransition(mwindow));
00139 videomenu->add_item(veffects = new MenuVEffects(mwindow));
00140
00141 add_menu(trackmenu = new BC_Menu(_("Tracks")));
00142 trackmenu->add_item(new MoveTracksUp(mwindow));
00143 trackmenu->add_item(new MoveTracksDown(mwindow));
00144 trackmenu->add_item(new DeleteTracks(mwindow));
00145 trackmenu->add_item(new DeleteTrack(mwindow));
00146 trackmenu->add_item(new ConcatenateTracks(mwindow));
00147
00148 add_menu(settingsmenu = new BC_Menu(_("Settings")));
00149
00150 settingsmenu->add_item(new SetFormat(mwindow));
00151 settingsmenu->add_item(preferences = new PreferencesMenuitem(mwindow));
00152 mwindow->preferences_thread = preferences->thread;
00153 settingsmenu->add_item(labels_follow_edits = new LabelsFollowEdits(mwindow));
00154 settingsmenu->add_item(plugins_follow_edits = new PluginsFollowEdits(mwindow));
00155 settingsmenu->add_item(cursor_on_frames = new CursorOnFrames(mwindow));
00156 settingsmenu->add_item(new SaveSettingsNow(mwindow));
00157 settingsmenu->add_item(loop_playback = new LoopPlayback(mwindow));
00158 settingsmenu->add_item(new SetBRenderStart(mwindow));
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170 add_menu(viewmenu = new BC_Menu(_("View")));
00171 viewmenu->add_item(show_assets = new ShowAssets(mwindow, "0"));
00172 viewmenu->add_item(show_titles = new ShowTitles(mwindow, "1"));
00173 viewmenu->add_item(show_transitions = new ShowTransitions(mwindow, "2"));
00174 viewmenu->add_item(fade_automation = new ShowAutomation(mwindow, _("Fade"), "3", AUTOMATION_FADE));
00175 viewmenu->add_item(mute_automation = new ShowAutomation(mwindow, _("Mute"), "4", AUTOMATION_MUTE));
00176 viewmenu->add_item(mode_automation = new ShowAutomation(mwindow, _("Mode"), "5", AUTOMATION_MODE));
00177 viewmenu->add_item(pan_automation = new ShowAutomation(mwindow, _("Pan"), "6", AUTOMATION_PAN));
00178 viewmenu->add_item(plugin_automation = new PluginAutomation(mwindow, "7"));
00179 viewmenu->add_item(mask_automation = new ShowAutomation(mwindow, _("Mask"), "8", AUTOMATION_MASK));
00180 viewmenu->add_item(camera_x = new ShowAutomation(mwindow, _("Camera X"), "", AUTOMATION_CAMERA_X));
00181 viewmenu->add_item(camera_y = new ShowAutomation(mwindow, _("Camera Y"), "", AUTOMATION_CAMERA_Y));
00182 viewmenu->add_item(camera_z = new ShowAutomation(mwindow, _("Camera Z"), "", AUTOMATION_CAMERA_Z));
00183 viewmenu->add_item(project_x = new ShowAutomation(mwindow, _("Projector X"), "", AUTOMATION_PROJECTOR_X));
00184 viewmenu->add_item(project_y = new ShowAutomation(mwindow, _("Projector Y"), "", AUTOMATION_PROJECTOR_Y));
00185 viewmenu->add_item(project_z = new ShowAutomation(mwindow, _("Projector Z"), "", AUTOMATION_PROJECTOR_Z));
00186
00187
00188 add_menu(windowmenu = new BC_Menu(_("Window")));
00189 windowmenu->add_item(show_vwindow = new ShowVWindow(mwindow));
00190 windowmenu->add_item(show_awindow = new ShowAWindow(mwindow));
00191 windowmenu->add_item(show_cwindow = new ShowCWindow(mwindow));
00192 windowmenu->add_item(show_gwindow = new ShowGWindow(mwindow));
00193 windowmenu->add_item(show_lwindow = new ShowLWindow(mwindow));
00194 windowmenu->add_item(new TileWindows(mwindow));
00195
00196 SET_TRACE
00197 return 0;
00198 }
00199
00200 int MainMenu::load_defaults(BC_Hash *defaults)
00201 {
00202 init_loads(defaults);
00203 init_aeffects(defaults);
00204 init_veffects(defaults);
00205 return 0;
00206 }
00207
00208 void MainMenu::update_toggles(int use_lock)
00209 {
00210 if(use_lock) lock_window("MainMenu::update_toggles");
00211 labels_follow_edits->set_checked(mwindow->edl->session->labels_follow_edits);
00212 plugins_follow_edits->set_checked(mwindow->edl->session->plugins_follow_edits);
00213 cursor_on_frames->set_checked(mwindow->edl->session->cursor_on_frames);
00214 loop_playback->set_checked(mwindow->edl->local_session->loop_playback);
00215 show_titles->set_checked(mwindow->edl->session->show_titles);
00216 show_transitions->set_checked(mwindow->edl->session->auto_conf->transitions);
00217 fade_automation->update_toggle();
00218 mute_automation->update_toggle();
00219 pan_automation->update_toggle();
00220 camera_x->update_toggle();
00221 camera_y->update_toggle();
00222 camera_z->update_toggle();
00223 project_x->update_toggle();
00224 project_y->update_toggle();
00225 project_z->update_toggle();
00226 plugin_automation->set_checked(mwindow->edl->session->auto_conf->plugins);
00227 mode_automation->update_toggle();
00228 mask_automation->update_toggle();
00229 if(use_lock) mwindow->gui->unlock_window();
00230 }
00231
00232 int MainMenu::save_defaults(BC_Hash *defaults)
00233 {
00234 save_aeffects(defaults);
00235 save_veffects(defaults);
00236 return 0;
00237 }
00238
00239
00240
00241
00242
00243 int MainMenu::quit()
00244 {
00245 quit_program->handle_event();
00246 return 0;
00247 }
00248
00249
00250
00251
00252
00253
00254
00255 int MainMenu::init_aeffects(BC_Hash *defaults)
00256 {
00257 total_aeffects = defaults->get("TOTAL_AEFFECTS", 0);
00258
00259 char string[1024], title[1024];
00260 if(total_aeffects) audiomenu->add_item(new BC_MenuItem("-"));
00261
00262 for(int i = 0; i < total_aeffects; i++)
00263 {
00264 sprintf(string, "AEFFECTRECENT%d", i);
00265 defaults->get(string, title);
00266 audiomenu->add_item(aeffect[i] = new MenuAEffectItem(aeffects, title));
00267 }
00268 return 0;
00269 }
00270
00271 int MainMenu::init_veffects(BC_Hash *defaults)
00272 {
00273 total_veffects = defaults->get("TOTAL_VEFFECTS", 0);
00274
00275 char string[1024], title[1024];
00276 if(total_veffects) videomenu->add_item(new BC_MenuItem("-"));
00277
00278 for(int i = 0; i < total_veffects; i++)
00279 {
00280 sprintf(string, "VEFFECTRECENT%d", i);
00281 defaults->get(string, title);
00282 videomenu->add_item(veffect[i] = new MenuVEffectItem(veffects, title));
00283 }
00284 return 0;
00285 }
00286
00287 int MainMenu::init_loads(BC_Hash *defaults)
00288 {
00289
00290
00291 char string[BCTEXTLEN], path[BCTEXTLEN], filename[BCTEXTLEN];
00292
00293 FileSystem dir;
00294
00295 recent_load->load_items();
00296
00297 int total_loads = recent_load->items.total;
00298
00299 if(total_loads > 0) filemenu->add_item(new BC_MenuItem("-"));
00300
00301 for(int i = 0; i < total_loads; i++)
00302 {
00303 char *path = recent_load->items.values[i]->get_text();
00304
00305 filemenu->add_item(load[i] = new LoadPrevious(mwindow));
00306
00307 dir.extract_name(filename, path, 0);
00308
00309 load[i]->set_text(filename);
00310
00311 load[i]->set_path(path);
00312
00313 }
00314
00315 return 0;
00316 }
00317
00318
00319
00320 int MainMenu::save_aeffects(BC_Hash *defaults)
00321 {
00322 defaults->update("TOTAL_AEFFECTS", total_aeffects);
00323 char string[1024];
00324 for(int i = 0; i < total_aeffects; i++)
00325 {
00326 sprintf(string, "AEFFECTRECENT%d", i);
00327 defaults->update(string, aeffect[i]->get_text());
00328 }
00329 return 0;
00330 }
00331
00332 int MainMenu::save_veffects(BC_Hash *defaults)
00333 {
00334 defaults->update("TOTAL_VEFFECTS", total_veffects);
00335 char string[1024];
00336 for(int i = 0; i < total_veffects; i++)
00337 {
00338 sprintf(string, "VEFFECTRECENT%d", i);
00339 defaults->update(string, veffect[i]->get_text());
00340 }
00341 return 0;
00342 }
00343
00344
00345
00346 int MainMenu::add_aeffect(char *title)
00347 {
00348
00349 if(total_aeffects == 0)
00350 {
00351 audiomenu->add_item(new BC_MenuItem("-"));
00352 }
00353
00354
00355 for(int i = 0; i < total_aeffects; i++)
00356 {
00357 if(!strcmp(aeffect[i]->get_text(), title))
00358 {
00359 for(int j = i; j > 0; j--)
00360 {
00361 aeffect[j]->set_text(aeffect[j - 1]->get_text());
00362 }
00363 aeffect[0]->set_text(title);
00364 return 1;
00365 }
00366 }
00367
00368
00369 if(total_aeffects < TOTAL_EFFECTS)
00370 {
00371 audiomenu->add_item(aeffect[total_aeffects] = new MenuAEffectItem(aeffects, ""));
00372 total_aeffects++;
00373 }
00374
00375
00376 for(int i = total_aeffects - 1; i > 0; i--)
00377 {
00378
00379 aeffect[i]->set_text(aeffect[i - 1]->get_text());
00380 }
00381
00382
00383 aeffect[0]->set_text(title);
00384 return 0;
00385 }
00386
00387 int MainMenu::add_veffect(char *title)
00388 {
00389
00390 if(total_veffects == 0)
00391 {
00392 videomenu->add_item(new BC_MenuItem("-"));
00393 }
00394
00395
00396 for(int i = 0; i < total_veffects; i++)
00397 {
00398 if(!strcmp(veffect[i]->get_text(), title))
00399 {
00400 for(int j = i; j > 0; j--)
00401 {
00402 veffect[j]->set_text(veffect[j - 1]->get_text());
00403 }
00404 veffect[0]->set_text(title);
00405 return 1;
00406 }
00407 }
00408
00409
00410 if(total_veffects < TOTAL_EFFECTS)
00411 {
00412 videomenu->add_item(veffect[total_veffects] = new MenuVEffectItem(veffects, ""));
00413 total_veffects++;
00414 }
00415
00416
00417 for(int i = total_veffects - 1; i > 0; i--)
00418 {
00419
00420 veffect[i]->set_text(veffect[i - 1]->get_text());
00421 }
00422
00423
00424 veffect[0]->set_text(title);
00425 return 0;
00426 }
00427
00428 int MainMenu::add_load(char *new_path)
00429 {
00430 char filename[BCTEXTLEN];
00431 FileSystem dir;
00432
00433 int total_loads = recent_load->items.total;
00434
00435 if(total_loads == 0)
00436 {
00437 filemenu->add_item(new BC_MenuItem("-"));
00438 }
00439
00440 int new_total = recent_load->add_item(NULL, new_path);
00441
00442 if (new_total > total_loads) {
00443
00444 int i = new_total - 1;
00445 load[i] = new LoadPrevious(mwindow);
00446 dir.extract_name(filename, new_path, 0);
00447 load[i]->set_text(filename);
00448 load[i]->set_path(new_path);
00449 filemenu->add_item(load[i]);
00450 }
00451
00452
00453 for(int i = 0; i < new_total; i++) {
00454 char *path = recent_load->items.values[i]->get_text();
00455 dir.extract_name(filename, path, 0);
00456 load[i]->set_text(filename);
00457 load[i]->set_path(path);
00458 }
00459
00460 return 0;
00461 }
00462
00463
00464
00465
00466
00467
00468
00469
00470
00471
00472
00473 DumpCICache::DumpCICache(MWindow *mwindow)
00474 : BC_MenuItem(_("Dump CICache"))
00475 { this->mwindow = mwindow; }
00476
00477 int DumpCICache::handle_event()
00478 {
00479
00480 }
00481
00482 DumpEDL::DumpEDL(MWindow *mwindow)
00483 : BC_MenuItem(_("Dump EDL"))
00484 {
00485 this->mwindow = mwindow;
00486 }
00487
00488 int DumpEDL::handle_event()
00489 {
00490
00491 mwindow->edl->dump();
00492
00493 return 1;
00494 }
00495
00496 DumpPlugins::DumpPlugins(MWindow *mwindow)
00497 : BC_MenuItem(_("Dump Plugins"))
00498 {
00499 this->mwindow = mwindow;
00500 }
00501
00502 int DumpPlugins::handle_event()
00503 {
00504
00505 mwindow->dump_plugins();
00506
00507 return 1;
00508 }
00509
00510
00511 DumpAssets::DumpAssets(MWindow *mwindow)
00512 : BC_MenuItem(_("Dump Assets"))
00513 { this->mwindow = mwindow; }
00514
00515 int DumpAssets::handle_event()
00516 {
00517 mwindow->assets->dump();
00518 }
00519
00520
00521
00522 Undo::Undo(MWindow *mwindow) : BC_MenuItem(_("Undo"), "z", 'z')
00523 {
00524 this->mwindow = mwindow;
00525 }
00526 int Undo::handle_event()
00527 {
00528 mwindow->undo_entry(mwindow->gui);
00529 return 1;
00530 }
00531 int Undo::update_caption(char *new_caption)
00532 {
00533 char string[1024];
00534 sprintf(string, _("Undo %s"), new_caption);
00535 set_text(string);
00536 }
00537
00538
00539 Redo::Redo(MWindow *mwindow) : BC_MenuItem(_("Redo"), "Shift+Z", 'Z')
00540 {
00541 set_shift(1);
00542 this->mwindow = mwindow;
00543 }
00544
00545 int Redo::handle_event()
00546 {
00547 mwindow->redo_entry(mwindow->gui);
00548
00549 return 1;
00550 }
00551 int Redo::update_caption(char *new_caption)
00552 {
00553 char string[1024];
00554 sprintf(string, _("Redo %s"), new_caption);
00555 set_text(string);
00556 }
00557
00558 CutKeyframes::CutKeyframes(MWindow *mwindow)
00559 : BC_MenuItem(_("Cut keyframes"), "Shift-X", 'X')
00560 {
00561 set_shift();
00562 this->mwindow = mwindow;
00563 }
00564
00565 int CutKeyframes::handle_event()
00566 {
00567 mwindow->cut_automation();
00568 }
00569
00570 CopyKeyframes::CopyKeyframes(MWindow *mwindow)
00571 : BC_MenuItem(_("Copy keyframes"), "Shift-C", 'C')
00572 {
00573 set_shift();
00574 this->mwindow = mwindow;
00575 }
00576
00577 int CopyKeyframes::handle_event()
00578 {
00579 mwindow->copy_automation();
00580 return 1;
00581 }
00582
00583 PasteKeyframes::PasteKeyframes(MWindow *mwindow)
00584 : BC_MenuItem(_("Paste keyframes"), "Shift-V", 'V')
00585 {
00586 set_shift();
00587 this->mwindow = mwindow;
00588 }
00589
00590 int PasteKeyframes::handle_event()
00591 {
00592 mwindow->paste_automation();
00593 }
00594
00595 ClearKeyframes::ClearKeyframes(MWindow *mwindow)
00596 : BC_MenuItem(_("Clear keyframes"), "Shift-Del", DELETE)
00597 {
00598 set_shift();
00599 this->mwindow = mwindow;
00600 }
00601
00602 int ClearKeyframes::handle_event()
00603 {
00604 mwindow->clear_automation();
00605 return 1;
00606 }
00607
00608
00609 StraightenKeyframes::StraightenKeyframes(MWindow *mwindow)
00610 : BC_MenuItem(_("Straighten curves"))
00611 {
00612 this->mwindow = mwindow;
00613 }
00614
00615 int StraightenKeyframes::handle_event()
00616 {
00617 mwindow->straighten_automation();
00618 return 1;
00619 }
00620
00621
00622
00623
00624
00625
00626
00627
00628 CutDefaultKeyframe::CutDefaultKeyframe(MWindow *mwindow)
00629 : BC_MenuItem(_("Cut default keyframe"), "Alt-X", 'X')
00630 {
00631 set_alt();
00632 this->mwindow = mwindow;
00633 }
00634
00635 int CutDefaultKeyframe::handle_event()
00636 {
00637 mwindow->cut_default_keyframe();
00638 return 1;
00639 }
00640
00641 CopyDefaultKeyframe::CopyDefaultKeyframe(MWindow *mwindow)
00642 : BC_MenuItem(_("Copy default keyframe"), "Alt-c", 'c')
00643 {
00644 set_alt();
00645 this->mwindow = mwindow;
00646 }
00647
00648 int CopyDefaultKeyframe::handle_event()
00649 {
00650 mwindow->copy_default_keyframe();
00651 return 1;
00652 }
00653
00654 PasteDefaultKeyframe::PasteDefaultKeyframe(MWindow *mwindow)
00655 : BC_MenuItem(_("Paste default keyframe"), "Alt-v", 'v')
00656 {
00657 set_alt();
00658 this->mwindow = mwindow;
00659 }
00660
00661 int PasteDefaultKeyframe::handle_event()
00662 {
00663 mwindow->paste_default_keyframe();
00664 return 1;
00665 }
00666
00667 ClearDefaultKeyframe::ClearDefaultKeyframe(MWindow *mwindow)
00668 : BC_MenuItem(_("Clear default keyframe"), "Alt-Del", DELETE)
00669 {
00670 set_alt();
00671 this->mwindow = mwindow;
00672 }
00673
00674 int ClearDefaultKeyframe::handle_event()
00675 {
00676 mwindow->clear_default_keyframe();
00677 return 1;
00678 }
00679
00680 Cut::Cut(MWindow *mwindow)
00681 : BC_MenuItem(_("Cut"), "x", 'x')
00682 {
00683 this->mwindow = mwindow;
00684 }
00685
00686 int Cut::handle_event()
00687 {
00688 mwindow->cut();
00689 return 1;
00690 }
00691
00692 Copy::Copy(MWindow *mwindow)
00693 : BC_MenuItem(_("Copy"), "c", 'c')
00694 {
00695 this->mwindow = mwindow;
00696 }
00697
00698 int Copy::handle_event()
00699 {
00700 mwindow->copy();
00701 return 1;
00702 }
00703
00704 Paste::Paste(MWindow *mwindow)
00705 : BC_MenuItem(_("Paste"), "v", 'v')
00706 {
00707 this->mwindow = mwindow;
00708 }
00709
00710 int Paste::handle_event()
00711 {
00712 mwindow->paste();
00713 return 1;
00714 }
00715
00716 Clear::Clear(MWindow *mwindow)
00717 : BC_MenuItem(_("Clear"), "Del", DELETE)
00718 {
00719 this->mwindow = mwindow;
00720 }
00721
00722 int Clear::handle_event()
00723 {
00724 mwindow->cwindow->gui->lock_window("Clear::handle_event");
00725 mwindow->clear_entry();
00726 mwindow->cwindow->gui->unlock_window();
00727 return 1;
00728 }
00729
00730 PasteSilence::PasteSilence(MWindow *mwindow)
00731 : BC_MenuItem(_("Paste silence"), "Shift+Space", ' ')
00732 {
00733 this->mwindow = mwindow;
00734 set_shift();
00735 }
00736
00737 int PasteSilence::handle_event()
00738 {
00739 mwindow->paste_silence();
00740 return 1;
00741 }
00742
00743 SelectAll::SelectAll(MWindow *mwindow)
00744 : BC_MenuItem(_("Select All"), "a", 'a')
00745 {
00746 this->mwindow = mwindow;
00747 }
00748
00749 int SelectAll::handle_event()
00750 {
00751 mwindow->select_all();
00752 return 1;
00753 }
00754
00755 ClearLabels::ClearLabels(MWindow *mwindow) : BC_MenuItem(_("Clear labels"))
00756 {
00757 this->mwindow = mwindow;
00758 }
00759
00760 int ClearLabels::handle_event()
00761 {
00762 mwindow->clear_labels();
00763 return 1;
00764 }
00765
00766 MuteSelection::MuteSelection(MWindow *mwindow)
00767 : BC_MenuItem(_("Mute Region"), "m", 'm')
00768 {
00769 this->mwindow = mwindow;
00770 }
00771
00772 int MuteSelection::handle_event()
00773 {
00774 mwindow->mute_selection();
00775 return 1;
00776 }
00777
00778
00779 TrimSelection::TrimSelection(MWindow *mwindow)
00780 : BC_MenuItem(_("Trim Selection"))
00781 {
00782 this->mwindow = mwindow;
00783 }
00784
00785 int TrimSelection::handle_event()
00786 {
00787 mwindow->trim_selection();
00788 return 1;
00789 }
00790
00791
00792
00793
00794
00795
00796
00797
00798
00799
00800
00801
00802
00803
00804 AddAudioTrack::AddAudioTrack(MWindow *mwindow)
00805 : BC_MenuItem(_("Add track"), "t", 't')
00806 {
00807 this->mwindow = mwindow;
00808 }
00809
00810 int AddAudioTrack::handle_event()
00811 {
00812 mwindow->add_audio_track_entry(0, 0);
00813 return 1;
00814 }
00815
00816 DeleteAudioTrack::DeleteAudioTrack(MWindow *mwindow)
00817 : BC_MenuItem(_("Delete track"))
00818 {
00819 this->mwindow = mwindow;
00820 }
00821
00822 int DeleteAudioTrack::handle_event()
00823 {
00824 return 1;
00825 }
00826
00827 DefaultATransition::DefaultATransition(MWindow *mwindow)
00828 : BC_MenuItem(_("Default Transition"), "u", 'u')
00829 {
00830 this->mwindow = mwindow;
00831 }
00832
00833 int DefaultATransition::handle_event()
00834 {
00835 mwindow->paste_audio_transition();
00836 return 1;
00837 }
00838
00839
00840 MapAudio1::MapAudio1(MWindow *mwindow)
00841 : BC_MenuItem(_("Map 1:1"))
00842 {
00843 this->mwindow = mwindow;
00844 }
00845
00846 int MapAudio1::handle_event()
00847 {
00848 mwindow->map_audio(MWindow::AUDIO_1_TO_1);
00849 return 1;
00850 }
00851
00852 MapAudio2::MapAudio2(MWindow *mwindow)
00853 : BC_MenuItem(_("Map 5.1:2"))
00854 {
00855 this->mwindow = mwindow;
00856 }
00857
00858 int MapAudio2::handle_event()
00859 {
00860 mwindow->map_audio(MWindow::AUDIO_5_1_TO_2);
00861 return 1;
00862 }
00863
00864
00865
00866
00867
00868
00869
00870 AddVideoTrack::AddVideoTrack(MWindow *mwindow)
00871 : BC_MenuItem(_("Add track"), "Shift-T", 'T')
00872 {
00873 set_shift();
00874 this->mwindow = mwindow;
00875 }
00876
00877 int AddVideoTrack::handle_event()
00878 {
00879 mwindow->add_video_track_entry();
00880 return 1;
00881 }
00882
00883
00884 DeleteVideoTrack::DeleteVideoTrack(MWindow *mwindow)
00885 : BC_MenuItem(_("Delete track"))
00886 {
00887 this->mwindow = mwindow;
00888 }
00889
00890 int DeleteVideoTrack::handle_event()
00891 {
00892 return 1;
00893 }
00894
00895
00896
00897 ResetTranslation::ResetTranslation(MWindow *mwindow)
00898 : BC_MenuItem(_("Reset Translation"))
00899 {
00900 this->mwindow = mwindow;
00901 }
00902
00903 int ResetTranslation::handle_event()
00904 {
00905 return 1;
00906 }
00907
00908
00909
00910 DefaultVTransition::DefaultVTransition(MWindow *mwindow)
00911 : BC_MenuItem(_("Default Transition"), "Shift-U", 'U')
00912 {
00913 set_shift();
00914 this->mwindow = mwindow;
00915 }
00916
00917 int DefaultVTransition::handle_event()
00918 {
00919 mwindow->paste_video_transition();
00920 return 1;
00921 }
00922
00923
00924
00925
00926
00927
00928
00929
00930
00931
00932
00933
00934
00935
00936
00937
00938 DeleteTracks::DeleteTracks(MWindow *mwindow)
00939 : BC_MenuItem(_("Delete tracks"))
00940 {
00941 this->mwindow = mwindow;
00942 }
00943
00944 int DeleteTracks::handle_event()
00945 {
00946 mwindow->delete_tracks();
00947 return 1;
00948 }
00949
00950 DeleteTrack::DeleteTrack(MWindow *mwindow)
00951 : BC_MenuItem(_("Delete last track"), "d", 'd')
00952 {
00953 this->mwindow = mwindow;
00954 }
00955
00956 int DeleteTrack::handle_event()
00957 {
00958 mwindow->delete_track();
00959 return 1;
00960 }
00961
00962 MoveTracksUp::MoveTracksUp(MWindow *mwindow)
00963 : BC_MenuItem(_("Move tracks up"))
00964 {
00965 set_shift(); this->mwindow = mwindow;
00966 }
00967
00968 int MoveTracksUp::handle_event()
00969 {
00970 mwindow->move_tracks_up();
00971 return 1;
00972 }
00973
00974 MoveTracksDown::MoveTracksDown(MWindow *mwindow)
00975 : BC_MenuItem(_("Move tracks down"))
00976 {
00977 set_shift(); this->mwindow = mwindow;
00978 }
00979
00980 int MoveTracksDown::handle_event()
00981 {
00982 mwindow->move_tracks_down();
00983 return 1;
00984 }
00985
00986
00987
00988
00989 ConcatenateTracks::ConcatenateTracks(MWindow *mwindow)
00990 : BC_MenuItem(_("Concatenate tracks"))
00991 {
00992 set_shift();
00993 this->mwindow = mwindow;
00994 }
00995
00996 int ConcatenateTracks::handle_event()
00997 {
00998 mwindow->concatenate_tracks();
00999 return 1;
01000 }
01001
01002
01003
01004
01005
01006 LoopPlayback::LoopPlayback(MWindow *mwindow)
01007 : BC_MenuItem(_("Loop Playback"), "Shift+L", 'L')
01008 {
01009 this->mwindow = mwindow;
01010 set_checked(mwindow->edl->local_session->loop_playback);
01011 set_shift();
01012 }
01013
01014 int LoopPlayback::handle_event()
01015 {
01016 mwindow->toggle_loop_playback();
01017 set_checked(mwindow->edl->local_session->loop_playback);
01018 return 1;
01019 }
01020
01021
01022
01023
01024
01025 SetBRenderStart::SetBRenderStart(MWindow *mwindow)
01026 : BC_MenuItem(_("Set background render"))
01027 {
01028 this->mwindow = mwindow;
01029 }
01030
01031 int SetBRenderStart::handle_event()
01032 {
01033 mwindow->set_brender_start();
01034 return 1;
01035 }
01036
01037
01038
01039
01040
01041
01042
01043 LabelsFollowEdits::LabelsFollowEdits(MWindow *mwindow)
01044 : BC_MenuItem(_("Edit labels"))
01045 {
01046 this->mwindow = mwindow;
01047 set_checked(mwindow->edl->session->labels_follow_edits);
01048 }
01049
01050 int LabelsFollowEdits::handle_event()
01051 {
01052 set_checked(get_checked() ^ 1);
01053 mwindow->set_labels_follow_edits(get_checked());
01054 }
01055
01056
01057
01058
01059 PluginsFollowEdits::PluginsFollowEdits(MWindow *mwindow)
01060 : BC_MenuItem(_("Edit effects"))
01061 {
01062 this->mwindow = mwindow;
01063 set_checked(mwindow->edl->session->plugins_follow_edits);
01064 }
01065
01066 int PluginsFollowEdits::handle_event()
01067 {
01068 set_checked(get_checked() ^ 1);
01069 mwindow->edl->session->plugins_follow_edits = get_checked();
01070 }
01071
01072
01073
01074
01075 AutosFollowEdits::AutosFollowEdits(MWindow *mwindow)
01076 : BC_MenuItem(_("Autos follow edits"))
01077 {
01078 this->mwindow = mwindow;
01079 set_checked(mwindow->edl->session->autos_follow_edits);
01080 }
01081
01082 int AutosFollowEdits::handle_event()
01083 {
01084 mwindow->edl->session->autos_follow_edits ^= 1;
01085 set_checked(!get_checked());
01086 }
01087
01088
01089 CursorOnFrames::CursorOnFrames(MWindow *mwindow)
01090 : BC_MenuItem(_("Align cursor on frames"))
01091 {
01092 this->mwindow = mwindow;
01093 set_checked(mwindow->edl->session->cursor_on_frames);
01094 }
01095
01096 int CursorOnFrames::handle_event()
01097 {
01098 mwindow->edl->session->cursor_on_frames = !mwindow->edl->session->cursor_on_frames;
01099 set_checked(mwindow->edl->session->cursor_on_frames);
01100 }
01101
01102
01103 ScrubSpeed::ScrubSpeed(MWindow *mwindow) : BC_MenuItem(_("Slow Shuttle"))
01104 {
01105 this->mwindow = mwindow;
01106 }
01107
01108 int ScrubSpeed::handle_event()
01109 {
01110 if(mwindow->edl->session->scrub_speed == .5)
01111 {
01112 mwindow->edl->session->scrub_speed = 2;
01113 set_text(_("Slow Shuttle"));
01114 }
01115 else
01116 {
01117 mwindow->edl->session->scrub_speed = .5;
01118 set_text(_("Fast Shuttle"));
01119 }
01120 }
01121
01122 SaveSettingsNow::SaveSettingsNow(MWindow *mwindow) : BC_MenuItem(_("Save settings now"))
01123 {
01124 this->mwindow = mwindow;
01125 }
01126
01127 int SaveSettingsNow::handle_event()
01128 {
01129 mwindow->save_defaults();
01130 mwindow->save_backup();
01131 mwindow->gui->show_message(_("Saved settings."));
01132 return 1;
01133 }
01134
01135
01136
01137
01138
01139
01140
01141
01142
01143 ShowVWindow::ShowVWindow(MWindow *mwindow)
01144 : BC_MenuItem(_("Show Viewer"))
01145 {
01146 this->mwindow = mwindow;
01147 set_checked(mwindow->session->show_vwindow);
01148 }
01149 int ShowVWindow::handle_event()
01150 {
01151 mwindow->show_vwindow();
01152 return 1;
01153 }
01154
01155 ShowAWindow::ShowAWindow(MWindow *mwindow)
01156 : BC_MenuItem(_("Show Resources"))
01157 {
01158 this->mwindow = mwindow;
01159 set_checked(mwindow->session->show_awindow);
01160 }
01161 int ShowAWindow::handle_event()
01162 {
01163 mwindow->show_awindow();
01164 return 1;
01165 }
01166
01167 ShowCWindow::ShowCWindow(MWindow *mwindow)
01168 : BC_MenuItem(_("Show Compositor"))
01169 {
01170 this->mwindow = mwindow;
01171 set_checked(mwindow->session->show_cwindow);
01172 }
01173 int ShowCWindow::handle_event()
01174 {
01175 mwindow->show_cwindow();
01176 return 1;
01177 }
01178
01179
01180 ShowGWindow::ShowGWindow(MWindow *mwindow)
01181 : BC_MenuItem(_("Show Overlays"))
01182 {
01183 this->mwindow = mwindow;
01184 set_checked(mwindow->session->show_gwindow);
01185 }
01186 int ShowGWindow::handle_event()
01187 {
01188 mwindow->show_gwindow();
01189 return 1;
01190 }
01191
01192
01193 ShowLWindow::ShowLWindow(MWindow *mwindow)
01194 : BC_MenuItem(_("Show Levels"))
01195 {
01196 this->mwindow = mwindow;
01197 set_checked(mwindow->session->show_lwindow);
01198 }
01199 int ShowLWindow::handle_event()
01200 {
01201 mwindow->show_lwindow();
01202 return 1;
01203 }
01204
01205 TileWindows::TileWindows(MWindow *mwindow)
01206 : BC_MenuItem(_("Default positions"))
01207 {
01208 this->mwindow = mwindow;
01209 }
01210 int TileWindows::handle_event()
01211 {
01212 mwindow->tile_windows();
01213 return 1;
01214 }
01215
01216