1,338d0
< /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
<  *
<  * Authors: Ashish Shrivastava <shashish@novell.com>
<  *
<  * Copyright (C) 2004 Novell, Inc.
<  *
<  * This program is free software; you can redistribute it and/or
<  * modify it under the terms of version 2 of the GNU General Public
<  * License as published by the Free Software Foundation.
<  *
<  * 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., 51 Franklin Street, Fifth Floor, MA 02110-1301.
<  */
< 
< #ifdef HAVE_CONFIG_H
< #include <config.h>
< #endif
< 
< #include <string.h>
< #include <glib.h>
< #include <libedataserverui/e-name-selector.h>
< #include <libedataserverui/e-contact-store.h>
< #include <e-util/e-error.h>
< #include <gtk/gtksignal.h>
< #include <gtk/gtktogglebutton.h>
< #include <gtk/gtk.h>
< #include <libgnome/libgnome.h>
< #include <libgnome/gnome-i18n.h>
< #include <glade/glade.h>
< 
< #include "e-util/e-util-private.h"
< 
< #include "custom-header.h"
< 
< struct _CustomHeaderOptionsDialogPrivate {
< 	/* Glade XML data */
< 	GladeXML *xml;
< 
< 	/*Widgets*/
< 
< 	GtkWidget *main;
< 
< 	/*Importance*/
< 	GtkWidget *category;
< 
< 	/*Sensitivity*/
< 	GtkWidget *security;
< 
< 	/*Label Widgets*/
< 	GtkWidget *category_label;
< 	GtkWidget *security_label;
< 	char *help_section;
< };
< 
< static void custom_headeroptions_dialog_class_init (GObjectClass *object_class);
< static void custom_headeroptions_dialog_finalize (GObject *object);
< static void custom_headeroptions_dialog_init (GObject *object);
< static void custom_headeroptions_dialog_dispose (GObject *object);
< 
< static GObjectClass *parent_class = NULL;
< enum {
< 	SOD_RESPONSE,
< 	LAST_SIGNAL
< };
< 
< static guint signals[LAST_SIGNAL] = {0};
< 
< /* custom_header_options_get_widgets_data(CustomHeaderOptionsDialog *sod)
<    Return Value:This function returns a -1 if an error occurs. In case of error-free operation a 1 is returned.
< */
< static int
< custom_header_options_get_widgets_data (CustomHeaderOptionsDialog *sod)
< {
< 	CustomHeaderOptionsDialogPrivate *priv;
< 	CustomHeaderOptions *options;
< 
< 	priv = sod->priv;
< 	options = sod->options;
< 	
< 	/* This block helps us fetch the address of the delegator(s). If no delegator is selected or more 
< 	   than one delegatee has been selected then an info dialog is popped up to help the user.	
< 	*/
< 
< 	options->category = gtk_combo_box_get_active ((GtkComboBox *)priv->category);
< 	options->security = gtk_combo_box_get_active ((GtkComboBox *)priv->security);
< 
< 	return 1;
< }
< 
< static gboolean
< get_widgets (CustomHeaderOptionsDialog *sod) 
< {
< 	CustomHeaderOptionsDialogPrivate *priv;
< 
< 	priv = sod->priv;
< 
< #define CUSTOM_HEADER(name) glade_xml_get_widget (priv->xml, name)
< 
< 	priv->main = CUSTOM_HEADER ("custom_header");
< 	if (!priv->main)
< 		return FALSE;
< 	
< 	priv->category = CUSTOM_HEADER ("category_combo_box");
< 	priv->security = CUSTOM_HEADER ("security_combo_box");
< 	priv->category_label = CUSTOM_HEADER ("priority_label");
< 	priv->security_label = CUSTOM_HEADER ("security_label");
< 
< #undef CUSTOM_HEADER
< 
< 	return (priv->category
< 		&&priv->security
< 		&&priv->category_label
< 		&&priv->security_label);
< }
< 	
< static void
< custom_header_options_fill_widgets_with_data (CustomHeaderOptionsDialog *sod)
< {
< 	CustomHeaderOptionsDialogPrivate *priv;
< 	CustomHeaderOptions *options;
< 	
< 	priv = sod->priv;
< 	options = sod->options;
< 
< 	priv->help_section = g_strdup ("usage-mail");
< 
< 	gtk_label_set_mnemonic_widget (GTK_LABEL (priv->category_label), priv->category);
< 	gtk_label_set_mnemonic_widget (GTK_LABEL (priv->security_label), priv->security);
< 
< 	gtk_combo_box_set_active ((GtkComboBox *) priv->category, options->category);
< 	gtk_combo_box_set_active ((GtkComboBox *) priv->security, options->security);
< }
< 
< CustomHeaderOptionsDialog *
< custom_headeroptions_dialog_new (void) {
< 	CustomHeaderOptionsDialog *sod;
< 
< 	sod = g_object_new (CUSTOM_HEADER_OPTIONS_DIALOG, NULL);
< 	
< 	return sod;
< }
< 
< GType custom_headeroptions_dialog_get_type (void)
< {
<   static GType type = 0;
<   if (type == 0) {
<     static const GTypeInfo info = {
<       sizeof (CustomHeaderOptionsDialogClass),
<       NULL,   /* base_init */
<       NULL,   /* base_finalize */
<       (GClassInitFunc) custom_headeroptions_dialog_class_init,   /* class_init */
<       NULL,   /* class_finalize */
<       NULL,   /* class_data */
<       sizeof (CustomHeaderOptionsDialog),
<      0,      /* n_preallocs */
<      (GInstanceInitFunc) custom_headeroptions_dialog_init,
<  	NULL    /* instance_init */
<     };
<     type = g_type_register_static (G_TYPE_OBJECT,
<                                    "CustomHeaderOptionsDialogType",
<                                    &info, 0);
<   }
<   return type;
< }
< 
< static void custom_header_options_cb (GtkDialog *dialog, gint state, gpointer func_data)
< {
<    	CustomHeaderOptionsDialogPrivate *priv;
<    	CustomHeaderOptionsDialog *sod;
<         GError *error = NULL;     
< 		
< 	sod = func_data;
<         priv = sod->priv;
< 	
< 	switch (state) {			
< 		case GTK_RESPONSE_OK:
< 		     if(custom_header_options_get_widgets_data (sod) < 0) 
< 			return;
< 		case GTK_RESPONSE_CANCEL:
< 		    	gtk_widget_hide (priv->main);
< 	    	    	gtk_widget_destroy (priv->main);
< 	           	g_object_unref (priv->xml);
< 	             	break;	     
< 		case GTK_RESPONSE_HELP:
< 		     	gnome_help_display (
< 				"evolution.xml", priv->help_section, &error);
< 			if (error != NULL) {
< 				g_warning ("%s", error->message);
< 				g_error_free (error);
< 			}
< 	    	    	break;
< 	}
< 	g_signal_emit (G_OBJECT (func_data), signals[SOD_RESPONSE], 0, state);
< 
< }
< 
< gboolean 
< custom_headeroptions_dialog_run (CustomHeaderOptionsDialog *sod, GtkWidget *parent)
< {	
< 	CustomHeaderOptionsDialogPrivate *priv;
< 	CustomHeaderOptions *options;
< 
< 	GtkWidget *toplevel;
< 	gchar *filename;
< 
< 	g_return_val_if_fail (sod != NULL || CUSTOM_IS_HEADEROPTIONS_DIALOG (sod), FALSE);
< 	
< 	priv = sod->priv;
< 	options = sod->options;
< 
< 	filename = g_build_filename (EVOLUTION_GLADEDIR,
< 				     "org-gnome-custom-header.glade",
< 				     NULL);
< 	priv->xml = glade_xml_new (filename, NULL, NULL);
< 	g_free (filename);
< 
< 	if (!priv->xml) {
< 		g_message ( G_STRLOC ": Could not load the Glade XML file ");
< 		return FALSE;
< 	}
< 
< 	if (!get_widgets(sod)) {
< 		g_object_unref (priv->xml);
< 		g_message (G_STRLOC ": Could not get the Widgets \n");
< 		return FALSE;
< 	}
< 
< 	toplevel =  gtk_widget_get_toplevel (priv->main);
< 	if (parent)
< 		gtk_window_set_transient_for (GTK_WINDOW (toplevel),
< 				      GTK_WINDOW (parent));
< 
< 	custom_header_options_fill_widgets_with_data (sod);
< 
< 	g_signal_connect (GTK_DIALOG (priv->main), "response", 
< 				G_CALLBACK(custom_header_options_cb), sod);
< 
< 	gtk_window_set_modal ((GtkWindow *) priv->main, TRUE);
< 	gtk_widget_show (priv->main);
<        
< 	return TRUE;
< }
< 
< static void
< custom_headeroptions_dialog_class_init (GObjectClass *object)
< {
< 	CustomHeaderOptionsDialogClass *klass;
< 	GObjectClass *object_class;
<      
< 	klass = CUSTOM_HEADEROPTIONS_DIALOG_CLASS (object);
< 	parent_class = g_type_class_peek_parent (klass);
< 	object_class = G_OBJECT_CLASS (klass);
< 
< 	object_class->finalize = custom_headeroptions_dialog_finalize;
< 	object_class->dispose = custom_headeroptions_dialog_dispose;
< 	signals[SOD_RESPONSE] = g_signal_new ("sod_response",
< 			G_TYPE_FROM_CLASS (klass),
< 			G_SIGNAL_RUN_FIRST,
< 			G_STRUCT_OFFSET (CustomHeaderOptionsDialogClass, esod_response),
< 			NULL, NULL,
< 			g_cclosure_marshal_VOID__INT,
< 			G_TYPE_NONE, 1,
< 			G_TYPE_INT);
< 
< }
< 
< static void
< custom_headeroptions_dialog_init (GObject *object)
< {
< 	
< 	CustomHeaderOptionsDialog *sod;
< 	CustomHeaderOptionsDialogPrivate *priv;
< 	CustomHeaderOptions *new;
<      
< 	sod = CUSTOM_HEADEROPTIONS_DIALOG (object);
< 	new = g_new0 (CustomHeaderOptions, 1);
< 	
< 	priv = g_new0 (CustomHeaderOptionsDialogPrivate, 1);
< 	
< 	sod->priv = priv;
< 	sod->options = new;
< 
< 	sod->options->category = E_CATEGORY_SECURITY;
< 	sod->options->security = E_SECURITY_PERSONAL;
< 
< 	priv->xml = NULL;
< 	priv->main = NULL;
< 	priv->category = NULL;
< 	priv->security = NULL;
< 	priv->security_label = NULL;
< 	priv->category_label = NULL;
< 
< }
< 
< static void
< custom_headeroptions_dialog_finalize (GObject *object)
< {
< 	CustomHeaderOptionsDialog *sod = (CustomHeaderOptionsDialog *)object;
< 	CustomHeaderOptionsDialogPrivate *priv;
< 	
< 	g_return_if_fail (CUSTOM_IS_HEADEROPTIONS_DIALOG (sod));
< 	priv = sod->priv;
< 	
< 	g_free (priv->help_section);
< 
< 	if (sod->options) {
< 		g_free (sod->options);
< 		sod->options = NULL;
< 	}
< 
< 	if (sod->priv) {
< 		g_free (sod->priv);
< 		sod->priv = NULL;
< 	}
< 
< 	if (parent_class->finalize) 
< 		(* parent_class->finalize) (object);
< 	
< }
< 
< static void
< custom_headeroptions_dialog_dispose (GObject *object)
< {
< 	CustomHeaderOptionsDialog *sod = (CustomHeaderOptionsDialog *) object;
< 
< 	g_return_if_fail (CUSTOM_IS_HEADEROPTIONS_DIALOG (sod));
< 
< 	if (parent_class->dispose)
< 		(* parent_class->dispose) (object);
< 
< }	
< 
1,87d0
<  /* Evolution Email custom header options
<  * Copyright (C) 2004 Novell, Inc.
<  *
<  * Authors: Ashish <shashish@novell.com>
<  *
<  * This program is free software; you can redistribute it and/or
<  * modify it under the terms of version 2 of the GNU General Public
<  * License as published by the Free Software Foundation.
<  *
<  * 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., 51 Franklin Street, Fifth Floor, MA 02110-1301.
<  */
< 
< #ifndef __CUSTOM_HEADEROPTIONS_DIALOG_H__
< #define __CUSTOM_HEADEROPTIONS_DIALOG_H__
< 
< #include <gtk/gtkwidget.h>
< #include <gtk/gtk.h>
< 
< 
< 
< #define CUSTOM_HEADER_OPTIONS_DIALOG       (custom_headeroptions_dialog_get_type ())
< #define CUSTOM_HEADEROPTIONS_DIALOG(obj)       (GTK_CHECK_CAST ((obj), CUSTOM_HEADER_OPTIONS_DIALOG, CustomHeaderOptionsDialog))
< #define CUSTOM_HEADEROPTIONS_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), CUSTOM_HEADER_OPTIONS_DIALOG, CustomHeaderOptionsDialogClass))
< #define CUSTOM_IS_HEADEROPTIONS_DIALOG(obj)    (GTK_CHECK_TYPE ((obj), CUSTOM_HEADER_OPTIONS_DIALOG))
< #define CUSTOM_IS_HEADEROPTIONS_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), CUSTOM_HEADER_OPTIONS_DIALOG))
< 
< typedef struct _CustomHeaderOptionsDialog		CustomHeaderOptionsDialog;
< typedef struct _CustomHeaderOptionsDialogClass		CustomHeaderOptionsDialogClass;
< typedef struct _CustomHeaderOptionsDialogPrivate	CustomHeaderOptionsDialogPrivate;
< 
< typedef enum {
< 	E_CATEGORY_SECURITY,
< 	E_CATEGORY_COMMERCIAL,
< 	E_CATEGORY_AUDIT,
< 	E_CATEGORY_STAFF,
<         E_CATEGORY_MEDICAL,
<         E_CATEGORY_CLIENT,
<         E_CATEGORY_PERSONAL,
<         E_CATEGORY_CABINET_IN_CONFIDENCE
< } CustomHeaderOptionsCategory;
< 
< typedef enum {
< 	E_SECURITY_PERSONAL,
< 	E_SECURITY_UNCLASSIFIED,
< 	E_SECURITY_IN_CONFIDENCE,
< 	E_SECURITY_PROTECTED,
< 	E_SECURITY_HIGHLY_PROTECTED,
< 	E_SECURITY_RESTRICTED,
<         E_SECURITY_CONFIDENTIAL,
<         E_SECURITY_SECRET,
<         E_SECURITY_TOP_SECRET
< } CustomHeaderOptionsSecurity;
< 
< /* We require the delegate_email and delegate_name to store the address of the delegator selected into 
<    the destination store.
< */
< typedef struct {
< 	CustomHeaderOptionsCategory category;
< 	CustomHeaderOptionsSecurity security;
< } CustomHeaderOptions ;
< 
< struct _CustomHeaderOptionsDialog {
< 	GObject object;
< 
< 	CustomHeaderOptions *options;
< 	/* Private data */
< 	CustomHeaderOptionsDialogPrivate *priv;
< };
< 
< 
< struct _CustomHeaderOptionsDialogClass {
< 	GObjectClass parent_class;
< 	void (* esod_response) (CustomHeaderOptionsDialog *esd, gint status);
< };
< 
< GType  custom_headeroptions_dialog_get_type     (void);
< CustomHeaderOptionsDialog *custom_headeroptions_dialog_new (void);
< gboolean custom_headeroptions_dialog_run (CustomHeaderOptionsDialog *sod, GtkWidget *parent);
< #endif
< 
1,164d0
< /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
<  *
<  *  Authors: Ashish Shrivastava <shashish@novell.com>
<  *
<  * Copyright 2004 Novell, Inc. (www.novell.com)
<  * 
<  * This program is free software; you can redistribute it and/or
<  * modify it under the terms of version 2 of the GNU General Public
<  * License as published by the Free Software Foundation.
<  * 
<  * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<  *
<  */
< 
< #include <string.h>
< #include <stdio.h>
< 
< #include <glib.h>
< #include <glib/gi18n.h>
< 
< #include <camel/camel-mime-message.h>
< #include <camel/camel-address.h>
< #include <gtk/gtk.h>
< #include <glib/gi18n.h>
< #include <mail/em-menu.h>
< #include <e-util/e-error.h>
< 
< //#include "mail/em-event.h"
< 
< #include "composer/e-msg-composer.h"
< #include "composer/e-msg-composer-hdrs.h"
< #include "libedataserver/e-account.h"
< 
< #include "custom-header.h"
< 
< #define d(x) x
< 
< void org_gnome_composer_custom_header (EPlugin * ep, EMMenuTargetWidget * target);
< 
< static CustomHeaderOptionsDialog *dialog=NULL;
< 
< static void  
< append_to_header (CustomHeaderOptionsDialog *dialog, gint state, gpointer data)
< {
< 	EMsgComposer *composer;
< 
< 	composer = (EMsgComposer *)data;
< 	if (state == GTK_RESPONSE_OK) {
< 		if (dialog->options->category) {
< 			switch (dialog->options->category) {
< 				case E_CATEGORY_SECURITY :
< 					e_msg_composer_modify_header (composer, "Category", "SECURITY");		
< 					break;	
< 				case E_CATEGORY_COMMERCIAL :
< 					e_msg_composer_modify_header (composer, "Category", "COMMERCIAL");
< 					break;
< 				case E_CATEGORY_AUDIT :
< 					e_msg_composer_modify_header (composer, "Category", "AUDIT");
< 					break;
< 				case E_CATEGORY_STAFF :
< 					e_msg_composer_modify_header (composer, "Category", "STAFF");
< 					break;
< 				case E_CATEGORY_MEDICAL :
< 					e_msg_composer_modify_header (composer, "Category", "MEDICAL");
< 					break;
< 				case E_CATEGORY_CLIENT :
< 					e_msg_composer_modify_header (composer, "Category", "CLIENT");
< 					break;
< 				case E_CATEGORY_PERSONAL :
< 					e_msg_composer_modify_header (composer, "Category", "PERSONAL");
< 					break;
< 				case E_CATEGORY_CABINET_IN_CONFIDENCE :
< 					e_msg_composer_modify_header (composer, "Category", "CABINET-IN-CONFIDENCE");
< 					break;
< 				default :
< 					g_print ("\nNo category set");
< 					break;
< 			}
< 		}
< 		else{
<                         e_msg_composer_remove_header (composer, "Category");
<                 }
< 			
< 		if (dialog->options->security) {
< 			switch (dialog->options->security) {
< 				case E_SECURITY_PERSONAL :
< 					e_msg_composer_modify_header (composer, "Security", "PERSONAL");
< 					break;
< 				case E_SECURITY_UNCLASSIFIED :
< 					e_msg_composer_modify_header (composer, "Security", "UNCLASSIFIED");
< 					break;
< 				case E_SECURITY_IN_CONFIDENCE :
< 					e_msg_composer_modify_header (composer, "Security", "IN-CONFIDENCE");
< 					break;
< 				case E_SECURITY_PROTECTED :
< 					e_msg_composer_modify_header (composer, "Security", "PROTECTED");
< 					break;
< 				case E_SECURITY_HIGHLY_PROTECTED :
< 					e_msg_composer_modify_header (composer, "Security", "HIGHLY-PROTECTED");
< 					break;
< 				case E_SECURITY_RESTRICTED :
< 					e_msg_composer_modify_header (composer, "Security", "RESTRICTED");
< 					break;
< 				case E_SECURITY_CONFIDENTIAL :
< 					e_msg_composer_modify_header (composer, "Security", "CONFIDENTIAL");
< 					break;
< 				case E_SECURITY_SECRET :
< 					e_msg_composer_modify_header (composer, "Security", "SECRET");
< 					break;
< 				case E_SECURITY_TOP_SECRET :
< 					e_msg_composer_modify_header (composer, "Security", "TOP-SECRET");
< 					break;
< 				default :
< 					g_print ("\nNo security set");
< 					break;
< 			}
< 		}
< 		else {
<               		e_msg_composer_remove_header (composer, "Security");
<                 }
< 			
< 	}
< }
< 					
< static void
< custome_header_options_commit (EMsgComposer *comp, gpointer user_data)
< {
< 	if (!user_data && !CUSTOM_IS_HEADEROPTIONS_DIALOG (user_data))
< 		return;
< 		
< 	if (dialog) {
< 		g_print ("\nDialog getting unreferenced ");
< 		g_object_unref (dialog);
< 		dialog = NULL;	
< 	}
< }
< 
< void 
< org_gnome_composer_custom_header (EPlugin * ep, EMMenuTargetWidget * t)
< {
< 
<         EMsgComposer *composer;
<         composer = (EMsgComposer *) t->target.widget;
< 
<  	/*disply the custome_header options dialog*/
< 	if (!dialog) {
< 		g_print ("New dialog\n\n") ;
< 		dialog = custom_headeroptions_dialog_new () ;
< 	}
< 
< 	custom_headeroptions_dialog_run (dialog, GTK_WIDGET (composer));
< 	g_signal_connect (dialog, "sod_response", G_CALLBACK (append_to_header), GTK_WIDGET (composer));
< 
< 	g_signal_connect (GTK_WIDGET (composer), "destroy",
< 				  G_CALLBACK (custome_header_options_commit), dialog);
< 	
< }
1,12d0
< <Root>
<   <commands>
<   	<cmd name="Custom Header" _label="_Custom Header"/>
<   </commands>
<   <menu>
<  	<submenu name="Insert">
<   		<placeholder name="Component">
<   			<menuitem name="Custom Header" verb="" />
< 	  	</placeholder>
< 	</submenu>
<   </menu>
< </Root>
1,273d0
< <?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
< <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
< 
< <glade-interface>
< <requires lib="gnome"/>
< 
< <widget class="GtkDialog" id="custom_header">
<   <property name="visible">True</property>
<   <property name="can_default">True</property>
<   <property name="title" translatable="yes">Email Custom Header</property>
<   <property name="type">GTK_WINDOW_TOPLEVEL</property>
<   <property name="window_position">GTK_WIN_POS_MOUSE</property>
<   <property name="modal">True</property>
<   <property name="resizable">False</property>
<   <property name="destroy_with_parent">False</property>
<   <property name="decorated">True</property>
<   <property name="skip_taskbar_hint">False</property>
<   <property name="skip_pager_hint">False</property>
<   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<   <property name="focus_on_map">True</property>
<   <property name="urgency_hint">False</property>
<   <property name="has_separator">True</property>
< 
<   <child internal-child="vbox">
<     <widget class="GtkVBox" id="vbox">
<       <property name="visible">True</property>
<       <property name="can_default">True</property>
<       <property name="homogeneous">False</property>
<       <property name="spacing">0</property>
< 
<       <child internal-child="action_area">
< 	<widget class="GtkHButtonBox" id="dialog-action_area1">
< 	  <property name="visible">True</property>
< 	  <property name="layout_style">GTK_BUTTONBOX_END</property>
< 
< 	  <child>
< 	    <widget class="GtkButton" id="helpbutton1">
< 	      <property name="visible">True</property>
< 	      <property name="can_default">True</property>
< 	      <property name="can_focus">True</property>
< 	      <property name="label">gtk-help</property>
< 	      <property name="use_stock">True</property>
< 	      <property name="relief">GTK_RELIEF_NORMAL</property>
< 	      <property name="focus_on_click">True</property>
< 	      <property name="response_id">-11</property>
< 	    </widget>
< 	  </child>
< 
< 	  <child>
< 	    <widget class="GtkButton" id="cancelbutton1">
< 	      <property name="visible">True</property>
< 	      <property name="can_default">True</property>
< 	      <property name="can_focus">True</property>
< 	      <property name="label">gtk-cancel</property>
< 	      <property name="use_stock">True</property>
< 	      <property name="relief">GTK_RELIEF_NORMAL</property>
< 	      <property name="focus_on_click">True</property>
< 	      <property name="response_id">-6</property>
< 	    </widget>
< 	  </child>
< 
< 	  <child>
< 	    <widget class="GtkButton" id="okbutton1">
< 	      <property name="visible">True</property>
< 	      <property name="can_default">True</property>
< 	      <property name="can_focus">True</property>
< 	      <property name="label">gtk-ok</property>
< 	      <property name="use_stock">True</property>
< 	      <property name="relief">GTK_RELIEF_NORMAL</property>
< 	      <property name="focus_on_click">True</property>
< 	      <property name="response_id">-5</property>
< 	    </widget>
< 	  </child>
< 	</widget>
< 	<packing>
< 	  <property name="padding">0</property>
< 	  <property name="expand">False</property>
< 	  <property name="fill">True</property>
< 	  <property name="pack_type">GTK_PACK_END</property>
< 	</packing>
<       </child>
< 
<       <child>
< 	<widget class="GtkNotebook" id="notebook">
< 	  <property name="visible">True</property>
< 	  <property name="can_focus">True</property>
< 	  <property name="show_tabs">True</property>
< 	  <property name="show_border">True</property>
< 	  <property name="tab_pos">GTK_POS_TOP</property>
< 	  <property name="scrollable">False</property>
< 	  <property name="enable_popup">False</property>
< 
< 	  <child>
< 	    <widget class="GtkTable" id="general-options">
< 	      <property name="border_width">12</property>
< 	      <property name="visible">True</property>
< 	      <property name="n_rows">4</property>
< 	      <property name="n_columns">4</property>
< 	      <property name="homogeneous">False</property>
< 	      <property name="row_spacing">12</property>
< 	      <property name="column_spacing">12</property>
< 
< 	      <child>
< 		<widget class="GtkLabel" id="label92">
< 		  <property name="visible">True</property>
< 		  <property name="label" translatable="yes"></property>
< 		  <property name="use_underline">False</property>
< 		  <property name="use_markup">False</property>
< 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
< 		  <property name="wrap">False</property>
< 		  <property name="selectable">False</property>
< 		  <property name="xalign">0</property>
< 		  <property name="yalign">0.5</property>
< 		  <property name="xpad">0</property>
< 		  <property name="ypad">0</property>
< 		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
< 		  <property name="width_chars">-1</property>
< 		  <property name="single_line_mode">False</property>
< 		  <property name="angle">0</property>
< 		</widget>
< 		<packing>
< 		  <property name="left_attach">2</property>
< 		  <property name="right_attach">4</property>
< 		  <property name="top_attach">1</property>
< 		  <property name="bottom_attach">2</property>
< 		  <property name="y_options"></property>
< 		</packing>
< 	      </child>
< 
< 	      <child>
< 		<widget class="GtkComboBox" id="category_combo_box">
< 		  <property name="visible">True</property>
< 		  <property name="items" translatable="yes">Security
< Commercial
< Audit
< Staff
< Medical
< Client
< Personal
< Cabinet In Confidence</property>
< 		  <property name="add_tearoffs">False</property>
< 		  <property name="focus_on_click">True</property>
< 		</widget>
< 		<packing>
< 		  <property name="left_attach">1</property>
< 		  <property name="right_attach">2</property>
< 		  <property name="top_attach">1</property>
< 		  <property name="bottom_attach">2</property>
< 		  <property name="y_options">fill</property>
< 		</packing>
< 	      </child>
< 
< 	      <child>
< 		<widget class="GtkLabel" id="priority_label">
< 		  <property name="visible">True</property>
< 		  <property name="label" translatable="yes">_Category:</property>
< 		  <property name="use_underline">True</property>
< 		  <property name="use_markup">False</property>
< 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
< 		  <property name="wrap">False</property>
< 		  <property name="selectable">False</property>
< 		  <property name="xalign">0</property>
< 		  <property name="yalign">0.5</property>
< 		  <property name="xpad">0</property>
< 		  <property name="ypad">0</property>
< 		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
< 		  <property name="width_chars">-1</property>
< 		  <property name="single_line_mode">False</property>
< 		  <property name="angle">0</property>
< 		</widget>
< 		<packing>
< 		  <property name="left_attach">0</property>
< 		  <property name="right_attach">1</property>
< 		  <property name="top_attach">1</property>
< 		  <property name="bottom_attach">2</property>
< 		  <property name="y_options"></property>
< 		</packing>
< 	      </child>
< 
< 	      <child>
< 		<widget class="GtkLabel" id="security_label">
< 		  <property name="visible">True</property>
< 		  <property name="label" translatable="yes">_Security</property>
< 		  <property name="use_underline">True</property>
< 		  <property name="use_markup">False</property>
< 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
< 		  <property name="wrap">False</property>
< 		  <property name="selectable">False</property>
< 		  <property name="xalign">0</property>
< 		  <property name="yalign">0.5</property>
< 		  <property name="xpad">0</property>
< 		  <property name="ypad">0</property>
< 		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
< 		  <property name="width_chars">-1</property>
< 		  <property name="single_line_mode">False</property>
< 		  <property name="angle">0</property>
< 		</widget>
< 		<packing>
< 		  <property name="left_attach">0</property>
< 		  <property name="right_attach">1</property>
< 		  <property name="top_attach">0</property>
< 		  <property name="bottom_attach">1</property>
< 		  <property name="x_options">fill</property>
< 		  <property name="y_options"></property>
< 		</packing>
< 	      </child>
< 
< 	      <child>
< 		<widget class="GtkComboBox" id="security_combo_box">
< 		  <property name="visible">True</property>
< 		  <property name="items" translatable="yes">Personal
< Unclassified
< In-Confidential
< Protected
< Highly-Protected
< Restricted
< Confidential
< Secret
< Top-Secret</property>
< 		  <property name="add_tearoffs">False</property>
< 		  <property name="focus_on_click">True</property>
< 		</widget>
< 		<packing>
< 		  <property name="left_attach">1</property>
< 		  <property name="right_attach">2</property>
< 		  <property name="top_attach">0</property>
< 		  <property name="bottom_attach">1</property>
< 		  <property name="x_options">fill</property>
< 		  <property name="y_options">fill</property>
< 		</packing>
< 	      </child>
< 	    </widget>
< 	    <packing>
< 	      <property name="tab_expand">False</property>
< 	      <property name="tab_fill">True</property>
< 	    </packing>
< 	  </child>
< 
< 	  <child>
< 	    <widget class="GtkLabel" id="gopts-label">
< 	      <property name="visible">True</property>
< 	      <property name="label" translatable="yes">Gene_ral Options</property>
< 	      <property name="use_underline">True</property>
< 	      <property name="use_markup">False</property>
< 	      <property name="justify">GTK_JUSTIFY_LEFT</property>
< 	      <property name="wrap">False</property>
< 	      <property name="selectable">False</property>
< 	      <property name="xalign">0.5</property>
< 	      <property name="yalign">0.5</property>
< 	      <property name="xpad">0</property>
< 	      <property name="ypad">0</property>
< 	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
< 	      <property name="width_chars">-1</property>
< 	      <property name="single_line_mode">False</property>
< 	      <property name="angle">0</property>
< 	    </widget>
< 	    <packing>
< 	      <property name="type">tab</property>
< 	    </packing>
< 	  </child>
< 	</widget>
< 	<packing>
< 	  <property name="padding">0</property>
< 	  <property name="expand">True</property>
< 	  <property name="fill">True</property>
< 	</packing>
<       </child>
<     </widget>
<   </child>
< </widget>
< 
< </glade-interface>
1,22d0
< <?xml version="1.0"?>
< <e-plugin-list>
< 	<e-plugin id="org.gnome.evolution.email-custom-header" type="shlib" _name="Custom Header" 
< 		location="@PLUGINDIR@/liborg-gnome-custom-header@SOEXT@">
< 
< 		<author name="Ashish Shrivastava" email="shashish@novell.com"/>
< 		<_description>Attach add Custom Header outgoing messages. User needs to configure custom header through option dialog window.</_description>
< 
< 		<hook class="org.gnome.evolution.mail.bonobomenu:1.0">
< 			<menu id="org.gnome.evolution.mail.composer" target="widget">
< 				<ui file="@PLUGINDIR@/org-gnome-custom-header-menu.xml"/>
< 				<item
< 					type="item"
< 					verb="Custom Header"
< 					path="/commands/Custom Header"			   
< 					activate="org_gnome_composer_custom_header"
< 					enable="one"
< 				/>
< 			</menu>
< 		</hook>
< 	</e-plugin>
< </e-plugin-list>
1,43d0
< INCLUDES = -I. 						\
< 	-I$(top_srcdir)	                                \
< 	-I$(top_srcdir)/widgets				\
< 	-I$(top_srcdir)/widgets/misc			\
< 	-I$(top_builddir)/mail                          \
< 	-I$(top_srcdir)/camel                           \
< 	-I$(top_builddir)/composer			\
< 	$(EVOLUTION_MAIL_CFLAGS)			\
< 	-DEVOLUTION_GLADEDIR=\""$(gladedir)"\"          \
< 	-DCONNECTOR_GLADEDIR=\""$(gladedir)"\"
< 
< 
< @EVO_PLUGIN_RULE@
< 
< plugin_DATA =	\
< 	org-gnome-custom-header.eplug	\
< 	org-gnome-custom-header-menu.xml  
< 
< plugin_LTLIBRARIES = liborg-gnome-custom-header.la
< 
< liborg_gnome_custom_header_la_SOURCES = 		\
< 	custom-header.c					\
< 	mail-custom-header.c				\
< 	custom-header.h					
< liborg_gnome_custom_header_la_LIBADD = 			\
< 	$(top_builddir)/e-util/libeutil.la 			\
< 	$(top_builddir)/widgets/misc/libemiscwidgets.la		\
< 	$(top_builddir)/mail/libevolution-mail.la 		\
< 	$(NO_UNDEFINED_REQUIRED_LIBS)				
< 
< liborg_gnome_custom_header_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
< 
< glade_DATA =							\
< 	org-gnome-custom-header.glade
< EXTRA_DIST = 						\
< 	org-gnome-custom-header.eplug.xml			\
< 	org-gnome-custom-header-menu.xml				
< 
< BUILT_SOURCES = 				\
< 	org-gnome-custom-header.eplug 			\
< 	$(error_i18n)
< 
< CLEANFILES = $(BUILT_SOURCES)
