SET_TRACE
// Mandatory folders
- folders.append(picon = new AssetPicon(mwindow,
- this,
- AEFFECT_FOLDER));
+ folders.append(picon = new AssetPicon(mwindow, this, AEFFECT_FOLDER));
picon->persistent = 1;
- folders.append(picon = new AssetPicon(mwindow,
- this,
- VEFFECT_FOLDER));
+ folders.append(picon = new AssetPicon(mwindow, this, VEFFECT_FOLDER));
picon->persistent = 1;
- folders.append(picon = new AssetPicon(mwindow,
- this,
- ATRANSITION_FOLDER));
+ folders.append(picon = new AssetPicon(mwindow, this, ATRANSITION_FOLDER));
picon->persistent = 1;
- folders.append(picon = new AssetPicon(mwindow,
- this,
- VTRANSITION_FOLDER));
+ folders.append(picon = new AssetPicon(mwindow, this, VTRANSITION_FOLDER));
picon->persistent = 1;
- folders.append(picon = new AssetPicon(mwindow,
- this,
- LABEL_FOLDER));
+ folders.append(picon = new AssetPicon(mwindow, this, LABEL_FOLDER));
+ picon->persistent = 1;
+ folders.append(picon = new AssetPicon(mwindow, this, CLIP_FOLDER));
+ picon->persistent = 1;
+ folders.append(picon = new AssetPicon(mwindow, this, MEDIA_FOLDER));
picon->persistent = 1;
create_label_folder();
void AWindowGUI::reposition_objects()
{
- divider->reposition_window(
- mwindow->theme->adivider_x, mwindow->theme->adivider_y,
- mwindow->theme->adivider_w, mwindow->theme->adivider_h);
asset_list->reposition_window(
mwindow->theme->alist_x, mwindow->theme->alist_y,
mwindow->theme->alist_w, mwindow->theme->alist_h);
{
gui->stop_vicon_drawing();
+ if(get_button_down() && get_buttonpress() == 3)
+ {
+ gui->folderlist_menu->update_titles();
+ gui->folderlist_menu->activate_menu();
+ }
+
strcpy(mwindow->edl->session->current_folder, picon->get_text());
//printf("AWindowFolders::selection_changed 1\n");
gui->asset_list->draw_background();
}
int AWindowFolders::button_press_event()
-{
- return BC_ListBox::button_press_event();
-}
-
-int AWindowFolders::button_release_event()
{
int result = 0;
- if(get_buttonpress() == 3 && is_event_win() && cursor_inside())
+
+ result = BC_ListBox::button_press_event();
+
+ if(!result)
{
- gui->folderlist_menu->update_titles();
- gui->folderlist_menu->activate_menu();
- result = 1;
+ if(get_buttonpress() == 3 && is_event_win() && cursor_inside())
+ {
+ gui->folderlist_menu->update_titles();
+ gui->folderlist_menu->activate_menu();
+ result = 1;
+ }
}
- else
- result = BC_ListBox::button_release_event();
+
+
return result;
}
+
AWindowAssets::AWindowAssets(MWindow *mwindow, AWindowGUI *gui, int x, int y, int w, int h)
: BC_ListBox(x,
y,
}
int AWindowAssets::button_press_event()
-{
- return BC_ListBox::button_press_event();
-}
-
-int AWindowAssets::button_release_event()
{
int result = 0;
- if(get_buttonpress() == 3 && is_event_win() && cursor_inside()) {
- if( !strcasecmp(mwindow->edl->session->current_folder, AEFFECT_FOLDER) ||
- !strcasecmp(mwindow->edl->session->current_folder, VEFFECT_FOLDER) ||
- !strcasecmp(mwindow->edl->session->current_folder, ATRANSITION_FOLDER) ||
- !strcasecmp(mwindow->edl->session->current_folder, VTRANSITION_FOLDER)) {
- BC_ListBox::deactivate_selection();
- gui->assetlist_menu->update_titles();
- gui->assetlist_menu->activate_menu();
- }
- else if (!strcasecmp(mwindow->edl->session->current_folder, LABEL_FOLDER)) {
- gui->label_menu->update();
- gui->label_menu->activate_menu();
- }
- else {
- gui->asset_menu->update();
- gui->asset_menu->activate_menu();
- }
+
+ result = BC_ListBox::button_press_event();
+
+ if(!result && get_buttonpress() == 3 && is_event_win() && cursor_inside())
+ {
+ BC_ListBox::deactivate_selection();
+ gui->assetlist_menu->update_titles();
+ gui->assetlist_menu->activate_menu();
result = 1;
}
- else
- result = BC_ListBox::button_release_event();
+
+
return result;
}
int AWindowAssets::handle_event()
{
//printf("AWindowAssets::handle_event 1 %d %d\n", get_buttonpress(), get_selection(0, 0));
- if(get_selection(0, 0))
- {
- if(!strcasecmp(mwindow->edl->session->current_folder, AEFFECT_FOLDER)) {}
- else if(!strcasecmp(mwindow->edl->session->current_folder, VEFFECT_FOLDER)) {}
- else if(!strcasecmp(mwindow->edl->session->current_folder, ATRANSITION_FOLDER)) {}
- else if(!strcasecmp(mwindow->edl->session->current_folder, VTRANSITION_FOLDER)) {}
- else if(mwindow->vwindows.size()) {
+ AssetPicon *asset_picon = (AssetPicon *)get_selection(0, 0);
+ if( !asset_picon ) return 0;
+ const char *folder = mwindow->edl->session->current_folder;
+ if( !strcasecmp(folder, AEFFECT_FOLDER) ) return 1;
+ if( !strcasecmp(folder, VEFFECT_FOLDER) ) return 1;
+ if( !strcasecmp(folder, ATRANSITION_FOLDER) ) return 1;
+ if( !strcasecmp(folder, VTRANSITION_FOLDER) ) return 1;
+ VWindow *vwindow = mwindow->vwindows.size() > DEFAULT_VWINDOW ?
+ mwindow->vwindows.get(DEFAULT_VWINDOW) : 0;
+ if( !vwindow || !vwindow->is_running() ) return 1;
//printf("AWindowAssets::handle_event 2 %d %d\n", get_buttonpress(), get_selection(0, 0));
- mwindow->vwindows.get(DEFAULT_VWINDOW)->gui->lock_window("AWindowAssets::handle_event");
-
- if(((AssetPicon*)get_selection(0, 0))->indexable)
- mwindow->vwindows.get(DEFAULT_VWINDOW)->change_source(((AssetPicon*)get_selection(0, 0))->indexable);
- else
- if(((AssetPicon*)get_selection(0, 0))->edl)
- mwindow->vwindows.get(DEFAULT_VWINDOW)->change_source(((AssetPicon*)get_selection(0, 0))->edl);
- mwindow->vwindows.get(DEFAULT_VWINDOW)->gui->unlock_window();
- }
- return 1;
- }
-
- return 0;
+ vwindow->gui->lock_window("AWindowAssets::handle_event");
+ if( asset_picon->indexable )
+ vwindow->change_source(asset_picon->indexable);
+ else if( asset_picon->edl )
+ vwindow->change_source(asset_picon->edl);
+ vwindow->gui->unlock_window();
+ return 1;
}
int AWindowAssets::selection_changed()
if(((AssetPicon*)get_selection(0, 0))->label)
gui->label_menu->activate_menu();
}
+ else
+ {
+ if(((AssetPicon*)get_selection(0, 0))->indexable)
+ gui->asset_menu->update();
+ else
+ if(((AssetPicon*)get_selection(0, 0))->edl)
+ gui->asset_menu->update();
+
+
+
+ gui->asset_menu->activate_menu();
+ }
BC_ListBox::deactivate_selection();
return 1;
for(int i = 0; i < mwindow->vwindows.size(); i++)
{
VWindow *vwindow = mwindow->vwindows.get(i);
+ if( !vwindow->is_running() ) continue;
vwindow->gui->lock_window("AWindowAssets::drag_motion_event");
vwindow->gui->drag_motion();
vwindow->gui->unlock_window();
for(int i = 0; i < mwindow->vwindows.size(); i++)
{
VWindow *vwindow = mwindow->vwindows.get(i);
+ if( !vwindow->is_running() ) continue;
vwindow->gui->lock_window("AWindowAssets::drag_stop_event");
result = vwindow->gui->drag_stop();
vwindow->gui->unlock_window();