From: Carlos Garcia Campos Date: Fri, 18 Sep 2009 08:15:37 +0000 (+0200) Subject: Use EvInfoBar instead of GeditMessageArea X-Git-Tag: EVINCE_2_29_1~80 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=1734b2d39ff490f6d4d58c1077fc2ac671cd3aca;p=evince.git Use EvInfoBar instead of GeditMessageArea Fixes bug #592785 --- diff --git a/configure.ac b/configure.ac index 7c685a22..f1724e2a 100644 --- a/configure.ac +++ b/configure.ac @@ -681,7 +681,6 @@ backend/pixbuf/Makefile backend/ps/Makefile backend/tiff/Makefile cut-n-paste/Makefile -cut-n-paste/gedit-message-area/Makefile cut-n-paste/evinfobar/Makefile cut-n-paste/gimpcellrenderertoggle/Makefile cut-n-paste/smclient/Makefile diff --git a/cut-n-paste/Makefile.am b/cut-n-paste/Makefile.am index 4a3c4fbc..f073fd9c 100644 --- a/cut-n-paste/Makefile.am +++ b/cut-n-paste/Makefile.am @@ -1 +1 @@ -SUBDIRS = zoom-control toolbar-editor totem-screensaver gedit-message-area evinfobar smclient gimpcellrenderertoggle +SUBDIRS = zoom-control toolbar-editor totem-screensaver evinfobar smclient gimpcellrenderertoggle diff --git a/cut-n-paste/gedit-message-area/Makefile.am b/cut-n-paste/gedit-message-area/Makefile.am deleted file mode 100644 index ce56f327..00000000 --- a/cut-n-paste/gedit-message-area/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -noinst_LTLIBRARIES = libgeditmsgarea.la -libgeditmsgarea_la_SOURCES = \ - gedit-message-area.c \ - gedit-message-area.h - -libgeditmsgarea_la_CFLAGS = \ - $(SHELL_CORE_CFLAGS) \ - $(WARNING_CFLAGS) \ - $(DISABLE_DEPRECATED) diff --git a/cut-n-paste/gedit-message-area/gedit-message-area.c b/cut-n-paste/gedit-message-area/gedit-message-area.c deleted file mode 100644 index 0821167b..00000000 --- a/cut-n-paste/gedit-message-area/gedit-message-area.c +++ /dev/null @@ -1,546 +0,0 @@ -/* - * gedit-message-area.c - * This file is part of gedit - * - * Copyright (C) 2005 - Paolo Maggi - * - * 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the gedit Team, 2005. See the AUTHORS file for a - * list of people on the gedit Team. - * See the ChangeLog files for a list of changes. - * - * $Id: gedit-message-area.c 5887 2007-09-07 07:20:19Z pborelli $ - */ - -/* TODO: Style properties */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "gedit-message-area.h" - -#define GEDIT_MESSAGE_AREA_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), \ - GEDIT_TYPE_MESSAGE_AREA, \ - GeditMessageAreaPrivate)) - -struct _GeditMessageAreaPrivate -{ - GtkWidget *main_hbox; - - GtkWidget *contents; - GtkWidget *action_area; - - gboolean changing_style; -}; - -typedef struct _ResponseData ResponseData; - -struct _ResponseData -{ - gint response_id; -}; - -enum { - RESPONSE, - CLOSE, - LAST_SIGNAL -}; - -static guint signals[LAST_SIGNAL]; - -G_DEFINE_TYPE(GeditMessageArea, gedit_message_area, GTK_TYPE_HBOX) - - -static void -gedit_message_area_finalize (GObject *object) -{ - /* - GeditMessageArea *message_area = GEDIT_MESSAGE_AREA (object); - */ - - G_OBJECT_CLASS (gedit_message_area_parent_class)->finalize (object); -} - -static ResponseData * -get_response_data (GtkWidget *widget, - gboolean create) -{ - ResponseData *ad = g_object_get_data (G_OBJECT (widget), - "gedit-message-area-response-data"); - - if (ad == NULL && create) - { - ad = g_new (ResponseData, 1); - - g_object_set_data_full (G_OBJECT (widget), - "gedit-message-area-response-data", - ad, - g_free); - } - - return ad; -} - -static GtkWidget * -find_button (GeditMessageArea *message_area, - gint response_id) -{ - GList *children, *tmp_list; - GtkWidget *child = NULL; - - children = gtk_container_get_children ( - GTK_CONTAINER (message_area->priv->action_area)); - - for (tmp_list = children; tmp_list; tmp_list = tmp_list->next) - { - ResponseData *rd = get_response_data (tmp_list->data, FALSE); - - if (rd && rd->response_id == response_id) - { - child = tmp_list->data; - break; - } - } - - g_list_free (children); - - return child; -} - -static void -gedit_message_area_close (GeditMessageArea *message_area) -{ - if (!find_button (message_area, GTK_RESPONSE_CLOSE)) - return; - - /* emit response signal */ - gedit_message_area_response (GEDIT_MESSAGE_AREA (message_area), - GTK_RESPONSE_CLOSE); -} - -static gboolean -paint_message_area (GtkWidget *widget, - GdkEventExpose *event, - gpointer user_data) -{ - gtk_paint_flat_box (widget->style, - widget->window, - GTK_STATE_NORMAL, - GTK_SHADOW_OUT, - NULL, - widget, - "tooltip", - widget->allocation.x + 1, - widget->allocation.y + 1, - widget->allocation.width - 2, - widget->allocation.height - 2); - - return FALSE; -} - -static void -gedit_message_area_class_init (GeditMessageAreaClass *klass) -{ - GObjectClass *object_class; - GtkBindingSet *binding_set; - - object_class = G_OBJECT_CLASS (klass); - object_class->finalize = gedit_message_area_finalize; - - klass->close = gedit_message_area_close; - - g_type_class_add_private (object_class, sizeof(GeditMessageAreaPrivate)); - - signals[RESPONSE] = g_signal_new ("response", - G_OBJECT_CLASS_TYPE (klass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GeditMessageAreaClass, response), - NULL, NULL, - g_cclosure_marshal_VOID__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - - signals[CLOSE] = g_signal_new ("close", - G_OBJECT_CLASS_TYPE (klass), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (GeditMessageAreaClass, close), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - binding_set = gtk_binding_set_by_class (klass); - - gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, "close", 0); -} - -static void -style_set (GtkWidget *widget, - GtkStyle *prev_style, - GeditMessageArea *message_area) -{ - GtkWidget *window; - GtkStyle *style; - - if (message_area->priv->changing_style) - return; - - /* This is a hack needed to use the tooltip background color */ - window = gtk_window_new (GTK_WINDOW_POPUP); - gtk_widget_set_name (window, "gtk-tooltip"); - gtk_widget_ensure_style (window); - style = gtk_widget_get_style (window); - - message_area->priv->changing_style = TRUE; - gtk_widget_set_style (GTK_WIDGET (message_area), style); - message_area->priv->changing_style = FALSE; - - gtk_widget_destroy (window); - - gtk_widget_queue_draw (GTK_WIDGET (message_area)); -} - -static void -gedit_message_area_init (GeditMessageArea *message_area) -{ - message_area->priv = GEDIT_MESSAGE_AREA_GET_PRIVATE (message_area); - - message_area->priv->main_hbox = gtk_hbox_new (FALSE, 16); /* FIXME: use style properties */ - gtk_widget_show (message_area->priv->main_hbox); - gtk_container_set_border_width (GTK_CONTAINER (message_area->priv->main_hbox), - 8); /* FIXME: use style properties */ - - message_area->priv->action_area = gtk_vbox_new (TRUE, 10); /* FIXME: use style properties */ - gtk_widget_show (message_area->priv->action_area); - gtk_box_pack_end (GTK_BOX (message_area->priv->main_hbox), - message_area->priv->action_area, - FALSE, - TRUE, - 0); - - gtk_box_pack_start (GTK_BOX (message_area), - message_area->priv->main_hbox, - TRUE, - TRUE, - 0); - - gtk_widget_set_app_paintable (GTK_WIDGET (message_area), TRUE); - - g_signal_connect (message_area, - "expose-event", - G_CALLBACK (paint_message_area), - NULL); - - /* Note that we connect to style-set on one of the internal - * widgets, not on the message area itself, since gtk does - * not deliver any further style-set signals for a widget on - * which the style has been forced with gtk_widget_set_style() */ - g_signal_connect (message_area->priv->main_hbox, - "style-set", - G_CALLBACK (style_set), - message_area); -} - -static gint -get_response_for_widget (GeditMessageArea *message_area, - GtkWidget *widget) -{ - ResponseData *rd; - - rd = get_response_data (widget, FALSE); - if (!rd) - return GTK_RESPONSE_NONE; - else - return rd->response_id; -} - -static void -action_widget_activated (GtkWidget *widget, GeditMessageArea *message_area) -{ - gint response_id; - - response_id = get_response_for_widget (message_area, widget); - - gedit_message_area_response (message_area, response_id); -} - -void -gedit_message_area_add_action_widget (GeditMessageArea *message_area, - GtkWidget *child, - gint response_id) -{ - ResponseData *ad; - guint signal_id; - - g_return_if_fail (GEDIT_IS_MESSAGE_AREA (message_area)); - g_return_if_fail (GTK_IS_WIDGET (child)); - - ad = get_response_data (child, TRUE); - - ad->response_id = response_id; - - if (GTK_IS_BUTTON (child)) - signal_id = g_signal_lookup ("clicked", GTK_TYPE_BUTTON); - else - signal_id = GTK_WIDGET_GET_CLASS (child)->activate_signal; - - if (signal_id) - { - GClosure *closure; - - closure = g_cclosure_new_object (G_CALLBACK (action_widget_activated), - G_OBJECT (message_area)); - - g_signal_connect_closure_by_id (child, - signal_id, - 0, - closure, - FALSE); - } - else - g_warning ("Only 'activatable' widgets can be packed into the action area of a GeditMessageArea"); - - if (response_id != GTK_RESPONSE_HELP) - gtk_box_pack_start (GTK_BOX (message_area->priv->action_area), - child, - FALSE, - FALSE, - 0); - else - gtk_box_pack_end (GTK_BOX (message_area->priv->action_area), - child, - FALSE, - FALSE, - 0); -} - -void -gedit_message_area_set_contents (GeditMessageArea *message_area, - GtkWidget *contents) -{ - g_return_if_fail (GEDIT_IS_MESSAGE_AREA (message_area)); - g_return_if_fail (GTK_IS_WIDGET (contents)); - - message_area->priv->contents = contents; - gtk_box_pack_start (GTK_BOX (message_area->priv->main_hbox), - message_area->priv->contents, - TRUE, - TRUE, - 0); -} - -GtkWidget * -gedit_message_area_get_contents (GeditMessageArea *message_area) -{ - return message_area->priv->contents; -} - -GtkWidget* -gedit_message_area_add_button (GeditMessageArea *message_area, - const gchar *button_text, - gint response_id) -{ - GtkWidget *button; - - g_return_val_if_fail (GEDIT_IS_MESSAGE_AREA (message_area), NULL); - g_return_val_if_fail (button_text != NULL, NULL); - - button = gtk_button_new_from_stock (button_text); - - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); - - gtk_widget_show (button); - - gedit_message_area_add_action_widget (message_area, - button, - response_id); - - return button; -} - -void -gedit_message_area_add_buttons_valist (GeditMessageArea *message_area, - const gchar *first_button_text, - va_list args) -{ - const gchar* text; - gint response_id; - - g_return_if_fail (GEDIT_IS_MESSAGE_AREA (message_area)); - - if (first_button_text == NULL) - return; - - text = first_button_text; - response_id = va_arg (args, gint); - - while (text != NULL) - { - gedit_message_area_add_button (message_area, - text, - response_id); - - text = va_arg (args, gchar*); - if (text == NULL) - break; - - response_id = va_arg (args, int); - } -} - -void -gedit_message_area_add_buttons (GeditMessageArea *message_area, - const gchar *first_button_text, - ...) -{ - va_list args; - - va_start (args, first_button_text); - - gedit_message_area_add_buttons_valist (message_area, - first_button_text, - args); - - va_end (args); -} - -GtkWidget * -gedit_message_area_new (void) -{ - return g_object_new (GEDIT_TYPE_MESSAGE_AREA, NULL); -} - -GtkWidget * -gedit_message_area_new_with_buttons (const gchar *first_button_text, - ...) -{ - GeditMessageArea *message_area; - va_list args; - - message_area = GEDIT_MESSAGE_AREA (gedit_message_area_new ()); - - va_start (args, first_button_text); - - gedit_message_area_add_buttons_valist (message_area, - first_button_text, - args); - - va_end (args); - - return GTK_WIDGET (message_area); -} - -void -gedit_message_area_set_response_sensitive (GeditMessageArea *message_area, - gint response_id, - gboolean setting) -{ - GList *children; - GList *tmp_list; - - g_return_if_fail (GEDIT_IS_MESSAGE_AREA (message_area)); - - children = gtk_container_get_children (GTK_CONTAINER (message_area->priv->action_area)); - - tmp_list = children; - while (tmp_list != NULL) - { - GtkWidget *widget = tmp_list->data; - ResponseData *rd = get_response_data (widget, FALSE); - - if (rd && rd->response_id == response_id) - gtk_widget_set_sensitive (widget, setting); - - tmp_list = g_list_next (tmp_list); - } - - g_list_free (children); -} - -void -gedit_message_area_set_default_response (GeditMessageArea *message_area, - gint response_id) -{ - GList *children; - GList *tmp_list; - - g_return_if_fail (GEDIT_IS_MESSAGE_AREA (message_area)); - - children = gtk_container_get_children (GTK_CONTAINER (message_area->priv->action_area)); - - tmp_list = children; - while (tmp_list != NULL) - { - GtkWidget *widget = tmp_list->data; - ResponseData *rd = get_response_data (widget, FALSE); - - if (rd && rd->response_id == response_id) - gtk_widget_grab_default (widget); - - tmp_list = g_list_next (tmp_list); - } - - g_list_free (children); -} - -void -gedit_message_area_response (GeditMessageArea *message_area, - gint response_id) -{ - g_return_if_fail (GEDIT_IS_MESSAGE_AREA (message_area)); - - g_signal_emit (message_area, - signals[RESPONSE], - 0, - response_id); -} - -GtkWidget * -gedit_message_area_add_stock_button_with_text (GeditMessageArea *message_area, - const gchar *text, - const gchar *stock_id, - gint response_id) -{ - GtkWidget *button; - - g_return_val_if_fail (GEDIT_IS_MESSAGE_AREA (message_area), NULL); - g_return_val_if_fail (text != NULL, NULL); - g_return_val_if_fail (stock_id != NULL, NULL); - - button = gtk_button_new_with_mnemonic (text); - gtk_button_set_image (GTK_BUTTON (button), - gtk_image_new_from_stock (stock_id, - GTK_ICON_SIZE_BUTTON)); - - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); - - gtk_widget_show (button); - - gedit_message_area_add_action_widget (message_area, - button, - response_id); - - return button; -} - diff --git a/cut-n-paste/gedit-message-area/gedit-message-area.h b/cut-n-paste/gedit-message-area/gedit-message-area.h deleted file mode 100644 index aaa97a53..00000000 --- a/cut-n-paste/gedit-message-area/gedit-message-area.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - * gedit-message-area.h - * This file is part of gedit - * - * Copyright (C) 2005 - Paolo Maggi - * - * 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the gedit Team, 2005. See the AUTHORS file for a - * list of people on the gedit Team. - * See the ChangeLog files for a list of changes. - * - * $Id: gedit-message-area.h 5666 2007-06-29 19:52:25Z sfre $ - */ - -#ifndef __GEDIT_MESSAGE_AREA_H__ -#define __GEDIT_MESSAGE_AREA_H__ - -#include - -G_BEGIN_DECLS - -/* - * Type checking and casting macros - */ -#define GEDIT_TYPE_MESSAGE_AREA (gedit_message_area_get_type()) -#define GEDIT_MESSAGE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEDIT_TYPE_MESSAGE_AREA, GeditMessageArea)) -#define GEDIT_MESSAGE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GEDIT_TYPE_MESSAGE_AREA, GeditMessageAreaClass)) -#define GEDIT_IS_MESSAGE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEDIT_TYPE_MESSAGE_AREA)) -#define GEDIT_IS_MESSAGE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEDIT_TYPE_MESSAGE_AREA)) -#define GEDIT_MESSAGE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEDIT_TYPE_MESSAGE_AREA, GeditMessageAreaClass)) - -/* Private structure type */ -typedef struct _GeditMessageAreaPrivate GeditMessageAreaPrivate; - -/* - * Main object structure - */ -typedef struct _GeditMessageArea GeditMessageArea; - -struct _GeditMessageArea -{ - GtkHBox parent; - - /*< private > */ - GeditMessageAreaPrivate *priv; -}; - -/* - * Class definition - */ -typedef struct _GeditMessageAreaClass GeditMessageAreaClass; - -struct _GeditMessageAreaClass -{ - GtkHBoxClass parent_class; - - /* Signals */ - void (* response) (GeditMessageArea *message_area, gint response_id); - - /* Keybinding signals */ - void (* close) (GeditMessageArea *message_area); - - /* Padding for future expansion */ - void (*_gedit_reserved1) (void); - void (*_gedit_reserved2) (void); -}; - -/* - * Public methods - */ -GType gedit_message_area_get_type (void) G_GNUC_CONST; - -GtkWidget *gedit_message_area_new (void); - -GtkWidget *gedit_message_area_new_with_buttons (const gchar *first_button_text, - ...); - -void gedit_message_area_set_contents (GeditMessageArea *message_area, - GtkWidget *contents); -GtkWidget *gedit_message_area_get_contents (GeditMessageArea *message_area); - -void gedit_message_area_add_action_widget (GeditMessageArea *message_area, - GtkWidget *child, - gint response_id); - -GtkWidget *gedit_message_area_add_button (GeditMessageArea *message_area, - const gchar *button_text, - gint response_id); - -GtkWidget *gedit_message_area_add_stock_button_with_text - (GeditMessageArea *message_area, - const gchar *text, - const gchar *stock_id, - gint response_id); - -void gedit_message_area_add_buttons (GeditMessageArea *message_area, - const gchar *first_button_text, - ...); -void gedit_message_area_add_buttons_valist (GeditMessageArea *message_area, - const gchar *first_button_text, - va_list args); - -void gedit_message_area_set_response_sensitive - (GeditMessageArea *message_area, - gint response_id, - gboolean setting); -void gedit_message_area_set_default_response - (GeditMessageArea *message_area, - gint response_id); - -/* Emit response signal */ -void gedit_message_area_response (GeditMessageArea *message_area, - gint response_id); - -G_END_DECLS - -#endif /* __GEDIT_MESSAGE_AREA_H__ */ diff --git a/shell/Makefile.am b/shell/Makefile.am index 0175b5a2..4553348a 100644 --- a/shell/Makefile.am +++ b/shell/Makefile.am @@ -6,7 +6,7 @@ INCLUDES= \ -I$(top_srcdir)/cut-n-paste/zoom-control/ \ -I$(top_srcdir)/cut-n-paste/toolbar-editor/ \ -I$(top_srcdir)/cut-n-paste/totem-screensaver/ \ - -I$(top_srcdir)/cut-n-paste/gedit-message-area/ \ + -I$(top_srcdir)/cut-n-paste/evinfobar/ \ -I$(top_srcdir)/cut-n-paste/gimpcellrenderertoggle/ \ -I$(top_srcdir)/cut-n-paste/smclient/ \ -I$(top_srcdir)/libdocument \ @@ -95,7 +95,7 @@ evince_LDADD= \ $(top_builddir)/cut-n-paste/zoom-control/libephyzoom.la \ $(top_builddir)/cut-n-paste/toolbar-editor/libtoolbareditor.la \ $(top_builddir)/cut-n-paste/totem-screensaver/libtotemscrsaver.la \ - $(top_builddir)/cut-n-paste/gedit-message-area/libgeditmsgarea.la \ + $(top_builddir)/cut-n-paste/evinfobar/libevinfobar.la \ $(top_builddir)/cut-n-paste/gimpcellrenderertoggle/libgimpcellrenderertoggle.la \ $(top_builddir)/cut-n-paste/smclient/libsmclient.la \ $(top_builddir)/properties/libevproperties.la \ diff --git a/shell/ev-message-area.c b/shell/ev-message-area.c index c469ec4b..4d338987 100644 --- a/shell/ev-message-area.c +++ b/shell/ev-message-area.c @@ -31,6 +31,7 @@ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EV_TYPE_MESSAGE_AREA, EvMessageAreaPrivate)) struct _EvMessageAreaPrivate { + GtkWidget *main_box; GtkWidget *image; GtkWidget *label; GtkWidget *secondary_label; @@ -40,7 +41,6 @@ struct _EvMessageAreaPrivate { enum { PROP_0, - PROP_MESSAGE_TYPE, PROP_TEXT, PROP_SECONDARY_TEXT, PROP_IMAGE @@ -55,7 +55,7 @@ static void ev_message_area_get_property (GObject *object, GValue *value, GParamSpec *pspec); -G_DEFINE_TYPE (EvMessageArea, ev_message_area, GEDIT_TYPE_MESSAGE_AREA) +G_DEFINE_TYPE (EvMessageArea, ev_message_area, EV_TYPE_INFO_BAR) static void ev_message_area_class_init (EvMessageAreaClass *class) @@ -65,14 +65,6 @@ ev_message_area_class_init (EvMessageAreaClass *class) gobject_class->set_property = ev_message_area_set_property; gobject_class->get_property = ev_message_area_get_property; - g_object_class_install_property (gobject_class, - PROP_MESSAGE_TYPE, - g_param_spec_enum ("message-type", - "Message Type", - "The type of message", - GTK_TYPE_MESSAGE_TYPE, - GTK_MESSAGE_INFO, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); g_object_class_install_property (gobject_class, PROP_TEXT, g_param_spec_string ("text", @@ -101,16 +93,16 @@ ev_message_area_class_init (EvMessageAreaClass *class) static void ev_message_area_init (EvMessageArea *area) { - GtkWidget *main_box; GtkWidget *hbox, *vbox; - + GtkWidget *content_area; + area->priv = EV_MESSAGE_AREA_GET_PRIVATE (area); - main_box = gtk_vbox_new (FALSE, 12); - + area->priv->main_box = gtk_vbox_new (FALSE, 12); + hbox = gtk_hbox_new (FALSE, 12); vbox = gtk_vbox_new (FALSE, 12); - + area->priv->label = gtk_label_new (NULL); gtk_label_set_use_markup (GTK_LABEL (area->priv->label), TRUE); gtk_label_set_line_wrap (GTK_LABEL (area->priv->label), TRUE); @@ -119,7 +111,7 @@ ev_message_area_init (EvMessageArea *area) GTK_WIDGET_SET_FLAGS (area->priv->label, GTK_CAN_FOCUS); gtk_box_pack_start (GTK_BOX (vbox), area->priv->label, TRUE, TRUE, 0); gtk_widget_show (area->priv->label); - + area->priv->secondary_label = gtk_label_new (NULL); gtk_label_set_use_markup (GTK_LABEL (area->priv->secondary_label), TRUE); gtk_label_set_line_wrap (GTK_LABEL (area->priv->secondary_label), TRUE); @@ -136,11 +128,12 @@ ev_message_area_init (EvMessageArea *area) gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); gtk_widget_show (vbox); - gtk_box_pack_start (GTK_BOX (main_box), hbox, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (area->priv->main_box), hbox, TRUE, TRUE, 0); gtk_widget_show (hbox); - - gedit_message_area_set_contents (GEDIT_MESSAGE_AREA (area), main_box); - gtk_widget_show (main_box); + + content_area = ev_info_bar_get_content_area (EV_INFO_BAR (area)); + gtk_container_add (GTK_CONTAINER (content_area), area->priv->main_box); + gtk_widget_show (area->priv->main_box); } static void @@ -195,10 +188,6 @@ ev_message_area_set_property (GObject *object, EvMessageArea *area = EV_MESSAGE_AREA (object); switch (prop_id) { - case PROP_MESSAGE_TYPE: - area->priv->message_type = g_value_get_enum (value); - ev_message_area_set_image_for_type (area, area->priv->message_type); - break; case PROP_TEXT: ev_message_area_set_text (area, g_value_get_string (value)); break; @@ -223,9 +212,6 @@ ev_message_area_get_property (GObject *object, EvMessageArea *area = EV_MESSAGE_AREA (object); switch (prop_id) { - case PROP_MESSAGE_TYPE: - g_value_set_enum (value, (GtkMessageType) area->priv->message_type); - break; case PROP_TEXT: g_value_set_string (value, gtk_label_get_label (GTK_LABEL (area->priv->label))); break; @@ -241,6 +227,37 @@ ev_message_area_get_property (GObject *object, } } +void +_ev_message_area_add_buttons_valist (EvMessageArea *area, + const gchar *first_button_text, + va_list args) +{ + const gchar* text; + gint response_id; + + if (first_button_text == NULL) + return; + + text = first_button_text; + response_id = va_arg (args, gint); + + while (text != NULL) { + ev_info_bar_add_button (EV_INFO_BAR (area), text, response_id); + + text = va_arg (args, gchar*); + if (text == NULL) + break; + + response_id = va_arg (args, int); + } +} + +GtkWidget * +_ev_message_area_get_main_box (EvMessageArea *area) +{ + return area->priv->main_box; +} + GtkWidget * ev_message_area_new (GtkMessageType type, const gchar *text, @@ -253,13 +270,13 @@ ev_message_area_new (GtkMessageType type, "message-type", type, "text", text, NULL); + ev_message_area_set_image_for_type (EV_MESSAGE_AREA (widget), type); if (first_button_text) { va_list args; - + va_start (args, first_button_text); - gedit_message_area_add_buttons_valist (GEDIT_MESSAGE_AREA (widget), - first_button_text, - args); + _ev_message_area_add_buttons_valist (EV_MESSAGE_AREA (widget), + first_button_text, args); va_end (args); } diff --git a/shell/ev-message-area.h b/shell/ev-message-area.h index 71284823..74f99a84 100644 --- a/shell/ev-message-area.h +++ b/shell/ev-message-area.h @@ -26,7 +26,7 @@ #include -#include "gedit-message-area.h" +#include "evinfobar.h" G_BEGIN_DECLS @@ -42,14 +42,14 @@ typedef struct _EvMessageAreaClass EvMessageAreaClass; typedef struct _EvMessageAreaPrivate EvMessageAreaPrivate; struct _EvMessageArea { - GeditMessageArea parent_instance; + EvInfoBar parent_instance; /*< private >*/ EvMessageAreaPrivate *priv; }; struct _EvMessageAreaClass { - GeditMessageAreaClass parent_class; + EvInfoBarClass parent_class; }; GType ev_message_area_get_type (void) G_GNUC_CONST; @@ -66,6 +66,11 @@ void ev_message_area_set_text (EvMessageArea *area, void ev_message_area_set_secondary_text (EvMessageArea *area, const gchar *str); +void _ev_message_area_add_buttons_valist (EvMessageArea *area, + const gchar *first_button_text, + va_list args); +GtkWidget *_ev_message_area_get_main_box (EvMessageArea *area); + G_END_DECLS #endif /* EV_MESSAGE_AREA_H */ diff --git a/shell/ev-progress-message-area.c b/shell/ev-progress-message-area.c index ac2fda3a..27e8a0fc 100644 --- a/shell/ev-progress-message-area.c +++ b/shell/ev-progress-message-area.c @@ -83,7 +83,7 @@ ev_progress_message_area_init (EvProgressMessageArea *area) area->priv = EV_PROGRESS_MESSAGE_AREA_GET_PRIVATE (area); - contents = gedit_message_area_get_contents (GEDIT_MESSAGE_AREA (area)); + contents = _ev_message_area_get_main_box (EV_MESSAGE_AREA (area)); vbox = gtk_vbox_new (FALSE, 6); @@ -162,11 +162,11 @@ ev_progress_message_area_new (const gchar *stock_id, NULL); if (first_button_text) { va_list args; - + va_start (args, first_button_text); - gedit_message_area_add_buttons_valist (GEDIT_MESSAGE_AREA (widget), - first_button_text, - args); + _ev_message_area_add_buttons_valist (EV_MESSAGE_AREA (widget), + first_button_text, + args); va_end (args); }