X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Finterfaceprefs.C;h=60241a77972e2723fc5d17d124ec062090560bb2;hp=58aef4973aad16fc6daf2e54bef188257c921289;hb=HEAD;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb diff --git a/cinelerra-5.1/cinelerra/interfaceprefs.C b/cinelerra-5.1/cinelerra/interfaceprefs.C index 58aef497..60241a77 100644 --- a/cinelerra-5.1/cinelerra/interfaceprefs.C +++ b/cinelerra-5.1/cinelerra/interfaceprefs.C @@ -22,10 +22,13 @@ #include "deleteallindexes.h" #include "edl.h" #include "edlsession.h" +#include "file.h" +#include "filesystem.h" #include "language.h" #include "mwindow.h" #include "preferences.h" #include "preferencesthread.h" +#include "probeprefs.h" #include "interfaceprefs.h" #include "shbtnprefs.h" #include "theme.h" @@ -37,210 +40,72 @@ N_("Drag source only") N_("No effect") #endif -#define MOVE_ALL_EDITS_TITLE "Drag all following edits" -#define MOVE_ONE_EDIT_TITLE "Drag only one edit" -#define MOVE_NO_EDITS_TITLE "Drag source only" -#define MOVE_EDITS_DISABLED_TITLE "No effect" +#define MOVE_ALL_EDITS_TITLE N_("Drag all following edits") +#define MOVE_ONE_EDIT_TITLE N_("Drag only one edit") +#define MOVE_NO_EDITS_TITLE N_("Drag source only") +#define MOVE_EDITS_DISABLED_TITLE N_("No effect") InterfacePrefs::InterfacePrefs(MWindow *mwindow, PreferencesWindow *pwindow) : PreferencesDialog(mwindow, pwindow) { - hms = 0; - hmsf = 0; - samples = 0; - frames = 0; - hex = 0; - feet = 0; min_db = 0; max_db = 0; -// vu_db = 0; -// vu_int = 0; - thumbnails = 0; shbtn_dialog = 0; + file_probe_dialog = 0; } InterfacePrefs::~InterfacePrefs() { - delete hms; - delete hmsf; - delete samples; - delete frames; - delete hex; - delete feet; delete min_db; delete max_db; -// delete vu_db; -// delete vu_int; - delete thumbnails; delete shbtn_dialog; + delete file_probe_dialog; } void InterfacePrefs::create_objects() { - int x, y; BC_Resources *resources = BC_WindowBase::get_resources(); int margin = mwindow->theme->widget_border; char string[BCTEXTLEN]; - x = mwindow->theme->preferencesoptions_x; - y = mwindow->theme->preferencesoptions_y; + int x0 = mwindow->theme->preferencesoptions_x; + int y0 = mwindow->theme->preferencesoptions_y; + int x = x0, y = y0; - add_subwindow(new BC_Title(x, y, _("Time Format"), LARGEFONT, + add_subwindow(new BC_Title(x, y, _("Editing:"), LARGEFONT, resources->text_default)); - int x1 = get_w()/2; - add_subwindow(new BC_Title(x1, y, _("Flags"), LARGEFONT, - resources->text_default)); - - y += get_text_height(LARGEFONT) + 5; - int y1 = y; - - add_subwindow(hms = new TimeFormatHMS(pwindow, this, - pwindow->thread->edl->session->time_format == TIME_HMS, - x, y)); - y += 20; - add_subwindow(hmsf = new TimeFormatHMSF(pwindow, this, - pwindow->thread->edl->session->time_format == TIME_HMSF, - x, y)); - y += 20; - add_subwindow(samples = new TimeFormatSamples(pwindow, this, - pwindow->thread->edl->session->time_format == TIME_SAMPLES, - x, y)); - y += 20; - add_subwindow(hex = new TimeFormatHex(pwindow, this, - pwindow->thread->edl->session->time_format == TIME_SAMPLES_HEX, - x, y)); - y += 20; - add_subwindow(frames = new TimeFormatFrames(pwindow, this, - pwindow->thread->edl->session->time_format == TIME_FRAMES, - x, y)); - y += 20; - int x0 = x; - add_subwindow(feet = new TimeFormatFeet(pwindow, this, - pwindow->thread->edl->session->time_format == TIME_FEET_FRAMES, - x0, y)); - x0 += feet->get_w() + 15; - BC_Title *title; - add_subwindow(title = new BC_Title(x0, y, _("Frames per foot:"))); - x0 += title->get_w() + margin; - sprintf(string, "%0.2f", pwindow->thread->edl->session->frames_per_foot); - add_subwindow(new TimeFormatFeetSetting(pwindow, - x0, y - 5, string)); - y += 20; - add_subwindow(seconds = new TimeFormatSeconds(pwindow, this, - pwindow->thread->edl->session->time_format == TIME_SECONDS, - x, y)); y += 35; - UseTipWindow *tip_win = new UseTipWindow(pwindow, x1, y1); - add_subwindow(tip_win); - y1 += tip_win->get_h() + 5; - UseWarnIndecies *idx_win = new UseWarnIndecies(pwindow, x1, y1); - add_subwindow(idx_win); - y1 += idx_win->get_h() + 5; - UseWarnVersion *ver_win = new UseWarnVersion(pwindow, x1, y1); - add_subwindow(ver_win); - y1 += ver_win->get_h() + 5; - PopupMenuBtnup *pop_win = new PopupMenuBtnup(pwindow, x1, y1); - add_subwindow(pop_win); - y1 += pop_win->get_h() + 25; - - add_subwindow(new BC_Bar(5, y, get_w() - 10)); - y += 5; - - add_subwindow(new BC_Title(x, y, _("Index files"), LARGEFONT, resources->text_default)); - - - y += 25; - add_subwindow(new BC_Title(x, y + 5, - _("Index files go here:"), MEDIUMFONT, resources->text_default)); - add_subwindow(ipathtext = new IndexPathText(x + 230, y, - pwindow, - pwindow->thread->preferences->index_directory)); - add_subwindow(ipath = new BrowseButton(mwindow->theme, this, ipathtext, - x + 230 + ipathtext->get_w(), y, - pwindow->thread->preferences->index_directory, - _("Index Path"), - _("Select the directory for index files"), - 1)); - - y += 30; - add_subwindow(new BC_Title(x, y + 5, - _("Size of index file:"), - MEDIUMFONT, - resources->text_default)); - sprintf(string, "%jd", pwindow->thread->preferences->index_size); - add_subwindow(isize = new IndexSize(x + 230, y, pwindow, string)); - add_subwindow(new ScanCommercials(pwindow, 350,y)); - y += 30; - add_subwindow(new BC_Title(x, y + 5, _("Number of index files to keep:"), MEDIUMFONT, resources->text_default)); - sprintf(string, "%ld", (long)pwindow->thread->preferences->index_count); - add_subwindow(icount = new IndexCount(x + 230, y, pwindow, string)); - add_subwindow(deleteall = new DeleteAllIndexes(mwindow, pwindow, 350, y)); - - - - - - y += 35; - add_subwindow(new BC_Bar(5, y, get_w() - 10)); - y += 5; - - add_subwindow(new BC_Title(x, y, _("Editing"), LARGEFONT, resources->text_default)); - - y1 = y + 5; - y += 35; + int x2 = get_w()/2, y2 = y; + x = x2; + BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Keyframe reticle:"))); - x1 = x + title->get_w() + 10; - keyframe_reticle = new KeyframeReticle(x1, y, &pwindow->thread->preferences->keyframe_reticle); + y += title->get_h() + 5; + keyframe_reticle = new KeyframeReticle(pwindow, this, x, y, + &pwindow->thread->preferences->keyframe_reticle); add_subwindow(keyframe_reticle); keyframe_reticle->create_objects(); - int x2 = x + 400, y2 = y; - add_subwindow(thumbnails = new ViewThumbnails(x2, y1, pwindow)); - AndroidRemote *android_remote = new AndroidRemote(pwindow, x2, y2); - add_subwindow(android_remote); - y2 += android_remote->get_h() + 10; - add_subwindow(title = new BC_Title(x2, y2, _("Port:"))); - int x3 = x2 + title->get_w() + margin; - AndroidPort *android_port = new AndroidPort(pwindow, x3, y2); - add_subwindow(android_port); - y2 += title->get_h() + 10; - add_subwindow(title = new BC_Title(x2, y2, _("PIN:"))); - AndroidPIN *android_pin = new AndroidPIN(pwindow, x3, y2); - add_subwindow(android_pin); - - y2 += title->get_h() + 30; - ShBtnPrefs *shbtn_prefs = new ShBtnPrefs(pwindow, this, x2, y2); - add_subwindow(shbtn_prefs); - - y2 += shbtn_prefs->get_h() + 30; - StillImageUseDuration *use_stduration = new StillImageUseDuration(pwindow, - pwindow->thread->edl->session->si_useduration, x2, y2); - add_subwindow(use_stduration); - int tw = 0, th = 0; - BC_CheckBox::calculate_extents(this, &tw, &th, 0, 0); - x2 += tw + 3; - y2 += use_stduration->get_h() + 3; - StillImageDuration *stduration = new StillImageDuration(pwindow, x2, y2); - add_subwindow(stduration); - x2 += stduration->get_w() + 10; - y2 += 3; - add_subwindow(new BC_Title(x2, y2, _("Seconds"))); + y += 30; + add_subwindow(title = new BC_Title(x, y, _("Snapshot path:"))); + y += title->get_h() + 5; + add_subwindow(snapshot_path = new SnapshotPathText(pwindow, this, x, y, get_w()-x-30)); - y += 35; + x = x0; y = y2; add_subwindow(new BC_Title(x, y, _("Clicking on edit boundaries does what:"))); y += 25; add_subwindow(new BC_Title(x, y, _("Button 1:"))); + int x1 = x + 100; ViewBehaviourText *text; - add_subwindow(text = new ViewBehaviourText(80, y - 5, + add_subwindow(text = new ViewBehaviourText(x1, y - 5, behavior_to_text(pwindow->thread->edl->session->edit_handle_mode[0]), pwindow, &(pwindow->thread->edl->session->edit_handle_mode[0]))); text->create_objects(); y += 30; add_subwindow(new BC_Title(x, y, _("Button 2:"))); - add_subwindow(text = new ViewBehaviourText(80, + add_subwindow(text = new ViewBehaviourText(x1, y - 5, behavior_to_text(pwindow->thread->edl->session->edit_handle_mode[1]), pwindow, @@ -248,90 +113,143 @@ void InterfacePrefs::create_objects() text->create_objects(); y += 30; add_subwindow(new BC_Title(x, y, _("Button 3:"))); - add_subwindow(text = new ViewBehaviourText(80, - y - 5, + add_subwindow(text = new ViewBehaviourText(x1, y - 5, behavior_to_text(pwindow->thread->edl->session->edit_handle_mode[2]), pwindow, &(pwindow->thread->edl->session->edit_handle_mode[2]))); text->create_objects(); + y += text->get_h() + 30; - y += 40; - x1 = x; - add_subwindow(title = new BC_Title(x, y + 5, _("Min DB for meter:"))); - x += title->get_w() + 10; - sprintf(string, "%d", pwindow->thread->edl->session->min_meter_db); - add_subwindow(min_db = new MeterMinDB(pwindow, string, x, y)); - - x += min_db->get_w() + 10; - add_subwindow(title = new BC_Title(x, y + 5, _("Max DB:"))); - x += title->get_w() + 10; - sprintf(string, "%d", pwindow->thread->edl->session->max_meter_db); - add_subwindow(max_db = new MeterMaxDB(pwindow, string, x, y)); + x = x0; + add_subwindow(new BC_Bar(5, y, get_w() - 10)); + y += 5; + add_subwindow(new BC_Title(x, y, _("Operation:"), LARGEFONT, + resources->text_default)); - x = x1; - y += 30; - ViewTheme *theme; - add_subwindow(new BC_Title(x, y, _("Theme:"))); - x += 60; - add_subwindow(theme = new ViewTheme(x, y, pwindow)); - theme->create_objects(); + int y1 = y; + y += 15; -} + AndroidRemote *android_remote = new AndroidRemote(pwindow, x2, y); + add_subwindow(android_remote); + y += android_remote->get_h() + 10; + add_subwindow(title = new BC_Title(x2, y, _("Port:"))); + int x3 = x2 + title->get_w() + margin; + AndroidPort *android_port = new AndroidPort(pwindow, x3, y); + add_subwindow(android_port); + y += title->get_h() + 10; + add_subwindow(title = new BC_Title(x2, y, _("PIN:"))); + AndroidPIN *android_pin = new AndroidPIN(pwindow, x3, y); + add_subwindow(android_pin); + y += title->get_h() + 20; -const char* InterfacePrefs::behavior_to_text(int mode) -{ - switch(mode) - { - case MOVE_ALL_EDITS: - return _(MOVE_ALL_EDITS_TITLE); - break; - case MOVE_ONE_EDIT: - return _(MOVE_ONE_EDIT_TITLE); - break; - case MOVE_NO_EDITS: - return _(MOVE_NO_EDITS_TITLE); - break; - case MOVE_EDITS_DISABLED: - return _(MOVE_EDITS_DISABLED_TITLE); - break; - default: - return ""; - break; - } -} + ShBtnPrefs *shbtn_prefs = new ShBtnPrefs(pwindow, this, x2, y); + add_subwindow(shbtn_prefs); + y += shbtn_prefs->get_h() + 20; -int InterfacePrefs::update(int new_value) -{ - pwindow->thread->redraw_times = 1; - pwindow->thread->edl->session->time_format = new_value; - hms->update(new_value == TIME_HMS); - hmsf->update(new_value == TIME_HMSF); - samples->update(new_value == TIME_SAMPLES); - hex->update(new_value == TIME_SAMPLES_HEX); - frames->update(new_value == TIME_FRAMES); - feet->update(new_value == TIME_FEET_FRAMES); - seconds->update(new_value == TIME_SECONDS); - return 0; -} + add_subwindow(reload_plugins = new PrefsReloadPlugins(pwindow, this, x2, y)); + y += reload_plugins->get_h() + 10; + add_subwindow(title = new BC_Title(x2, y, _("Default LV2_PATH:"))); + y += title->get_h() + 10; + PrefsLV2PathText *lv2_path_text = new PrefsLV2PathText(pwindow, this, x2, y, get_w()-x2-30); + add_subwindow(lv2_path_text); + y += 30; + y2 = y; + x = x0; y = y1 + 35; + add_subwindow(file_probes = new PrefsFileProbes(pwindow, this, x, y)); + y += 30; + PrefsTrapSigSEGV *trap_segv = new PrefsTrapSigSEGV(this, x, y); + add_subwindow(trap_segv); + x1 = x + trap_segv->get_w() + 10; + add_subwindow(new BC_Title(x1, y, _("(must be root)"), MEDIUMFONT, RED)); + y += 30; + PrefsTrapSigINTR *trap_intr = new PrefsTrapSigINTR(this, x, y); + add_subwindow(trap_intr); + add_subwindow(new BC_Title(x1, y, _("(must be root)"), MEDIUMFONT, RED)); + y += 30; + yuv420p_dvdlace = new PrefsYUV420P_DVDlace(pwindow, this, x, y); + add_subwindow(yuv420p_dvdlace); + y += 30; + add_subwindow(title = new BC_Title(x1=x, y + 5, _("Min DB for meter:"))); + x1 += title->get_w() + 10; + sprintf(string, "%d", pwindow->thread->edl->session->min_meter_db); + add_subwindow(min_db = new MeterMinDB(pwindow, string, x1, y)); + x1 += min_db->get_w() + 10; + add_subwindow(title = new BC_Title(x1, y + 5, _("Max DB:"))); + x1 += title->get_w() + 10; + sprintf(string, "%d", pwindow->thread->edl->session->max_meter_db); + add_subwindow(max_db = new MeterMaxDB(pwindow, string, x1, y)); + y += 30; + StillImageUseDuration *use_stduration = new StillImageUseDuration(pwindow, + pwindow->thread->edl->session->si_useduration, x, y); + add_subwindow(use_stduration); + x1 = x + use_stduration->get_w() + 10; + StillImageDuration *stduration = new StillImageDuration(pwindow, x1, y); + add_subwindow(stduration); + x1 += stduration->get_w() + 10; + add_subwindow(new BC_Title(x1, y, _("Seconds"))); + y += 30; + PrefsAutostartLV2UI *autostart_lv2ui = new PrefsAutostartLV2UI(x, y,pwindow); + add_subwindow(autostart_lv2ui); + y += autostart_lv2ui->get_h() + 10; + if( y2 > y ) y = y2; + x = x0; + add_subwindow(new BC_Bar(5, y, get_w() - 10)); + y += 5; + add_subwindow(new BC_Title(x, y, _("Index files:"), LARGEFONT, resources->text_default)); + y += 30; + add_subwindow(new BC_Title(x, y + 5, + _("Index files go here:"), MEDIUMFONT, resources->text_default)); + x1 = x + 230; + add_subwindow(ipathtext = new IndexPathText(x1, y, pwindow, + pwindow->thread->preferences->index_directory)); + x1 += ipathtext->get_w(); + add_subwindow(ipath = new BrowseButton(mwindow->theme, this, ipathtext, x1, y, + pwindow->thread->preferences->index_directory, + _("Index Path"), _("Select the directory for index files"), 1)); + y += 30; + add_subwindow(new BC_Title(x, y + 5, _("Size of index file:"), + MEDIUMFONT, resources->text_default)); + sprintf(string, "%jd", pwindow->thread->preferences->index_size); + add_subwindow(isize = new IndexSize(x + 230, y, pwindow, string)); + add_subwindow(new ScanCommercials(pwindow, 400,y)); + y += 30; + add_subwindow(new BC_Title(x, y + 5, _("Number of index files to keep:"), + MEDIUMFONT, resources->text_default)); + sprintf(string, "%ld", (long)pwindow->thread->preferences->index_count); + add_subwindow(icount = new IndexCount(x + 230, y, pwindow, string)); + add_subwindow(del_indexes = new DeleteAllIndexes(mwindow, pwindow, 400, y, + _("Delete existing indexes"), "[*.idx][*.toc][*.mkr]")); + y += 30; + add_subwindow(ffmpeg_marker_files = new IndexFFMPEGMarkerFiles(this, x, y)); + add_subwindow(del_clipngs = new DeleteAllIndexes(mwindow, pwindow, 400, y, + _("Delete clip thumbnails"), "clip_*.png")); +} +const char* InterfacePrefs::behavior_to_text(int mode) +{ + switch(mode) { + case MOVE_ALL_EDITS: return _(MOVE_ALL_EDITS_TITLE); + case MOVE_ONE_EDIT: return _(MOVE_ONE_EDIT_TITLE); + case MOVE_NO_EDITS: return _(MOVE_NO_EDITS_TITLE); + case MOVE_EDITS_DISABLED: return _(MOVE_EDITS_DISABLED_TITLE); + default: return ""; + } +} -IndexPathText::IndexPathText(int x, - int y, - PreferencesWindow *pwindow, - char *text) +IndexPathText::IndexPathText(int x, int y, PreferencesWindow *pwindow, char *text) : BC_TextBox(x, y, 240, 1, text) { this->pwindow = pwindow; @@ -348,10 +266,7 @@ int IndexPathText::handle_event() -IndexSize::IndexSize(int x, - int y, - PreferencesWindow *pwindow, - char *text) +IndexSize::IndexSize(int x, int y, PreferencesWindow *pwindow, char *text) : BC_TextBox(x, y, 100, 1, text) { this->pwindow = pwindow; @@ -370,10 +285,7 @@ int IndexSize::handle_event() -IndexCount::IndexCount(int x, - int y, - PreferencesWindow *pwindow, - char *text) +IndexCount::IndexCount(int x, int y, PreferencesWindow *pwindow, char *text) : BC_TextBox(x, y, 100, 1, text) { this->pwindow = pwindow; @@ -391,109 +303,25 @@ int IndexCount::handle_event() - - - - - - - - - - - - -TimeFormatHMS::TimeFormatHMS(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y) - : BC_Radial(x, y, value, TIME_HMS_TEXT) -{ this->pwindow = pwindow; this->tfwindow = tfwindow; } - -int TimeFormatHMS::handle_event() -{ - tfwindow->update(TIME_HMS); - return 1; -} - -TimeFormatHMSF::TimeFormatHMSF(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y) - : BC_Radial(x, y, value, TIME_HMSF_TEXT) -{ this->pwindow = pwindow; this->tfwindow = tfwindow; } - -int TimeFormatHMSF::handle_event() -{ - tfwindow->update(TIME_HMSF); - return 1; -} - -TimeFormatSamples::TimeFormatSamples(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y) - : BC_Radial(x, y, value, TIME_SAMPLES_TEXT) -{ this->pwindow = pwindow; this->tfwindow = tfwindow; } - -int TimeFormatSamples::handle_event() -{ - tfwindow->update(TIME_SAMPLES); - return 1; -} - -TimeFormatFrames::TimeFormatFrames(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y) - : BC_Radial(x, y, value, TIME_FRAMES_TEXT) -{ this->pwindow = pwindow; this->tfwindow = tfwindow; } - -int TimeFormatFrames::handle_event() -{ - tfwindow->update(TIME_FRAMES); - return 1; -} - -TimeFormatHex::TimeFormatHex(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y) - : BC_Radial(x, y, value, TIME_SAMPLES_HEX_TEXT) -{ this->pwindow = pwindow; this->tfwindow = tfwindow; } - -int TimeFormatHex::handle_event() -{ - tfwindow->update(TIME_SAMPLES_HEX); - return 1; -} - -TimeFormatSeconds::TimeFormatSeconds(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y) - : BC_Radial(x, y, value, TIME_SECONDS_TEXT) +IndexFFMPEGMarkerFiles::IndexFFMPEGMarkerFiles(InterfacePrefs *iface_prefs, int x, int y) + : BC_CheckBox(x, y, + iface_prefs->pwindow->thread->preferences->ffmpeg_marker_indexes, + _("build ffmpeg marker indexes")) { - this->pwindow = pwindow; - this->tfwindow = tfwindow; + this->iface_prefs = iface_prefs; } - -int TimeFormatSeconds::handle_event() +IndexFFMPEGMarkerFiles::~IndexFFMPEGMarkerFiles() { - tfwindow->update(TIME_SECONDS); - return 1; } -TimeFormatFeet::TimeFormatFeet(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y) - : BC_Radial(x, y, value, TIME_FEET_FRAMES_TEXT) -{ this->pwindow = pwindow; this->tfwindow = tfwindow; } - -int TimeFormatFeet::handle_event() +int IndexFFMPEGMarkerFiles::handle_event() { - tfwindow->update(TIME_FEET_FRAMES); + iface_prefs->pwindow->thread->preferences->ffmpeg_marker_indexes = get_value(); return 1; } -TimeFormatFeetSetting::TimeFormatFeetSetting(PreferencesWindow *pwindow, int x, int y, char *string) - : BC_TextBox(x, y, 90, 1, string) -{ this->pwindow = pwindow; } - -int TimeFormatFeetSetting::handle_event() -{ - pwindow->thread->edl->session->frames_per_foot = atof(get_text()); - if(pwindow->thread->edl->session->frames_per_foot < 1) pwindow->thread->edl->session->frames_per_foot = 1; - return 0; -} - - - -ViewBehaviourText::ViewBehaviourText(int x, - int y, - const char *text, - PreferencesWindow *pwindow, +ViewBehaviourText::ViewBehaviourText(int x, int y, const char *text, PreferencesWindow *pwindow, int *output) : BC_PopupMenu(x, y, 200, text) { @@ -511,7 +339,6 @@ int ViewBehaviourText::handle_event() void ViewBehaviourText::create_objects() { -// Video4linux versions are automatically detected add_item(new ViewBehaviourItem(this, _(MOVE_ALL_EDITS_TITLE), MOVE_ALL_EDITS)); add_item(new ViewBehaviourItem(this, _(MOVE_ONE_EDIT_TITLE), MOVE_ONE_EDIT)); add_item(new ViewBehaviourItem(this, _(MOVE_NO_EDITS_TITLE), MOVE_NO_EDITS)); @@ -538,8 +365,6 @@ int ViewBehaviourItem::handle_event() } - - MeterMinDB::MeterMinDB(PreferencesWindow *pwindow, char *text, int x, int y) : BC_TextBox(x, y, 50, 1, text) { @@ -554,8 +379,6 @@ int MeterMinDB::handle_event() } - - MeterMaxDB::MeterMaxDB(PreferencesWindow *pwindow, char *text, int x, int y) : BC_TextBox(x, y, 50, 1, text) { @@ -570,161 +393,6 @@ int MeterMaxDB::handle_event() } - - - -MeterVUDB::MeterVUDB(PreferencesWindow *pwindow, char *text, int y) - : BC_Radial(145, y, pwindow->thread->edl->session->meter_format == METER_DB, text) -{ - this->pwindow = pwindow; -} - -int MeterVUDB::handle_event() -{ - pwindow->thread->redraw_meters = 1; -// vu_int->update(0); - pwindow->thread->edl->session->meter_format = METER_DB; - return 1; -} - -MeterVUInt::MeterVUInt(PreferencesWindow *pwindow, char *text, int y) - : BC_Radial(205, y, pwindow->thread->edl->session->meter_format == METER_INT, text) -{ - this->pwindow = pwindow; -} - -int MeterVUInt::handle_event() -{ - pwindow->thread->redraw_meters = 1; - vu_db->update(0); - pwindow->thread->edl->session->meter_format = METER_INT; - return 1; -} - - - - -ViewTheme::ViewTheme(int x, int y, PreferencesWindow *pwindow) - : BC_PopupMenu(x, y, 200, pwindow->thread->preferences->theme, 1) -{ - this->pwindow = pwindow; -} -ViewTheme::~ViewTheme() -{ -} - -void ViewTheme::create_objects() -{ - ArrayList themes; - MWindow::search_plugindb(0, - 0, - 0, - 0, - 1, - themes); - - for(int i = 0; i < themes.total; i++) - { - add_item(new ViewThemeItem(this, themes.values[i]->title)); - } -} - -int ViewTheme::handle_event() -{ - return 1; -} - - - - - -ViewThemeItem::ViewThemeItem(ViewTheme *popup, char *text) - : BC_MenuItem(text) -{ - this->popup = popup; -} - -int ViewThemeItem::handle_event() -{ - popup->set_text(get_text()); - strcpy(popup->pwindow->thread->preferences->theme, get_text()); - popup->handle_event(); - return 1; -} - -ViewThumbnails::ViewThumbnails(int x, - int y, - PreferencesWindow *pwindow) - : BC_CheckBox(x, - y, - pwindow->thread->preferences->use_thumbnails, _("Use thumbnails in resource window")) -{ - this->pwindow = pwindow; -} - -int ViewThumbnails::handle_event() -{ - pwindow->thread->preferences->use_thumbnails = get_value(); - return 1; -} - - - -UseTipWindow::UseTipWindow(PreferencesWindow *pwindow, int x, int y) - : BC_CheckBox(x, - y, - pwindow->thread->preferences->use_tipwindow, - _("Show tip of the day")) -{ - this->pwindow = pwindow; -} -int UseTipWindow::handle_event() -{ - pwindow->thread->preferences->use_tipwindow = get_value(); - return 1; -} - - -UseWarnIndecies::UseWarnIndecies(PreferencesWindow *pwindow, int x, int y) - : BC_CheckBox(x, y, pwindow->thread->preferences->warn_indexes, - _("ffmpeg probe warns rebuild indexes")) -{ - this->pwindow = pwindow; -} - -int UseWarnIndecies::handle_event() -{ - pwindow->thread->preferences->warn_indexes = get_value(); - return 1; -} - -UseWarnVersion::UseWarnVersion(PreferencesWindow *pwindow, int x, int y) - : BC_CheckBox(x, y, pwindow->thread->preferences->warn_version, - _("EDL version warns if mismatched")) -{ - this->pwindow = pwindow; -} - -int UseWarnVersion::handle_event() -{ - pwindow->thread->preferences->warn_version = get_value(); - return 1; -} - -PopupMenuBtnup::PopupMenuBtnup(PreferencesWindow *pwindow, int x, int y) - : BC_CheckBox(x, y, pwindow->thread->preferences->popupmenu_btnup, - _("Popups activate on button up")) -{ - this->pwindow = pwindow; -} - -int PopupMenuBtnup::handle_event() -{ - pwindow->thread->preferences->popupmenu_btnup = get_value(); - return 1; -} - - ScanCommercials::ScanCommercials(PreferencesWindow *pwindow, int x, int y) : BC_CheckBox(x, y, @@ -844,15 +512,19 @@ HairlineItem::~HairlineItem() int HairlineItem::handle_event() { + popup->pwindow->thread->redraw_overlays = 1; popup->set_text(get_text()); *(popup->output) = hairline; return 1; } -KeyframeReticle::KeyframeReticle(int x, int y, int *output) - : BC_PopupMenu(x, y, 175, hairline_to_string(*output)) +KeyframeReticle::KeyframeReticle(PreferencesWindow *pwindow, + InterfacePrefs *iface_prefs, int x, int y, int *output) + : BC_PopupMenu(x, y, 220, hairline_to_string(*output)) { + this->pwindow = pwindow; + this->iface_prefs = iface_prefs; this->output = output; } @@ -877,3 +549,139 @@ void KeyframeReticle::create_objects() add_item(new HairlineItem(this, HAIRLINE_ALWAYS)); } +PrefsTrapSigSEGV::PrefsTrapSigSEGV(InterfacePrefs *subwindow, int x, int y) + : BC_CheckBox(x, y, + subwindow->pwindow->thread->preferences->trap_sigsegv, + _("trap sigSEGV")) +{ + this->subwindow = subwindow; +} +PrefsTrapSigSEGV::~PrefsTrapSigSEGV() +{ +} +int PrefsTrapSigSEGV::handle_event() +{ + subwindow->pwindow->thread->preferences->trap_sigsegv = get_value(); + return 1; +} + +PrefsTrapSigINTR::PrefsTrapSigINTR(InterfacePrefs *subwindow, int x, int y) + : BC_CheckBox(x, y, + subwindow->pwindow->thread->preferences->trap_sigintr, + _("trap sigINT")) +{ + this->subwindow = subwindow; +} +PrefsTrapSigINTR::~PrefsTrapSigINTR() +{ +} +int PrefsTrapSigINTR::handle_event() +{ + subwindow->pwindow->thread->preferences->trap_sigintr = get_value(); + return 1; +} + + +void InterfacePrefs::start_probe_dialog() +{ + if( !file_probe_dialog ) + file_probe_dialog = new FileProbeDialog(pwindow); + file_probe_dialog->start(); +} + +PrefsFileProbes::PrefsFileProbes(PreferencesWindow *pwindow, + InterfacePrefs *subwindow, int x, int y) + : BC_GenericButton(x, y, _("Probe Order")) +{ + this->pwindow = pwindow; + this->subwindow = subwindow; + set_tooltip(_("File Open Probe Ordering")); +} + +int PrefsFileProbes::handle_event() +{ + subwindow->start_probe_dialog(); + return 1; +} + + +PrefsYUV420P_DVDlace::PrefsYUV420P_DVDlace(PreferencesWindow *pwindow, + InterfacePrefs *subwindow, int x, int y) + : BC_CheckBox(x, y, pwindow->thread->preferences->dvd_yuv420p_interlace, + _("Use yuv420p dvd interlace format")) +{ + this->pwindow = pwindow; + this->subwindow = subwindow; +} + +int PrefsYUV420P_DVDlace::handle_event() +{ + pwindow->thread->preferences->dvd_yuv420p_interlace = get_value(); + return 1; +} + + +SnapshotPathText::SnapshotPathText(PreferencesWindow *pwindow, + InterfacePrefs *subwindow, int x, int y, int w) + : BC_TextBox(x, y, w, 1, pwindow->thread->preferences->snapshot_path) +{ + this->pwindow = pwindow; + this->subwindow = subwindow; +} + +SnapshotPathText::~SnapshotPathText() +{ +} + +int SnapshotPathText::handle_event() +{ + strcpy(pwindow->thread->preferences->snapshot_path, get_text()); + return 1; +} + +PrefsAutostartLV2UI::PrefsAutostartLV2UI(int x, int y, PreferencesWindow *pwindow) + : BC_CheckBox(x, y, + pwindow->thread->preferences->autostart_lv2ui, _("Auto start lv2 gui")) +{ + this->pwindow = pwindow; +} +int PrefsAutostartLV2UI::handle_event() +{ + pwindow->thread->preferences->autostart_lv2ui = get_value(); + return 1; +} + +PrefsReloadPlugins::PrefsReloadPlugins(PreferencesWindow *pwindow, + InterfacePrefs *iface_prefs, int x, int y) + : BC_GenericButton(x, y, _("Reload plugin index")) +{ + this->pwindow = pwindow; + this->iface_prefs = iface_prefs; +} + +int PrefsReloadPlugins::handle_event() +{ + pwindow->thread->reload_plugins = 1; + text_color(get_resources()->button_highlighted); + draw_face(1); + return 1; +} + +PrefsLV2PathText::PrefsLV2PathText(PreferencesWindow *pwindow, + InterfacePrefs *subwindow, int x, int y, int w) + : BC_TextBox(x, y, w, 1, pwindow->thread->preferences->lv2_path) +{ + this->pwindow = pwindow; + this->subwindow = subwindow; +} + +PrefsLV2PathText::~PrefsLV2PathText() +{ +} + +int PrefsLV2PathText::handle_event() +{ + strcpy(pwindow->thread->preferences->lv2_path, get_text()); + return 1; +} +