rework/fixes for paste edits, cinermt suspend uses acpitool
[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
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 "  This software uses libraries from the FFmpeg project under the LGPLv2.1.\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         unlock_window();
152 }
153
154