[evince] Use EvInfoBar instead of GeditMessageArea



commit 1734b2d39ff490f6d4d58c1077fc2ac671cd3aca
Author: Carlos Garcia Campos <carlosgc gnome org>
Date:   Fri Sep 18 10:15:37 2009 +0200

    Use EvInfoBar instead of GeditMessageArea
    
    Fixes bug #592785

 configure.ac                                       |    1 -
 cut-n-paste/Makefile.am                            |    2 +-
 cut-n-paste/gedit-message-area/Makefile.am         |    9 -
 .../gedit-message-area/gedit-message-area.c        |  546 --------------------
 .../gedit-message-area/gedit-message-area.h        |  133 -----
 shell/Makefile.am                                  |    4 +-
 shell/ev-message-area.c                            |   79 ++--
 shell/ev-message-area.h                            |   11 +-
 shell/ev-progress-message-area.c                   |   10 +-
 9 files changed, 64 insertions(+), 731 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 7c685a2..f1724e2 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 4a3c4fb..f073fd9 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/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 <gtk/gtk.h>
 
-#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);
 	}
 



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