add Autosave continuous backups by Andras Reuss and Andrew-R
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / aboutprefs.C
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #include "aboutprefs.h"
23 #include "bcsignals.h"
24 #include "file.h"
25 #include "language.h"
26 #include "mwindow.h"
27 #include "theme.h"
28 #include "vframe.h"
29 #include "versioninfo.h"
30
31 #ifndef COMPILEDATE
32 #define COMPILEDATE "built: " __DATE__ " " __TIME__
33 #endif
34 const char *AboutPrefs::build_timestamp = COMPILEDATE;
35
36 AboutPrefs::AboutPrefs(MWindow *mwindow, PreferencesWindow *pwindow)
37  : PreferencesDialog(mwindow, pwindow)
38 {
39 }
40
41 AboutPrefs::~AboutPrefs()
42 {
43         about.remove_all_objects();
44 }
45
46 void AboutPrefs::create_objects()
47 {
48         lock_window("AboutPrefs::create_objects");
49         int x, y;
50         BC_Resources *resources = BC_WindowBase::get_resources();
51
52 //      add_subwindow(new BC_Title(mwindow->theme->preferencestitle_x,
53 //              mwindow->theme->preferencestitle_y,
54 //              _("About"),
55 //              LARGEFONT,
56 //              resources->text_default));
57
58         x = mwindow->theme->preferencesoptions_x;
59         y = mwindow->theme->preferencesoptions_y +
60                 get_text_height(LARGEFONT);
61
62         set_font(LARGEFONT);
63         set_color(resources->text_default);
64         draw_text(x, y, PROGRAM_NAME " " CINELERRA_VERSION);
65         y += 2*get_text_height(MEDIUMFONT);
66
67         set_font(MEDIUMFONT);
68         draw_text(x, y, COPYRIGHTTEXT1
69 #if defined(COPYRIGHTTEXT2)
70         COPYRIGHTTEXT2
71 #endif
72         );
73         y += get_text_height(MEDIUMFONT) * 3;
74
75
76         const char *cfg_path = File::get_cindat_path();
77         char msg_path[BCTEXTLEN];
78         FILE *fp = 0;
79         if( BC_Resources::language[0] ) {
80                 snprintf(msg_path, sizeof(msg_path), "%s/msg/%s",
81                         cfg_path, BC_Resources::language);
82                 fp = fopen(msg_path, "r");
83         }
84         if( !fp ) {
85                 snprintf(msg_path, sizeof(msg_path), "%s/msg/txt",
86                         cfg_path);
87                 fp = fopen(msg_path, "r");
88         }
89         if( fp ) {
90                 set_font(LARGEFONT);
91                 draw_text(x, y, _("About:"));
92                 y += get_text_height(LARGEFONT);
93                 char msg[BCTEXTLEN];
94                 while( fgets(msg, sizeof(msg), fp) ) {
95                         int len = strlen(msg);
96                         if( len > 0 && msg[len-1] == '\n' ) msg[len-1] = 0;
97                         about.append(new BC_ListBoxItem(msg));
98                 }
99                 BC_ListBox *listbox;
100                 add_subwindow(listbox = new BC_ListBox(x, y, xS(450), yS(280),
101                         LISTBOX_TEXT, &about, 0, 0, 1));
102                 y += listbox->get_h() + get_text_height(LARGEFONT) + yS(10);
103         }
104         else
105                 y += yS(300) + get_text_height(LARGEFONT) + yS(10);
106
107         set_font(LARGEFONT);
108         set_color(resources->text_default);
109         draw_text(x, y, _("License:"));
110         y += get_text_height(LARGEFONT);
111         set_font(MEDIUMFONT);
112
113         char license3[BCTEXTLEN];
114         sprintf(license3, _(
115 "This program is free software; you can redistribute it and/or modify it under the terms\n"
116 "of the GNU General Public License as published by the Free Software Foundation; either version\n"
117 "2 of the License, or (at your option) any later version.\n"
118 "  This software uses libraries from the FFmpeg project under the LGPLv2.1.\n"
119 "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\n"
120 "without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n"
121 "PURPOSE.  See the GNU General Public License for more details.\n"));
122         draw_text(x, y, license3);
123         y += get_text_height(MEDIUMFONT, license3);
124
125         draw_text(x, y, build_timestamp);
126 #if defined(REPOMAINTXT)
127         y += get_text_height(MEDIUMFONT, build_timestamp);
128         draw_text(x, y, REPOMAINTXT);
129 #endif
130
131         x = get_w() - mwindow->theme->about_bg->get_w() - xS(10);
132         y = mwindow->theme->preferencesoptions_y;
133         BC_Pixmap *temp_pixmap = new BC_Pixmap(this,
134                 mwindow->theme->about_bg,
135                 PIXMAP_ALPHA);
136         draw_pixmap(temp_pixmap, x, y);
137         delete temp_pixmap;
138
139         x += mwindow->theme->about_bg->get_w() + xS(10);
140         y += get_text_height(LARGEFONT) * 2;
141
142         flash();
143         flush();
144         unlock_window();
145 }
146
147