aboutsummaryrefslogtreecommitdiffstats
path: root/embed/ephy-embed.c
diff options
context:
space:
mode:
Diffstat (limited to 'embed/ephy-embed.c')
-rw-r--r--embed/ephy-embed.c230
1 files changed, 116 insertions, 114 deletions
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index a371ea8d6..e5ca05b64 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -95,6 +95,122 @@ struct _EphyEmbedPrivate
G_DEFINE_TYPE (EphyEmbed, ephy_embed, GTK_TYPE_BOX)
+/* Portions of the following code based on GTK+.
+ * License block as follows:
+ *
+ * GTK - The GIMP Toolkit
+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
+ * GtkStatusbar Copyright (C) 1998 Shawn T. Amundson
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
+ * file for a list of people on the GTK+ Team. See the ChangeLog
+ * files for a list of changes. These files are distributed with
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+ *
+ */
+
+static guint
+ephy_embed_statusbar_get_context_id (EphyEmbed *embed, const char *context_description)
+{
+ char *string;
+ guint id;
+
+ g_return_val_if_fail (EPHY_IS_EMBED (embed), 0);
+ g_return_val_if_fail (context_description != NULL, 0);
+
+ /* we need to preserve namespaces on object datas */
+ string = g_strconcat ("ephy-embed-status-bar-context:", context_description, NULL);
+
+ id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (embed), string));
+ if (id == 0) {
+ EphyEmbedPrivate *priv = embed->priv;
+
+ id = priv->seq_context_id++;
+ g_object_set_data_full (G_OBJECT (embed), string, GUINT_TO_POINTER (id), NULL);
+ priv->keys = g_slist_prepend (priv->keys, string);
+ } else
+ g_free (string);
+
+ return id;
+}
+
+static void
+ephy_embed_statusbar_update (EphyEmbed *embed, const char *text)
+{
+ g_return_if_fail (EPHY_IS_EMBED (embed));
+
+ _ephy_embed_set_statusbar_label (embed, text);
+}
+
+static guint
+ephy_embed_statusbar_push (EphyEmbed *embed, guint context_id, const char *text)
+{
+ EphyEmbedPrivate *priv;
+ EphyEmbedStatusbarMsg *msg;
+
+ g_return_val_if_fail (EPHY_IS_EMBED (embed), 0);
+ g_return_val_if_fail (context_id != 0, 0);
+ g_return_val_if_fail (text != NULL, 0);
+
+ priv = embed->priv;
+
+ msg = g_slice_new (EphyEmbedStatusbarMsg);
+ msg->text = g_strdup (text);
+ msg->context_id = context_id;
+ msg->message_id = priv->seq_message_id++;
+
+ priv->messages = g_slist_prepend (priv->messages, msg);
+
+ ephy_embed_statusbar_update (embed, text);
+
+ return msg->message_id;
+}
+
+/* End of code based on GTK+ GtkStatusbar. */
+
+static void
+ephy_embed_statusbar_pop (EphyEmbed *embed, guint context_id)
+{
+ EphyEmbedPrivate *priv;
+ EphyEmbedStatusbarMsg *msg;
+ GSList *list;
+
+ g_return_if_fail (EPHY_IS_EMBED (embed));
+ g_return_if_fail (context_id != 0);
+
+ priv = embed->priv;
+
+ for (list = priv->messages; list; list = list->next) {
+ EphyEmbedStatusbarMsg *msg = list->data;
+
+ if (msg->context_id == context_id) {
+ priv->messages = g_slist_remove_link (priv->messages, list);
+ g_free (msg->text);
+ g_slice_free (EphyEmbedStatusbarMsg, msg);
+ g_slist_free_1 (list);
+ break;
+ }
+ }
+
+ msg = priv->messages ? priv->messages->data : NULL;
+ ephy_embed_statusbar_update (embed, msg ? msg->text : NULL);
+}
+
static void
restore_zoom_level (EphyEmbed *embed,
const char *address)
@@ -774,117 +890,3 @@ ephy_embed_remove_top_widget (EphyEmbed *embed, GtkWidget *widget)
gtk_container_remove (GTK_CONTAINER (embed->priv->top_widgets_vbox),
GTK_WIDGET (widget));
}
-
-static void
-ephy_embed_statusbar_update (EphyEmbed *embed, const char *text)
-{
- g_return_if_fail (EPHY_IS_EMBED (embed));
-
- _ephy_embed_set_statusbar_label (embed, text);
-}
-
-/* Portions of the following code based on GTK+.
- * License block as follows:
- *
- * GTK - The GIMP Toolkit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * GtkStatusbar Copyright (C) 1998 Shawn T. Amundson
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
- * file for a list of people on the GTK+ Team. See the ChangeLog
- * files for a list of changes. These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
- *
- */
-
-guint
-ephy_embed_statusbar_get_context_id (EphyEmbed *embed, const char *context_description)
-{
- char *string;
- guint id;
-
- g_return_val_if_fail (EPHY_IS_EMBED (embed), 0);
- g_return_val_if_fail (context_description != NULL, 0);
-
- /* we need to preserve namespaces on object datas */
- string = g_strconcat ("ephy-embed-status-bar-context:", context_description, NULL);
-
- id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (embed), string));
- if (id == 0) {
- EphyEmbedPrivate *priv = embed->priv;
-
- id = priv->seq_context_id++;
- g_object_set_data_full (G_OBJECT (embed), string, GUINT_TO_POINTER (id), NULL);
- priv->keys = g_slist_prepend (priv->keys, string);
- } else
- g_free (string);
-
- return id;
-}
-
-guint
-ephy_embed_statusbar_push (EphyEmbed *embed, guint context_id, const char *text)
-{
- EphyEmbedPrivate *priv;
- EphyEmbedStatusbarMsg *msg;
-
- g_return_val_if_fail (EPHY_IS_EMBED (embed), 0);
- g_return_val_if_fail (context_id != 0, 0);
- g_return_val_if_fail (text != NULL, 0);
-
- priv = embed->priv;
-
- msg = g_slice_new (EphyEmbedStatusbarMsg);
- msg->text = g_strdup (text);
- msg->context_id = context_id;
- msg->message_id = priv->seq_message_id++;
-
- priv->messages = g_slist_prepend (priv->messages, msg);
-
- ephy_embed_statusbar_update (embed, text);
-
- return msg->message_id;
-}
-
-void
-ephy_embed_statusbar_pop (EphyEmbed *embed, guint context_id)
-{
- EphyEmbedPrivate *priv;
- EphyEmbedStatusbarMsg *msg;
- GSList *list;
-
- g_return_if_fail (EPHY_IS_EMBED (embed));
- g_return_if_fail (context_id != 0);
-
- priv = embed->priv;
-
- for (list = priv->messages; list; list = list->next) {
- EphyEmbedStatusbarMsg *msg = list->data;
-
- if (msg->context_id == context_id) {
- priv->messages = g_slist_remove_link (priv->messages, list);
- g_free (msg->text);
- g_slice_free (EphyEmbedStatusbarMsg, msg);
- g_slist_free_1 (list);
- break;
- }
- }
-
- msg = priv->messages ? priv->messages->data : NULL;
- ephy_embed_statusbar_update (embed, msg ? msg->text : NULL);
-}