-/* modest-editor-window.c */
-
-/* insert (c)/licensing information) */
+/* 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.
+ */
#include "modest-ui.h"
#include "modest-editor-window.h"
struct _ModestEditorWindowPrivate {
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}; */
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);
}
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
priv->user_data = NULL;
priv->modified = FALSE;
+ priv->attachments = NULL;
+ priv->identity = NULL;
+ priv->transport = NULL;
+ obj->window = NULL;
}
static void
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));
/* 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 = G_OBJECT(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 = GTK_WINDOW(edit_win);
priv->user_data = data;
- // g_message("new priv->data = %p", priv->user_data);
- return GTK_WIDGET(self);
+ return self;
}
/*
return priv->user_data;
}
+gboolean modest_editor_window_set_modified(ModestEditorWindow *edit_win, gboolean modified)
+{
+ ModestEditorWindowPrivate *priv;
+
+ if (!edit_win) {
+ return FALSE;
+ }
+ priv = MODEST_EDITOR_WINDOW_GET_PRIVATE(edit_win);
+
+ priv->modified = modified;
+
+ return priv->modified;
+}
+
gboolean modest_editor_window_get_modified(ModestEditorWindow *edit_win)
{
ModestEditorWindowPrivate *priv;
gboolean modest_editor_window_set_cc_header(ModestEditorWindow *edit_win, const gchar *cc)
{
ModestEditorWindowPrivate *priv;
-
if (!edit_win)
return FALSE;
+
priv = MODEST_EDITOR_WINDOW_GET_PRIVATE(edit_win);
return modest_ui_editor_window_set_cc_header(cc, priv->user_data);
gboolean modest_editor_window_set_bcc_header(ModestEditorWindow *edit_win, const gchar *bcc)
{
ModestEditorWindowPrivate *priv;
-
if (!edit_win)
return FALSE;
gboolean modest_editor_window_set_subject_header(ModestEditorWindow *edit_win, const gchar *subject)
{
ModestEditorWindowPrivate *priv;
-
if (!edit_win)
return FALSE;
{
ModestEditorWindowPrivate *priv;
-
if (!edit_win)
return FALSE;
priv = MODEST_EDITOR_WINDOW_GET_PRIVATE(edit_win);
return modest_ui_editor_window_set_body(body, priv->user_data);
}
+
+
+gboolean modest_editor_window_attach_file(ModestEditorWindow *edit_win,
+ ModestTnyAttachment *attachment)
+{
+ ModestEditorWindowPrivate *priv;
+
+ if (!edit_win)
+ return FALSE;
+ priv = MODEST_EDITOR_WINDOW_GET_PRIVATE(edit_win);
+
+ priv->attachments = g_list_append(priv->attachments,
+ attachment);
+
+ return modest_ui_editor_window_update_attachments(priv->user_data);
+}
+
+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);
+
+ 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;
+}
+
+GList * modest_editor_window_get_attachments(ModestEditorWindow *edit_win)
+{
+ ModestEditorWindowPrivate *priv;
+
+ g_return_val_if_fail(edit_win, NULL);
+
+ 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;
+}