X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.0%2Fcinelerra%2Finterfaceprefs.C;fp=cinelerra-5.0%2Fcinelerra%2Finterfaceprefs.C;h=0000000000000000000000000000000000000000;hb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;hp=4758a1ae38bc577b0abfd4af488f81c83dba44c4;hpb=52fcc46226f9df46f9ce9d0566dc568455a7db0b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/cinelerra/interfaceprefs.C b/cinelerra-5.0/cinelerra/interfaceprefs.C deleted file mode 100644 index 4758a1ae..00000000 --- a/cinelerra-5.0/cinelerra/interfaceprefs.C +++ /dev/null @@ -1,759 +0,0 @@ - -/* - * CINELERRA - * Copyright (C) 2008 Adam Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "deleteallindexes.h" -#include "edl.h" -#include "edlsession.h" -#include "format.inc" -#include "language.h" -#include "mwindow.h" -#include "preferences.h" -#include "preferencesthread.h" -#include "interfaceprefs.h" -#include "shbtnprefs.h" -#include "theme.h" - -#if 0 -N_("Drag all following edits") -N_("Drag only one edit") -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" - -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; -} - -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; -} - - -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; - - add_subwindow(new BC_Title(x, y, - _("Time Format"), - LARGEFONT, - resources->text_default)); - - y += get_text_height(LARGEFONT) + 5; - - - 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 x1 = x; - add_subwindow(feet = new TimeFormatFeet(pwindow, this, - pwindow->thread->edl->session->time_format == TIME_FEET_FRAMES, - x1, y)); - x1 += feet->get_w() + margin; - BC_Title *title; - add_subwindow(title = new BC_Title(x1, y, _("Frames per foot:"))); - x1 += title->get_w() + margin; - sprintf(string, "%0.2f", pwindow->thread->edl->session->frames_per_foot); - add_subwindow(new TimeFormatFeetSetting(pwindow, - x1, y - 5, string)); - y += 20; - add_subwindow(seconds = new TimeFormatSeconds(pwindow, this, - pwindow->thread->edl->session->time_format == TIME_SECONDS, - x, y)); - - y += 35; - add_subwindow(new UseTipWindow(pwindow, x, y)); - add_subwindow(new UseWarnIndecies(pwindow, x+200, y)); - - y += 35; - 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, 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, "" _LD "", pwindow->thread->preferences->index_size); - x1 = x + 230; - 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)); - - y += 35; - - add_subwindow(thumbnails = new ViewThumbnails(x, y, pwindow)); - - int x2 = x + 400, y2 = y; - 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; - add_subwindow(new ShBtnPrefs(pwindow, this, x2, y2)); - - y += 35; - add_subwindow(new BC_Title(x, y, _("Clicking on edit boundaries does what:"))); - y += 25; - add_subwindow(new BC_Title(x, y, _("Button 1:"))); - - ViewBehaviourText *text; - add_subwindow(text = new ViewBehaviourText(80, 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, - y - 5, - behavior_to_text(pwindow->thread->edl->session->edit_handle_mode[1]), - pwindow, - &(pwindow->thread->edl->session->edit_handle_mode[1]))); - text->create_objects(); - y += 30; - add_subwindow(new BC_Title(x, y, _("Button 3:"))); - add_subwindow(text = new ViewBehaviourText(80, - 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 += 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 = 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(); - -} - -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; - } -} - -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; -} - - - - - - - - - - - - - - - -IndexPathText::IndexPathText(int x, - int y, - PreferencesWindow *pwindow, - char *text) - : BC_TextBox(x, y, 240, 1, text) -{ - this->pwindow = pwindow; -} - -IndexPathText::~IndexPathText() {} - -int IndexPathText::handle_event() -{ - strcpy(pwindow->thread->preferences->index_directory, get_text()); - return 1; -} - - - - -IndexSize::IndexSize(int x, - int y, - PreferencesWindow *pwindow, - char *text) - : BC_TextBox(x, y, 100, 1, text) -{ - this->pwindow = pwindow; -} - -int IndexSize::handle_event() -{ - long result; - - result = atol(get_text()); - if(result < 64000) result = 64000; - //if(result < 500000) result = 500000; - pwindow->thread->preferences->index_size = result; - return 0; -} - - - -IndexCount::IndexCount(int x, - int y, - PreferencesWindow *pwindow, - char *text) - : BC_TextBox(x, y, 100, 1, text) -{ - this->pwindow = pwindow; -} - -int IndexCount::handle_event() -{ - long result; - - result = atol(get_text()); - if(result < 1) result = 1; - pwindow->thread->preferences->index_count = result; - return 0; -} - - - - - - - - - - - - - - - -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) -{ - this->pwindow = pwindow; - this->tfwindow = tfwindow; -} - -int TimeFormatSeconds::handle_event() -{ - 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() -{ - tfwindow->update(TIME_FEET_FRAMES); - 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, - int *output) - : BC_PopupMenu(x, y, 200, text) -{ - this->output = output; -} - -ViewBehaviourText::~ViewBehaviourText() -{ -} - -int ViewBehaviourText::handle_event() -{ - return 0; -} - -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)); - add_item(new ViewBehaviourItem(this, _(MOVE_EDITS_DISABLED_TITLE), MOVE_EDITS_DISABLED)); -} - - -ViewBehaviourItem::ViewBehaviourItem(ViewBehaviourText *popup, char *text, int behaviour) - : BC_MenuItem(text) -{ - this->popup = popup; - this->behaviour = behaviour; -} - -ViewBehaviourItem::~ViewBehaviourItem() -{ -} - -int ViewBehaviourItem::handle_event() -{ - popup->set_text(get_text()); - *(popup->output) = behaviour; - return 1; -} - - - - -MeterMinDB::MeterMinDB(PreferencesWindow *pwindow, char *text, int x, int y) - : BC_TextBox(x, y, 50, 1, text) -{ - this->pwindow = pwindow; -} - -int MeterMinDB::handle_event() -{ - pwindow->thread->redraw_meters = 1; - pwindow->thread->edl->session->min_meter_db = atol(get_text()); - return 0; -} - - - - -MeterMaxDB::MeterMaxDB(PreferencesWindow *pwindow, char *text, int x, int y) - : BC_TextBox(x, y, 50, 1, text) -{ - this->pwindow = pwindow; -} - -int MeterMaxDB::handle_event() -{ - pwindow->thread->redraw_meters = 1; - pwindow->thread->edl->session->max_meter_db = atol(get_text()); - return 0; -} - - - - - -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_indecies, - _("ffmpeg probe warns rebuild indecies")) -{ - this->pwindow = pwindow; -} - -int UseWarnIndecies::handle_event() -{ - pwindow->thread->preferences->warn_indecies = get_value(); - return 1; -} - - - - -ScanCommercials::ScanCommercials(PreferencesWindow *pwindow, int x, int y) - : BC_CheckBox(x, - y, - pwindow->thread->preferences->scan_commercials, - _("Scan for commercials during toc build")) -{ - this->pwindow = pwindow; -} -int ScanCommercials::handle_event() -{ - pwindow->thread->preferences->scan_commercials = get_value(); - return 1; -} - - -AndroidRemote::AndroidRemote(PreferencesWindow *pwindow, int x, int y) - : BC_CheckBox(x, y, - pwindow->thread->preferences->android_remote, - _("Android Remote Control")) -{ - this->pwindow = pwindow; -} -int AndroidRemote::handle_event() -{ - pwindow->thread->preferences->android_remote = get_value(); - return 1; -} - -AndroidPIN::AndroidPIN(PreferencesWindow *pwindow, int x, int y) - : BC_TextBox(x, y, 240, 1, pwindow->thread->preferences->android_pin) -{ - this->pwindow = pwindow; -} - -int AndroidPIN::handle_event() -{ - char *txt = pwindow->thread->preferences->android_pin; - int len = sizeof(pwindow->thread->preferences->android_pin); - strncpy(txt, get_text(), len); - return 1; -} - - -AndroidPort::AndroidPort(PreferencesWindow *pwindow, int x, int y) - : BC_TextBox(x, y, 72, 1, pwindow->thread->preferences->android_port) -{ - this->pwindow = pwindow; -} - -int AndroidPort::handle_event() -{ - unsigned short port = atoi(get_text()); - if( port < 1024 ) port = 1024; - pwindow->thread->preferences->android_port = port; - char str[BCSTRLEN]; - sprintf(str,"%u",port); - update(str); - return 1; -} - -int InterfacePrefs::start_shbtn_dialog() -{ - if( !shbtn_dialog ) - shbtn_dialog = new ShBtnEditDialog(pwindow); - shbtn_dialog->start(); - return 1; -} - -ShBtnPrefs::ShBtnPrefs(PreferencesWindow *pwindow, InterfacePrefs *iface_prefs, int x, int y) - : BC_GenericButton(x, y, _("Shell Commands")) -{ - this->pwindow = pwindow; - this->iface_prefs = iface_prefs; - set_tooltip(_("Main Menu Shell Commands")); -} - -int ShBtnPrefs::handle_event() -{ - return iface_prefs->start_shbtn_dialog(); -} -