* modest_ui_new now returns ModestUI* instead of GObject
[modest] / src / modest-viewer-window.c
index 9e16e20..b6fa336 100644 (file)
@@ -1,10 +1,37 @@
-/* modest-viewer-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) */
 
 #include "modest-ui.h"
+#include "modest-tny-msg-view.h"
 #include "modest-viewer-window.h"
-/* include other impl specific header files */
+
 
 /* 'private'/'protected' functions */
 static void                      modest_viewer_window_class_init    (ModestViewerWindowClass *klass);
@@ -18,6 +45,7 @@ enum {
 
 typedef struct _ModestViewerWindowPrivate ModestViewerWindowPrivate;
 struct _ModestViewerWindowPrivate {
+       ModestTnyMsgView *msg_view;
        gpointer user_data;
 };
 #define MODEST_VIEWER_WINDOW_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
@@ -26,8 +54,6 @@ struct _ModestViewerWindowPrivate {
 /* globals */
 static GtkWindowClass *parent_class = NULL;
 
-/* uncomment the following if you have defined any signals */
-/* static guint signals[LAST_SIGNAL] = {0}; */
 
 GType
 modest_viewer_window_get_type (void)
@@ -78,6 +104,7 @@ modest_viewer_window_init (ModestViewerWindow *obj)
        ModestViewerWindowPrivate *priv = MODEST_VIEWER_WINDOW_GET_PRIVATE(obj);
 
        priv->user_data = NULL;
+       priv->msg_view = NULL;
 }
 
 
@@ -96,18 +123,21 @@ modest_viewer_window_finalize (GObject *obj)
 
 
 GtkWidget*
-modest_viewer_window_new (ModestUI *ui)
+modest_viewer_window_new (ModestUI *ui, TnyMsgIface *msg)
 {
        GObject *self;
        ModestViewerWindowPrivate *priv;
        GtkWidget *w;
        gpointer data;
+       GtkWidget *msg_view;
 
        self = G_OBJECT(g_object_new(MODEST_TYPE_VIEWER_WINDOW, NULL));
        priv = MODEST_VIEWER_WINDOW_GET_PRIVATE(self);
 
+       msg_view = modest_tny_msg_view_new(msg);
+
        data = NULL;
-       w = GTK_WIDGET(modest_ui_new_viewer_window(ui, &data));
+       w = GTK_WIDGET(modest_ui_new_viewer_window(ui, msg_view, msg, &data));
        if (!w)
                return NULL;
        if (!data)
@@ -115,6 +145,7 @@ modest_viewer_window_new (ModestUI *ui)
 
        gtk_container_add(GTK_CONTAINER(self), w);
        priv->user_data = data;
+       priv->msg_view = MODEST_TNY_MSG_VIEW(msg_view);
 
        return GTK_WIDGET(self);
 }
@@ -124,16 +155,27 @@ modest_viewer_window_new (ModestUI *ui)
  * return user defined data from a ModestViewerWindow instance
  * like e.g. a refernce to a GladeXML*
  */
-gpointer modest_viewer_window_get_data(ModestViewerWindow *viewer_win)
+gpointer
+modest_viewer_window_get_data(ModestViewerWindow *viewer_win)
 {
        ModestViewerWindowPrivate *priv;
 
-       if (!viewer_win) {
-               return NULL;
-       }
-       priv = MODEST_VIEWER_WINDOW_GET_PRIVATE(viewer_win);
+       g_return_val_if_fail (viewer_win, NULL);
 
-       // g_message("get priv->data = %p", priv->user_data);
+       priv = MODEST_VIEWER_WINDOW_GET_PRIVATE(viewer_win);
 
        return priv->user_data;
 }
+
+
+ModestTnyMsgView*
+modest_viewer_window_get_tiny_msg_view(ModestViewerWindow *viewer_win)
+{
+       ModestViewerWindowPrivate *priv;
+
+       g_return_val_if_fail (viewer_win, NULL);
+
+       priv = MODEST_VIEWER_WINDOW_GET_PRIVATE(viewer_win);
+
+       return priv->msg_view;
+}