- add_subwindow(title = new BC_Title(x, y, _("Mode:")));
- add_subwindow(mode = new CWindowMaskMode(mwindow,
- this, x + title->get_w() + margin, y, ""));
- mode->create_objects();
- y += mode->get_h() + margin;
- add_subwindow(title = new BC_Title(x, y, _("Value:")));
- add_subwindow(value = new CWindowMaskValue(mwindow, this, x + title->get_w() + margin, y));
- y += value->get_h() + margin;
- add_subwindow(delete_point = new CWindowMaskDelete(mwindow, this, x, y));
- int x1 = x + delete_point->get_w() + 2*margin;
- add_subwindow(title = new BC_Title(x1, y, _("Point:")));
- x1 += title->get_w() + margin;
- active_point = new CWindowMaskAffectedPoint(mwindow, this, x1, y);
- active_point->create_objects();
- y += delete_point->get_h() + margin;
- add_subwindow(title = new BC_Title(x, y, _("Mask number:")));
- number = new CWindowMaskNumber(mwindow,
- this, x + title->get_w() + margin, y);
- number->create_objects();
- y += number->get_h() + margin;
+ add_subwindow(title = new BC_Title(x,y, _("Track:")));
+ int x1 = x + 90;
+ Track *track = mwindow->cwindow->calculate_affected_track();
+ const char *text = track ? track->title : "";
+ mwindow->cwindow->mask_track_id = track ? track->get_id() : -1;
+ mask_on_track = new CWindowMaskOnTrack(mwindow, this, x1, y, 100, text);
+ mask_on_track->create_objects();
+ mask_on_track->set_tooltip(_("Video track"));
+ int x2 = x1 + mask_on_track->get_w();
+ add_subwindow(mask_track_tumbler = new CWindowMaskTrackTumbler(mwindow, this, x2, y));
+ mwindow->edl->local_session->solo_track_id = -1;
+ x2 = del_x + (del_w - CWindowMaskSoloTrack::calculate_w(this)) / 2;
+ add_subwindow(mask_solo_track = new CWindowMaskSoloTrack(mwindow, this, x2, y, 0));
+ y += mask_on_track->get_h() + margin;
+ add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Masks")));
+ y += title_bar->get_h() + margin;
+ add_subwindow(title = new BC_Title(x, y, _("Mask:")));
+ mask_name = new CWindowMaskName(mwindow, this, x1, y, "");
+ mask_name->create_objects();
+ mask_name->set_tooltip(_("Mask name"));
+ add_subwindow(clr_mask = new CWindowMaskClrMask(mwindow, this, clr_x, y));
+ add_subwindow(del_mask = new CWindowMaskDelMask(mwindow, this, del_x, y));
+ y += mask_name->get_h() + 2*margin;
+
+ add_subwindow(title = new BC_Title(x, y, _("Select:")));
+ int bw = 0, bh = 0;
+ BC_CheckBox::calculate_extents(this, &bw, &bh);
+ int bdx = bw + 2*margin;
+ x2 = x1;
+ for( int i=0; i<SUBMASKS; x2+=bdx, ++i ) {
+ int v = i == mwindow->edl->session->cwindow_mask ? 1 : 0;
+ mask_buttons[i] = new CWindowMaskButton(mwindow, this, x2, y, i, v);
+ add_subwindow(mask_buttons[i]);
+ }
+ x2 += margin;
+ add_subwindow(mask_thumbler = new CWindowMaskThumbler(mwindow, this, x2, y));
+ y += bh + margin;
+ x2 = x1;
+ for( int i=0; i<SUBMASKS; x2+=bdx, ++i ) {
+ char text[BCSTRLEN]; sprintf(text, "%d", i);
+ int tx = (bw - get_text_width(MEDIUMFONT, text)) / 2;
+ mask_blabels[i] = new BC_Title(x2+tx, y, text);
+ add_subwindow(mask_blabels[i]);
+ }
+ y += mask_blabels[0]->get_h() + margin;
+ add_subwindow(unclr_mask = new CWindowMaskUnclear(mwindow, this, x, y, x1-x-2*margin));
+ x2 = x1;
+ for( int i=0; i<SUBMASKS; x2+=bdx, ++i ) {
+ mask_enables[i] = new CWindowMaskEnable(mwindow, this, x2, y, i, 1);
+ add_subwindow(mask_enables[i]);
+ }
+ y += mask_enables[0]->get_h() + 2*margin;
+ add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Fade & Feather")));
+ y += title_bar->get_h() + margin;
+
+ add_subwindow(title = new BC_Title(x, y, _("Fade:")));
+ fade = new CWindowMaskFade(mwindow, this, x1, y);
+ fade->create_objects();
+ x2 = x1 + fade->get_w() + 2*margin;
+ int w2 = clr_x-2*margin - x2;
+ add_subwindow(fade_slider = new CWindowMaskFadeSlider(mwindow, this, x2, y, w2));
+ add_subwindow(gang_fader = new CWindowMaskGangFader(mwindow, this, clr_x, y));
+ y += fade->get_h() + margin;