This needs to return a const char * and not a char *, because we're not

2000-09-01  Jeffrey Stedfast  <fejj@helixcode.com>

	* e-msg-composer.c (e_msg_composer_get_sig_file): This needs to
	return a const char * and not a char *, because we're not actually
	allocating memory here.
	(create_menubar_file): Changed "Send" to "Send Now" and added
	"Send Later"
	(menu_file_send_later_cb): New callback that emits the POSTPONE
	signal (equivalent to "Send Later"

svn path=/trunk/; revision=5177
This commit is contained in:
Jeffrey Stedfast
2000-09-01 23:53:33 +00:00
committed by Jeffrey Stedfast
parent 7edc1cf9c0
commit a029bb7982
4 changed files with 86 additions and 66 deletions

View File

@ -3,6 +3,10 @@
* e-msg-composer.c (e_msg_composer_get_sig_file): This needs to
return a const char * and not a char *, because we're not actually
allocating memory here.
(create_menubar_file): Changed "Send" to "Send Now" and added
"Send Later"
(menu_file_send_later_cb): New callback that emits the POSTPONE
signal (equivalent to "Send Later"
2000-08-28 Jeffrey Stedfast <fejj@helixcode.com>

View File

@ -682,10 +682,17 @@ menu_file_send_cb (BonoboUIHandler *uih,
void *data,
const char *path)
{
/* FIXME: We should really write this to Outbox in the future? */
gtk_signal_emit (GTK_OBJECT (data), signals[SEND]);
}
static void
menu_file_send_later_cb (BonoboUIHandler *uih,
void *data,
const char *path)
{
gtk_signal_emit (GTK_OBJECT (data), signals[POSTPONE]);
}
static void
menu_file_close_cb (BonoboUIHandler *uih,
void *data,
@ -916,7 +923,7 @@ create_menubar_file (EMsgComposer *composer,
NULL, -1,
BONOBO_UI_HANDLER_PIXMAP_NONE, NULL,
0, 0);
bonobo_ui_handler_menu_new_item (uih, "/File/Open",
_("_Open..."),
_("Load a previously saved message"),
@ -925,7 +932,7 @@ create_menubar_file (EMsgComposer *composer,
GNOME_STOCK_MENU_OPEN,
0, 0,
menu_file_open_cb, composer);
bonobo_ui_handler_menu_new_item (uih, "/File/Save",
_("_Save..."),
_("Save message"),
@ -934,7 +941,7 @@ create_menubar_file (EMsgComposer *composer,
GNOME_STOCK_MENU_SAVE,
0, 0,
menu_file_save_cb, composer);
bonobo_ui_handler_menu_new_item (uih, "/File/Save as",
_("_Save as..."),
_("Save message with a different name"),
@ -943,7 +950,7 @@ create_menubar_file (EMsgComposer *composer,
GNOME_STOCK_MENU_SAVE_AS,
0, 0,
menu_file_save_as_cb, composer);
bonobo_ui_handler_menu_new_item (uih, "/File/Save in folder",
_("Save in _folder..."),
_("Save the message in a specified folder"),
@ -951,9 +958,9 @@ create_menubar_file (EMsgComposer *composer,
BONOBO_UI_HANDLER_PIXMAP_NONE, NULL,
0, 0,
NULL, composer);
bonobo_ui_handler_menu_new_separator (uih, "/File/Separator1", -1);
bonobo_ui_handler_menu_new_item (uih, "/File/Insert text file",
_("_Insert text file... (FIXME)"),
_("Insert a file as text into the message"),
@ -961,20 +968,29 @@ create_menubar_file (EMsgComposer *composer,
BONOBO_UI_HANDLER_PIXMAP_NONE, NULL,
0, 0,
menu_file_insert_file_cb, composer);
bonobo_ui_handler_menu_new_separator (uih, "/File/Separator2", -1);
bonobo_ui_handler_menu_new_item (uih, "/File/Send",
_("_Send"),
_("Send the message"),
bonobo_ui_handler_menu_new_item (uih, "/File/Send Now",
_("Send _Now"),
_("Send the message now"),
-1,
BONOBO_UI_HANDLER_PIXMAP_STOCK,
GNOME_STOCK_MENU_MAIL_SND,
0, 0,
menu_file_send_cb, composer);
bonobo_ui_handler_menu_new_item (uih, "/File/Send Later",
_("Send _Later"),
_("Send the message later"),
-1,
BONOBO_UI_HANDLER_PIXMAP_STOCK,
GNOME_STOCK_MENU_MAIL_SND,
0, 0,
menu_file_send_later_cb, composer);
bonobo_ui_handler_menu_new_separator (uih, "/File/Separator3", -1);
bonobo_ui_handler_menu_new_item (uih, "/File/Close",
_("_Close..."),
_("Quit the message composer"),
@ -1005,14 +1021,14 @@ create_menubar_format (EMsgComposer *composer,
NULL, -1,
BONOBO_UI_HANDLER_PIXMAP_NONE, NULL,
0, 0);
bonobo_ui_handler_menu_new_toggleitem (uih, "/Format/HTML",
_("HTML"),
_("Send the mail in HTML format"),
-1,
0, 0,
menu_format_html_cb, composer);
bonobo_ui_handler_menu_set_toggle_state (uih, "/Format/HTML", composer->send_html);
}
@ -1025,7 +1041,7 @@ create_menubar_view (EMsgComposer *composer,
NULL, -1,
BONOBO_UI_HANDLER_PIXMAP_NONE, NULL,
0, 0);
bonobo_ui_handler_menu_new_toggleitem (uih, "/View/Show attachments",
_("Show _attachments"),
_("Show/hide attachments"),
@ -1038,10 +1054,10 @@ static void
create_menubar (EMsgComposer *composer)
{
BonoboUIHandler *uih;
uih = composer->uih;
bonobo_ui_handler_create_menubar (uih);
create_menubar_file (composer, uih);
create_menubar_edit (composer, uih);
create_menubar_format (composer, uih);
@ -1055,10 +1071,10 @@ static void
create_toolbar (EMsgComposer *composer)
{
BonoboUIHandler *uih;
uih = composer->uih;
bonobo_ui_handler_create_toolbar (uih, "Toolbar");
bonobo_ui_handler_toolbar_new_item (uih,
"/Toolbar/Send",
_("Send"),
@ -1068,7 +1084,7 @@ create_toolbar (EMsgComposer *composer)
GNOME_STOCK_PIXMAP_MAIL_SND,
0, 0,
menu_file_send_cb, composer);
bonobo_ui_handler_toolbar_new_item (uih,
"/Toolbar/Attach",
_("Attach"),
@ -1090,7 +1106,7 @@ attachment_bar_changed_cb (EMsgComposerAttachmentBar *bar,
EMsgComposer *composer;
composer = E_MSG_COMPOSER (data);
if (e_msg_composer_attachment_bar_get_num_attachments (bar) > 0)
e_msg_composer_show_attachments (composer, TRUE);
else
@ -1105,22 +1121,22 @@ destroy (GtkObject *object)
{
EMsgComposer *composer;
CORBA_Environment ev;
composer = E_MSG_COMPOSER (object);
bonobo_object_unref (BONOBO_OBJECT (composer->uih));
/* FIXME? I assume the Bonobo widget will get destroyed
normally? */
if (composer->address_dialog != NULL)
gtk_widget_destroy (composer->address_dialog);
if (composer->hdrs != NULL)
gtk_widget_destroy (composer->hdrs);
if (composer->extra_hdr_names) {
int i;
for (i = 0; i < composer->extra_hdr_names->len; i++) {
g_free (composer->extra_hdr_names->pdata[i]);
g_free (composer->extra_hdr_values->pdata[i]);
@ -1128,21 +1144,21 @@ destroy (GtkObject *object)
g_ptr_array_free (composer->extra_hdr_names, TRUE);
g_ptr_array_free (composer->extra_hdr_values, TRUE);
}
CORBA_exception_init (&ev);
if (composer->persist_stream_interface != CORBA_OBJECT_NIL) {
Bonobo_Unknown_unref (composer->persist_stream_interface, &ev);
CORBA_Object_release (composer->persist_stream_interface, &ev);
}
if (composer->persist_file_interface != CORBA_OBJECT_NIL) {
Bonobo_Unknown_unref (composer->persist_file_interface, &ev);
CORBA_Object_release (composer->persist_file_interface, &ev);
}
CORBA_exception_free (&ev);
if (GTK_OBJECT_CLASS (parent_class)->destroy != NULL)
(* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
}
@ -1155,7 +1171,7 @@ delete_event (GtkWidget *widget,
GdkEventAny *event)
{
do_exit (E_MSG_COMPOSER (widget));
return TRUE;
}
@ -1165,16 +1181,16 @@ class_init (EMsgComposerClass *klass)
{
GtkObjectClass *object_class;
GtkWidgetClass *widget_class;
object_class = GTK_OBJECT_CLASS (klass);
widget_class = GTK_WIDGET_CLASS (klass);
object_class->destroy = destroy;
widget_class->delete_event = delete_event;
parent_class = gtk_type_class (gnome_app_get_type ());
signals[SEND] =
gtk_signal_new ("send",
GTK_RUN_LAST,
@ -1182,7 +1198,7 @@ class_init (EMsgComposerClass *klass)
GTK_SIGNAL_OFFSET (EMsgComposerClass, send),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
signals[POSTPONE] =
gtk_signal_new ("postpone",
GTK_RUN_LAST,
@ -1190,7 +1206,7 @@ class_init (EMsgComposerClass *klass)
GTK_SIGNAL_OFFSET (EMsgComposerClass, postpone),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
}
@ -1198,21 +1214,21 @@ static void
init (EMsgComposer *composer)
{
composer->uih = NULL;
composer->hdrs = NULL;
composer->extra_hdr_names = g_ptr_array_new ();
composer->extra_hdr_values = g_ptr_array_new ();
composer->editor = NULL;
composer->address_dialog = NULL;
composer->attachment_bar = NULL;
composer->attachment_scroll_frame = NULL;
composer->persist_file_interface = CORBA_OBJECT_NIL;
composer->persist_stream_interface = CORBA_OBJECT_NIL;
composer->attachment_bar_visible = FALSE;
composer->send_html = FALSE;
}
@ -1222,7 +1238,7 @@ GtkType
e_msg_composer_get_type (void)
{
static GtkType type = 0;
if (type == 0) {
static const GtkTypeInfo info = {
"EMsgComposer",
@ -1234,10 +1250,10 @@ e_msg_composer_get_type (void)
/* reserved_2 */ NULL,
(GtkClassInitFunc) NULL,
};
type = gtk_type_unique (gnome_app_get_type (), &info);
}
return type;
}

View File

@ -48,31 +48,31 @@ typedef struct _EMsgComposerClass EMsgComposerClass;
struct _EMsgComposer {
GnomeApp parent;
BonoboUIHandler *uih;
GtkWidget *hdrs;
GPtrArray *extra_hdr_names, *extra_hdr_values;
GtkWidget *editor;
GtkWidget *attachment_bar;
GtkWidget *attachment_scroll_frame;
GtkWidget *address_dialog;
Bonobo_PersistFile persist_file_interface;
Bonobo_PersistStream persist_stream_interface;
char *sig_file;
gboolean attachment_bar_visible : 1;
gboolean send_html : 1;
};
struct _EMsgComposerClass {
GnomeAppClass parent_class;
void (* send) (EMsgComposer *composer);
void (* postpone) (EMsgComposer *composer);
};

View File

@ -19,17 +19,17 @@ send_cb (EMsgComposer *composer,
CamelMimeMessage *message;
CamelStream *stream;
gint stdout_dup;
message = e_msg_composer_get_message (composer);
stdout_dup = dup (1);
stream = camel_stream_fs_new_with_fd (stdout_dup);
camel_data_wrapper_write_to_stream (CAMEL_DATA_WRAPPER (message),
stream);
camel_stream_close (stream);
camel_object_unref (CAMEL_OBJECT (message));
#if 0
gtk_widget_destroy (GTK_WIDGET (composer));
gtk_main_quit ();
@ -40,12 +40,12 @@ static guint
create_composer (void)
{
GtkWidget *composer;
composer = e_msg_composer_new ();
gtk_widget_show (composer);
gtk_signal_connect (GTK_OBJECT (composer), "send", GTK_SIGNAL_FUNC (send_cb), NULL);
return FALSE;
}