Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.0 / cinelerra / timeentry.C
diff --git a/cinelerra-5.0/cinelerra/timeentry.C b/cinelerra-5.0/cinelerra/timeentry.C
deleted file mode 100644 (file)
index 6c2382e..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-
-/*
- * CINELERRA
- * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
- * 
- * 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 "timeentry.h"
-#include <string.h>
-
-TimeEntry::TimeEntry(BC_WindowBase *gui, int x, int y, 
-               int *output_day, double *output_time,
-               int time_format, int time_w)
-{
-       this->gui = gui;
-       this->x = x;
-       this->y = y;
-       this->output_day = output_day;
-       this->output_time = output_time;
-       this->time_format = time_format;
-       this->time_w = time_w;
-       enabled = 1;
-       day_text = 0;
-       day_tumbler = 0;
-       time_text = 0;
-}
-
-TimeEntry::~TimeEntry()
-{
-       delete day_text;
-       delete day_tumbler;
-       delete time_text;
-}
-const char* TimeEntry::day_table[] = 
-{
-       "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "*"
-};
-
-int TimeEntry::day_to_int(const char *day)
-{
-       for(int i = 0; i < TOTAL_DAYS; i++)
-               if(!strcasecmp(day, day_table[i])) return i;
-       return 0;
-}
-
-
-void TimeEntry::time_to_hours(char *result, double time)
-{
-       int hour = (int)(time / 3600);
-       sprintf(result, "%d", hour);
-}
-
-void TimeEntry::time_to_minutes(char *result, double time)
-{
-       int hour = (int)(time / 3600);
-       int minute = (int)(time / 60 - hour * 60);
-       sprintf(result, "%d", minute);
-}
-
-void TimeEntry::time_to_seconds(char *result, double time)
-{
-       int hour = (int)(time / 3600);
-       int minute = (int)(time / 60 - hour * 60);
-       float second = (float)time - (int64_t)hour * 3600 - (int64_t)minute * 60;
-       sprintf(result, "%.3f", second);
-}
-
-void TimeEntry::create_objects()
-{
-       int x = this->x;
-       int y = this->y;
-       int time_w = this->time_w;
-       char string[BCTEXTLEN];
-
-       if(output_day) {
-               day_text = new DayText(this, x, y, 50, 
-                       day_table, TOTAL_DAYS, day_table[*output_day]);
-               gui->add_subwindow(day_text);
-               x += day_text->get_w();
-               time_w -= day_text->get_w();
-               day_tumbler = new DayTumbler(this, day_text, x, y);
-               gui->add_subwindow(day_tumbler);
-               x += day_tumbler->get_w();
-               time_w -= day_tumbler->get_w();
-       }
-
-       time_text = new TimeTextBox(this, x, y, time_w, 
-               Units::totext(string, *output_time, time_format));
-       gui->add_subwindow(time_text);
-
-       time_text->set_separators(Units::format_to_separators(time_format));
-}
-
-void TimeEntry::enable()
-{
-       enabled = 1;
-       if( day_text ) day_text->enable();
-       time_text->enable();
-}
-
-void TimeEntry::disable()
-{
-       enabled = 0;
-       if( day_text ) day_text->disable();
-       time_text->disable();
-}
-
-int TimeEntry::get_h()
-{
-       return time_text->get_h();
-}
-
-int TimeEntry::get_w()
-{
-       int w = 0;
-       if(day_text) w += day_text->get_w();
-       if(day_tumbler) w += day_tumbler->get_w();
-       w += time_text->get_w();
-       return w;
-}
-
-void TimeEntry::reposition_window(int x, int y)
-{
-       int time_w = this->time_w;
-       this->x = x;
-       this->y = y;
-       
-       if(day_text) {
-               day_text->reposition_window(x, y);
-               x += day_text->get_w();
-               time_w -= day_text->get_w();
-       }
-       if(day_tumbler) {
-               day_tumbler->reposition_window(x, y);
-               x += day_tumbler->get_w();
-               time_w -= day_tumbler->get_w();
-       }
-       
-       time_text->reposition_window(x, y, time_w);
-}
-
-void TimeEntry::update_day(int day)
-{
-       if( !output_day ) return;
-       *output_day = day;
-       day_text->update(day_table[day]);
-}
-
-void TimeEntry::update_time(double time)
-{
-       *output_time = time;
-       char text[BCTEXTLEN];
-       Units::totext(text, time, time_format);
-       time_text->update(text);
-}
-
-void TimeEntry::update(int *day, double *time)
-{
-       output_day = day;
-       output_time = time;
-
-       if( day != 0 )
-               day_text->update(day_table[*day]);
-
-       char text[BCTEXTLEN];
-       Units::totext(text, *time, time_format);
-       time_text->update(text);
-}
-
-int TimeEntry::handle_event()
-{
-       return 1;
-}
-
-
-
-DayText::DayText(TimeEntry *timeentry, 
-               int x, int y, int w, 
-               const char **table, int table_items,
-               const char *text)
- : BC_TextBox(x, y, w, 1, text)
-{
-       this->timeentry = timeentry;
-       this->table = table;
-       this->table_items = table_items;
-}
-
-int DayText::handle_event()
-{
-       *timeentry->output_day = TimeEntry::day_to_int(get_text());
-       return timeentry->handle_event();
-}
-
-
-DayTumbler::DayTumbler(TimeEntry *timeentry, DayText *text, int x, int y)
- : BC_Tumbler(x, y)
-{
-       this->timeentry = timeentry;
-       this->text = text;
-}
-
-
-int DayTumbler::handle_up_event()
-{
-       if( !timeentry->enabled ) return 1;
-       *timeentry->output_day += 1;
-       if(*timeentry->output_day >= text->table_items)
-               *timeentry->output_day = 0;
-       text->update(text->table[*timeentry->output_day]);
-       return timeentry->handle_event();
-}
-
-int DayTumbler::handle_down_event()
-{
-       if( !timeentry->enabled ) return 1;
-       *timeentry->output_day -= 1;
-       if(*timeentry->output_day < 0)
-               *timeentry->output_day = text->table_items - 1;
-       text->update(text->table[*timeentry->output_day]);
-       return timeentry->handle_event();
-}
-
-
-
-TimeEntryTumbler::TimeEntryTumbler(BC_WindowBase *gui, int x, int y,
-               int *output_day, double *output_time, int incr,
-               int time_format, int time_w)
- : TimeEntry(gui, x, y, output_day, output_time,
-                time_format, time_w-BC_Tumbler::calculate_w())
-{
-       this->time_w = time_w;
-       this->incr = incr;
-       sec_tumbler = 0;
-}
-
-TimeEntryTumbler::~TimeEntryTumbler()
-{
-       delete sec_tumbler;
-}
-
-void TimeEntryTumbler::create_objects()
-{
-       TimeEntry::create_objects();
-       sec_tumbler = new SecTumbler(this, x+TimeEntry::time_w, y);
-       gui->add_subwindow(sec_tumbler);
-}
-
-void TimeEntryTumbler::reposition_window(int x, int y)
-{
-       TimeEntry::reposition_window(x, y);
-       sec_tumbler->reposition_window(x+TimeEntry::time_w, y);
-}
-
-int TimeEntryTumbler::get_h()
-{
-       return TimeEntry::get_h();
-}
-
-int TimeEntryTumbler::get_w()
-{
-       return TimeEntry::get_w() + BC_Tumbler::calculate_w();
-}
-
-int TimeEntryTumbler::handle_up_event()
-{
-       if( !enabled ) return 1;
-       if( output_time ) {
-               *output_time += incr;
-               char text[BCTEXTLEN];
-               Units::totext(text, *output_time, time_format);
-               time_text->update(text);
-       }
-       return handle_event();
-}
-
-int TimeEntryTumbler::handle_down_event()
-{
-       if( !enabled ) return 1;
-       if( output_time ) {
-               *output_time -= incr;
-               char text[BCTEXTLEN];
-               Units::totext(text, *output_time, time_format);
-               time_text->update(text);
-       }
-       return handle_event();
-}
-
-
-SecTumbler::SecTumbler(TimeEntryTumbler *timetumbler, int x, int y)
- : BC_Tumbler(x, y)
-{
-       this->timetumbler = timetumbler;
-}
-
-int SecTumbler::handle_up_event()
-{
-       return timetumbler->handle_up_event();
-}
-
-int SecTumbler::handle_down_event()
-{
-       return timetumbler->handle_down_event();
-}
-
-
-
-TimeTextBox::TimeTextBox(TimeEntry *timeentry, 
-               int x, int y, int w, char *default_text)
- : BC_TextBox(x, y, w, 1, default_text)
-{
-       this->timeentry = timeentry;
-}
-
-int TimeTextBox::handle_event()
-{
-       *timeentry->output_time = Units::text_to_seconds(get_text(),
-                               48000, timeentry->time_format);
-       return timeentry->handle_event();
-}
-
-