#include "threadloader.inc"
#include "viewmenu.inc"
-#define TOTAL_LOADS 10 // number of files to cache
+#define TOTAL_LOADS 20 // number of files to cache
#define TOTAL_EFFECTS 10 // number of effects to cache
#define LAYOUT_LOAD 0
#define LAYOUT_SAVE 1
+class LoadRecentItem
+{
+public:
+ LoadRecentItem(const char *path);
+ ~LoadRecentItem();
+ char *path;
+};
+
+class LoadRecentItems : public ArrayList<LoadRecentItem *>
+{
+public:
+ LoadRecentItems();
+ ~LoadRecentItems();
+ int add_load(char *path);
+};
+
+class LoadRecentSubMenu : public BC_SubMenu
+{
+public:
+ LoadRecentSubMenu(LoadRecent *load_recent);
+ ~LoadRecentSubMenu();
+
+ LoadRecent *load_recent;
+};
+
+class LoadRecent : public BC_MenuItem
+{
+public:
+ LoadRecent(MWindow *mwindow, MainMenu *main_menu);
+ ~LoadRecent();
+ void create_objects();
+ LoadPrevious *get_next_item();
+ int activate_submenu();
+ void scan_items(int use_xml);
+
+ MWindow *mwindow;
+ MainMenu *main_menu;
+ LoadRecentSubMenu *submenu;
+ int total_items;
+};
+
+
class MainMenu : public BC_MenuBar
{
public:
MenuVEffects *veffects;
Load *load_file;
- LoadPrevious *load[TOTAL_LOADS];
- int total_loads;
+ LoadRecentItems load;
+ LoadRecent *load_recent;
RecordMenuItem *record_menu_item;
RenderItem *render;
EditClearMenu *clear_menu;
Undo *undo;
Redo *redo;
- int total_aeffects;
- int total_veffects;
- BC_Menu *filemenu, *audiomenu, *videomenu; // needed by most recents
+ BC_Menu *filemenu;
+ BC_Menu *audiomenu, *videomenu; // needed by most recents
+ int total_aeffects, total_veffects;
KeyframeCurveType *keyframe_curve_type;
LabelsFollowEdits *labels_follow_edits;
SplitX *split_x;
SplitY *split_y;
MixerItems *mixer_items;
+ AlignTimecodes *align_timecodes;
LoadLayout *load_layout;
LoadLayout *save_layout;
};
MWindow *mwindow;
};
+class ClearSelect : public BC_MenuItem
+{
+public:
+ ClearSelect(MWindow *mwindow);
+ int handle_event();
+ MWindow *mwindow;
+};
+
class CutCommercials : public BC_MenuItem
{
public:
public:
MixerItems(MWindow *mwindow);
void create_objects();
+ int activate_submenu();
+
MWindow *mwindow;
};
-class MixerViewer : public BC_MenuItem
+class MixerItem : public BC_MenuItem
+{
+public:
+ MixerItem(MixerItems *mixer_items, const char *text, int idx);
+ MixerItem(MixerItems *mixer_items, const char *text, const char *hotkey_text, int hotkey);
+ virtual int handle_event();
+
+ MixerItems *mixer_items;
+ int idx;
+};
+
+class MixerViewer : public MixerItem
{
public:
- MixerViewer(MWindow *mwindow);
+ MixerViewer(MixerItems *mixer_items);
int handle_event();
- MWindow *mwindow;
};
-class TileMixers : public BC_MenuItem
+class TileMixers : public MixerItem
{
public:
- TileMixers(MWindow *mwindow);
+ TileMixers(MixerItems *mixer_items);
+ int handle_event();
+};
+
+class AlignMixers : public MixerItem
+{
+public:
+ AlignMixers(MixerItems *mixer_items);
int handle_event();
- MWindow *mwindow;
};
-class AlignMixers : public BC_MenuItem
+class AlignTimecodes : public BC_MenuItem
{
public:
- AlignMixers(MWindow *mwindow);
+ AlignTimecodes(MWindow *mwindow);
int handle_event();
MWindow *mwindow;
};
MWindow *mwindow;
};
+class SwapTracksUp : public BC_MenuItem
+{
+public:
+ SwapTracksUp(MWindow *mwindow);
+ int handle_event();
+ MWindow *mwindow;
+};
+
+class SwapTracksDown : public BC_MenuItem
+{
+public:
+ SwapTracksDown(MWindow *mwindow);
+ int handle_event();
+ MWindow *mwindow;
+};
+
class DeleteTracks : public BC_MenuItem
{
public: