[vinagre/ssh: 3/4] Added initial plugins/ssh folder



commit 12ada72f42402d75ccde4619da2c02bd7921a235
Author: Jonh Wendell <jwendell gnome org>
Date:   Thu Jul 30 15:19:32 2009 -0300

    Added initial plugins/ssh folder

 plugins/ssh/Makefile.am                   |   30 ++++++
 plugins/ssh/ssh.vinagre-plugin.desktop.in |   11 +++
 plugins/ssh/vinagre-ssh-connection.c      |   78 ++++++++++++++++
 plugins/ssh/vinagre-ssh-connection.h      |   59 ++++++++++++
 plugins/ssh/vinagre-ssh-plugin.c          |  136 ++++++++++++++++++++++++++++
 plugins/ssh/vinagre-ssh-plugin.h          |   74 +++++++++++++++
 plugins/ssh/vinagre-ssh-tab.c             |  138 +++++++++++++++++++++++++++++
 plugins/ssh/vinagre-ssh-tab.h             |   61 +++++++++++++
 8 files changed, 587 insertions(+), 0 deletions(-)
---
diff --git a/plugins/ssh/Makefile.am b/plugins/ssh/Makefile.am
new file mode 100644
index 0000000..c27ea27
--- /dev/null
+++ b/plugins/ssh/Makefile.am
@@ -0,0 +1,30 @@
+# ssh plugin
+plugindir = $(VINAGRE_PLUGINS_LIBS_DIR)
+
+INCLUDES = \
+	-I$(top_srcdir) 				\
+	$(SSH_CFLAGS) 					\
+	$(WARN_CFLAGS)					\
+	$(DISABLE_DEPRECATED_CFLAGS)	
+
+plugin_LTLIBRARIES = libssh.la
+
+libssh_la_SOURCES = 						\
+	vinagre-ssh-plugin.h vinagre-ssh-plugin.c		\
+	vinagre-ssh-connection.h vinagre-ssh-connection.c	\
+	vinagre-ssh-tab.h vinagre-ssh-tab.c
+
+libssh_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS)
+libssh_la_LIBADD  = $(SSH_LIBS)
+
+plugin_in_files = ssh.vinagre-plugin.desktop.in
+
+ssh.vinagre-plugin: ssh.vinagre-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
+
+plugin_DATA = $(plugin_in_files:.vinagre-plugin.desktop.in=.vinagre-plugin)
+
+EXTRA_DIST = $(plugin_in_files)
+CLEANFILES = $(plugin_DATA)
+DISTCLEANFILES = $(plugin_DATA)
+
+-include $(top_srcdir)/git.mk
diff --git a/plugins/ssh/ssh.vinagre-plugin.desktop.in b/plugins/ssh/ssh.vinagre-plugin.desktop.in
new file mode 100644
index 0000000..0fc73bc
--- /dev/null
+++ b/plugins/ssh/ssh.vinagre-plugin.desktop.in
@@ -0,0 +1,11 @@
+[Vinagre Plugin]
+Module=ssh
+IAge=1
+_Name=SSH
+_Description=SSH support
+Authors=Jonh Wendell
+Copyright=Copyright © 2009 Jonh Wendell
+Website=http://www.bani.com.br
+Version=1.0
+Engine=1
+Icon=vinagre
diff --git a/plugins/ssh/vinagre-ssh-connection.c b/plugins/ssh/vinagre-ssh-connection.c
new file mode 100644
index 0000000..863468c
--- /dev/null
+++ b/plugins/ssh/vinagre-ssh-connection.c
@@ -0,0 +1,78 @@
+/*
+ * vinagre-ssh-connection.c
+ * Child class of abstract VinagreConnection, specific to SSH protocol
+ * This file is part of vinagre
+ *
+ * Copyright (C) 2009 - 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 <glib/gi18n.h>
+#include <vinagre/vinagre-utils.h>
+#include "vinagre-ssh-connection.h"
+
+struct _VinagreSshConnectionPrivate
+{
+  gint dummy;
+};
+
+#define VINAGRE_SSH_CONNECTION_PRIVATE(o)  (G_TYPE_INSTANCE_GET_PRIVATE ((o), VINAGRE_TYPE_SSH_CONNECTION, VinagreSshConnectionPrivate))
+G_DEFINE_TYPE (VinagreSshConnection, vinagre_ssh_connection, VINAGRE_TYPE_CONNECTION);
+
+static void
+vinagre_ssh_connection_init (VinagreSshConnection *conn)
+{
+  conn->priv = G_TYPE_INSTANCE_GET_PRIVATE (conn, VINAGRE_TYPE_SSH_CONNECTION, VinagreSshConnectionPrivate);
+}
+
+static void
+vinagre_ssh_connection_constructed (GObject *object)
+{
+  vinagre_connection_set_protocol (VINAGRE_CONNECTION (object), "ssh");
+}
+
+static void
+ssh_fill_writer (VinagreConnection *conn, xmlTextWriter *writer)
+{
+  VINAGRE_CONNECTION_CLASS (vinagre_ssh_connection_parent_class)->impl_fill_writer (conn, writer);
+}
+
+static void
+ssh_parse_item (VinagreConnection *conn, xmlNode *root)
+{
+  VINAGRE_CONNECTION_CLASS (vinagre_ssh_connection_parent_class)->impl_parse_item (conn, root);
+}
+
+static void
+vinagre_ssh_connection_class_init (VinagreSshConnectionClass *klass)
+{
+  GObjectClass* object_class = G_OBJECT_CLASS (klass);
+  VinagreConnectionClass* parent_class = VINAGRE_CONNECTION_CLASS (klass);
+
+  g_type_class_add_private (klass, sizeof (VinagreSshConnectionPrivate));
+
+  object_class->constructed  = vinagre_ssh_connection_constructed;
+
+  parent_class->impl_fill_writer = ssh_fill_writer;
+  parent_class->impl_parse_item  = ssh_parse_item;
+}
+
+VinagreConnection *
+vinagre_ssh_connection_new (void)
+{
+  return VINAGRE_CONNECTION (g_object_new (VINAGRE_TYPE_SSH_CONNECTION, NULL));
+}
+
+/* vim: set ts=8: */
diff --git a/plugins/ssh/vinagre-ssh-connection.h b/plugins/ssh/vinagre-ssh-connection.h
new file mode 100644
index 0000000..061eb81
--- /dev/null
+++ b/plugins/ssh/vinagre-ssh-connection.h
@@ -0,0 +1,59 @@
+/*
+ * vinagre-ssh-connection.h
+ * Child class of abstract VinagreConnection, specific to SSH protocol
+ * This file is part of vinagre
+ *
+ * Copyright (C) 2009 - 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/>.
+ */
+
+#ifndef __VINAGRE_SSH_CONNECTION_H__
+#define __VINAGRE_SSH_CONNECTION_H__
+
+#include <vinagre/vinagre-connection.h>
+
+G_BEGIN_DECLS
+
+#define VINAGRE_TYPE_SSH_CONNECTION             (vinagre_ssh_connection_get_type ())
+#define VINAGRE_SSH_CONNECTION(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), VINAGRE_TYPE_SSH_CONNECTION, VinagreSshConnection))
+#define VINAGRE_SSH_CONNECTION_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), VINAGRE_TYPE_SSH_CONNECTION, VinagreSshConnectionClass))
+#define VINAGRE_IS_SSH_CONNECTION(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VINAGRE_TYPE_SSH_CONNECTION))
+#define VINAGRE_IS_SSH_CONNECTION_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), VINAGRE_TYPE_SSH_CONNECTION))
+#define VINAGRE_SSH_CONNECTION_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), VINAGRE_TYPE_SSH_CONNECTION, VinagreSshConnectionClass))
+
+typedef struct _VinagreSshConnectionClass   VinagreSshConnectionClass;
+typedef struct _VinagreSshConnection        VinagreSshConnection;
+typedef struct _VinagreSshConnectionPrivate VinagreSshConnectionPrivate;
+
+struct _VinagreSshConnectionClass
+{
+  VinagreConnectionClass parent_class;
+};
+
+struct _VinagreSshConnection
+{
+  VinagreConnection parent_instance;
+  VinagreSshConnectionPrivate *priv;
+};
+
+
+GType vinagre_ssh_connection_get_type (void) G_GNUC_CONST;
+
+VinagreConnection*  vinagre_ssh_connection_new (void);
+
+G_END_DECLS
+
+#endif /* __VINAGRE_SSH_CONNECTION_H__  */
+/* vim: set ts=8: */
diff --git a/plugins/ssh/vinagre-ssh-plugin.c b/plugins/ssh/vinagre-ssh-plugin.c
new file mode 100644
index 0000000..124238f
--- /dev/null
+++ b/plugins/ssh/vinagre-ssh-plugin.c
@@ -0,0 +1,136 @@
+/*
+ * vinagre-ssh-plugin.c
+ * This file is part of vinagre
+ *
+ * Copyright (C) 2009 Jonh Wendell <wendell bani com br>
+ * 
+ * vinagre-ssh-plugin.c 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.
+ * 
+ * vinagre-ssh-plugin.c 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/>.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib/gi18n-lib.h>
+#include <gmodule.h>
+
+#include <vinagre/vinagre-debug.h>
+
+#include "vinagre-ssh-plugin.h"
+#include "vinagre-ssh-connection.h"
+#include "vinagre-ssh-tab.h"
+
+#define VINAGRE_SSH_PLUGIN_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), VINAGRE_TYPE_SSH_PLUGIN, VinagreSshPluginPrivate))
+
+VINAGRE_PLUGIN_REGISTER_TYPE(VinagreSshPlugin, vinagre_ssh_plugin)
+
+static void
+impl_activate (VinagrePlugin *plugin,
+               VinagreWindow *window)
+{
+  vinagre_debug_message (DEBUG_PLUGINS, "VinagreSshPlugin Activate");
+}
+
+static void
+impl_deactivate  (VinagrePlugin *plugin,
+                  VinagreWindow *window)
+{
+  vinagre_debug_message (DEBUG_PLUGINS, "VinagreSshPlugin Deactivate");
+}
+
+static void
+impl_update_ui (VinagrePlugin *plugin,
+                VinagreWindow *window)
+{
+  vinagre_debug_message (DEBUG_PLUGINS, "VinagreSshPlugin Update UI");
+}
+
+static const gchar *
+impl_get_protocol (VinagrePlugin *plugin)
+{
+  return "ssh";
+}
+
+static gchar **
+impl_get_public_description (VinagrePlugin *plugin)
+{
+  gchar **result = g_new (gchar *, 3);
+
+  result[0] = g_strdup (_("SSH"));
+  /* Translators: This is a description of the SSH protocol. It appears at Connect dialog. */
+  result[1] = g_strdup (_("Access Unix/Linux terminals"));
+  result[2] = NULL;
+
+  return result;
+}
+
+static const gchar *
+impl_get_mdns_service (VinagrePlugin *plugin)
+{
+  return "_ssh._tcp";
+}
+
+static VinagreConnection *
+impl_new_connection (VinagrePlugin *plugin)
+{
+  return vinagre_ssh_connection_new ();
+}
+
+static GtkWidget *
+impl_new_tab (VinagrePlugin     *plugin,
+	      VinagreConnection *conn,
+	      VinagreWindow     *window)
+{
+  return vinagre_ssh_tab_new (conn, window);
+}
+
+static gint
+impl_get_default_port (VinagrePlugin *plugin)
+{
+  return 22;
+}
+
+static void
+vinagre_ssh_plugin_init (VinagreSshPlugin *plugin)
+{
+  vinagre_debug_message (DEBUG_PLUGINS, "VinagreSshPlugin initializing");
+}
+
+static void
+vinagre_ssh_plugin_finalize (GObject *object)
+{
+  vinagre_debug_message (DEBUG_PLUGINS, "VinagreSshPlugin finalizing");
+
+  G_OBJECT_CLASS (vinagre_ssh_plugin_parent_class)->finalize (object);
+}
+
+static void
+vinagre_ssh_plugin_class_init (VinagreSshPluginClass *klass)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  VinagrePluginClass *plugin_class = VINAGRE_PLUGIN_CLASS (klass);
+
+  object_class->finalize   = vinagre_ssh_plugin_finalize;
+
+  plugin_class->activate   = impl_activate;
+  plugin_class->deactivate = impl_deactivate;
+  plugin_class->update_ui  = impl_update_ui;
+  plugin_class->get_protocol  = impl_get_protocol;
+  plugin_class->get_public_description  = impl_get_public_description;
+  plugin_class->new_connection = impl_new_connection;
+  plugin_class->get_mdns_service  = impl_get_mdns_service;
+  plugin_class->new_tab = impl_new_tab;
+  plugin_class->get_default_port = impl_get_default_port;
+}
+/* vim: set ts=8: */
diff --git a/plugins/ssh/vinagre-ssh-plugin.h b/plugins/ssh/vinagre-ssh-plugin.h
new file mode 100644
index 0000000..43e790a
--- /dev/null
+++ b/plugins/ssh/vinagre-ssh-plugin.h
@@ -0,0 +1,74 @@
+/*
+ * vinagre-ssh-plugin.h
+ * This file is part of vinagre
+ *
+ * Copyright (C) 2009 Jonh Wendell <wendell bani com br>
+ * 
+ * vinagre-ssh-plugin.h 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.
+ * 
+ * vinagre-ssh-plugin.h 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/>.
+ */
+
+#ifndef __VINAGRE_SSH_PLUGIN_H__
+#define __VINAGRE_SSH_PLUGIN_H__
+
+#include <glib.h>
+#include <glib-object.h>
+#include <vinagre/vinagre-plugin.h>
+
+G_BEGIN_DECLS
+
+/*
+ * Type checking and casting macros
+ */
+#define VINAGRE_TYPE_SSH_PLUGIN                 (vinagre_ssh_plugin_get_type ())
+#define VINAGRE_SSH_PLUGIN(o)                   (G_TYPE_CHECK_INSTANCE_CAST ((o), VINAGRE_TYPE_SSH_PLUGIN, VinagreSshPlugin))
+#define VINAGRE_SSH_PLUGIN_CLASS(k)             (G_TYPE_CHECK_CLASS_CAST((k), VINAGRE_TYPE_SSH_PLUGIN, VinagreSshPluginClass))
+#define VINAGRE_IS_SSH_PLUGIN(o)                (G_TYPE_CHECK_INSTANCE_TYPE ((o), VINAGRE_TYPE_SSH_PLUGIN))
+#define VINAGRE_IS_SSH_PLUGIN_CLASS(k)          (G_TYPE_CHECK_CLASS_TYPE ((k), VINAGRE_TYPE_SSH_PLUGIN))
+#define VINAGRE_SSH_PLUGIN_GET_CLASS(o)         (G_TYPE_INSTANCE_GET_CLASS ((o), VINAGRE_TYPE_SSH_PLUGIN, VinagreSshPluginClass))
+
+/* Private structure type */
+typedef struct _VinagreSshPluginPrivate	VinagreSshPluginPrivate;
+
+/*
+ * Main object structure
+ */
+typedef struct _VinagreSshPlugin		VinagreSshPlugin;
+
+struct _VinagreSshPlugin
+{
+  VinagrePlugin parent_instance;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _VinagreSshPluginClass	VinagreSshPluginClass;
+
+struct _VinagreSshPluginClass
+{
+  VinagrePluginClass parent_class;
+};
+
+/*
+ * Public methods
+ */
+GType	vinagre_ssh_plugin_get_type		(void) G_GNUC_CONST;
+
+/* All the plugins must implement this function */
+G_MODULE_EXPORT GType register_vinagre_plugin (GTypeModule *module);
+
+G_END_DECLS
+
+#endif /* __VINAGRE_SSH_PLUGIN_H__ */
+/* vim: set ts=8: */
diff --git a/plugins/ssh/vinagre-ssh-tab.c b/plugins/ssh/vinagre-ssh-tab.c
new file mode 100644
index 0000000..3e312ad
--- /dev/null
+++ b/plugins/ssh/vinagre-ssh-tab.c
@@ -0,0 +1,138 @@
+/*
+ * vinagre-ssh-tab.c
+ * SSH Implementation for VinagreSshTab widget
+ * This file is part of vinagre
+ *
+ * Copyright (C) 2009 - 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 <glib/gi18n.h>
+#include <vte/vte.h>
+#include <gdk/gdkkeysyms.h>
+
+#include <vinagre/vinagre-utils.h>
+#include <vinagre/vinagre-prefs.h>
+
+#include "vinagre-ssh-tab.h"
+#include "vinagre-ssh-connection.h"
+
+#define VINAGRE_SSH_TAB_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), VINAGRE_TYPE_SSH_TAB, VinagreSshTabPrivate))
+
+struct _VinagreSshTabPrivate
+{
+  GtkWidget  *vte;
+};
+
+G_DEFINE_TYPE (VinagreSshTab, vinagre_ssh_tab, VINAGRE_TYPE_TAB)
+
+
+static void open_ssh (VinagreSshTab *ssh_tab);
+
+static gchar *
+ssh_tab_get_tooltip (VinagreTab *tab)
+{
+  VinagreConnection *conn = vinagre_tab_get_conn (tab);
+
+  return  g_markup_printf_escaped (
+				  "<b>%s</b> %s\n"
+				  "<b>%s</b> %d",
+				  _("Host:"), vinagre_connection_get_host (conn),
+				  _("Port:"), vinagre_connection_get_port (conn));
+}
+
+static GdkPixbuf *
+ssh_tab_get_screenshot (VinagreTab *tab)
+{
+  return NULL;
+}
+
+static void
+vinagre_ssh_tab_constructed (GObject *object)
+{
+  open_ssh (VINAGRE_SSH_TAB (object));
+}
+
+static void 
+vinagre_ssh_tab_class_init (VinagreSshTabClass *klass)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  VinagreTabClass* tab_class = VINAGRE_TAB_CLASS (klass);
+
+  object_class->constructed = vinagre_ssh_tab_constructed;
+
+  tab_class->impl_get_tooltip = ssh_tab_get_tooltip;
+  tab_class->impl_get_screenshot = ssh_tab_get_screenshot;
+
+  g_type_class_add_private (object_class, sizeof (VinagreSshTabPrivate));
+}
+
+static void
+open_ssh (VinagreSshTab *ssh_tab)
+{
+  gchar **arg;
+
+  arg = g_new (gchar *, 5);
+  arg[0] = g_strdup ("ssh");
+  arg[1] = g_strdup (vinagre_connection_get_host (vinagre_tab_get_conn (VINAGRE_TAB (ssh_tab))));
+  arg[3] = g_strdup ("-p");
+  arg[4] = g_strdup_printf ("%d", vinagre_connection_get_port (vinagre_tab_get_conn (VINAGRE_TAB (ssh_tab))));
+  arg[5] = NULL;
+
+  vte_terminal_fork_command (VTE_TERMINAL (ssh_tab->priv->vte),
+			     "ssh",
+			     arg,
+			     NULL,
+			     NULL,
+			     FALSE,
+			     FALSE,
+			     FALSE);
+  g_strfreev (arg);
+
+  gtk_widget_show_all (GTK_WIDGET (ssh_tab));
+}
+
+static void
+ssh_disconnected_cb (VteTerminal *ssh, VinagreSshTab *tab)
+{
+  g_signal_emit_by_name (G_OBJECT (tab), "tab-disconnected");
+}
+
+static void
+vinagre_ssh_tab_init (VinagreSshTab *ssh_tab)
+{
+  ssh_tab->priv = VINAGRE_SSH_TAB_GET_PRIVATE (ssh_tab);
+
+  /* Create the ssh widget */
+  ssh_tab->priv->vte = vte_terminal_new ();
+  vinagre_tab_add_view (VINAGRE_TAB (ssh_tab), ssh_tab->priv->vte);
+
+  g_signal_connect (ssh_tab->priv->vte,
+		    "child-exited",
+		    G_CALLBACK (ssh_disconnected_cb),
+		    ssh_tab);
+}
+
+GtkWidget *
+vinagre_ssh_tab_new (VinagreConnection *conn,
+		     VinagreWindow     *window)
+{
+  return GTK_WIDGET (g_object_new (VINAGRE_TYPE_SSH_TAB,
+				   "conn", conn,
+				   "window", window,
+				   NULL));
+}
+
+/* vim: set ts=8: */
diff --git a/plugins/ssh/vinagre-ssh-tab.h b/plugins/ssh/vinagre-ssh-tab.h
new file mode 100644
index 0000000..9406667
--- /dev/null
+++ b/plugins/ssh/vinagre-ssh-tab.h
@@ -0,0 +1,61 @@
+/*
+ * vinagre-ssh-tab.h
+ * SSH Tab
+ * This file is part of vinagre
+ *
+ * Copyright (C) 2009 - 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/>.
+ */
+
+#ifndef __VINAGRE_SSH_TAB_H__
+#define __VINAGRE_SSH_TAB_H__
+
+#include <vinagre/vinagre-tab.h>
+
+G_BEGIN_DECLS
+
+#define VINAGRE_TYPE_SSH_TAB              (vinagre_ssh_tab_get_type())
+#define VINAGRE_SSH_TAB(obj)              (G_TYPE_CHECK_INSTANCE_CAST((obj), VINAGRE_TYPE_SSH_TAB, VinagreSshTab))
+#define VINAGRE_SSH_TAB_CONST(obj)        (G_TYPE_CHECK_INSTANCE_CAST((obj), VINAGRE_TYPE_SSH_TAB, VinagreSshTab const))
+#define VINAGRE_SSH_TAB_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST((klass), VINAGRE_TYPE_SSH_TAB, VinagreSshTabClass))
+#define VINAGRE_IS_SSH_TAB(obj)           (G_TYPE_CHECK_INSTANCE_TYPE((obj), VINAGRE_TYPE_SSH_TAB))
+#define VINAGRE_IS_SSH_TAB_CLASS(klass)...(G_TYPE_CHECK_CLASS_TYPE ((klass), VINAGRE_TYPE_SSH_TAB))
+#define VINAGRE_SSH_TAB_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS((obj), VINAGRE_TYPE_SSH_TAB, VinagreSshTabClass))
+
+typedef struct _VinagreSshTabPrivate VinagreSshTabPrivate;
+typedef struct _VinagreSshTab        VinagreSshTab;
+typedef struct _VinagreSshTabClass   VinagreSshTabClass;
+
+
+struct _VinagreSshTab 
+{
+  VinagreTab tab;
+  VinagreSshTabPrivate *priv;
+};
+
+struct _VinagreSshTabClass 
+{
+  VinagreTabClass parent_class;
+};
+
+GType		vinagre_ssh_tab_get_type		(void) G_GNUC_CONST;
+
+GtkWidget *	vinagre_ssh_tab_new 			(VinagreConnection *conn,
+							 VinagreWindow     *window);
+
+G_END_DECLS
+
+#endif  /* __VINAGRE_SSH_TAB_H__  */
+/* vim: set ts=8: */



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