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