4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
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.
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.
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
22 #include "aboutprefs.h"
23 #include "bcsignals.h"
29 #include "versioninfo.h"
33 #define COMPILEDATE "built: " __DATE__ " " __TIME__
35 const char *AboutPrefs::build_timestamp = COMPILEDATE;
36 const char *AboutPrefs::ffmpeg_version = CINELERRA_LIBAV_VERSION;
38 AboutPrefs::AboutPrefs(MWindow *mwindow, PreferencesWindow *pwindow)
39 : PreferencesDialog(mwindow, pwindow)
41 // *** CONTEXT_HELP ***
42 context_help_set_keyword("About");
45 AboutPrefs::~AboutPrefs()
47 about.remove_all_objects();
50 void AboutPrefs::create_objects()
52 lock_window("AboutPrefs::create_objects");
54 BC_Resources *resources = BC_WindowBase::get_resources();
57 x = mwindow->theme->preferencesoptions_x;
58 y = mwindow->theme->preferencesoptions_y +
59 get_text_height(LARGEFONT);
62 set_color(resources->text_default);
63 draw_text(x, y, PROGRAM_NAME " " CINELERRA_VERSION);
64 y += 2*get_text_height(MEDIUMFONT);
67 draw_text(x, y, COPYRIGHTTEXT1
68 #if defined(COPYRIGHTTEXT2)
72 y += 2*get_text_height(MEDIUMFONT);
73 draw_text(x,y, COPYRIGHTTEXT3);
74 y += get_text_height(MEDIUMFONT);
75 draw_text(x,y, COPYRIGHTTEXT4);
77 y += get_text_height(MEDIUMFONT) * 2;
80 const char *cfg_path = File::get_cindat_path();
81 char msg_path[BCTEXTLEN];
83 if( BC_Resources::language[0] ) {
84 snprintf(msg_path, sizeof(msg_path), "%s/msg/%s",
85 cfg_path, BC_Resources::language);
86 fp = fopen(msg_path, "r");
89 snprintf(msg_path, sizeof(msg_path), "%s/msg/txt",
91 fp = fopen(msg_path, "r");
95 draw_text(x, y, _("About:"));
96 y += get_text_height(LARGEFONT);
98 while( fgets(msg, sizeof(msg), fp) ) {
99 int len = strlen(msg);
100 if( len > 0 && msg[len-1] == '\n' ) msg[len-1] = 0;
101 about.append(new BC_ListBoxItem(msg));
104 add_subwindow(listbox = new BC_ListBox(x, y, xS(450), yS(250),
105 LISTBOX_TEXT, &about, 0, 0, 1));
106 y += listbox->get_h() + get_text_height(LARGEFONT) + yS(10);
109 y += yS(300) + get_text_height(LARGEFONT) + yS(10);
112 set_color(resources->text_default);
113 draw_text(x, y, _("License:"));
114 y += get_text_height(LARGEFONT);
115 set_font(MEDIUMFONT);
117 char license3[BCTEXTLEN];
119 "This program is free software; you can redistribute it and/or modify it under the terms\n"
120 "of the GNU General Public License as published by the Free Software Foundation; either version\n"
121 "2 of the License, or (at your option) any later version.\n"
122 " This software uses libraries from the FFmpeg project under the LGPLv2.1.\n"
123 "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\n"
124 "without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n"
125 "PURPOSE. See the GNU General Public License for more details.\n"));
126 draw_text(x, y, license3);
127 y += get_text_height(MEDIUMFONT, license3);
129 draw_text(x, y, build_timestamp);
130 x += get_text_width(MEDIUMFONT, build_timestamp);
132 x += get_text_width(MEDIUMFONT, " ");
133 draw_text(x,y, ffmpeg_version);
134 x -= get_text_width(MEDIUMFONT, build_timestamp);
135 x -= get_text_width(MEDIUMFONT, " ");
136 #if defined(REPOMAINTXT)
137 y += get_text_height(MEDIUMFONT, build_timestamp);
138 draw_text(x, y, REPOMAINTXT);
141 x = get_w() - mwindow->theme->about_bg->get_w() - xS(10);
142 y = mwindow->theme->preferencesoptions_y;
143 BC_Pixmap *temp_pixmap = new BC_Pixmap(this,
144 mwindow->theme->about_bg,
146 draw_pixmap(temp_pixmap, x, y);
149 x += mwindow->theme->about_bg->get_w() + xS(10);
150 y += get_text_height(LARGEFONT) * 2;