Command Line tool, dont use it. It needs Redesign changes
svn path=/trunk/; revision=7487
This commit is contained in:
5
cmdline/.cvsignore
Normal file
5
cmdline/.cvsignore
Normal file
@ -0,0 +1,5 @@
|
||||
Makefile.in
|
||||
Makefile
|
||||
.deps
|
||||
.libs
|
||||
compose
|
||||
19
cmdline/Makefile.am
Normal file
19
cmdline/Makefile.am
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
man_MANS = compose.1
|
||||
|
||||
bin_PROGRAMS = compose
|
||||
|
||||
INCLUDES = \
|
||||
-I$(top_builddir) \
|
||||
$(COMPOSE_CFLAGS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
compose_LDADD = \
|
||||
../composer/libcomposer.a \
|
||||
$(COMPOSE_LIBS)
|
||||
|
||||
compose_SOURCES = \
|
||||
compose.h \
|
||||
compose.c
|
||||
../composer/Composer-stubs.c \
|
||||
../composer/Composer-common.c
|
||||
51
cmdline/compose.1
Normal file
51
cmdline/compose.1
Normal file
@ -0,0 +1,51 @@
|
||||
.\"
|
||||
.\" Evolution's compose command line utility manual page.
|
||||
.\" (C) Ximian, Inc. http://www.ximian.com
|
||||
.\"
|
||||
.\" Author:
|
||||
.\" Miguel de Icaza (miguel@kernel.org)
|
||||
.\"
|
||||
.TH Evolution 1 "Evolution 1.0"
|
||||
.SH NAME
|
||||
compose \- invokes the Evolution Mail composer tool.
|
||||
.SH SYNOPSIS
|
||||
.PP
|
||||
.B compose
|
||||
[\-\-subject SUBJECT] [\-s SUBJECT] [\-\-cc LIST] [\-c LIST] [\-\-bcc
|
||||
LIST] [\-b LIST] [\-\-body FNAME] to...
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.I compose
|
||||
program is a command line tool that can be used to invoke the
|
||||
Evolution Mail composer directly from the command line, and allows for
|
||||
simple configuration trough a number of flags.
|
||||
.SH OPTIONS
|
||||
The following options are supported
|
||||
.TP
|
||||
.I \-\-subject SUBJECT, \-s SUBJECT
|
||||
Both forms are used to specify the subject to be used in the mail
|
||||
message.
|
||||
.TP
|
||||
.I \-\-cc LIST, \-c LIST
|
||||
Both forms are used to specify a comma separated list of addresses to
|
||||
CC the message to.
|
||||
.TP
|
||||
.I \-\-bcc LIST, \-b LIST
|
||||
Both forms are used to specify a comma separated list of addresses
|
||||
that this message will be blind copied to.
|
||||
.TP
|
||||
.I \-\-body FNAME
|
||||
Loads the filename FNAME as the contents for the Evolution Mail
|
||||
composer.
|
||||
.SH OTHERS
|
||||
If these options are not enough, you might want to look into accessing
|
||||
the Evolution Mail Composer directly by using CORBA.
|
||||
.SH INTERFACES
|
||||
The Evolution Mail Composer supports the
|
||||
IDL:GNOME/Evolution/Composer:1.0 interface and is implemented as the
|
||||
component OAFIID:GNOME_Evolution_Mail_Composer.
|
||||
.SH SEE ALSO
|
||||
Evolution-Composer.idl
|
||||
.SH BUGS
|
||||
If you find bugs in the Evolution groupware suite, please report these
|
||||
using the \fIbug-buddy\fP program in the GNOME distribution.
|
||||
152
cmdline/compose.c
Normal file
152
cmdline/compose.c
Normal file
@ -0,0 +1,152 @@
|
||||
/*
|
||||
* compose.c: A commnand line tool to invoke the Evolution mail composer
|
||||
*
|
||||
* Author:
|
||||
* Miguel de Icaza (miguel@ximian.com)
|
||||
*
|
||||
* (C) 2001 Ximian, Inc.
|
||||
*/
|
||||
#include <config.h>
|
||||
#include <gnome.h>
|
||||
#include <liboaf/liboaf.h>
|
||||
#include <bonobo.h>
|
||||
#include "composer/Composer.h"
|
||||
|
||||
static char *subject;
|
||||
static char *cc;
|
||||
static char *bcc;
|
||||
static char *body;
|
||||
static char *to = "";
|
||||
|
||||
const struct poptOption compose_popt_options [] = {
|
||||
{ "subject", 's', POPT_ARG_STRING,
|
||||
&subject, 0, N_("Subject for the mail message"), N_("SUBJECT") },
|
||||
{ "cc", 'c', POPT_ARG_STRING,
|
||||
&cc, 0, N_("List of people that will be Carbo Copied"), N_("CC-LIST") },
|
||||
{ "bcc", 'b', POPT_ARG_STRING,
|
||||
&bcc, 0, N_("List of people to Blind Carbon Copy this mail to"), N_("BCC-LIST") },
|
||||
{ "body", 0, POPT_ARG_STRING,
|
||||
&body, 0, N_("Filename containing the body of the message"), N_("BODY-FILE") },
|
||||
{ NULL, 0, 0, NULL, 0 }
|
||||
};
|
||||
|
||||
static void
|
||||
error (const char *msg)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
|
||||
dialog = gnome_message_box_new (
|
||||
msg,
|
||||
GNOME_MESSAGE_BOX_ERROR,
|
||||
GNOME_STOCK_BUTTON_OK,
|
||||
NULL);
|
||||
|
||||
gnome_dialog_run_and_close (GNOME_DIALOG (dialog));
|
||||
exit (1);
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
GNOME_Evolution_Composer_RecipientList *
|
||||
make_list (char *str)
|
||||
{
|
||||
GNOME_Evolution_Composer_RecipientList *list;
|
||||
char *p;
|
||||
int count = 0;
|
||||
|
||||
if (str == NULL)
|
||||
str = "";
|
||||
|
||||
list = GNOME_Evolution_Composer_RecipientList__alloc();
|
||||
|
||||
if (*str)
|
||||
count = 1;
|
||||
|
||||
for (p = str; *p; p++){
|
||||
if (*p == ',')
|
||||
count++;
|
||||
}
|
||||
list->_maximum = count;
|
||||
list->_length = count;
|
||||
list->_buffer = CORBA_sequence_GNOME_Evolution_Composer_Recipient_allocbuf (count);
|
||||
|
||||
for (count = 0; (p = strtok (str, ",")) != NULL; count++){
|
||||
GNOME_Evolution_Composer_Recipient *x;
|
||||
|
||||
x = GNOME_Evolution_Composer_Recipient__alloc ();
|
||||
|
||||
list->_buffer [count].name = CORBA_string_dup ("");
|
||||
list->_buffer [count].address = CORBA_string_dup (p);
|
||||
count++;
|
||||
str = NULL;
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
gint
|
||||
do_launch (void)
|
||||
{
|
||||
GNOME_Evolution_Composer_RecipientList *to_list, *cc_list, *bcc_list;
|
||||
GNOME_Evolution_Composer composer;
|
||||
CORBA_Environment ev;
|
||||
|
||||
CORBA_exception_init (&ev);
|
||||
composer = bonobo_get_object (
|
||||
"OAFIID:GNOME_Evolution_Mail_Composer",
|
||||
"GNOME/Evolution/Composer", &ev);
|
||||
CORBA_exception_free (&ev);
|
||||
|
||||
if (composer == CORBA_OBJECT_NIL)
|
||||
error (_("It was not possible to start up the Evolution Mail Composer"));
|
||||
|
||||
to_list = make_list (to);
|
||||
cc_list = make_list (cc);
|
||||
bcc_list = make_list (bcc);
|
||||
|
||||
if (subject == NULL)
|
||||
subject = "";
|
||||
|
||||
GNOME_Evolution_Composer_setHeaders (composer, to_list, cc_list, bcc_list, subject, &ev);
|
||||
GNOME_Evolution_Composer_show (composer, &ev);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv [])
|
||||
{
|
||||
poptContext ctxt = NULL;
|
||||
CORBA_ORB orb;
|
||||
|
||||
gnomelib_register_popt_table (oaf_popt_options, _("Oaf options"));
|
||||
gnome_init_with_popt_table ("Compose", "1.0", argc, argv,
|
||||
compose_popt_options, 0, &ctxt);
|
||||
|
||||
orb = oaf_init (argc, argv);
|
||||
if (bonobo_init (NULL, NULL, NULL) == FALSE)
|
||||
error (_("It was not possible to initialize the Bonobo component system"));
|
||||
|
||||
if (ctxt){
|
||||
const char **to_args = NULL;
|
||||
GString *to_str = g_string_new ("");
|
||||
int i;
|
||||
|
||||
to_args = poptGetArgs (ctxt);
|
||||
|
||||
if (to_args){
|
||||
for (i = 0; to_args [i]; i++) {
|
||||
if (i > 1)
|
||||
g_string_append_c (to_str, ',');
|
||||
|
||||
g_string_append (to_str, to_args [i]);
|
||||
}
|
||||
}
|
||||
to = to_str->str;
|
||||
}
|
||||
|
||||
gtk_idle_add (GTK_SIGNAL_FUNC (do_launch), NULL);
|
||||
|
||||
bonobo_main ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user