From 1734b2d39ff490f6d4d58c1077fc2ac671cd3aca Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Fri, 18 Sep 2009 08:15:37 +0000 Subject: Use EvInfoBar instead of GeditMessageArea Fixes bug #592785 --- (limited to 'shell') diff --git a/shell/Makefile.am b/shell/Makefile.am index 0175b5a..4553348 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 c469ec4..4d33898 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) @@ -66,14 +66,6 @@ ev_message_area_class_init (EvMessageAreaClass *class) 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", "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 7128482..74f99a8 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 ac2fda3..27e8a0f 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); } -- cgit v0.9.1