18
18
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23
23
#include <gtk/gtk.h>
24
#include <gdk/gdkkeysyms.h>
25
24
#include <glib/gi18n-lib.h>
28
#include <stdlib.h> // for 'system'
36
# include <FLAC/metadata.h>
41
27
#include "easytag.h"
47
#ifndef PACKAGE_DATA_DIR
48
# include "../pixmaps/EasyTAG_logo.xpm"
52
# include "win32/win32dep.h"
53
# include "win32/gtkwin32dep.h"
60
static GtkWidget *AboutWindow = NULL;
62
// Columns for features supported...
71
EXTENSION_COLUMN_COUNT
79
void About_Window_Key_Press (GtkWidget *window, GdkEvent *event);
80
void Quit_About_Window (void);
81
void About_Window_Go_To_Home_Page (void);
89
* Close the window when the 'escape' key is pressed.
91
void About_Window_Key_Press (GtkWidget *window ATTRIBUTE_UNUSED, GdkEvent *event)
95
if (event && event->type == GDK_KEY_PRESS)
97
kevent = (GdkEventKey *)event;
98
switch(kevent->keyval)
108
void Quit_About_Window (void)
112
gtk_widget_destroy(AboutWindow);
113
AboutWindow = (GtkWidget *)NULL;
114
/*gtk_widget_set_sensitive(MainWindow,TRUE);*/
118
29
void Show_About_Window (void)
120
GtkWidget *AboutNoteBook;
123
GtkWidget *VBox, *hbox;
124
GtkWidget *ScrollWindow;
126
GtkTextBuffer *TextBuffer;
127
GtkTextIter textIter;
130
//GdkPixbuf *pixbuf = NULL;
133
gchar temp[MAX_STRING_LEN];
136
#ifdef PACKAGE_DATA_DIR
140
gchar *description_text =
142
" EasyTAG is an utility for viewing and editing tags for MP3, MP2, "
143
"FLAC, Ogg Vorbis, MP4/AAC, MusePack and Monkey's Audio files. Its "
144
"simple and nice GTK+ interface makes tagging easier under GNU/Linux."
147
/* Translation contributions */
148
gchar *translations_thanks_text [][2]= {
149
{" - Bastian Kleineidam ", _("(German translation)")},
150
{" - Adrian Bunk ", _("(German translation)")},
151
{" - Colin Marquardt ", _("(German translation)")},
152
{" - Philipp Thomas ", _("(German translation)")},
153
{" - Sergey Zhumatiy ", _("(Russian translation)")},
154
{" - Andrey Astafiev ", _("(Russian translation)")},
155
{" - Vincent van Adrighem ", _("(Dutch translation)")},
156
{" - Björn Olievier ", _("(Dutch translation)")},
157
{" - Patrik Israelsson ", _("(Swedish translation)")},
158
{" - Anders Strömer ", _("(Swedish translation)")},
159
{" - Arild Matsson ", _("(Swedish translation)")},
160
{" - Szel Miklos ", _("(Hungarian translation)")},
161
{" - Nagy Boldizsar ", _("(Hungarian translation)")},
162
{" - Mészáros Csaba ", _("(Hungarian translation)")},
163
{" - Cappelletti Lorenzo ", _("(Italian translation)")},
164
{" - Costantino Ceoldo ", _("(Italian translation)")},
165
{" - Takeshi Aihana ", _("(Japanese translation)")},
166
{" - Olexander Kunytsa ", _("(Ukrainian translation)")},
167
{" - Cawko Xakep ", _("(Ukrainian translation)")},
168
{" - Milan Siebenburger ", _("(Czech translation)")},
169
{" - Zbynek Mrkvicka ", _("(Czech translation)")},
170
{" - Jaime Serrano Cartagena ", _("(Spanish translation)")},
171
{" - Fernando M. Bueno Moreno ", _("(Spanish translation)")},
172
{" - Francisco Javier F. Serrador ", _("(Spanish translation)")},
173
{" - Maciej Kasprzyk ", _("(Polish translation)")},
174
{" - Pauliuc George ", _("(Romanian translation)")},
175
{" - Morten Brix Pedersen ", _("(Danish translation)")},
176
{" - Apollon Oikonomopoulos ", _("(Greek translation)")},
177
{" - doutor zero ", _("(Brazilian Portuguese translation)")},
178
{" - Luchezar P. Petkov ", _("(Bulgarian translation)")},
179
{" - Yang Jinsong ", _("(Chinese translation)")},
180
{" - Jose Sun ", _("(Chinese (Taiwan) translation)")},
181
{" - Yuval Hager ", _("(Hebrew translation)")},
182
{" - Miloš Popović ", _("(Serbian translation)")},
183
{" - Götz Waschk ", _("(German translation)")},
187
/* General contributions */
188
gchar *general_thanks_text =
189
" - Daniel Drake (GTK2 port)\n"
190
" - Mihael Vrbanec (GTK2 port)\n"
191
" - Michael Pujos (Win32 port)\n"
192
" - Andrew Shuvalov\n"
193
" - Sergey Zhumatiy\n"
194
" - Kevin Venkiteswaran\n"
195
" - Sheikholeslami Navid\n"
199
" - Patrik Israelsson\n"
201
" - Alexander D Harkness\n"
208
" - Cappelletti Lorenzo\n"
209
" - Colin Marquardt\n"
211
" - Holger Schemel\n"
212
" - Artur Polaczynski\n"
213
" - Maciej Kasprzyk\n"
214
" - Daniel Pichler\n"
215
" - Santtu Lakkala\n"
216
" - Philipp Thomas\n"
219
" - Justus Schwartz\n"
220
" - Fredrik Noring\n"
221
" - Guilherme Destefani\n"
223
" - Stewart Whitman\n"
225
" - Alexey Illarionov\n"
228
" - Maarten Maathuis\n"
232
" - Gaute Amundsen\n"
235
GtkWidget *ExtensionList;
236
GtkListStore *ExtensionListModel;
237
GtkTreeViewColumn* column;
238
GtkCellRenderer* renderer;
239
gchar *ExtensionList_Titles[] = { N_("Extension Name"),
243
GtkTreeIter treeIter;
244
//GError *error = NULL;
247
/* Check if already opened */
250
gdk_window_raise(AboutWindow->window);
255
AboutWindow = gtk_dialog_new();
258
gtk_window_set_title(GTK_WINDOW(AboutWindow),_("About..."));
259
gtk_window_set_position(GTK_WINDOW(AboutWindow),GTK_WIN_POS_CENTER);
261
/* Signals connection */
262
g_signal_connect(G_OBJECT(AboutWindow),"destroy", G_CALLBACK(Quit_About_Window),NULL);
263
g_signal_connect(G_OBJECT(AboutWindow),"delete_event",G_CALLBACK(Quit_About_Window),NULL);
264
g_signal_connect(G_OBJECT(AboutWindow),"key_press_event", G_CALLBACK(About_Window_Key_Press),NULL);
267
AboutNoteBook = gtk_notebook_new();
268
gtk_notebook_popup_enable(GTK_NOTEBOOK(AboutNoteBook));
269
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(AboutWindow)->vbox),AboutNoteBook,TRUE,TRUE,0);
273
* Tab for common informations
276
Label = gtk_label_new(_("About"));
277
Frame = gtk_frame_new(NULL);
278
gtk_notebook_append_page (GTK_NOTEBOOK(AboutNoteBook),Frame,Label);
279
gtk_container_set_border_width(GTK_CONTAINER(Frame), 2);
281
VBox = gtk_vbox_new(FALSE,0);
282
gtk_container_add(GTK_CONTAINER(Frame),VBox);
285
gtk_widget_realize(AboutWindow);
287
#ifdef PACKAGE_DATA_DIR
288
pixmap = gdk_pixmap_create_from_xpm(AboutWindow->window,&mask,NULL,PACKAGE_DATA_DIR"/EasyTAG_logo.xpm");
290
pixmap = gdk_pixmap_create_from_xpm_d(AboutWindow->window,&mask,NULL,EasyTAG_logo_xpm);
295
Logo = gtk_image_new_from_pixmap(pixmap, mask);
296
g_object_unref(pixmap);
297
g_object_unref(mask);
298
gtk_box_pack_start(GTK_BOX(VBox),Logo,FALSE,TRUE,0);
299
gtk_misc_set_padding(GTK_MISC(Logo),2,2);
301
/*#ifdef PACKAGE_DATA_DIR
302
pixbuf = gdk_pixbuf_new_from_file(PACKAGE_DATA_DIR"/EasyTAG_logo.png",&error);
307
Logo = gtk_image_new_from_pixbuf(pixbuf);
308
g_object_unref(pixbuf);
309
gtk_box_pack_start(GTK_BOX(VBox),Logo,FALSE,TRUE,0);
310
gtk_misc_set_padding(GTK_MISC(Logo),2,2);
313
Log_Print(LOG_ERROR,error->message);
318
Label = gtk_label_new(NULL);
319
gtk_label_set_markup(GTK_LABEL(Label),"<b>"APPNAME" "VERSION"</b>");
320
gtk_box_pack_start(GTK_BOX(VBox),Label,FALSE,TRUE,0);
322
sprintf(temp,_("(compiled: %s)"),__DATE__);
323
Label = gtk_label_new(temp);
324
gtk_box_pack_start(GTK_BOX(VBox),Label,FALSE,TRUE,0);
326
sprintf(temp,_("(using: GTK+ %d.%d.%d)"),GTK_MAJOR_VERSION,GTK_MINOR_VERSION,GTK_MICRO_VERSION);
327
Label = gtk_label_new(temp);
328
gtk_box_pack_start(GTK_BOX(VBox),Label,FALSE,TRUE,0);
330
/* Insert a blank line */
331
Label = gtk_label_new("");
332
gtk_box_pack_start(GTK_BOX(VBox),Label,FALSE,TRUE,0);
334
sprintf(temp,_("Author: %s"),AUTHOR);
335
Label = gtk_label_new(temp);
336
gtk_box_pack_start(GTK_BOX(VBox),Label,FALSE,TRUE,0);
338
sprintf(temp,_("E-mail: %s"),EMAIL);
339
Label = gtk_label_new(temp);
340
gtk_box_pack_start(GTK_BOX(VBox),Label,FALSE,TRUE,0);
342
hbox = gtk_hbox_new(FALSE,0);
343
gtk_box_pack_start(GTK_BOX(VBox),hbox,FALSE,TRUE,0);
344
Label = gtk_label_new(_("Web Page: "));
345
gtk_misc_set_alignment(GTK_MISC(Label),1,0.5);
346
gtk_box_pack_start(GTK_BOX(hbox),Label,TRUE,TRUE,0);
347
Button = gtk_button_new_with_label(WEBPAGE);
348
//Button = gtk_link_button_new(WEBPAGE);
349
gtk_box_pack_start(GTK_BOX(hbox),Button,TRUE,TRUE,0);
350
g_signal_connect(G_OBJECT(Button),"clicked", G_CALLBACK(About_Window_Go_To_Home_Page),NULL);
351
gtk_button_set_relief(GTK_BUTTON(Button),GTK_RELIEF_NONE);
353
/* Insert a blank line */
354
Label = gtk_label_new("");
355
gtk_box_pack_start(GTK_BOX(VBox),Label,TRUE,TRUE,0);
357
Frame = gtk_frame_new(_("Description:"));
358
gtk_frame_set_shadow_type(GTK_FRAME(Frame),GTK_SHADOW_IN);
359
gtk_box_pack_start(GTK_BOX(VBox),Frame,FALSE,TRUE,0);
360
gtk_container_set_border_width(GTK_CONTAINER(Frame), 2);
362
Label = gtk_label_new(_(description_text));
363
gtk_misc_set_padding(GTK_MISC(Label),2,2);
364
gtk_label_set_line_wrap(GTK_LABEL(Label),TRUE);
365
gtk_container_add(GTK_CONTAINER(Frame),Label);
373
Label = gtk_label_new(_("Extensions"));
374
Frame = gtk_frame_new(NULL);
375
gtk_notebook_append_page(GTK_NOTEBOOK(AboutNoteBook),Frame,Label);
377
ScrollWindow = gtk_scrolled_window_new(NULL,NULL);
378
gtk_container_add(GTK_CONTAINER(Frame),ScrollWindow);
379
gtk_container_set_border_width(GTK_CONTAINER(Frame),2);
380
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(ScrollWindow),
381
GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
383
ExtensionListModel = gtk_list_store_new(EXTENSION_COLUMN_COUNT,
384
G_TYPE_STRING, /* Pixbuf, but we use the Stock ID, so don't use GDK_TYPE_PIXBUF */
385
G_TYPE_STRING, /* Extension name */
386
G_TYPE_STRING, /* Statut */
387
G_TYPE_STRING /* Comment */
389
ExtensionList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(ExtensionListModel));
391
/* Pixbuf and Extension name */
392
column = gtk_tree_view_column_new();
393
gtk_tree_view_column_set_title(column, _(ExtensionList_Titles[0]));
395
// Cell of the column for the pixbuf
396
renderer = gtk_cell_renderer_pixbuf_new();
397
gtk_tree_view_column_pack_start(column, renderer, FALSE);
398
gtk_tree_view_column_set_attributes(column, renderer,
399
"stock-id", EXTENSION_PIXBUF,
401
// Cell of the column for the text
402
renderer = gtk_cell_renderer_text_new();
403
gtk_tree_view_column_pack_start(column, renderer, FALSE);
404
gtk_tree_view_column_set_attributes(column, renderer,
405
"text", EXTENSION_NAME,
407
gtk_tree_view_append_column(GTK_TREE_VIEW(ExtensionList), column);
408
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
411
renderer = gtk_cell_renderer_text_new();
412
column = gtk_tree_view_column_new_with_attributes(_(ExtensionList_Titles[1]), renderer,
413
"text", EXTENSION_STATUT,
415
gtk_tree_view_append_column(GTK_TREE_VIEW(ExtensionList), column);
416
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
419
renderer = gtk_cell_renderer_text_new();
420
column = gtk_tree_view_column_new_with_attributes(_(ExtensionList_Titles[2]), renderer,
421
"text", EXTENSION_COMMENT,
423
gtk_tree_view_append_column(GTK_TREE_VIEW(ExtensionList), column);
424
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
426
gtk_container_add(GTK_CONTAINER(ScrollWindow),ExtensionList);
427
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(ExtensionList)),
429
gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(ExtensionList), FALSE);
432
// Load extensions list
435
sprintf(temp, "libid3tag %s", ID3_VERSION);
437
gtk_list_store_append(ExtensionListModel, &treeIter);
438
gtk_list_store_set(ExtensionListModel, &treeIter,
439
EXTENSION_NAME, _("MP3 file support"),
441
EXTENSION_PIXBUF, GTK_STOCK_APPLY,
442
EXTENSION_STATUT, _("enabled"),
443
EXTENSION_COMMENT, temp,
445
EXTENSION_PIXBUF, GTK_STOCK_CANCEL,
446
EXTENSION_STATUT, _("disabled"),
450
#if (defined ENABLE_ID3LIB)
451
sprintf(temp, "id3lib %d.%d.%d", ID3LIB_MAJOR_VERSION, ID3LIB_MINOR_VERSION, ID3LIB_PATCH_VERSION);
453
gtk_list_store_append(ExtensionListModel, &treeIter);
454
gtk_list_store_set(ExtensionListModel, &treeIter,
455
EXTENSION_NAME, _("ID3v2.3 tags writting support"),
456
#if (defined ENABLE_ID3LIB)
457
EXTENSION_PIXBUF, GTK_STOCK_APPLY,
458
EXTENSION_STATUT, _("available"), // May not be used
459
EXTENSION_COMMENT, temp,
461
EXTENSION_PIXBUF, GTK_STOCK_CANCEL,
462
EXTENSION_STATUT, _("disabled"),
467
gtk_list_store_append(ExtensionListModel, &treeIter);
468
gtk_list_store_set(ExtensionListModel, &treeIter,
469
EXTENSION_NAME, _("Ogg Vorbis file support"),
471
EXTENSION_PIXBUF, GTK_STOCK_APPLY,
472
EXTENSION_STATUT, _("enabled"),
474
EXTENSION_PIXBUF, GTK_STOCK_CANCEL,
475
EXTENSION_STATUT, _("disabled"),
479
gtk_list_store_append(ExtensionListModel, &treeIter);
480
gtk_list_store_set(ExtensionListModel, &treeIter,
481
EXTENSION_NAME, _("Speex file support"),
483
EXTENSION_PIXBUF, GTK_STOCK_APPLY,
484
EXTENSION_STATUT, _("enabled"),
486
EXTENSION_PIXBUF, GTK_STOCK_CANCEL,
487
EXTENSION_STATUT, _("disabled"),
492
sprintf(temp, "flac %s", FLAC__VERSION_STRING);
495
gtk_list_store_append(ExtensionListModel, &treeIter);
496
gtk_list_store_set(ExtensionListModel, &treeIter,
497
EXTENSION_NAME, _("FLAC file support"),
499
EXTENSION_PIXBUF, GTK_STOCK_APPLY,
500
EXTENSION_STATUT, _("enabled"),
501
EXTENSION_COMMENT, temp,
503
EXTENSION_PIXBUF, GTK_STOCK_CANCEL,
504
EXTENSION_STATUT, _("disabled"),
508
gtk_list_store_append(ExtensionListModel, &treeIter);
509
gtk_list_store_set(ExtensionListModel, &treeIter,
510
EXTENSION_NAME, _("MP4/AAC file support"),
512
EXTENSION_PIXBUF, GTK_STOCK_APPLY,
513
EXTENSION_STATUT, _("enabled"),
515
EXTENSION_PIXBUF, GTK_STOCK_CANCEL,
516
EXTENSION_STATUT, _("disabled"),
520
gtk_list_store_append(ExtensionListModel, &treeIter);
521
gtk_list_store_set(ExtensionListModel, &treeIter,
522
EXTENSION_NAME, _("WavPack file support"),
523
#ifdef ENABLE_WAVPACK
524
EXTENSION_PIXBUF, GTK_STOCK_APPLY,
525
EXTENSION_STATUT, _("enabled"),
527
EXTENSION_PIXBUF, GTK_STOCK_CANCEL,
528
EXTENSION_STATUT, _("disabled"),
537
Label = gtk_label_new(_("Thanks"));
538
Frame = gtk_frame_new(NULL);
539
gtk_notebook_append_page(GTK_NOTEBOOK(AboutNoteBook),Frame,Label);
541
ScrollWindow = gtk_scrolled_window_new(NULL,NULL);
542
gtk_container_add(GTK_CONTAINER(Frame),ScrollWindow);
543
gtk_container_set_border_width(GTK_CONTAINER(Frame),2);
544
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(ScrollWindow),
545
GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
547
TextBuffer = gtk_text_buffer_new(NULL);
548
gtk_text_buffer_create_tag(TextBuffer, "italic", "style", PANGO_STYLE_ITALIC, NULL);
549
gtk_text_buffer_create_tag(TextBuffer, "bold", "weight", PANGO_WEIGHT_BOLD, NULL);
550
gtk_text_buffer_create_tag(TextBuffer, "underline", "underline", PANGO_UNDERLINE_SINGLE, NULL);
551
gtk_text_buffer_create_tag(TextBuffer, "large", "scale", PANGO_SCALE_LARGE, NULL);
552
//gtk_text_buffer_create_tag(TextBuffer, "x-large", "scale", PANGO_SCALE_X_LARGE, NULL);
553
//gtk_text_buffer_create_tag(TextBuffer, "monospace", "family", "monospace", NULL);
555
gtk_text_buffer_get_iter_at_offset(TextBuffer, &textIter, 0);
557
temp_str = _("Translations:\n");
558
gtk_text_buffer_insert_with_tags_by_name(TextBuffer, &textIter,
560
"bold", "underline", "large", NULL);
562
for (i=0; translations_thanks_text[i][0]!=NULL; i++)
565
/*if (!g_utf8_validate(translations_thanks_text[i][0], -1, NULL))
566
temp_str = convert_string(translations_thanks_text[i][0], "iso-8859-1", "utf-8",TRUE);
568
temp_str = g_strdup(translations_thanks_text[i][0]);*/
569
temp_str = Try_To_Validate_Utf8_String(translations_thanks_text[i][0]);
570
gtk_text_buffer_insert(TextBuffer, &textIter, temp_str, -1);
573
// Translation language
574
/*if (!g_utf8_validate(translations_thanks_text[i][1], -1, NULL))
575
temp_str = convert_string(translations_thanks_text[i][1], "iso-8859-1", "utf-8",TRUE);
577
temp_str = g_strdup(translations_thanks_text[i][1]);*/
578
temp_str = Try_To_Validate_Utf8_String(translations_thanks_text[i][1]);
579
gtk_text_buffer_insert_with_tags_by_name(TextBuffer, &textIter, temp_str, -1,
582
gtk_text_buffer_insert(TextBuffer, &textIter, "\n", -1);
585
gtk_text_buffer_insert(TextBuffer, &textIter, "\n", -1);
587
temp_str = _("General:\n");
588
gtk_text_buffer_insert_with_tags_by_name(TextBuffer, &textIter,
590
"bold", "underline", "large", NULL);
591
gtk_text_buffer_insert(TextBuffer, &textIter, general_thanks_text, -1);
593
TextView = gtk_text_view_new_with_buffer(TextBuffer);
594
gtk_container_add(GTK_CONTAINER(ScrollWindow),TextView);
595
gtk_text_view_set_editable(GTK_TEXT_VIEW(TextView), FALSE);
596
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(TextView), GTK_WRAP_WORD);
603
#ifdef PACKAGE_DATA_DIR
604
Label = gtk_label_new(_("Changes"));
605
Frame = gtk_frame_new(NULL);
606
gtk_notebook_append_page (GTK_NOTEBOOK(AboutNoteBook),Frame,Label);
608
ScrollWindow = gtk_scrolled_window_new(NULL,NULL);
609
gtk_container_add(GTK_CONTAINER(Frame),ScrollWindow);
610
gtk_container_set_border_width(GTK_CONTAINER(Frame),2);
611
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(ScrollWindow),
612
GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
614
TextBuffer = gtk_text_buffer_new(NULL);
615
gtk_text_buffer_get_iter_at_offset(TextBuffer, &textIter, 0);
616
gtk_text_buffer_create_tag(TextBuffer, "monospace", "family", "monospace", NULL);
617
gtk_text_buffer_create_tag(TextBuffer, "red_foreground", "foreground", "red", NULL);
618
gtk_text_buffer_create_tag(TextBuffer, "blue_foreground", "foreground", "blue", NULL);
619
gtk_text_buffer_create_tag(TextBuffer, "bold", "weight", PANGO_WEIGHT_BOLD, NULL);
621
gtk_text_buffer_get_iter_at_offset(TextBuffer, &textIter, 0);
623
// The file 'ChangeLog' to read
624
if ( (file=fopen(PACKAGE_DATA_DIR"/ChangeLog","r"))==0 )
626
gchar *msg = g_strdup_printf(_("Can't open file '%s' (%s)\n"),PACKAGE_DATA_DIR"/ChangeLog",g_strerror(errno));
627
gtk_text_buffer_insert_with_tags_by_name(TextBuffer, &textIter,
629
"monospace", "red_foreground", NULL);
633
gint first_version = 0;
635
while (fgets(temp,sizeof(temp),file))
637
if (temp[strlen(temp)-1]=='\n')
638
temp[strlen(temp)-1]='\0';
639
if (temp[strlen(temp)-1]=='\r')
640
temp[strlen(temp)-1]='\0';
642
// Convert line to UTF-8
643
/*if (!g_utf8_validate(temp, -1, NULL))
644
tmp = convert_string(temp, "iso-8859-1", "utf-8",TRUE);
646
tmp = g_strdup(temp);*/
647
tmp = Try_To_Validate_Utf8_String(temp);
649
if (tmp && tmp[0]!=' ') // If first character is a space => 1rst line after title
652
// To set to bold the title of the version and to red the first version
653
if (first_version > 2) // As title takes 2 lines
654
gtk_text_buffer_insert_with_tags_by_name(TextBuffer, &textIter,
656
"monospace", "bold", NULL);
658
gtk_text_buffer_insert_with_tags_by_name(TextBuffer, &textIter,
660
"monospace", "bold", "blue_foreground", NULL);
663
if (first_version > 2) // As title takes 2 lines
664
gtk_text_buffer_insert_with_tags_by_name(TextBuffer, &textIter,
668
gtk_text_buffer_insert_with_tags_by_name(TextBuffer, &textIter,
670
"monospace", "blue_foreground", NULL);
673
gtk_text_buffer_insert(TextBuffer, &textIter, "\n", -1);
678
TextView = gtk_text_view_new_with_buffer(TextBuffer);
679
gtk_container_add(GTK_CONTAINER(ScrollWindow),TextView);
680
gtk_text_view_set_editable(GTK_TEXT_VIEW(TextView), FALSE);
681
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(TextView), GTK_WRAP_WORD);
688
Button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
689
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(AboutWindow)->action_area),Button,FALSE,FALSE,0);
690
g_signal_connect(G_OBJECT(Button),"clicked", G_CALLBACK(Quit_About_Window),NULL);
691
GTK_WIDGET_SET_FLAGS(Button,GTK_CAN_DEFAULT);
692
gtk_widget_grab_default(Button);
695
gtk_widget_show_all(AboutWindow);
696
//gtk_container_resize_children(GTK_CONTAINER(AboutNoteBook));
701
void About_Window_Go_To_Home_Page (void)
704
wineasytag_notify_uri(WEBPAGE);
706
if (system("gnome-moz-remote "WEBPAGE)!=0)
707
if (system("x-www-browser "WEBPAGE)!=0)
708
system("www-browser "WEBPAGE);
31
static const gchar * const artists[] =
33
"Waqas Qamar <wakas88@gmail.com>",
34
"Der Humph <humph@gmx.de>",
38
static const gchar * const authors[] =
40
"David King <amigadave@amigadave.com>",
41
"Kip Warner <kip@thevertigo.com>",
42
"Santtu Lakkala <inzane@ircing.org>",
43
"Jérôme Couderc <easytag@gmail.com>",
44
"Daniel Drake <dsd@gentoo.org>",
45
"Mihael Vrbanec <miqster@gmx.net>",
46
"Michael Pujos <pujos.michael@laposte.net>",
47
"Adrian Bunk <bunk@fs.tum.de>",
48
"Goetz Waschk <waschk@informatik.uni-rostock.de>",
49
"Holger Schemel <aeglos@valinor.owl.de>",
50
"Charles Kerr <charles@superimp.org>",
51
"Maciej Kasprzyk <kasprzol@go2.pl>",
52
"Artur Polaczynski <artii@o2.pl>",
53
"Philipp Thomas <pthomas@suse.de>",
54
"Oliver <oliver@are-b.org>",
55
"Tony Mancill <tony@mancill.com>",
56
"Pavel Minayev <thalion@front.ru>",
57
"Justus Schwartz <justus@gmx.li>",
58
"Fredrik Noring <noring@nocrew.org>",
59
"Paul Giordano <giordano@covad.net>",
60
"Michael Ihde <mike.ihde@randomwalking.com>",
61
"Stewart Whitman <swhitman@cox.net>",
62
"Javier Kohen <jkohen@users.sourceforge.net>",
63
"FutureFog <futurefog@katamail.com>",
64
"Maarten Maathuis <madman2003@gmail.com>",
65
"Pierre Dumuid <pierre.dumuid@adelaide.edu.au>",
66
"Nick Lanham <nick@afternight.org>",
67
"Wojciech Wierchola <admin@webcarrot.pl>",
68
"Julian Taylor <jtaylor@ubuntu.com>",
69
"Honore Doktorr <hdfssk@gmail.com>",
70
"Guilherme Destefani <gd@helixbrasil.com.br>",
71
"Andreas Winkelmann <ml@awinkelmann.de>",
72
"Adrian Bunk <bunk@stusta.de>",
76
static const gchar * const documenters[] =
78
"Emmanuel Brun <brunema@wanadoo.fr>",
79
"Daniel Pichler <dpichler@dnet.it>",
80
"Anders Strömer <anders.stromer@comhem.se>",
84
static const gchar copyright[] = "Copyright © 2012–2013 David King\n"
85
"Copyright © 2009–2012 Kip Warner\n"
86
"Copyright © 2000–2008 Jérôme Couderc";
89
const gchar *translators;
91
license = _("This program is free software; you can redistribute it "
92
"and/or modify it under the terms of the GNU General Public "
93
"License as published by the Free Software Foundation; "
94
"either version 2 of the License, or (at your option) any "
97
"This program is distributed in the hope that it will be "
98
"useful, but WITHOUT ANY WARRANTY; without even the implied "
99
"warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR "
100
"PURPOSE. See the GNU General Public License for more "
103
"You should have received a copy of the GNU General Public "
104
"License along with this program. If not, see "
105
"<http://www.gnu.org/licenses/>.");
107
/* Translators: put your own name here to appear in the about dialog. */
108
translators = _("translator-credits");
110
if (!strcmp (translators,"translator-credits"))
115
gtk_show_about_dialog (GTK_WINDOW (MainWindow),
118
"comments", _("View and edit tags in audio files"),
119
"copyright", copyright,
120
"documenters", documenters,
122
"logo-icon-name", PACKAGE_TARNAME,
123
"program-name", PACKAGE_NAME,
124
"translator-credits", translators,
125
"version", PACKAGE_VERSION,
126
"website", PACKAGE_URL,
127
"wrap-license", TRUE,