(MaskAuto*)autos->first : (MaskAuto*)NEXT;
}
#endif
- int total_buttons = sizeof(gui->mask_buttons)/sizeof(gui->mask_buttons[0]);
- for( int i=0; i<total_buttons; ++i )
- gui->mask_buttons[i]->update(i==k ? 1 : 0);
gui->update();
gui->update_preview();
}
void CWindowMaskName::update_items(MaskAuto *keyframe)
{
mask_items.remove_all_objects();
- int sz = keyframe->masks.size();
- for( int i=0; i<sz; ++i ) {
- SubMask *sub_mask = keyframe->masks.get(i);
- char *text = sub_mask->name;
+ int sz = !keyframe ? 0 : keyframe->masks.size();
+ for( int i=0; i<SUBMASKS; ++i ) {
+ char text[BCSTRLEN];
+ if( i < sz ) {
+ SubMask *sub_mask = keyframe->masks.get(i);
+ strncpy(text, sub_mask->name, sizeof(text));
+ }
+ else
+ sprintf(text, "%d", i);
mask_items.append(new BC_ListBoxItem(text));
}
update_list(&mask_items);
int CWindowMaskButton::handle_event()
{
mwindow->edl->session->cwindow_mask = no;
- int total_buttons = sizeof(gui->mask_buttons)/sizeof(gui->mask_buttons[0]);
- for( int i=0; i<total_buttons; ++i )
- gui->mask_buttons[i]->update(i==no ? 1 : 0);
gui->name->update(gui->name->mask_items[no]->get_text());
+ gui->update();
gui->update_preview();
return 1;
}
if( (k+=dir) >= SUBMASKS ) k = 0;
else if( k < 0 ) k = SUBMASKS-1;
mwindow->edl->session->cwindow_mask = k;
- int total_buttons = sizeof(gui->mask_buttons)/sizeof(gui->mask_buttons[0]);
- for( int i=0; i<total_buttons; ++i )
- gui->mask_buttons[i]->update(i==k ? 1 : 0);
gui->name->update(gui->name->mask_items[k]->get_text());
+ gui->update();
gui->update_preview();
return 1;
}
//printf("CWindowMaskGUI::update 1\n");
get_keyframe(track, autos, keyframe, mask, point, 0);
- double position = mwindow->edl->local_session->get_selectionstart(1);
- position = mwindow->edl->align_to_frame(position, 0);
- if(track)
- {
+ name->update_items(keyframe);
+ const char *text = "";
+ int sz = !keyframe ? 0 : keyframe->masks.size();
+ int k = mwindow->edl->session->cwindow_mask;
+ if( k >= 0 && k < sz )
+ text = keyframe->masks[k]->name;
+ name->update(text);
+ update_buttons(keyframe, k);
+ if( point ) {
+ x->update(point->x);
+ y->update(point->y);
+ }
+ if( track ) {
+ double position = mwindow->edl->local_session->get_selectionstart(1);
int64_t position_i = track->to_units(position, 0);
-
- if(point) {
- x->update(point->x);
- y->update(point->y);
- }
-
- if(mask) {
- int k = mwindow->edl->session->cwindow_mask;
- feather->update(autos->get_feather(position_i, k, PLAY_FORWARD));
- fade->update(autos->get_fader(position_i, k, PLAY_FORWARD));
- apply_before_plugins->update(keyframe->apply_before_plugins);
- disable_opengl_masking->update(keyframe->disable_opengl_masking);
- }
+ feather->update(autos->get_feather(position_i, k, PLAY_FORWARD));
+ fade->update(autos->get_fader(position_i, k, PLAY_FORWARD));
}
-
- active_point->update((int64_t)mwindow->cwindow->gui->affected_point);
- const char *text = "";
if( keyframe ) {
- name->update_items(keyframe);
- int k = mwindow->edl->session->cwindow_mask;
- if( k >= 0 && k < keyframe->masks.size() )
- text = keyframe->masks[k]->name;
+ apply_before_plugins->update(keyframe->apply_before_plugins);
+ disable_opengl_masking->update(keyframe->disable_opengl_masking);
}
- name->update(text);
+ active_point->update((int64_t)mwindow->cwindow->gui->affected_point);
}
void CWindowMaskGUI::handle_event()
focus->update(focused = v);
}
+void CWindowMaskGUI::update_buttons(MaskAuto *keyframe, int k)
+{
+ int text_color = get_resources()->default_text_color;
+ int high_color = get_resources()->button_highlighted;
+ for( int i=0; i<SUBMASKS; ++i ) {
+ int color = text_color;
+ if( keyframe ) {
+ SubMask *submask = keyframe->get_submask(i);
+ if( submask && submask->points.size() )
+ color = high_color;
+ }
+ mask_blabels[i]->set_color(color);
+ mask_buttons[i]->update(i==k ? 1 : 0);
+ }
+}
+
CWindowRulerGUI::CWindowRulerGUI(MWindow *mwindow, CWindowTool *thread)
- : CWindowToolGUI(mwindow,
- thread,
- _(PROGRAM_NAME ": Ruler"),
- 320,
- 240)
+ : CWindowToolGUI(mwindow, thread, _(PROGRAM_NAME ": Ruler"), 320, 240)
{
}