From 9b0e9dc0aeffd627ce2bdea049cc7c47bb7418f0 Mon Sep 17 00:00:00 2001 From: Srinivasa Ragavan Date: Fri, 22 May 2009 17:00:53 +0530 Subject: Johnny's composer changes for Anjal. --- composer/e-composer-header.c | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) (limited to 'composer/e-composer-header.c') diff --git a/composer/e-composer-header.c b/composer/e-composer-header.c index 272556969d..20967c6853 100644 --- a/composer/e-composer-header.c +++ b/composer/e-composer-header.c @@ -1,3 +1,5 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ + /* * * This program is free software; you can redistribute it and/or @@ -28,6 +30,8 @@ enum { PROP_0, PROP_BUTTON, PROP_LABEL, + PROP_ADDACTION, + PROP_ADDACTION_TEXT, PROP_SENSITIVE, PROP_VISIBLE }; @@ -41,6 +45,8 @@ enum { struct _EComposerHeaderPrivate { gchar *label; gboolean button; + gchar *addaction_text; + gboolean addaction; /*For Add button.*/ guint sensitive : 1; guint visible : 1; @@ -57,6 +63,20 @@ composer_header_button_clicked_cb (GtkButton *button, g_signal_emit (header, signal_ids[CLICKED], 0); } +static void +composer_header_addaction_clicked_cb (GtkButton *button, + EComposerHeader *header) +{ + gtk_widget_hide ((GtkWidget *)button); + e_composer_header_set_visible (header, TRUE); +} + +static void +link_clicked_cb (GtkLinkButton *button, const gchar *link_, gpointer user_data) +{ + return; +} + static GObject * composer_header_constructor (GType type, guint n_construct_properties, @@ -84,6 +104,27 @@ composer_header_constructor (GType type, gtk_label_set_mnemonic_widget ( GTK_LABEL (widget), header->input_widget); } + + if (header->priv->addaction) { + GtkWidget *box, *tmp; + char *str; + + header->action_widget = gtk_button_new (); + box = gtk_hbox_new (FALSE, 0); + tmp = gtk_image_new_from_stock("gtk-add", GTK_ICON_SIZE_BUTTON); + gtk_box_pack_start((GtkBox *)box, tmp, FALSE, FALSE, 3); + tmp = gtk_label_new (NULL); + str = g_strdup_printf ("%s", header->priv->addaction_text); + gtk_label_set_markup((GtkLabel *)tmp, str); + gtk_box_pack_start((GtkBox *)box, tmp, FALSE, FALSE, 3); + gtk_container_add((GtkContainer *)header->action_widget, box); + gtk_widget_show_all(header->action_widget); + g_signal_connect ( + header->action_widget, "clicked", + G_CALLBACK (composer_header_addaction_clicked_cb), + header); + } + header->title_widget = g_object_ref_sink (widget); g_free (header->priv->label); @@ -107,6 +148,14 @@ composer_header_set_property (GObject *object, priv->button = g_value_get_boolean (value); return; + case PROP_ADDACTION: /* construct only */ + priv->addaction = g_value_get_boolean (value); + return; + + case PROP_ADDACTION_TEXT:/* construct only */ + priv->addaction_text = g_value_dup_string (value); + return; + case PROP_LABEL: /* construct only */ priv->label = g_value_dup_string (value); return; @@ -127,6 +176,15 @@ composer_header_set_property (GObject *object, G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } +void +e_composer_header_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + composer_header_set_property (object, property_id, value, pspec); +} + static void composer_header_get_property (GObject *object, guint property_id, @@ -142,6 +200,15 @@ composer_header_get_property (GObject *object, g_value_set_boolean (value, priv->button); return; + case PROP_ADDACTION: /* construct only */ + g_value_set_boolean (value, priv->button); + return; + + case PROP_ADDACTION_TEXT: /* construct only */ + g_value_take_string ( + value, priv->addaction_text); + return; + case PROP_LABEL: /* construct only */ g_value_take_string ( value, e_composer_header_get_label ( @@ -208,6 +275,28 @@ composer_header_class_init (EComposerHeaderClass *class) G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property ( + object_class, + PROP_ADDACTION, + g_param_spec_boolean ( + "addaction", + NULL, + NULL, + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property ( + object_class, + PROP_ADDACTION_TEXT, + g_param_spec_string ( + "addaction_text", + NULL, + NULL, + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property ( object_class, PROP_LABEL, -- cgit v1.2.3 From 05a85647b7f649ef76a51fed8ee21eaec84232d4 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 25 May 2009 23:24:45 -0400 Subject: Fix compiler warnings in composer. --- composer/e-composer-header.c | 6 ------ 1 file changed, 6 deletions(-) (limited to 'composer/e-composer-header.c') diff --git a/composer/e-composer-header.c b/composer/e-composer-header.c index 20967c6853..674e7a6cee 100644 --- a/composer/e-composer-header.c +++ b/composer/e-composer-header.c @@ -71,12 +71,6 @@ composer_header_addaction_clicked_cb (GtkButton *button, e_composer_header_set_visible (header, TRUE); } -static void -link_clicked_cb (GtkLinkButton *button, const gchar *link_, gpointer user_data) -{ - return; -} - static GObject * composer_header_constructor (GType type, guint n_construct_properties, -- cgit v1.2.3 From e4afd3f9fb962ea1295a0657ec9f83a427829171 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 26 May 2009 23:21:02 -0400 Subject: Remove trailing whitespace, again. --- composer/e-composer-header.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'composer/e-composer-header.c') diff --git a/composer/e-composer-header.c b/composer/e-composer-header.c index 674e7a6cee..7b7cb9bcf2 100644 --- a/composer/e-composer-header.c +++ b/composer/e-composer-header.c @@ -13,7 +13,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see + * License along with the program; if not, see * * * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) -- cgit v1.2.3