X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-editor-window.c;h=75be6a91646ae171d9f92a88e21e92542fe9ab18;hp=72ef31bf04d049315ef570c4f7042dc3b6370113;hb=fe08542c7e5346dc7e08fa67705bccce1c0a9229;hpb=8739d9d9ffbf707c1af0df86cd61cfed04ff07a5 diff --git a/src/modest-editor-window.c b/src/modest-editor-window.c index 72ef31b..75be6a9 100644 --- a/src/modest-editor-window.c +++ b/src/modest-editor-window.c @@ -1,6 +1,34 @@ -/* modest-editor-window.c */ +/* Copyright (c) 2006, Nokia Corporation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Nokia Corporation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + -/* insert (c)/licensing information) */ +/* modest-editor-window.c */ #include "modest-ui.h" #include "modest-editor-window.h" @@ -19,15 +47,18 @@ enum { typedef struct _ModestEditorWindowPrivate ModestEditorWindowPrivate; struct _ModestEditorWindowPrivate { + GtkWidget *window; gpointer user_data; gboolean modified; GList *attachments; + gchar *identity; + gchar *transport; }; #define MODEST_EDITOR_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \ MODEST_TYPE_EDITOR_WINDOW, \ ModestEditorWindowPrivate)) /* globals */ -static GtkWindowClass *parent_class = NULL; +static GObjectClass *parent_class = NULL; /* uncomment the following if you have defined any signals */ /* static guint signals[LAST_SIGNAL] = {0}; */ @@ -48,7 +79,7 @@ modest_editor_window_get_type (void) 1, /* n_preallocs */ (GInstanceInitFunc) modest_editor_window_init, }; - my_type = g_type_register_static (GTK_TYPE_WINDOW, + my_type = g_type_register_static (G_TYPE_OBJECT, "ModestEditorWindow", &my_info, 0); } @@ -66,12 +97,6 @@ modest_editor_window_class_init (ModestEditorWindowClass *klass) g_type_class_add_private (gobject_class, sizeof(ModestEditorWindowPrivate)); - /* signal definitions go here, e.g.: */ -/* signals[MY_SIGNAL_1] = */ -/* g_signal_new ("my_signal_1",....); */ -/* signals[MY_SIGNAL_2] = */ -/* g_signal_new ("my_signal_2",....); */ -/* etc. */ } static void @@ -82,6 +107,9 @@ modest_editor_window_init (ModestEditorWindow *obj) priv->user_data = NULL; priv->modified = FALSE; priv->attachments = NULL; + priv->identity = NULL; + priv->transport = NULL; + obj->window = NULL; } static void @@ -94,15 +122,21 @@ modest_editor_window_finalize (GObject *obj) if (priv->user_data) g_free(priv->user_data); + modest_editor_window_set_attachments(MODEST_EDITOR_WINDOW(obj), NULL); + g_free(priv->identity); + g_free(priv->transport); + g_object_unref (MODEST_EDITOR_WINDOW(obj)->window); + MODEST_EDITOR_WINDOW(obj)->window = NULL; + G_OBJECT_CLASS(parent_class)->finalize (obj); } -GtkWidget* +GObject* modest_editor_window_new (ModestUI *ui) { GObject *self; ModestEditorWindowPrivate *priv; - GtkWidget *w; + GObject *edit_win; gpointer data; self = G_OBJECT(g_object_new(MODEST_TYPE_EDITOR_WINDOW, NULL)); @@ -111,18 +145,17 @@ modest_editor_window_new (ModestUI *ui) /* for now create a local test-window */ data = NULL; - w = GTK_WIDGET(modest_ui_new_editor_window(ui, &data)); - // g_message("new data = %p", data); - if (!w) + edit_win = modest_ui_new_editor_window(ui, &data); + + if (!edit_win) return NULL; if (!data) g_message("editor window user data is emtpy"); - gtk_container_add(GTK_CONTAINER(self), w); + MODEST_EDITOR_WINDOW(self)->window = edit_win; priv->user_data = data; - // g_message("new priv->data = %p", priv->user_data); - return GTK_WIDGET(self); + return self; } /* @@ -233,7 +266,7 @@ gboolean modest_editor_window_set_body(ModestEditorWindow *edit_win, const gchar } -gboolean modest_editor_window_attach_file(ModestEditorWindow *edit_win, const gchar *filename) +gboolean modest_editor_window_attach_file(ModestEditorWindow *edit_win, ModestTnyAttachment *attachment) { ModestEditorWindowPrivate *priv; @@ -243,20 +276,24 @@ gboolean modest_editor_window_attach_file(ModestEditorWindow *edit_win, const gc priv->attachments = g_list_append( priv->attachments, - g_strdup(filename)); + attachment); return modest_ui_editor_window_update_attachments(priv->user_data); } -GList * modest_editor_window_set_attachments(ModestEditorWindow *edit_win, GList* attachments) +GList * modest_editor_window_set_attachments(ModestEditorWindow *edit_win, const GList* attachments) { ModestEditorWindowPrivate *priv; + GList *pos; g_return_val_if_fail(edit_win, NULL); priv = MODEST_EDITOR_WINDOW_GET_PRIVATE(edit_win); - priv->attachments = attachments; + modest_tny_attachment_free_list(priv->attachments); + priv->attachments = g_list_copy((GList *)attachments); + for (pos = priv->attachments ; pos ; pos = pos->next ) + g_object_ref(pos->data); return priv->attachments; } @@ -268,4 +305,58 @@ GList * modest_editor_window_get_attachments(ModestEditorWindow *edit_win) priv = MODEST_EDITOR_WINDOW_GET_PRIVATE(edit_win); return priv->attachments; +} + + +void +modest_editor_window_set_identity(ModestEditorWindow *edit_win, const gchar *identity) +{ + ModestEditorWindowPrivate *priv; + + g_return_if_fail(edit_win); + + priv = MODEST_EDITOR_WINDOW_GET_PRIVATE(edit_win); + + g_free(priv->identity); + priv->identity = g_strdup(identity); +} + + +const gchar * +modest_editor_window_get_identity(ModestEditorWindow *edit_win) +{ + ModestEditorWindowPrivate *priv; + + g_return_val_if_fail(edit_win, NULL); + + priv = MODEST_EDITOR_WINDOW_GET_PRIVATE(edit_win); + + return priv->identity; } + + +void +modest_editor_window_set_transport(ModestEditorWindow *edit_win, const gchar *transport) +{ + ModestEditorWindowPrivate *priv; + + g_return_if_fail(edit_win); + + priv = MODEST_EDITOR_WINDOW_GET_PRIVATE(edit_win); + + g_free(priv->transport); + priv->transport = g_strdup(transport); +} + + +const gchar * +modest_editor_window_get_transport(ModestEditorWindow *edit_win) +{ + ModestEditorWindowPrivate *priv; + + g_return_val_if_fail(edit_win, NULL); + + priv = MODEST_EDITOR_WINDOW_GET_PRIVATE(edit_win); + + return priv->transport; +}