#include "dvdcreate.h"
#include "edl.h"
#include "edlsession.h"
+#include "file.h"
#include "filesystem.h"
#include "filexml.h"
#include "floatauto.h"
filemenu->add_item(new BC_MenuItem("-"));
filemenu->add_item(quit_program = new Quit(mwindow));
quit_program->create_objects(save);
- filemenu->add_item(new DumpEDL(mwindow));
- filemenu->add_item(new DumpPlugins(mwindow));
+ filemenu->add_item(dump_menu = new MainDumpsMenu(mwindow));
+ dump_menu->create_objects();
filemenu->add_item(new LoadBackup(mwindow));
filemenu->add_item(new SaveBackup(mwindow));
settingsmenu->add_item(proxy = new ProxyMenuItem(mwindow));
proxy->create_objects();
mwindow->preferences_thread = preferences->thread;
+ settingsmenu->add_item(cursor_on_frames = new CursorOnFrames(mwindow));
settingsmenu->add_item(labels_follow_edits = new LabelsFollowEdits(mwindow));
settingsmenu->add_item(plugins_follow_edits = new PluginsFollowEdits(mwindow));
settingsmenu->add_item(keyframes_follow_edits = new KeyframesFollowEdits(mwindow));
- settingsmenu->add_item(cursor_on_frames = new CursorOnFrames(mwindow));
settingsmenu->add_item(typeless_keyframes = new TypelessKeyframes(mwindow));
settingsmenu->add_item(new BC_MenuItem("-"));
settingsmenu->add_item(new SaveSettingsNow(mwindow));
viewmenu->add_item(mask_automation = new ShowAutomation(mwindow, _("Mask"), "8", AUTOMATION_MASK));
viewmenu->add_item(speed_automation = new ShowAutomation(mwindow, _("Speed"), "9", AUTOMATION_SPEED));
- camera_x = new ShowAutomation(mwindow, _("Camera X"), "Ctl-Shift-X", AUTOMATION_CAMERA_X);
+ camera_x = new ShowAutomation(mwindow, _("Camera X"), "Ctrl-Shift-X", AUTOMATION_CAMERA_X);
camera_x->set_ctrl(); camera_x->set_shift(); viewmenu->add_item(camera_x);
- camera_y = new ShowAutomation(mwindow, _("Camera Y"), "Ctl-Shift-Y", AUTOMATION_CAMERA_Y);
+ camera_y = new ShowAutomation(mwindow, _("Camera Y"), "Ctrl-Shift-Y", AUTOMATION_CAMERA_Y);
camera_y->set_ctrl(); camera_y->set_shift(); viewmenu->add_item(camera_y);
- camera_z = new ShowAutomation(mwindow, _("Camera Z"), "Ctl-Shift-Z", AUTOMATION_CAMERA_Z);
+ camera_z = new ShowAutomation(mwindow, _("Camera Z"), "Ctrl-Shift-Z", AUTOMATION_CAMERA_Z);
camera_z->set_ctrl(); camera_z->set_shift(); viewmenu->add_item(camera_z);
project_x = new ShowAutomation(mwindow, _("Projector X"), "Alt-Shift-X", AUTOMATION_PROJECTOR_X);
project_x->set_alt(); project_x->set_shift(); viewmenu->add_item(project_x);
windowmenu->add_item(split_y = new SplitY(mwindow));
windowmenu->add_item(mixer_viewer = new MixerViewer(mwindow));
windowmenu->add_item(new TileMixers(mwindow));
- windowmenu->add_item(new TileWindows(mwindow,_("Default positions"),-1,_("Ctrl-P"),'p'));
windowmenu->add_item(new TileWindows(mwindow,_("Tile left"),0));
windowmenu->add_item(new TileWindows(mwindow,_("Tile right"),1));
+ windowmenu->add_item(new BC_MenuItem("-"));
+
+ windowmenu->add_item(new TileWindows(mwindow,_("Default positions"),-1,_("Ctrl-P"),'p'));
+ windowmenu->add_item(load_layout = new LoadLayout(mwindow, _("Load layout..."),LAYOUT_LOAD));
+ load_layout->create_objects();
+ windowmenu->add_item(save_layout = new LoadLayout(mwindow, _("Save layout..."),LAYOUT_SAVE));
+ save_layout->create_objects();
}
int MainMenu::load_defaults(BC_Hash *defaults)
// ================================== menu items
+MainDumpsSubMenu::MainDumpsSubMenu(BC_MenuItem *menu_item)
+ : BC_SubMenu()
+{
+ this->menu_item = menu_item;
+}
+MainDumpsSubMenu::~MainDumpsSubMenu()
+{
+}
+
+
+MainDumpsMenu::MainDumpsMenu(MWindow *mwindow)
+ : BC_MenuItem(_("Dumps..."))
+{
+ this->mwindow = mwindow;
+ this->dumps_menu = 0;
+}
+MainDumpsMenu::~MainDumpsMenu()
+{
+}
+
+void MainDumpsMenu::create_objects()
+{
+ add_submenu(dumps_menu = new MainDumpsSubMenu(this));
+// dumps_menu->add_item(new DumpCICache(mwindow));
+ dumps_menu->add_item(new DumpEDL(mwindow));
+ dumps_menu->add_item(new DumpPlugins(mwindow));
+ dumps_menu->add_item(new DumpAssets(mwindow));
+ dumps_menu->add_item(new DumpUndo(mwindow));
+};
+
DumpCICache::DumpCICache(MWindow *mwindow)
: BC_MenuItem(_("Dump CICache"))
int DumpEDL::handle_event()
{
-//printf("DumpEDL::handle_event 1\n");
mwindow->dump_edl();
-//printf("DumpEDL::handle_event 2\n");
return 1;
}
int DumpPlugins::handle_event()
{
-//printf("DumpEDL::handle_event 1\n");
mwindow->dump_plugins();
-//printf("DumpEDL::handle_event 2\n");
return 1;
}
-
DumpAssets::DumpAssets(MWindow *mwindow)
: BC_MenuItem(_("Dump Assets"))
{ this->mwindow = mwindow; }
int DumpAssets::handle_event()
{
- mwindow->assets->dump();
+ mwindow->edl->assets->dump();
+ return 1;
+}
+
+DumpUndo::DumpUndo(MWindow *mwindow)
+ : BC_MenuItem(_("Dump Undo"))
+{
+ this->mwindow = mwindow;
+}
+
+int DumpUndo::handle_event()
+{
+ mwindow->dump_undo();
return 1;
}
CursorOnFrames::CursorOnFrames(MWindow *mwindow)
- : BC_MenuItem(_("Align cursor on frames"))
+ : BC_MenuItem(_("Align cursor on frames"),_("Ctrl-a"),'a')
{
this->mwindow = mwindow;
set_checked(mwindow->edl->session->cursor_on_frames);
+ set_ctrl(1);
}
int CursorOnFrames::handle_event()
}
-ScrubSpeed::ScrubSpeed(MWindow *mwindow) : BC_MenuItem(_("Slow Shuttle"))
+ScrubSpeed::ScrubSpeed(MWindow *mwindow)
+ : BC_MenuItem(_("Slow Shuttle"))
{
this->mwindow = mwindow;
}
return 1;
}
-SaveSettingsNow::SaveSettingsNow(MWindow *mwindow) : BC_MenuItem(_("Save settings now"))
+SaveSettingsNow::SaveSettingsNow(MWindow *mwindow)
+ : BC_MenuItem(_("Save settings now"),_("Ctrl-s"),'s')
{
this->mwindow = mwindow;
+ set_ctrl(1);
}
int SaveSettingsNow::handle_event()
return 1;
}
+
+LoadLayoutItem::LoadLayoutItem(LoadLayout *load_layout, const char *text, int no, int hotkey)
+ : BC_MenuItem(text, "", hotkey)
+{
+ this->no = no;
+ this->load_layout = load_layout;
+ if( hotkey ) {
+ char hot_txt[BCSTRLEN];
+ sprintf(hot_txt, _("Ctrl-Shift+F%d"), hotkey-KEY_F1+1);
+ set_ctrl(); set_shift();
+ set_hotkey_text(hot_txt);
+ }
+}
+
+int LoadLayoutItem::handle_event()
+{
+ MWindow *mwindow = load_layout->mwindow;
+ switch( load_layout->action ) {
+ case LAYOUT_LOAD:
+ mwindow->load_layout(no);
+ break;
+ case LAYOUT_SAVE:
+ mwindow->save_layout(no);
+ break;
+ }
+ return 1;
+}
+
+LoadLayout::LoadLayout(MWindow *mwindow, const char *text, int action)
+ : BC_MenuItem(text)
+{
+ this->mwindow = mwindow;
+ this->action = action;
+}
+
+void LoadLayout::create_objects()
+{
+ BC_SubMenu *layout_submenu = new BC_SubMenu();
+ add_submenu(layout_submenu);
+ for( int i=1; i<=4; ++i ) {
+ char text[BCSTRLEN];
+ sprintf(text, _("Layout %d"), i);
+ LoadLayoutItem *load_layout_item =
+ new LoadLayoutItem(this, text, i,
+ action==LAYOUT_LOAD ? KEY_F1-1+i : 0);
+ layout_submenu->add_submenuitem(load_layout_item);
+ }
+}
+