4702c944e6c1439074d1cb9bfcbb194175c6483d
[goodguy/history.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 "libzmpeg3.h"
27 #include "mwindow.h"
28 #include "theme.h"
29 #include "vframe.h"
30 #include "versioninfo.h"
31
32 #ifndef COMPILEDATE
33 #define COMPILEDATE "built: " __DATE__ " " __TIME__
34 #endif
35 const char *AboutPrefs::build_timestamp = COMPILEDATE;
36
37 AboutPrefs::AboutPrefs(MWindow *mwindow, PreferencesWindow *pwindow)
38  : PreferencesDialog(mwindow, pwindow)
39 {
40 }
41
42 AboutPrefs::~AboutPrefs()
43 {
44         about.remove_all_objects();
45 }
46
47 void AboutPrefs::create_objects()
48 {
49         int x, y;
50
51
52         BC_Resources *resources = BC_WindowBase::get_resources();
53
54 //      add_subwindow(new BC_Title(mwindow->theme->preferencestitle_x,
55 //              mwindow->theme->preferencestitle_y,
56 //              _("About"),
57 //              LARGEFONT,
58 //              resources->text_default));
59
60         x = mwindow->theme->preferencesoptions_x;
61         y = mwindow->theme->preferencesoptions_y +
62                 get_text_height(LARGEFONT);
63
64         set_font(LARGEFONT);
65         set_color(resources->text_default);
66         draw_text(x, y, PROGRAM_NAME " " CINELERRA_VERSION);
67         y += 2*get_text_height(MEDIUMFONT);
68
69         set_font(MEDIUMFONT);
70         draw_text(x, y, COPYRIGHTTEXT1
71 #if defined(COPYRIGHTTEXT2)
72         COPYRIGHTTEXT2
73 #endif
74         );
75         y += get_text_height(MEDIUMFONT) * 3;
76
77
78         const char *cfg_path = File::get_cindat_path();
79         char msg_path[BCTEXTLEN];
80         FILE *fp = 0;
81         if( BC_Resources::language[0] ) {
82                 snprintf(msg_path, sizeof(msg_path), "%s/msg/%s",
83                         cfg_path, BC_Resources::language);
84                 fp = fopen(msg_path, "r");
85         }
86         if( !fp ) {
87                 snprintf(msg_path, sizeof(msg_path), "%s/msg/txt",
88                         cfg_path);
89                 fp = fopen(msg_path, "r");
90         }
91         if( fp ) {
92                 set_font(LARGEFONT);
93                 draw_text(x, y, _("About:"));
94                 y += get_text_height(LARGEFONT);
95                 char msg[BCTEXTLEN];
96                 while( fgets(msg, sizeof(msg), fp) ) {
97                         int len = strlen(msg);
98                         if( len > 0 && msg[len-1] == '\n' ) msg[len-1] = 0;
99                         about.append(new BC_ListBoxItem(msg));
100                 }
101                 BC_ListBox *listbox;
102                 add_subwindow(listbox = new BC_ListBox(x, y, 450, 280,
103                         LISTBOX_TEXT, &about, 0, 0, 1));
104                 y += listbox->get_h() + get_text_height(LARGEFONT) + 10;
105         }
106         else
107                 y += 300 + get_text_height(LARGEFONT) + 10;
108
109         set_font(LARGEFONT);
110         set_color(resources->text_default);
111         draw_text(x, y, _("License:"));
112         y += get_text_height(LARGEFONT);
113         set_font(MEDIUMFONT);
114
115         char license3[BCTEXTLEN];
116         sprintf(license3, _(
117 "This program is free software; you can redistribute it and/or modify it under the terms\n"
118 "of the GNU General Public License as published by the Free Software Foundation; either version\n"
119 "2 of the License, or (at your option) any later version.\n"
120 "\n"
121 "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\n"
122 "without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n"
123 "PURPOSE.  See the GNU General Public License for more details.\n"));
124         draw_text(x, y, license3);
125         y += get_text_height(MEDIUMFONT, license3);
126
127         draw_text(x, y, build_timestamp);
128 #if defined(REPOMAINTXT)
129         y += get_text_height(MEDIUMFONT, build_timestamp);
130         draw_text(x, y, REPOMAINTXT);
131 #endif
132
133         x = get_w() - mwindow->theme->about_bg->get_w() - 10;
134         y = mwindow->theme->preferencesoptions_y;
135         BC_Pixmap *temp_pixmap = new BC_Pixmap(this,
136                 mwindow->theme->about_bg,
137                 PIXMAP_ALPHA);
138         draw_pixmap(temp_pixmap,
139                 x,
140                 y);
141
142         delete temp_pixmap;
143
144
145         x += mwindow->theme->about_bg->get_w() + 10;
146         y += get_text_height(LARGEFONT) * 2;
147
148
149         flash();
150         flush();
151 }
152
153