return lbox->get_item_y(picon) + lbox->get_title_h();
}
+
AssetPicon::AssetPicon(MWindow *mwindow,
- AWindowGUI *gui,
- Indexable *indexable)
+ AWindowGUI *gui, Indexable *indexable)
: BC_ListBoxItem()
{
reset();
}
AssetPicon::AssetPicon(MWindow *mwindow,
- AWindowGUI *gui,
- EDL *edl)
+ AWindowGUI *gui, EDL *edl)
: BC_ListBoxItem()
{
reset();
AssetPicon::AssetPicon(MWindow *mwindow,
AWindowGUI *gui, int folder, int persist)
- : BC_ListBoxItem(_(AWindowGUI::folder_names[folder]), gui->folder_icon)
+ : BC_ListBoxItem(_(AWindowGUI::folder_names[folder]),
+ folder>=0 && folder<AWINDOW_FOLDERS ?
+ gui->folder_icons[folder]: gui->folder_icon)
{
reset();
foldernum = folder;
}
AssetPicon::AssetPicon(MWindow *mwindow,
- AWindowGUI *gui, const char *folder_name, int folder_num)
- : BC_ListBoxItem(folder_name, gui->folder_icon)
-{
- reset();
- foldernum = folder_num;
- this->mwindow = mwindow;
- this->gui = gui;
-}
-
-AssetPicon::AssetPicon(MWindow *mwindow,
- AWindowGUI *gui,
- PluginServer *plugin)
+ AWindowGUI *gui, PluginServer *plugin)
: BC_ListBoxItem()
{
reset();
this->plugin = plugin;
}
-
AssetPicon::AssetPicon(MWindow *mwindow,
- AWindowGUI *gui,
- Label *label)
+ AWindowGUI *gui, Label *label)
: BC_ListBoxItem()
{
reset();
{
this->mwindow = mwindow;
this->awindow = awindow;
- file_icon = 0;
- audio_icon = 0;
- video_icon = 0;
- folder_icon = 0;
- clip_icon = 0;
- label_icon = 0;
- atransition_icon = 0; atransition_vframe = 0;
- vtransition_icon = 0; vtransition_vframe = 0;
- aeffect_icon = 0; aeffect_vframe = 0;
- ladspa_icon = 0; ladspa_vframe = 0;
- veffect_icon = 0; veffect_vframe = 0;
- ff_aud_icon = 0; ff_aud_vframe = 0;
- ff_vid_icon = 0; ff_vid_vframe = 0;
+
+ file_vframe = 0; file_icon = 0;
+ folder_vframe = 0; folder_icon = 0;
+ audio_vframe = 0; audio_icon = 0;
+ video_vframe = 0; video_icon = 0;
+ label_vframe = 0; label_icon = 0;
+
+ atransition_vframe = 0; atransition_icon = 0;
+ vtransition_vframe = 0; vtransition_icon = 0;
+ aeffect_vframe = 0; aeffect_icon = 0;
+ ladspa_vframe = 0; ladspa_icon = 0;
+ veffect_vframe = 0; veffect_icon = 0;
+ ff_aud_vframe = 0; ff_aud_icon = 0;
+ ff_vid_vframe = 0; ff_vid_icon = 0;
+
+ aeffect_folder_vframe = 0; aeffect_folder_icon = 0;
+ atransition_folder_vframe = 0; atransition_folder_icon = 0;
+ clip_folder_vframe = 0; clip_folder_icon = 0;
+ label_folder_vframe = 0; label_folder_icon = 0;
+ media_folder_vframe = 0; media_folder_icon = 0;
+ proxy_folder_vframe = 0; proxy_folder_icon = 0;
+ veffect_folder_vframe = 0; veffect_folder_icon = 0;
+ vtransition_folder_vframe = 0; vtransition_folder_icon = 0;
+
+ ladspa_vframe = 0; ladspa_icon = 0;
+ ff_aud_vframe = 0; ff_aud_icon = 0;
+ ff_vid_vframe = 0; ff_vid_icon = 0;
+
+ clip_vframe = 0; clip_icon = 0;
+ atransition_vframe = 0; atransition_icon = 0;
+ vtransition_vframe = 0; vtransition_icon = 0;
+ aeffect_vframe = 0; aeffect_icon = 0;
+ veffect_vframe = 0; veffect_icon = 0;
+
plugin_visibility = ((uint64_t)1<<(8*sizeof(uint64_t)-1))-1;
newfolder_thread = 0;
asset_menu = 0;
displayed_assets[1].remove_all_objects();
delete vicon_thread;
- delete file_icon; delete file_res;
- delete audio_icon; delete audio_res;
- delete video_icon; delete video_res;
- delete folder_icon; delete folder_res;
- delete clip_icon; delete clip_res;
- delete label_icon; delete label_res;
- delete atransition_icon; delete atrans_res;
- delete vtransition_icon; delete vtrans_res;
- delete aeffect_icon; delete aeffect_res;
- delete veffect_icon; delete veffect_res;
- delete ladspa_icon; delete ladspa_res;
- delete ff_aud_icon; delete ff_aud_res;
- delete ff_vid_icon; delete ff_vid_res;
delete newfolder_thread;
+
delete asset_menu;
delete clip_menu;
delete label_menu;
delete folderlist_menu;
delete temp_picon;
delete remove_plugin;
+
+ delete file_vframe; delete file_icon;
+ delete folder_vframe; delete folder_icon;
+ delete audio_vframe; delete audio_icon;
+ delete video_vframe; delete video_icon;
+ delete label_vframe; delete label_icon;
+ delete clip_vframe; delete clip_icon;
+ delete aeffect_folder_vframe; delete aeffect_folder_icon;
+ delete atransition_folder_vframe; delete atransition_folder_icon;
+ delete veffect_folder_vframe; delete veffect_folder_icon;
+ delete vtransition_folder_vframe; delete vtransition_folder_icon;
+ delete clip_folder_vframe; delete clip_folder_icon;
+ delete label_folder_vframe; delete label_folder_icon;
+ delete media_folder_vframe; delete media_folder_icon;
+ delete proxy_folder_vframe; delete proxy_folder_icon;
+ delete ladspa_vframe; delete ladspa_icon;
+ delete ff_aud_vframe; delete ff_aud_icon;
+ delete ff_vid_vframe; delete ff_vid_icon;
+ delete atransition_vframe; delete atransition_icon;
+ delete vtransition_vframe; delete vtransition_icon;
+ delete aeffect_vframe; delete aeffect_icon;
+ delete veffect_vframe; delete veffect_icon;
}
bool AWindowGUI::protected_pixmap(BC_Pixmap *icon)
icon == aeffect_icon ||
icon == ladspa_icon ||
icon == ff_aud_icon ||
- icon == ff_vid_icon;
+ icon == ff_vid_icon ||
+ icon == aeffect_folder_icon ||
+ icon == veffect_folder_icon ||
+ icon == atransition_folder_icon ||
+ icon == vtransition_folder_icon ||
+ icon == label_folder_icon ||
+ icon == clip_folder_icon ||
+ icon == media_folder_icon ||
+ icon == proxy_folder_icon;
}
VFrame *AWindowGUI::get_picon(const char *name, const char *plugin_icons)
return vframe;
}
-VFrame *AWindowGUI::resource_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn, int idx)
+void AWindowGUI::resource_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn, int idx)
{
- VFrame *ret = vfrm = get_picon(fn);
- if( !ret ) vfrm = BC_WindowBase::get_resources()->type_to_icon[idx];
+ vfrm = get_picon(fn);
+ if( !vfrm ) vfrm = BC_WindowBase::get_resources()->type_to_icon[idx];
icon = new BC_Pixmap(this, vfrm, PIXMAP_ALPHA);
- return ret;
}
-VFrame *AWindowGUI::theme_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn)
+void AWindowGUI::theme_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn)
{
- VFrame *ret = vfrm = get_picon(fn);
- if( !ret ) vfrm = mwindow->theme->get_image(fn);
+ vfrm = get_picon(fn);
+ if( !vfrm ) vfrm = mwindow->theme->get_image(fn);
icon = new BC_Pixmap(this, vfrm, PIXMAP_ALPHA);
- return ret;
}
-VFrame *AWindowGUI::plugin_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn, unsigned char *png)
+void AWindowGUI::plugin_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn, unsigned char *png)
{
- VFrame *ret = vfrm = get_picon(fn);
- if( !ret ) vfrm = new VFramePng(png);
+ vfrm = get_picon(fn);
+ if( !vfrm ) vfrm = new VFramePng(png);
icon = new BC_Pixmap(this, vfrm, PIXMAP_ALPHA);
- return vfrm;
}
void AWindowGUI::create_objects()
set_icon(mwindow->theme->get_image("awindow_icon"));
- file_res = resource_icon(file_vframe, file_icon, "film_icon", ICON_UNKNOWN);
- folder_res = resource_icon(folder_vframe, folder_icon, "folder_icon", ICON_FOLDER);
- audio_res = resource_icon(audio_vframe, audio_icon, "audio_icon", ICON_SOUND);
- video_res = resource_icon(video_vframe, video_icon, "video_icon", ICON_FILM);
- label_res = resource_icon(label_vframe, label_icon, "label_icon", ICON_LABEL);
-
- clip_res = theme_icon(clip_vframe, clip_icon, "clip_icon");
- atrans_res = theme_icon(atransition_vframe, atransition_icon, "atransition_icon");
- vtrans_res = theme_icon(vtransition_vframe, vtransition_icon, "vtransition_icon");
- aeffect_res = theme_icon(aeffect_vframe, aeffect_icon, "aeffect_icon");
- veffect_res = theme_icon(veffect_vframe, veffect_icon, "veffect_icon");
-
- ladspa_res = plugin_icon(ladspa_vframe, ladspa_icon, "lad_picon", lad_picon_png);
- ff_aud_res = plugin_icon(ff_aud_vframe, ff_aud_icon, "ff_audio", ff_audio_png);
- ff_vid_res = plugin_icon(ff_vid_vframe, ff_vid_icon, "ff_video", ff_video_png);
+ resource_icon(file_vframe, file_icon, "film_icon", ICON_UNKNOWN);
+ resource_icon(folder_vframe, folder_icon, "folder_icon", ICON_FOLDER);
+ resource_icon(audio_vframe, audio_icon, "audio_icon", ICON_SOUND);
+ resource_icon(video_vframe, video_icon, "video_icon", ICON_FILM);
+ resource_icon(label_vframe, label_icon, "label_icon", ICON_LABEL);
+
+ theme_icon(aeffect_folder_vframe, aeffect_folder_icon, "aeffect_folder");
+ theme_icon(atransition_folder_vframe, atransition_folder_icon, "atransition_folder");
+ theme_icon(clip_folder_vframe, clip_folder_icon, "clip_folder");
+ theme_icon(label_folder_vframe, label_folder_icon, "label_folder");
+ theme_icon(media_folder_vframe, media_folder_icon, "media_folder");
+ theme_icon(proxy_folder_vframe, proxy_folder_icon, "proxy_folder");
+ theme_icon(veffect_folder_vframe, veffect_folder_icon, "veffect_folder");
+ theme_icon(vtransition_folder_vframe, vtransition_folder_icon, "vtransition_folder");
+
+ folder_icons[AW_AEFFECT_FOLDER] = aeffect_folder_icon;
+ folder_icons[AW_VEFFECT_FOLDER] = veffect_folder_icon;
+ folder_icons[AW_ATRANSITION_FOLDER] = atransition_folder_icon;
+ folder_icons[AW_VTRANSITION_FOLDER] = vtransition_folder_icon;
+ folder_icons[AW_LABEL_FOLDER] = label_folder_icon;
+ folder_icons[AW_CLIP_FOLDER] = clip_folder_icon;
+ folder_icons[AW_MEDIA_FOLDER] = media_folder_icon;
+ folder_icons[AW_PROXY_FOLDER] = proxy_folder_icon;
+
+ theme_icon(clip_vframe, clip_icon, "clip_icon");
+ theme_icon(atransition_vframe, atransition_icon, "atransition_icon");
+ theme_icon(vtransition_vframe, vtransition_icon, "vtransition_icon");
+ theme_icon(aeffect_vframe, aeffect_icon, "aeffect_icon");
+ theme_icon(veffect_vframe, veffect_icon, "veffect_icon");
+
+ plugin_icon(ladspa_vframe, ladspa_icon, "lad_picon", lad_picon_png);
+ plugin_icon(ff_aud_vframe, ff_aud_icon, "ff_audio", ff_audio_png);
+ plugin_icon(ff_vid_vframe, ff_vid_icon, "ff_video", ff_video_png);
// Mandatory folders
folders.append(new AssetPicon(mwindow, this, AW_AEFFECT_FOLDER, 1));
mwindow->theme->get_awindow_sizes(this);
load_defaults(mwindow->defaults);
- add_subwindow(asset_list = new AWindowAssets(mwindow,
- this,
- mwindow->theme->alist_x,
- mwindow->theme->alist_y,
- mwindow->theme->alist_w,
- mwindow->theme->alist_h));
+ add_subwindow(asset_list = new AWindowAssets(mwindow, this,
+ mwindow->theme->alist_x, mwindow->theme->alist_y,
+ mwindow->theme->alist_w, mwindow->theme->alist_h));
vicon_thread = new VIconThread(asset_list);
vicon_thread->start();
- add_subwindow(divider = new AWindowDivider(mwindow,
- this,
- mwindow->theme->adivider_x,
- mwindow->theme->adivider_y,
- mwindow->theme->adivider_w,
- mwindow->theme->adivider_h));
+ add_subwindow(divider = new AWindowDivider(mwindow, this,
+ mwindow->theme->adivider_x, mwindow->theme->adivider_y,
+ mwindow->theme->adivider_w, mwindow->theme->adivider_h));
divider->set_cursor(HSEPARATE_CURSOR, 0, 0);
add_subwindow(title);
y += title->get_h() + 5;
list = new BC_ListBox(x, y,
- get_w() - 20, ok_button->get_y() - y - 5, LISTBOX_TEXT, &plugin_list,
- 0, 0, 1, 0, 0, LISTBOX_SINGLE, ICON_LEFT, 0);
+ get_w() - 20, ok_button->get_y() - y - 5, LISTBOX_TEXT, &plugin_list,
+ 0, 0, 1, 0, 0, LISTBOX_SINGLE, ICON_LEFT, 0);
add_subwindow(list);
show_window();
}
stop_vicon_drawing();
for( int i = 0; i < folders.total; i++ ) {
AssetPicon *picon = (AssetPicon*)folders.values[i];
- picon->in_use--;
+ picon->in_use = 0;
}
// Search assets for folders
{
for( int i = 0; i < assets.total; i++ ) {
AssetPicon *picon = (AssetPicon*)assets.values[i];
- picon->in_use--;
+ picon->in_use = 0;
}
// Synchronize EDL clips
default:
sort_picons(&assets);
}
+// reset xyposition
+ asset_list->update_format(asset_list->get_format(), 0);
+ update_assets();
+}
+void AWindowGUI::sort_folders()
+{
+ sort_picons(&folders);
+ folder_list->update_format(folder_list->get_format(), 0);
update_assets();
}
0, // If this listbox is a popup window
LISTBOX_MULTIPLE, // Select one item or multiple items
ICON_TOP, // Position of icon relative to text of each item
- 1) // Allow drag
+ -1) // Allow drags, require shift for scrolling
{
this->mwindow = mwindow;
this->gui = gui;
return 1;
}
-AWindowInfo::AWindowInfo(MWindow *mwindow, AWindowGUI *gui, int x, int y)
- : BC_Button(x, y, mwindow->theme->infoasset_data)
-{
- this->mwindow = mwindow;
- this->gui = gui;
- set_tooltip(_("Edit information on asset"));
-}
-
-int AWindowInfo::handle_event()
-{
- int cur_x, cur_y;
- gui->get_abs_cursor_xy(cur_x, cur_y, 0);
- gui->awindow->asset_edit->edit_asset(gui->selected_asset(), cur_x, cur_y);
- return 1;
-}
+// AWindowInfo::AWindowInfo(MWindow *mwindow, AWindowGUI *gui, int x, int y)
+// : BC_Button(x, y, mwindow->theme->infoasset_data)
+// {
+// this->mwindow = mwindow;
+// this->gui = gui;
+// set_tooltip(_("Edit information on asset"));
+// }
+//
+// int AWindowInfo::handle_event()
+// {
+// int cur_x, cur_y;
+// gui->get_abs_cursor_xy(cur_x, cur_y, 0);
+// gui->awindow->asset_edit->edit_asset(gui->selected_asset(), cur_x, cur_y);
+// return 1;
+// }
AWindowRedrawIndex::AWindowRedrawIndex(MWindow *mwindow, AWindowGUI *gui, int x, int y)
: BC_Button(x, y, mwindow->theme->redrawindex_data)
this->idx = idx;
uint64_t msk = (uint64_t)1 << idx, vis = menu->gui->plugin_visibility;
int chk = (msk & vis) ? 1 : 0;
- set_checked(chk);
+ set_checked(chk);
}
int AddPluginItem::handle_event()
{
- int chk = get_checked() ^ 1;
- set_checked(chk);
+ int chk = get_checked() ^ 1;
+ set_checked(chk);
uint64_t msk = (uint64_t)1 << idx, vis = menu->gui->plugin_visibility;
menu->gui->plugin_visibility = chk ? vis | msk : vis & ~msk;
menu->gui->update_effects();
void AWindowListFormat::update()
{
- set_text(mwindow->edl->session->assetlist_format == ASSETS_TEXT ?
- (char*)_("Display icons") : (char*)_("Display text"));
+ set_text(mwindow->edl->session->assetlist_format == ASSETS_TEXT ?
+ (char*)_("Display icons") : (char*)_("Display text"));
}
AWindowListSort::AWindowListSort(MWindow *mwindow, AWindowGUI *gui)
return 1;
}
-