aboutsummaryrefslogtreecommitdiffstats
path: root/lib/toolbar/ephy-tbi-std-toolitem.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/toolbar/ephy-tbi-std-toolitem.c')
-rw-r--r--lib/toolbar/ephy-tbi-std-toolitem.c407
1 files changed, 0 insertions, 407 deletions
diff --git a/lib/toolbar/ephy-tbi-std-toolitem.c b/lib/toolbar/ephy-tbi-std-toolitem.c
deleted file mode 100644
index 4b7f3864c..000000000
--- a/lib/toolbar/ephy-tbi-std-toolitem.c
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * Copyright (C) 2002 Ricardo Fernández Pascual
- *
- * 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, 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <libgnome/gnome-i18n.h>
-#include <bonobo/bonobo-ui-toolbar-button-item.h>
-#include <bonobo/bonobo-property-bag.h>
-#include <gtk/gtkstock.h>
-#include <string.h>
-
-#include "ephy-tbi-std-toolitem.h"
-#include "ephy-gobject-misc.h"
-#include "ephy-marshal.h"
-#include "ephy-bonobo-extensions.h"
-
-#define NOT_IMPLEMENTED g_warning ("not implemented: " G_STRLOC);
-//#define DEBUG_MSG(x) g_print x
-#define DEBUG_MSG(x)
-
-/**
- * Private data
- */
-struct _EphyTbiStdToolitemPrivate
-{
- GtkWidget *widget;
-
- EphyTbiStdToolitemItem item;
-};
-
-
-/**
- * Private functions, only availble from this file
- */
-static void ephy_tbi_std_toolitem_class_init (EphyTbiStdToolitemClass *klass);
-static void ephy_tbi_std_toolitem_init (EphyTbiStdToolitem *tb);
-static void ephy_tbi_std_toolitem_finalize_impl (GObject *o);
-static GtkWidget * ephy_tbi_std_toolitem_get_widget_impl (EphyTbItem *i);
-static GdkPixbuf * ephy_tbi_std_toolitem_get_icon_impl (EphyTbItem *i);
-static gchar * ephy_tbi_std_toolitem_get_name_human_impl (EphyTbItem *i);
-static gchar * ephy_tbi_std_toolitem_to_string_impl (EphyTbItem *i);
-static gboolean ephy_tbi_std_toolitem_is_unique_impl (EphyTbItem *i);
-static EphyTbItem * ephy_tbi_std_toolitem_clone_impl (EphyTbItem *i);
-static void ephy_tbi_std_toolitem_parse_properties_impl (EphyTbItem *i, const gchar *props);
-static void ephy_tbi_std_toolitem_add_to_bonobo_tb_impl (EphyTbItem *i,
- BonoboUIComponent *ui,
- const char *container_path,
- guint index);
-
-static gpointer ephy_tb_item_class;
-
-/**
- * TbiStdToolitem object
- */
-
-MAKE_GET_TYPE (ephy_tbi_std_toolitem, "EphyTbiStdToolitem", EphyTbiStdToolitem,
- ephy_tbi_std_toolitem_class_init,
- ephy_tbi_std_toolitem_init, EPHY_TYPE_TB_ITEM);
-
-static void
-ephy_tbi_std_toolitem_class_init (EphyTbiStdToolitemClass *klass)
-{
- G_OBJECT_CLASS (klass)->finalize = ephy_tbi_std_toolitem_finalize_impl;
-
- EPHY_TB_ITEM_CLASS (klass)->get_widget = ephy_tbi_std_toolitem_get_widget_impl;
- EPHY_TB_ITEM_CLASS (klass)->get_icon = ephy_tbi_std_toolitem_get_icon_impl;
- EPHY_TB_ITEM_CLASS (klass)->get_name_human = ephy_tbi_std_toolitem_get_name_human_impl;
- EPHY_TB_ITEM_CLASS (klass)->to_string = ephy_tbi_std_toolitem_to_string_impl;
- EPHY_TB_ITEM_CLASS (klass)->is_unique = ephy_tbi_std_toolitem_is_unique_impl;
- EPHY_TB_ITEM_CLASS (klass)->clone = ephy_tbi_std_toolitem_clone_impl;
- EPHY_TB_ITEM_CLASS (klass)->parse_properties = ephy_tbi_std_toolitem_parse_properties_impl;
- EPHY_TB_ITEM_CLASS (klass)->add_to_bonobo_tb = ephy_tbi_std_toolitem_add_to_bonobo_tb_impl;
-
- ephy_tb_item_class = g_type_class_peek_parent (klass);
-}
-
-static void
-ephy_tbi_std_toolitem_init (EphyTbiStdToolitem *tb)
-{
- EphyTbiStdToolitemPrivate *p = g_new0 (EphyTbiStdToolitemPrivate, 1);
- tb->priv = p;
-
- p->item = EPHY_TBI_STD_TOOLITEM_STOP;
-}
-
-EphyTbiStdToolitem *
-ephy_tbi_std_toolitem_new (void)
-{
- EphyTbiStdToolitem *ret = g_object_new (EPHY_TYPE_TBI_STD_TOOLITEM, NULL);
- return ret;
-}
-
-static void
-ephy_tbi_std_toolitem_finalize_impl (GObject *o)
-{
- EphyTbiStdToolitem *it = EPHY_TBI_STD_TOOLITEM (o);
- EphyTbiStdToolitemPrivate *p = it->priv;
-
- if (p->widget)
- {
- g_object_unref (p->widget);
- }
-
- g_free (p);
-
- DEBUG_MSG (("EphyTbiStdToolitem finalized\n"));
-
- G_OBJECT_CLASS (ephy_tb_item_class)->finalize (o);
-}
-
-static GtkWidget *
-ephy_tbi_std_toolitem_get_widget_impl (EphyTbItem *i)
-{
- /* no widget avaible ... */
- return NULL;
-}
-
-static GdkPixbuf *
-ephy_tbi_std_toolitem_get_icon_impl (EphyTbItem *i)
-{
- EphyTbiStdToolitemPrivate *p = EPHY_TBI_STD_TOOLITEM (i)->priv;
-
- static GdkPixbuf *pb_stop = NULL;
- static GdkPixbuf *pb_reload = NULL;
- static GdkPixbuf *pb_home = NULL;
- static GdkPixbuf *pb_go = NULL;
- static GdkPixbuf *pb_new = NULL;
-
- if (!pb_stop)
- {
- /* what's the easier way? */
- GtkWidget *b = gtk_spin_button_new_with_range (0, 1, 0.5);
- pb_stop = gtk_widget_render_icon (b,
- GTK_STOCK_STOP,
- GTK_ICON_SIZE_SMALL_TOOLBAR,
- NULL);
- pb_reload = gtk_widget_render_icon (b,
- GTK_STOCK_REFRESH,
- GTK_ICON_SIZE_SMALL_TOOLBAR,
- NULL);
- pb_home = gtk_widget_render_icon (b,
- GTK_STOCK_HOME,
- GTK_ICON_SIZE_SMALL_TOOLBAR,
- NULL);
- pb_go = gtk_widget_render_icon (b,
- GTK_STOCK_JUMP_TO,
- GTK_ICON_SIZE_SMALL_TOOLBAR,
- NULL);
- pb_new = gtk_widget_render_icon (b,
- GTK_STOCK_NEW,
- GTK_ICON_SIZE_SMALL_TOOLBAR,
- NULL);
- gtk_widget_destroy (b);
- }
-
- switch (p->item)
- {
- case EPHY_TBI_STD_TOOLITEM_STOP:
- return g_object_ref (pb_stop);
- break;
- case EPHY_TBI_STD_TOOLITEM_RELOAD:
- return g_object_ref (pb_reload);
- break;
- case EPHY_TBI_STD_TOOLITEM_HOME:
- return g_object_ref (pb_home);
- break;
- case EPHY_TBI_STD_TOOLITEM_GO:
- return g_object_ref (pb_go);
- break;
- case EPHY_TBI_STD_TOOLITEM_NEW:
- return g_object_ref (pb_new);
- break;
- case EPHY_TBI_STD_TOOLITEM_ERROR:
- return NULL;
- break;
- default:
- g_assert_not_reached ();
- return NULL;
- }
-}
-
-static gchar *
-ephy_tbi_std_toolitem_get_name_human_impl (EphyTbItem *i)
-{
- EphyTbiStdToolitemPrivate *p = EPHY_TBI_STD_TOOLITEM (i)->priv;
- const gchar *ret;
-
- switch (p->item)
- {
- case EPHY_TBI_STD_TOOLITEM_STOP:
- ret = _("Stop");
- break;
- case EPHY_TBI_STD_TOOLITEM_RELOAD:
- ret = _("Reload");
- break;
- case EPHY_TBI_STD_TOOLITEM_HOME:
- ret = _("Home");
- break;
- case EPHY_TBI_STD_TOOLITEM_GO:
- ret = _("Go");
- break;
- case EPHY_TBI_STD_TOOLITEM_NEW:
- ret = _("New");
- break;
- case EPHY_TBI_STD_TOOLITEM_ERROR:
- ret = "Erroneous button";
- break;
- default:
- g_assert_not_reached ();
- ret = "unknown";
- }
-
- return g_strdup (ret);
-}
-
-static gchar *
-ephy_tbi_std_toolitem_to_string_impl (EphyTbItem *i)
-{
- EphyTbiStdToolitemPrivate *p = EPHY_TBI_STD_TOOLITEM (i)->priv;
-
- /* if it had any properties, the string should include them */
- const char *sitem;
-
- switch (p->item)
- {
- case EPHY_TBI_STD_TOOLITEM_STOP:
- sitem = "stop";
- break;
- case EPHY_TBI_STD_TOOLITEM_RELOAD:
- sitem = "reload";
- break;
- case EPHY_TBI_STD_TOOLITEM_HOME:
- sitem = "home";
- break;
- case EPHY_TBI_STD_TOOLITEM_GO:
- sitem = "go";
- break;
- case EPHY_TBI_STD_TOOLITEM_NEW:
- sitem = "new";
- break;
- case EPHY_TBI_STD_TOOLITEM_ERROR:
- sitem = "error";
- break;
- default:
- g_assert_not_reached ();
- sitem = "unknown";
- }
-
- return g_strdup_printf ("%s=std_toolitem(item=%s)", i->id, sitem);
-}
-
-static gboolean
-ephy_tbi_std_toolitem_is_unique_impl (EphyTbItem *i)
-{
- return TRUE;
-}
-
-static EphyTbItem *
-ephy_tbi_std_toolitem_clone_impl (EphyTbItem *i)
-{
- EphyTbiStdToolitemPrivate *p = EPHY_TBI_STD_TOOLITEM (i)->priv;
-
- EphyTbItem *ret = EPHY_TB_ITEM (ephy_tbi_std_toolitem_new ());
-
- ephy_tb_item_set_id (ret, i->id);
-
- /* should copy properties too, if any */
- ephy_tbi_std_toolitem_set_item (EPHY_TBI_STD_TOOLITEM (ret), p->item);
-
- return ret;
-}
-
-
-static void
-ephy_tbi_std_toolitem_add_to_bonobo_tb_impl (EphyTbItem *i, BonoboUIComponent *ui,
- const char *container_path, guint index)
-{
- EphyTbiStdToolitemPrivate *p = EPHY_TBI_STD_TOOLITEM (i)->priv;
- gchar *xml_item;
-
- switch (p->item)
- {
- case EPHY_TBI_STD_TOOLITEM_STOP:
- xml_item = g_strdup_printf
- ("<toolitem name=\"Stop\" "
- "label=\"%s\" "
- "pixtype=\"stock\" pixname=\"gtk-stop\" "
- "verb=\"GoStop\"/>", _("Stop"));
- break;
- case EPHY_TBI_STD_TOOLITEM_RELOAD:
- xml_item = g_strdup_printf
- ("<toolitem name=\"Reload\" "
- "label=\"%s\" "
- "pixtype=\"stock\" pixname=\"gtk-refresh\" "
- "verb=\"GoReload\"/>", _("Reload"));
- break;
- case EPHY_TBI_STD_TOOLITEM_HOME:
- xml_item = g_strdup_printf
- ("<toolitem name=\"Home\" "
- "label=\"%s\" "
- "pixtype=\"stock\" pixname=\"gtk-home\" "
- "priority=\"1\" "
- "verb=\"GoHome\"/>", _("Home"));;
- break;
- case EPHY_TBI_STD_TOOLITEM_GO:
- xml_item = g_strdup_printf
- ("<toolitem name=\"Go\" "
- "label=\"%s\" "
- "pixtype=\"stock\" pixname=\"gtk-jump-to\" "
- "verb=\"GoGo\"/>", _("Go"));;
- break;
- case EPHY_TBI_STD_TOOLITEM_NEW:
- xml_item = g_strdup_printf
- ("<toolitem name=\"New\" "
- "label=\"%s\" "
- "pixtype=\"stock\" pixname=\"gtk-new\" "
- "verb=\"FileNew\"/>", _("New"));;
- break;
- case EPHY_TBI_STD_TOOLITEM_ERROR:
- xml_item = g_strdup_printf
- ("<toolitem name=\"Error\" "
- "label=\"%s\" "
- "pixtype=\"stock\" pixname=\"gtk-cancel\" "
- "priority=\"1\" "
- "verb=\"ErrorVerb\"/>", "Erroneous button");
- break;
- default:
- g_assert_not_reached ();
- xml_item = g_strdup ("");
- }
-
- bonobo_ui_component_set (ui, container_path, xml_item, NULL);
- g_free (xml_item);
-}
-
-static void
-ephy_tbi_std_toolitem_parse_properties_impl (EphyTbItem *it, const gchar *props)
-{
- EphyTbiStdToolitem *a = EPHY_TBI_STD_TOOLITEM (it);
-
- /* yes, this is quite hacky, but works */
-
- /* we have one property */
- const gchar *item_prop;
-
- item_prop = strstr (props, "item=");
- if (item_prop)
- {
- item_prop += strlen ("item=");
- if (!strncmp (item_prop, "stop", 4))
- {
- ephy_tbi_std_toolitem_set_item (a, EPHY_TBI_STD_TOOLITEM_STOP);
- }
- else if (!strncmp (item_prop, "home", 4))
- {
- ephy_tbi_std_toolitem_set_item (a, EPHY_TBI_STD_TOOLITEM_HOME);
- }
- else if (!strncmp (item_prop, "go", 2))
- {
- ephy_tbi_std_toolitem_set_item (a, EPHY_TBI_STD_TOOLITEM_GO);
- }
- else if (!strncmp (item_prop, "reload", 6))
- {
- ephy_tbi_std_toolitem_set_item (a, EPHY_TBI_STD_TOOLITEM_RELOAD);
- }
- else if (!strncmp (item_prop, "new", 3))
- {
- ephy_tbi_std_toolitem_set_item (a, EPHY_TBI_STD_TOOLITEM_NEW);
- }
- else
- {
- ephy_tbi_std_toolitem_set_item (a, EPHY_TBI_STD_TOOLITEM_ERROR);
- }
- }
-}
-
-void
-ephy_tbi_std_toolitem_set_item (EphyTbiStdToolitem *a, EphyTbiStdToolitemItem i)
-{
- EphyTbiStdToolitemPrivate *p = a->priv;
-
- g_return_if_fail (i == EPHY_TBI_STD_TOOLITEM_STOP
- || i == EPHY_TBI_STD_TOOLITEM_RELOAD
- || i == EPHY_TBI_STD_TOOLITEM_GO
- || i == EPHY_TBI_STD_TOOLITEM_HOME
- || i == EPHY_TBI_STD_TOOLITEM_NEW);
-
- p->item = i;
-}
-