#include "edl.h"
#include "edlsession.h"
#include "language.h"
+#include "mainsession.h"
#include "mwindow.h"
void FolderListMenu::create_objects()
{
+ BC_MenuItem *menu_item;
+ BC_SubMenu *submenu;
add_item(format = new FolderListFormat(mwindow, this));
add_item(new FolderListSort(mwindow, this));
+ add_item(menu_item = new BC_MenuItem(_("Folder...")));
+ menu_item->add_submenu(submenu = new BC_SubMenu());
+ submenu->add_submenuitem(new FolderListNew(mwindow, this, _("New Media"), 0));
+ submenu->add_submenuitem(new FolderListNew(mwindow, this, _("New Clips"), 1));
+ submenu->add_submenuitem(new FolderListModify(mwindow, this));
+ submenu->add_submenuitem(new FolderListDelete(mwindow, this));
update_titles();
}
return 1;
}
+FolderListNew::FolderListNew(MWindow *mwindow, FolderListMenu *menu,
+ const char *text, int is_clips)
+ : BC_MenuItem(text)
+{
+ this->mwindow = mwindow;
+ this->menu = menu;
+ this->is_clips = is_clips;
+}
+
+int FolderListNew::handle_event()
+{
+ int cx, cy, cw = 320, ch = 120;
+ menu->gui->get_abs_cursor(cx, cy);
+ if( (cx-=cw/2) < 50 ) cx = 50;
+ if( (cy-=ch/2) < 50 ) cy = 50;
+ menu->gui->new_folder_thread->start(cx, cy, cw, ch, is_clips);
+ return 1;
+}
+
+FolderListModify::FolderListModify(MWindow *mwindow, FolderListMenu *menu)
+ : BC_MenuItem(_("Modify folder"))
+{
+ this->mwindow = mwindow;
+ this->menu = menu;
+}
+
+int FolderListModify::handle_event()
+{
+ int awindow_folder = mwindow->edl->session->awindow_folder;
+ BinFolder *folder = mwindow->edl->get_folder(awindow_folder);
+ if( folder ) {
+ int bw = mwindow->session->bwindow_w;
+ int bh = mwindow->session->bwindow_h;
+ int cx, cy;
+ menu->gui->get_abs_cursor(cx, cy);
+ if( (cx-=bw/2) < 50 ) cx = 50;
+ if( (cy-=bh/2) < 50 ) cy = 50;
+ menu->gui->modify_folder_thread->start(folder, cx, cy, bw, bh);
+ }
+ return 1;
+}
+
+FolderListDelete::FolderListDelete(MWindow *mwindow, FolderListMenu *menu)
+ : BC_MenuItem(_("Delete folder"))
+{
+ this->mwindow = mwindow;
+ this->menu = menu;
+}
+
+int FolderListDelete::handle_event()
+{
+ AssetPicon *picon = (AssetPicon *)menu->gui->folder_list->get_selection(0, 0);
+ if( picon && picon->foldernum >= AWINDOW_USER_FOLDERS ) {
+ int foldernum = picon->foldernum;
+ BinFolder *folder = mwindow->edl->get_folder(foldernum);
+ mwindow->delete_folder(folder->title);
+ if( mwindow->edl->session->awindow_folder == foldernum )
+ mwindow->edl->session->awindow_folder = AW_MEDIA_FOLDER;
+ mwindow->awindow->gui->async_update_assets();
+ }
+ return 1;
+}
+