vinagre r381 - in trunk: . data po src
- From: jwendell svn gnome org
- To: svn-commits-list gnome org
- Subject: vinagre r381 - in trunk: . data po src
- Date: Sat, 14 Jun 2008 00:44:24 +0000 (UTC)
Author: jwendell
Date: Sat Jun 14 00:44:24 2008
New Revision: 381
URL: http://svn.gnome.org/viewvc/vinagre?rev=381&view=rev
Log:
2008-06-13 Jonh Wendell <jwendell gnome org>
* Added a panel applet.
Added:
trunk/data/GNOME_VinagreApplet.xml
trunk/src/GNOME_VinagreApplet.server.in.in
trunk/src/vinagre-applet.c
Modified:
trunk/ (props changed)
trunk/ChangeLog
trunk/INSTALL
trunk/configure.ac
trunk/data/Makefile.am
trunk/po/POTFILES.in
trunk/src/ (props changed)
trunk/src/Makefile.am
trunk/src/vinagre-commands.c
trunk/src/vinagre-utils.c
trunk/src/vinagre-utils.h
Modified: trunk/INSTALL
==============================================================================
--- trunk/INSTALL (original)
+++ trunk/INSTALL Sat Jun 14 00:44:24 2008
@@ -10,6 +10,7 @@
- gnome-keyring
- gtk-vnc widget >= 0.3.5 (http://gtk-vnc.sf.net)
- avahi-gobject and avahi-ui >= 0.6.22
+ - libpanelapplet-2.0 >= 2.0.0
To compile it, just do:
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Sat Jun 14 00:44:24 2008
@@ -40,6 +40,7 @@
GTHREAD_REQUIRED=2.0.0
GTK_VNC_REQUIRED=0.3.6
AVAHI_REQUIRED=0.6.22
+PANEL_REQUIRED_VERSION=2.0.0
PKG_CHECK_MODULES(VINAGRE, \
glib-2.0 >= $GLIB_REQUIRED \
@@ -55,6 +56,11 @@
AC_SUBST(VINAGRE_CFLAGS)
AC_SUBST(VINAGRE_LIBS)
+PKG_CHECK_MODULES(APPLET, \
+ libpanelapplet-2.0 >= $PANEL_REQUIRED_VERSION)
+AC_SUBST(APPLET_CFLAGS)
+AC_SUBST(APPLET_LIBS)
+
dnl ================================================================
dnl GConf related settings
dnl ================================================================
Added: trunk/data/GNOME_VinagreApplet.xml
==============================================================================
--- (empty file)
+++ trunk/data/GNOME_VinagreApplet.xml Sat Jun 14 00:44:24 2008
@@ -0,0 +1,18 @@
+<Root>
+ <popups>
+ <popup name="button3">
+ <menuitem
+ name="Help Item"
+ verb="VinagreHelp"
+ _label="_Help"
+ pixtype="stock"
+ pixname="gtk-help"/>
+ <menuitem
+ name="About Item"
+ verb="VinagreAbout"
+ _label="_About"
+ pixtype="stock"
+ pixname="gtk-about"/>
+ </popup>
+ </popups>
+</Root>
Modified: trunk/data/Makefile.am
==============================================================================
--- trunk/data/Makefile.am (original)
+++ trunk/data/Makefile.am Sat Jun 14 00:44:24 2008
@@ -6,7 +6,7 @@
man_MANS = vinagre.1
uidir = $(datadir)/vinagre
-ui_DATA = vinagre-ui.xml
+ui_DATA = vinagre-ui.xml GNOME_VinagreApplet.xml
@INTLTOOL_DESKTOP_RULE@
desktopdir = $(datadir)/applications
Modified: trunk/po/POTFILES.in
==============================================================================
--- trunk/po/POTFILES.in (original)
+++ trunk/po/POTFILES.in Sat Jun 14 00:44:24 2008
@@ -1,11 +1,15 @@
# List of source files containing translatable strings.
+data/GNOME_VinagreApplet.xml
data/vinagre.desktop.in.in
data/vinagre-file.desktop.in.in
data/vinagre.glade
data/vinagre.schemas.in
data/vinagre-mime.xml.in
data/vinagre-ui.xml
+src/GNOME_VinagreApplet.server.in.in
+src/vinagre-app.c
+src/vinagre-applet.c
src/vinagre-bookmarks.c
src/vinagre-commands.c
src/vinagre-connect.c
Added: trunk/src/GNOME_VinagreApplet.server.in.in
==============================================================================
--- (empty file)
+++ trunk/src/GNOME_VinagreApplet.server.in.in Sat Jun 14 00:44:24 2008
@@ -0,0 +1,38 @@
+<oaf_info>
+ <oaf_server iid="OAFIID:GNOME_VinagreApplet_Factory" type="exe"
+ location="@LIBEXECDIR@/vinagre-applet">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/GenericFactory:1.0"/>
+ <item value="IDL:Bonobo/Unknown:1.0"/>
+ </oaf_attribute>
+ <oaf_attribute name="name" type="string" _value="Vinagre Applet Factory"/>
+ <oaf_attribute name="description" type="string" _value="Vinagre Applet Factory"/>
+ <oaf_attribute name="bonobo:environment" type="stringv">
+ <item value="DBUS_SESSION_BUS_ADDRESS"/>
+ <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
+ <oaf_attribute name="bugzilla:product" type="string" value="vinagre"/>
+ <oaf_attribute name="bugzilla:component" type="string" value="applet"/>
+ <oaf_attribute name="bugzilla:version" type="string" value="@VERSION@"/>
+ <oaf_attribute name="bugzilla:other_binaries" type="string" value="vinagre-applet"/>
+ </oaf_attribute>
+ </oaf_server>
+
+ <oaf_server iid="OAFIID:GNOME_VinagreApplet" type="factory"
+ location="OAFIID:GNOME_VinagreApplet_Factory">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/>
+ <item value="IDL:Bonobo/Control:1.0"/>
+ <item value="IDL:Bonobo/Unknown:1.0"/>
+ </oaf_attribute>
+ <oaf_attribute name="name" type="string" _value="Remote Desktop Viewer"/>
+ <oaf_attribute name="description" type="string" _value="A menu to quickly access remote machines"/>
+ <oaf_attribute name="panel:icon" type="string" value="vinagre"/>
+ <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
+ <oaf_attribute name="bugzilla:product" type="string" value="vinagre-applet"/>
+ <oaf_attribute name="bugzilla:component" type="string" value="applet"/>
+ <oaf_attribute name="bugzilla:version" type="string" value="@VERSION@"/>
+ <oaf_attribute name="bugzilla:other_binaries" type="string" value="vinagre-applet"/>
+ </oaf_server>
+</oaf_info>
Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am (original)
+++ trunk/src/Makefile.am Sat Jun 14 00:44:24 2008
@@ -2,6 +2,10 @@
NULL =
+##############################
+# The main binary
+##############################
+
INCLUDES = \
-DBINDIR=\"$(bindir)\" \
-DDATADIR=\"$(datadir)\" \
@@ -42,6 +46,51 @@
view/libview.la \
$(NULL)
+##############################
+# Bonobo .server
+##############################
+
+serverdir = \
+ $(libdir)/bonobo/servers
+server_in_files = \
+ GNOME_VinagreApplet.server.in
+server_DATA = \
+ $(server_in_files:.server.in=.server)
+
+$(server_in_files): $(server_in_files:.server.in=.server.in.in)
+ sed -e "s|\ LIBEXECDIR\@|$(libexecdir)|" -e "s|\ VERSION\@|$(VERSION)|" $< > $@
+
+ INTLTOOL_SERVER_RULE@
+
+##############################
+# The applet binary
+##############################
+
+libexec_PROGRAMS = vinagre-applet
+
+vinagre_applet_CFLAGS = \
+ $(APPLET_CFLAGS) \
+ $(NULL)
+
+vinagre_applet_SOURCES = \
+ vinagre-applet.c \
+ vinagre-bookmarks.h vinagre-bookmarks.c \
+ vinagre-connection.h vinagre-connection.c \
+ vinagre-utils.h vinagre-utils.c \
+ vinagre-enums.h vinagre-enums.c \
+ vinagre-mdns.h vinagre-mdns.c \
+ $(NULL)
+
+vinagre_applet_LDADD = \
+ $(APPLET_LIBS) \
+ $(VINAGRE_LIBS) \
+ $(NULL)
+
+
+##############################
+# Autogenerated stuff
+##############################
+
vinagre_enum_headers = \
$(top_srcdir)/src/vinagre-connection.h \
$(NULL)
@@ -77,8 +126,14 @@
vinagre-enums.h \
$(NULL)
-DISTCLEANFILES = \
- $(BUILT_SOURCES) \
+DISTCLEANFILES = \
+ $(BUILT_SOURCES) \
+ $(server_in_files) \
+ $(server_DATA) \
+ $(NULL)
+
+EXTRA_DIST = \
+ GNOME_VinagreApplet.server.in.in \
$(NULL)
dist-hook:
Added: trunk/src/vinagre-applet.c
==============================================================================
--- (empty file)
+++ trunk/src/vinagre-applet.c Sat Jun 14 00:44:24 2008
@@ -0,0 +1,250 @@
+/*
+ * vinagre-applet.c
+ * This file is part of vinagre
+ *
+ * Copyright (C) 2008 - Jonh Wendell <wendell bani com br>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <string.h>
+#include <glib.h>
+#include <panel-applet.h>
+#include <gtk/gtklabel.h>
+#include "vinagre-bookmarks.h"
+#include "vinagre-mdns.h"
+#include "vinagre-utils.h"
+#include "vinagre-connection.h"
+#include "vinagre-commands.h"
+#include <config.h>
+
+static void
+menu_position (GtkMenu *menu,
+ gint *x,
+ gint *y,
+ gboolean *push_in,
+ GtkWidget *applet)
+{
+ int applet_height, applet_width;
+ GtkRequisition requisition;
+
+ gdk_window_get_origin (applet->window, x, y);
+ gdk_drawable_get_size (applet->window, &applet_width, &applet_height);
+ gtk_widget_size_request (GTK_WIDGET (menu), &requisition);
+
+ switch (panel_applet_get_orient (PANEL_APPLET (applet)))
+ {
+ case PANEL_APPLET_ORIENT_DOWN:
+ *y += applet_height + 1;
+ break;
+
+ case PANEL_APPLET_ORIENT_UP:
+ *y = MAX (*y - requisition.height - 2, 2*applet_height);
+ break;
+
+ case PANEL_APPLET_ORIENT_LEFT:
+ *x = MAX (*x - requisition.width - 2, 2*applet_width);
+ break;
+
+ case PANEL_APPLET_ORIENT_RIGHT:
+ *x += applet_height + 1;
+ break;
+
+ default:
+ g_assert_not_reached ();
+ }
+
+ *push_in = TRUE;
+}
+
+static void
+open_connection_cb (GtkMenuItem *item,
+ gpointer *user_data)
+{
+ GError *err = NULL;
+ gchar **argv;
+ VinagreConnection *conn;
+
+ conn = VINAGRE_CONNECTION (g_object_get_data (G_OBJECT (item), "conn"));
+
+ argv = g_new0 (gchar *, 3);
+ argv[0] = g_strdup ("vinagre");
+ argv[1] = g_strdup (vinagre_connection_get_string_rep (conn, TRUE));
+ argv[2] = NULL;
+
+ if (!gdk_spawn_on_screen (gtk_widget_get_screen (GTK_WIDGET (item)),
+ NULL,
+ argv,
+ NULL,
+ G_SPAWN_SEARCH_PATH,
+ NULL,
+ NULL,
+ NULL,
+ &err))
+ {
+ gchar *tmp;
+
+ tmp = g_strdup_printf (_("Could not run vinagre: %s"), err->message);
+ vinagre_utils_show_error (tmp, NULL);
+
+ g_error_free (err);
+ g_free (tmp);
+ }
+
+ g_strfreev (argv);
+}
+
+static void
+fill_menu (GSList *all, GtkWidget *menu)
+{
+ GtkWidget *item, *image;
+
+ if (g_slist_length (all) == 0)
+ return;
+
+ /* Separator */
+ item = gtk_separator_menu_item_new ();
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+
+ for (; all; all=all->next)
+ {
+ image = gtk_image_new_from_icon_name ("application-x-vnc", GTK_ICON_SIZE_MENU);
+ item = gtk_image_menu_item_new_with_label (vinagre_connection_get_name (all->data));
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item),
+ image);
+
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu),
+ item);
+ g_object_set_data (G_OBJECT (item), "conn", all->data);
+ g_signal_connect (item, "activate", G_CALLBACK (open_connection_cb), NULL);
+ }
+}
+
+static void
+open_vinagre_cb (GtkMenuItem *item,
+ gpointer *user_data)
+{
+ GError *err = NULL;
+
+ if (!g_spawn_command_line_async ("vinagre", &err))
+ {
+ gchar *tmp;
+
+ tmp = g_strdup_printf (_("Could not run vinagre: %s"), err->message);
+ vinagre_utils_show_error (tmp, NULL);
+
+ g_error_free (err);
+ g_free (tmp);
+ }
+}
+
+static gboolean
+click_cb (GtkWidget *applet,
+ GdkEventButton *event,
+ gpointer user_data)
+{
+ GtkWidget *menu, *item, *image;
+ GSList *all;
+
+ if ((event->type != GDK_BUTTON_PRESS) || (event->button != 1))
+ return FALSE;
+
+ menu = gtk_menu_new ();
+
+ /* Open, first item */
+ image = gtk_image_new_from_icon_name ("vinagre", GTK_ICON_SIZE_MENU);
+ item = gtk_image_menu_item_new_with_label (_("Open Remote Desktop Viewer"));
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item),
+ image);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+ g_signal_connect (item, "activate", G_CALLBACK (open_vinagre_cb), NULL);
+
+ all = vinagre_bookmarks_get_all (vinagre_bookmarks_get_default ());
+ fill_menu (all, menu);
+
+ all = vinagre_mdns_get_all (vinagre_mdns_get_default ());
+ fill_menu (all, menu);
+
+ gtk_widget_show_all (menu);
+ gtk_menu_popup (GTK_MENU (menu), NULL, NULL, (GtkMenuPositionFunc) menu_position, applet,
+ event->button, event->time);
+ return TRUE;
+}
+
+static void
+help_cb (BonoboUIComponent *ui_container,
+ gpointer data,
+ const gchar *cname)
+{
+ vinagre_utils_help_contents (NULL);
+}
+
+static void
+about_cb (BonoboUIComponent *ui_container,
+ gpointer data,
+ const gchar *cname)
+{
+ vinagre_utils_help_about (NULL);
+}
+
+static gboolean
+vinagre_applet_fill (PanelApplet *applet,
+ const gchar *iid,
+ gpointer data)
+{
+ GtkWidget *image, *button;
+ gchar *tmp;
+ static const BonoboUIVerb menu_verbs[] = {
+ BONOBO_UI_VERB ("VinagreHelp", help_cb),
+ BONOBO_UI_VERB ("VinagreAbout", about_cb),
+ BONOBO_UI_VERB_END
+ };
+
+ if (strcmp (iid, "OAFIID:GNOME_VinagreApplet") != 0)
+ return FALSE;
+
+ bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ textdomain (GETTEXT_PACKAGE);
+ gtk_window_set_default_icon_name ("vinagre");
+ g_set_application_name (_("Remote Desktop Viewer"));
+
+ image = gtk_image_new_from_icon_name ("vinagre", GTK_ICON_SIZE_LARGE_TOOLBAR);
+ g_signal_connect (applet, "button-press-event", G_CALLBACK (click_cb), NULL);
+
+ tmp = g_strdup_printf ("%s\n%s",
+ _("Remote Desktop Viewer"),
+ _("Access your bookmarks"));
+ gtk_widget_set_tooltip_text (GTK_WIDGET (applet), tmp);
+ g_free (tmp);
+
+ panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR);
+ panel_applet_setup_menu_from_file (applet, NULL,
+ DATADIR "/vinagre/GNOME_VinagreApplet.xml",
+ NULL, menu_verbs, NULL);
+
+ gtk_container_add (GTK_CONTAINER (applet), image);
+ gtk_widget_show_all (GTK_WIDGET (applet));
+
+ return TRUE;
+}
+
+
+PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_VinagreApplet_Factory",
+ PANEL_TYPE_APPLET,
+ "VinagreApplet",
+ "0",
+ vinagre_applet_fill,
+ NULL);
+
Modified: trunk/src/vinagre-commands.c
==============================================================================
--- trunk/src/vinagre-commands.c (original)
+++ trunk/src/vinagre-commands.c Sat Jun 14 00:44:24 2008
@@ -368,138 +368,20 @@
vinagre_cmd_open_bookmark (window, conn);
}
-/* Make url in about dialog clickable */
-static void
-vinagre_about_dialog_handle_url (GtkAboutDialog *about,
- const char *link,
- gpointer data)
-{
- GError *error = NULL;
- gchar *address, *command;
-
- VinagreWindow *window = VINAGRE_WINDOW (data);
-
- if (g_strstr_len (link, strlen (link), "@"))
- address = g_strdup_printf ("mailto:%s", link);
- else
- address = g_strdup (link);
-
- command = g_strconcat ("gnome-open ", address, NULL);
-
- gdk_spawn_command_line_on_screen (gtk_window_get_screen (GTK_WINDOW (window)),
- command,
- &error);
- if (error != NULL)
- {
- vinagre_utils_show_error (error->message, GTK_WINDOW (window));
- g_error_free (error);
- }
-
- g_free (command);
- g_free (address);
-}
-
/* Help Menu */
void
vinagre_cmd_help_contents (GtkAction *action,
VinagreWindow *window)
{
- GError *error = NULL;
- char *command;
- const char *lang;
- char *uri = NULL;
- int i;
-
- const char * const * langs = g_get_language_names ();
-
- for (i = 0; langs[i]; i++)
- {
- lang = langs[i];
- if (strchr (lang, '.'))
- continue;
-
- if (uri)
- g_free (uri);
-
- uri = g_build_filename (DATADIR, "/gnome/help/vinagre/", lang, "/vinagre.xml", NULL);
-
- if (g_file_test (uri, G_FILE_TEST_EXISTS))
- break;
- }
-
- command = g_strconcat ("gnome-open ghelp://", uri, NULL);
-
- gdk_spawn_command_line_on_screen (gtk_window_get_screen (GTK_WINDOW (window)),
- command,
- &error);
- if (error != NULL)
- {
- vinagre_utils_show_error (error->message, GTK_WINDOW (window));
- g_error_free (error);
- }
-
- g_free (command);
- g_free (uri);
+ vinagre_utils_help_contents (GTK_WINDOW (window));
}
void
vinagre_cmd_help_about (GtkAction *action,
VinagreWindow *window)
{
- static const gchar * const authors[] = {
- "Jonh Wendell <jwendell gnome org>",
- NULL
- };
-
- static const gchar * const artists[] = {
- "Vinicius Depizzol <vdepizzol gmail com>",
- NULL
- };
-
- static const gchar copyright[] = \
- "Copyright \xc2\xa9 2007 Jonh Wendell";
-
- static const gchar comments[] = \
- N_("Vinagre is a VNC client for the GNOME Desktop");
-
- static const char *license[] = {
- N_("Vinagre is free software; you can redistribute it and/or modify "
- "it under the terms of the GNU General Public License as published by "
- "the Free Software Foundation; either version 2 of the License, or "
- "(at your option) any later version."),
- N_("Vinagre is distributed in the hope that it will be useful, "
- "but WITHOUT ANY WARRANTY; without even the implied warranty of "
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
- "GNU General Public License for more details."),
- N_("You should have received a copy of the GNU General Public License "
- "along with this program. If not, see <http://www.gnu.org/licenses/>.")
- };
-
- gchar *license_trans;
-
- license_trans = g_strjoin ("\n\n", _(license[0]), _(license[1]),
- _(license[2]), NULL);
-
- /* Make URLs and email clickable in about dialog */
- gtk_about_dialog_set_url_hook (vinagre_about_dialog_handle_url, window, NULL);
- gtk_about_dialog_set_email_hook (vinagre_about_dialog_handle_url, window, NULL);
-
-
- gtk_show_about_dialog (GTK_WINDOW (window),
- "authors", authors,
- "artists", artists,
- "comments", _(comments),
- "copyright", copyright,
- "license", license_trans,
- "wrap-license", TRUE,
- "logo-icon-name", "vinagre",
- "translator-credits", _("translator-credits"),
- "version", VERSION,
- "website", "http://www.gnome.org/projects/vinagre/",
- "website-label", _("Vinagre Website"),
- NULL);
- g_free (license_trans);
+ vinagre_utils_help_about (GTK_WINDOW (window));
}
/* vim: ts=8 */
Modified: trunk/src/vinagre-utils.c
==============================================================================
--- trunk/src/vinagre-utils.c (original)
+++ trunk/src/vinagre-utils.c Sat Jun 14 00:44:24 2008
@@ -19,6 +19,7 @@
*/
#include <string.h>
+#include <glib/gi18n.h>
#include "vinagre-utils.h"
#define VINAGRE_GLADE_FILE "vinagre.glade"
@@ -349,4 +350,142 @@
#endif
}
+/* Make url in about dialog clickable */
+static void
+vinagre_about_dialog_handle_url (GtkAboutDialog *about,
+ const char *link,
+ gpointer data)
+{
+ GError *error = NULL;
+ gchar *address, *command;
+ gboolean has_window = GTK_IS_WINDOW (data);
+
+ if (g_strstr_len (link, strlen (link), "@"))
+ address = g_strdup_printf ("mailto:%s", link);
+ else
+ address = g_strdup (link);
+
+ command = g_strconcat ("gnome-open ", address, NULL);
+
+ if (has_window)
+ gdk_spawn_command_line_on_screen (gtk_window_get_screen (GTK_WINDOW (data)),
+ command,
+ &error);
+ else
+ g_spawn_command_line_async (command, &error);
+
+ if (error != NULL)
+ {
+ vinagre_utils_show_error (error->message, has_window?GTK_WINDOW (data):NULL);
+ g_error_free (error);
+ }
+
+ g_free (command);
+ g_free (address);
+}
+
+void
+vinagre_utils_help_contents (GtkWindow *window)
+{
+ GError *error = NULL;
+ char *command;
+ const char *lang;
+ char *uri = NULL;
+ int i;
+ gboolean has_window = GTK_IS_WINDOW (window);
+
+ const char * const * langs = g_get_language_names ();
+
+ for (i = 0; langs[i]; i++)
+ {
+ lang = langs[i];
+ if (strchr (lang, '.'))
+ continue;
+
+ if (uri)
+ g_free (uri);
+
+ uri = g_build_filename (DATADIR, "/gnome/help/vinagre/", lang, "/vinagre.xml", NULL);
+
+ if (g_file_test (uri, G_FILE_TEST_EXISTS))
+ break;
+ }
+
+ command = g_strconcat ("gnome-open ghelp://", uri, NULL);
+
+ if (has_window)
+ gdk_spawn_command_line_on_screen (gtk_window_get_screen (GTK_WINDOW (window)),
+ command,
+ &error);
+ else
+ g_spawn_command_line_async (command, &error);
+
+ if (error != NULL)
+ {
+ vinagre_utils_show_error (error->message, has_window?window:NULL);
+ g_error_free (error);
+ }
+
+ g_free (command);
+ g_free (uri);
+}
+
+void
+vinagre_utils_help_about (GtkWindow *window)
+{
+ static const gchar * const authors[] = {
+ "Jonh Wendell <jwendell gnome org>",
+ NULL
+ };
+
+ static const gchar * const artists[] = {
+ "Vinicius Depizzol <vdepizzol gmail com>",
+ NULL
+ };
+
+ static const gchar copyright[] = \
+ "Copyright \xc2\xa9 2007 Jonh Wendell";
+
+ static const gchar comments[] = \
+ N_("Vinagre is a VNC client for the GNOME Desktop");
+
+ static const char *license[] = {
+ N_("Vinagre is free software; you can redistribute it and/or modify "
+ "it under the terms of the GNU General Public License as published by "
+ "the Free Software Foundation; either version 2 of the License, or "
+ "(at your option) any later version."),
+ N_("Vinagre is distributed in the hope that it will be useful, "
+ "but WITHOUT ANY WARRANTY; without even the implied warranty of "
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
+ "GNU General Public License for more details."),
+ N_("You should have received a copy of the GNU General Public License "
+ "along with this program. If not, see <http://www.gnu.org/licenses/>.")
+ };
+
+ gchar *license_trans;
+
+ license_trans = g_strjoin ("\n\n", _(license[0]), _(license[1]),
+ _(license[2]), NULL);
+
+ /* Make URLs and email clickable in about dialog */
+ gtk_about_dialog_set_url_hook (vinagre_about_dialog_handle_url, window, NULL);
+ gtk_about_dialog_set_email_hook (vinagre_about_dialog_handle_url, window, NULL);
+
+
+ gtk_show_about_dialog (GTK_IS_WINDOW (window)?window:NULL,
+ "authors", authors,
+ "artists", artists,
+ "comments", _(comments),
+ "copyright", copyright,
+ "license", license_trans,
+ "wrap-license", TRUE,
+ "logo-icon-name", "vinagre",
+ "translator-credits", _("translator-credits"),
+ "version", VERSION,
+ "website", "http://www.gnome.org/projects/vinagre/",
+ "website-label", _("Vinagre Website"),
+ NULL);
+ g_free (license_trans);
+}
+
/* vim: ts=8 */
Modified: trunk/src/vinagre-utils.h
==============================================================================
--- trunk/src/vinagre-utils.h (original)
+++ trunk/src/vinagre-utils.h Sat Jun 14 00:44:24 2008
@@ -56,5 +56,7 @@
gint *x,
gint *y);
+void vinagre_utils_help_contents (GtkWindow *window);
+void vinagre_utils_help_about (GtkWindow *window);
#endif /* __VINAGRE_UTILS_H__ */
/* vim: ts=8 */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]