gok r2519 - in trunk: . gok



Author: gerdk
Date: Mon Jul 28 09:47:51 2008
New Revision: 2519
URL: http://svn.gnome.org/viewvc/gok?rev=2519&view=rev

Log:
Revert last commit. String freeze is still active for trunk.

Modified:
   trunk/ChangeLog
   trunk/gok/gok-keyboard.c

Modified: trunk/gok/gok-keyboard.c
==============================================================================
--- trunk/gok/gok-keyboard.c	(original)
+++ trunk/gok/gok-keyboard.c	Mon Jul 28 09:47:51 2008
@@ -3628,9 +3628,15 @@
  *
  **/
 void
-gok_keyboard_about (GokKey *pKey)
+gok_keyboard_about (GokKey *pKey) 
 {
-	static const gchar *authors[] = {
+	static GtkWidget *about = NULL, *hbox = NULL;
+	GdkPixbuf	 *pixbuf = NULL;
+	GError		 *error = NULL;
+	gchar		 *file = NULL;
+	
+	
+	static const gchar *authors [] = {
 		"David Bolter <david bolter utoronto ca>",
 		"Bill Haneman <bill haneman sun com>",
 		"Chris Ridpath <chris ridpath utoronto ca>",
@@ -3638,22 +3644,64 @@
 		"Gnome Accessibility <gnome-accessibility-devel gnome org>",
 		NULL
 	};
-
-	gtk_show_about_dialog (GTK_WINDOW (gok_main_get_main_window ()),
-		"program-name", _("GOK"),
-		"version", VERSION,
-		"copyright", "Copyright (C) 2001-2008 Sun Microsystems\n"
-			     "Copyright (C) 2001-2008 University of Toronto",
-		"comments", _("Dynamic virtual keyboards for the GNOME desktop"),
-		"authors", authors,
-		"translator-credits", _("translator-credits"),
-		"website", "http://www.gok.ca/credits.html";,
-		"website-label", _("Full Credits"),
-		"logo-icon-name", "gok",
-		"title", _("About GOK"),
-		/* avoid occluding GOK main window */
-		"window-position", GTK_WIN_POS_CENTER,
-		NULL);
+	
+	const gchar *documenters[] = {
+		NULL
+	};
+	
+	const gchar *translator_credits = _("translator-credits");
+	
+	if (about) {
+		gtk_window_set_screen (
+			GTK_WINDOW (about),
+			gtk_widget_get_screen (GTK_WIDGET (gok_main_get_main_window ())));
+		gtk_window_present (GTK_WINDOW (about));
+		return;
+	}
+		
+	file = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_APP_DATADIR, 
+					  "gok.png", 
+					  FALSE, NULL);
+	if (file) {
+		pixbuf = gdk_pixbuf_new_from_file (file, &error);
+		if (error) {
+		    g_warning (G_STRLOC ": cannot open %s: %s", file, error->message);
+		    g_error_free (error);
+		}
+		g_free (file);
+	}
+	
+	about = gnome_about_new (
+		_("GOK"), VERSION,
+		"Copyright (C) 2001-2003 Sun Microsystems, Copyright (C) 2001-2003 University of Toronto", 
+		_("Dynamic virtual keyboards for the GNOME desktop"),
+		authors,
+		documenters,
+		strcmp (translator_credits, "translator_credits") != 0 ? translator_credits : NULL,
+		pixbuf);
+	
+	/* stealing a hack from gnumeric */
+	hbox = gtk_hbox_new (TRUE, 0);
+	gtk_box_pack_start (GTK_BOX (hbox),
+		gnome_href_new ("http://www.gok.ca/credits.html";, _("Full Credits")),
+		FALSE, FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (GTK_DIALOG (about)->vbox),
+				hbox, TRUE, FALSE, 0);
+	gtk_widget_show_all (hbox);
+		
+	if (pixbuf)
+		gdk_pixbuf_unref (pixbuf);
+			
+	gtk_window_set_wmclass (GTK_WINDOW (about), "gok", "GOK");
+	gtk_window_set_screen (GTK_WINDOW (about),
+				   gtk_widget_get_screen (GTK_WIDGET (gok_main_get_main_window ())));
+	g_signal_connect (about, "destroy",
+			  G_CALLBACK (gtk_widget_destroyed),
+			  &about);
+	/* make it 'normal' to avoid occluding GOK main window */
+	gtk_window_set_type_hint (GTK_WINDOW (about), GDK_WINDOW_TYPE_HINT_NORMAL);
+	gtk_window_set_position (GTK_WINDOW (about), GTK_WIN_POS_CENTER);
+	gtk_widget_show (about);
 }
 
 /**



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]