X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmtimebar.C;h=41ce4132a7ac3b200af1c5990aaaf962909129ad;hp=94e7f2d1c2bac9f4aee689ce49234c9e9c81b4b8;hb=HEAD;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1 diff --git a/cinelerra-5.1/cinelerra/mtimebar.C b/cinelerra-5.1/cinelerra/mtimebar.C index 94e7f2d1..41ce4132 100644 --- a/cinelerra-5.1/cinelerra/mtimebar.C +++ b/cinelerra-5.1/cinelerra/mtimebar.C @@ -53,6 +53,8 @@ MTimeBar::MTimeBar(MWindow *mwindow, { this->gui = gui; this->pane = 0; +// *** CONTEXT_HELP *** + context_help_set_keyword("Time Format section"); } MTimeBar::MTimeBar(MWindow *mwindow, @@ -65,6 +67,8 @@ MTimeBar::MTimeBar(MWindow *mwindow, { this->gui = mwindow->gui; this->pane = pane; +// *** CONTEXT_HELP *** + context_help_set_keyword("Time Format section"); } void MTimeBar::create_objects() @@ -101,10 +105,11 @@ void MTimeBar::stop_transport() gui->stop_transport("MTimeBar::stop_transport"); } -#define TEXT_MARGIN 4 -#define TICK_SPACING 5 -#define LINE_MARGIN 3 -#define TICK_MARGIN 16 +#define TEXT_MARGIN xS(4) +#define TICK_SPACING xS(5) +#define LINE_MARGIN yS(3) +#define TICK_MARGIN yS(16) + void MTimeBar::draw_time() { @@ -307,6 +312,7 @@ void MTimeBar::draw_time() } case TIME_FRAMES: + case TIME_TIMECODE: case TIME_HMSF: // One frame per text mark if(frame_seconds >= min_time) @@ -362,11 +368,14 @@ void MTimeBar::draw_time() // Set tick interval tick_interval = text_interval; + double timecode_offset = 0; switch(mwindow->edl->session->time_format) { - case TIME_HMSF: + case TIME_TIMECODE: + timecode_offset = mwindow->get_timecode_offset(); // fall thru case TIME_FEET_FRAMES: + case TIME_HMSF: case TIME_FRAMES: if(frame_seconds / time_per_pixel > TICK_SPACING) tick_interval = frame_seconds; @@ -394,12 +403,13 @@ void MTimeBar::draw_time() mwindow->edl->session->time_format, sample_rate, mwindow->edl->session->frame_rate, - mwindow->edl->session->frames_per_foot); + mwindow->edl->session->frames_per_foot, + timecode_offset); set_color(get_resources()->default_text_color); set_font(MEDIUMFONT); draw_text(pixel + TEXT_MARGIN, get_text_ascent(MEDIUMFONT), string); - draw_line(pixel, LINE_MARGIN, pixel, get_h() - 2); + draw_line(pixel, LINE_MARGIN, pixel, get_h() - yS(2)); double position2 = start_position + text_interval * (iteration + 1); int pixel2 = (int64_t)(position2 / time_per_pixel) - @@ -413,7 +423,7 @@ void MTimeBar::draw_time() mwindow->edl->local_session->view_start[pane->number]; if(labs(pixel - pixel1) > 1 && labs(pixel - pixel2) > 1) - draw_line(pixel, TICK_MARGIN, pixel, get_h() - 2); + draw_line(pixel, TICK_MARGIN, pixel, get_h() - yS(2)); } iteration++; } @@ -657,10 +667,6 @@ void MTimeBar::activate_timeline() } - - - - TimeBarPopupItem::TimeBarPopupItem(MWindow *mwindow, TimeBarPopup *menu, const char *text, @@ -675,7 +681,7 @@ TimeBarPopupItem::TimeBarPopupItem(MWindow *mwindow, int TimeBarPopupItem::handle_event() { mwindow->edl->session->time_format = value; - mwindow->gui->update(0, 0, 1, 0, 0, 1, 0); + mwindow->gui->update(0, NO_DRAW, 1, 0, 0, 1, 0); mwindow->gui->redraw_time_dependancies(); return 1; } @@ -683,11 +689,7 @@ int TimeBarPopupItem::handle_event() TimeBarPopup::TimeBarPopup(MWindow *mwindow) - : BC_PopupMenu(0, - 0, - 0, - "", - 0) + : BC_PopupMenu(0, 0, 0, "", 0) { this->mwindow = mwindow; } @@ -700,47 +702,28 @@ TimeBarPopup::~TimeBarPopup() void TimeBarPopup::create_objects() { add_item(items[0] = new TimeBarPopupItem(mwindow, - this, - TIME_HMS_TEXT, - TIME_HMS)); + this, TIME_HMS_TEXT, TIME_HMS)); add_item(items[1] = new TimeBarPopupItem(mwindow, - this, - TIME_HMSF_TEXT, - TIME_HMSF)); + this, TIME_HMSF_TEXT, TIME_HMSF)); add_item(items[2] = new TimeBarPopupItem(mwindow, - this, - TIME_FRAMES_TEXT, - TIME_FRAMES)); + this, TIME_TIMECODE_TEXT, TIME_TIMECODE)); add_item(items[3] = new TimeBarPopupItem(mwindow, - this, - TIME_SAMPLES_TEXT, - TIME_SAMPLES)); + this, TIME_FRAMES_TEXT, TIME_FRAMES)); add_item(items[4] = new TimeBarPopupItem(mwindow, - this, - TIME_SAMPLES_HEX_TEXT, - TIME_SAMPLES_HEX)); + this, TIME_SAMPLES_TEXT, TIME_SAMPLES)); add_item(items[5] = new TimeBarPopupItem(mwindow, - this, - TIME_SECONDS_TEXT, - TIME_SECONDS)); + this, TIME_SAMPLES_HEX_TEXT, TIME_SAMPLES_HEX)); add_item(items[6] = new TimeBarPopupItem(mwindow, - this, - TIME_FEET_FRAMES_TEXT, - TIME_FEET_FRAMES)); + this, TIME_SECONDS_TEXT, TIME_SECONDS)); + add_item(items[7] = new TimeBarPopupItem(mwindow, + this, TIME_FEET_FRAMES_TEXT, TIME_FEET_FRAMES)); } void TimeBarPopup::update() { - for(int i = 0; i < TOTAL_TIMEFORMATS; i++) - { - if(items[i]->value == mwindow->edl->session->time_format) - { - items[i]->set_checked(1); - } - else - { - items[i]->set_checked(0); - } + int time_format = mwindow->edl->session->time_format; + for( int i=0; iset_checked(items[i]->value == time_format); } }