From c0a255eb90769638d57ae4122932f75c46e4e531 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 11 Sep 2008 15:34:29 +0000 Subject: Merge revisions 36016:36303 from trunk. svn path=/branches/kill-bonobo/; revision=36307 --- composer/e-composer-header.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'composer/e-composer-header.c') diff --git a/composer/e-composer-header.c b/composer/e-composer-header.c index bc88117d31..8cbcf64f1f 100644 --- a/composer/e-composer-header.c +++ b/composer/e-composer-header.c @@ -1,20 +1,21 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * - * This library is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU Lesser General Public - * License as published by the Free Software Foundation. + * This program 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) version 3. * * 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. + * 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., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * License along with the program; if not, see + * + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + * */ #include "e-composer-header.h" -- cgit v1.2.3 From 7986af5369482c4feeaad6880045bf92a4d3f744 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 13 Feb 2009 04:32:51 +0000 Subject: Let the mail module handle composer "Post To:" button clicks, since EMFolderSelector and EMFolderTree are off-limits to the composer. This further weakens the composer's mail module dependency. Add class methods to EComposerHeader for "changed" and "clicked" signals. Allows subclasses to implement them without connecting to their own signals. svn path=/branches/kill-bonobo/; revision=37260 --- composer/e-composer-header.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'composer/e-composer-header.c') diff --git a/composer/e-composer-header.c b/composer/e-composer-header.c index 8cbcf64f1f..8a6d553921 100644 --- a/composer/e-composer-header.c +++ b/composer/e-composer-header.c @@ -240,7 +240,8 @@ composer_header_class_init (EComposerHeaderClass *class) "changed", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_LAST, - 0, NULL, NULL, + G_STRUCT_OFFSET (EComposerHeaderClass, changed), + NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); @@ -248,7 +249,8 @@ composer_header_class_init (EComposerHeaderClass *class) "clicked", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_LAST, - 0, NULL, NULL, + G_STRUCT_OFFSET (EComposerHeaderClass, clicked), + NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } -- cgit v1.2.3 From c0b6183c73fc170913bba39e65794af3f596e30e 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 4719d6db7e..8bd75f8a3c 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 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 From 948235c3d1076dbe6ed2e57a24c16a083bbd9f01 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 27 May 2009 10:29:19 -0400 Subject: Prefer GLib basic types over C types. --- 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 63894f43c1..453317870f 100644 --- a/composer/e-composer-header.c +++ b/composer/e-composer-header.c @@ -101,7 +101,7 @@ composer_header_constructor (GType type, if (header->priv->addaction) { GtkWidget *box, *tmp; - char *str; + gchar *str; header->action_widget = gtk_button_new (); box = gtk_hbox_new (FALSE, 0); -- cgit v1.2.3 From 374bd42f69aca2e132fd854c9619f3d7491f1f96 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sun, 12 Jul 2009 23:33:07 -0400 Subject: Fix excessive whitespace. --- 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 713c123b74..dd274c4b88 100644 --- a/composer/e-composer-header.c +++ b/composer/e-composer-header.c @@ -429,7 +429,7 @@ e_composer_header_set_visible (EComposerHeader *header, if (!visible) gtk_label_set_markup ((GtkLabel *)header->priv->action_label, g_object_get_data ((GObject *)header->priv->action_label, "show")); else - gtk_label_set_markup ((GtkLabel *)header->priv->action_label, g_object_get_data ((GObject *)header->priv->action_label, "hide")); + gtk_label_set_markup ((GtkLabel *)header->priv->action_label, g_object_get_data ((GObject *)header->priv->action_label, "hide")); } g_object_notify (G_OBJECT (header), "visible"); } -- cgit v1.2.3 From a43c87949714db6c9ab540815dfa4604589b4935 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 17 Aug 2009 15:06:30 -0400 Subject: Disable Anjal hack until it can be reworked. --- composer/e-composer-header.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'composer/e-composer-header.c') diff --git a/composer/e-composer-header.c b/composer/e-composer-header.c index fd71bab4d9..36d0ffb3b6 100644 --- a/composer/e-composer-header.c +++ b/composer/e-composer-header.c @@ -426,6 +426,7 @@ e_composer_header_set_visible (EComposerHeader *header, header->priv->visible = visible; +#if 0 /* FIXME This is horrible. Needs completely rethought. */ if (header->priv->action_label) { if (!visible) { gtk_label_set_markup ((GtkLabel *)header->priv->action_label, g_object_get_data ((GObject *)header->priv->action_label, "show")); @@ -438,6 +439,8 @@ e_composer_header_set_visible (EComposerHeader *header, gtk_widget_show (g_object_get_data((GObject *) header->priv->action_label, "remove")); } } +#endif + g_object_notify (G_OBJECT (header), "visible"); } -- cgit v1.2.3