modest-tny-store-actions.h\
modest-editor-window.c\
modest-editor-window.h\
+ modest-viewer-window.c\
+ modest-viewer-window.h\
modest-ui.h
modest_LDADD = \
} else {
g_message("not closing window");
}
+ } else {
+ gtk_widget_hide (GTK_WIDGET(edit_win));
+ modest_window_mgr_unregister(priv->modest_window_mgr, G_OBJECT(edit_win));
+ gtk_widget_destroy(GTK_WIDGET(edit_win));
+ g_message("closing window");
}
}
*modest_ui_new_editor_window (ModestUI *modest_ui, gpointer *user_data)
{
GtkWidget *top_container;
-
GladeXML *glade_xml;
EditWinData *win_data;
win_data = g_malloc(sizeof(EditWinData));
win_data->modest_ui = modest_ui;
win_data->glade_xml = glade_xml;
+ win_data->attachments = NULL;
+
*user_data = win_data;
top_container = glade_xml_get_widget(glade_xml, "new_mail_top_container");
return NULL;
}
- win_data->attachments = NULL; /* redundant */
-
return GTK_CONTAINER(top_container);
}
gtk_window_set_title (GTK_WINDOW(edit_win), subject_header);
else
gtk_window_set_title (GTK_WINDOW(edit_win), _("Untitled"));
+
modest_window_mgr_register(priv->modest_window_mgr, G_OBJECT(edit_win), MODEST_EDIT_WINDOW, 0);
modest_editor_window_set_to_header(MODEST_EDITOR_WINDOW(edit_win), to_header);
#include "../modest-text-utils.h"
#include "../modest-tny-msg-actions.h"
-#include "../modest-editor-window.h"
+#include "../modest-viewer-window.h"
#include "modest-ui-glade.h"
#include "modest-ui-wizard.h"
+
+
+typedef struct {
+ ModestUI *modest_ui;
+ ModestViewerWindow *viewer_win;
+ GladeXML *glade_xml;
+} ViewerWinData;
+
+
+GtkContainer
+*modest_ui_new_viewer_window (ModestUI *modest_ui, gpointer *user_data)
+{
+ GtkWidget *top_container;
+ GladeXML *glade_xml;
+ ViewerWinData *win_data;
+
+ glade_xml = glade_xml_new(MODEST_GLADE, "viewer_top_container", NULL);
+ if (!glade_xml)
+ return NULL;
+
+ win_data = g_malloc(sizeof(ViewerWinData));
+ win_data->modest_ui = modest_ui;
+ win_data->glade_xml = glade_xml;
+
+ *user_data = win_data;
+
+ top_container = glade_xml_get_widget(glade_xml, "viewer_top_container");
+ if (!top_container) {
+ g_object_unref(G_OBJECT(glade_xml));
+ return NULL;
+ }
+
+ return GTK_CONTAINER(top_container);
+}
+
*
* Gets the state of the modified-flag of this instance. This flag can be used to store
* information whether the contents of the editor window was modified by the
- * user or not. If it was modified (see also modest_editor_window_get_modified())
+ * user or not. If it was modified (see also modest_editor_window_set_modified())
* a dialog can be presented to ask the user for confirmation.
*
* Returns: gboolean the new state of the modified flag
gboolean modest_ui_editor_window_set_body(const gchar *body, gpointer window_data);
gboolean modest_ui_editor_window_update_attachments(gpointer window_data);
+GtkContainer *modest_ui_new_viewer_window (ModestUI *modest_ui, gpointer *user_data);
+
G_END_DECLS
#endif /* __MODEST_UI_H__ */
--- /dev/null
+/* modest-viewer-window.c */
+
+/* insert (c)/licensing information) */
+
+#include "modest-ui.h"
+#include "modest-viewer-window.h"
+/* include other impl specific header files */
+
+/* 'private'/'protected' functions */
+static void modest_viewer_window_class_init (ModestViewerWindowClass *klass);
+static void modest_viewer_window_init (ModestViewerWindow *obj);
+static void modest_viewer_window_finalize (GObject *obj);
+
+/* list my signals */
+enum {
+ LAST_SIGNAL
+};
+
+typedef struct _ModestViewerWindowPrivate ModestViewerWindowPrivate;
+struct _ModestViewerWindowPrivate {
+ gpointer user_data;
+};
+#define MODEST_VIEWER_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
+ MODEST_TYPE_VIEWER_WINDOW, \
+ 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)
+{
+ static GType my_type = 0;
+ if (!my_type) {
+ static const GTypeInfo my_info = {
+ sizeof(ModestViewerWindowClass),
+ NULL, /* base init */
+ NULL, /* base finalize */
+ (GClassInitFunc) modest_viewer_window_class_init,
+ NULL, /* class finalize */
+ NULL, /* class data */
+ sizeof(ModestViewerWindow),
+ 1, /* n_preallocs */
+ (GInstanceInitFunc) modest_viewer_window_init,
+ };
+ my_type = g_type_register_static (GTK_TYPE_WINDOW,
+ "ModestViewerWindow",
+ &my_info, 0);
+ }
+ return my_type;
+}
+
+static void
+modest_viewer_window_class_init (ModestViewerWindowClass *klass)
+{
+ GObjectClass *gobject_class;
+ gobject_class = (GObjectClass*) klass;
+
+ parent_class = g_type_class_peek_parent (klass);
+ gobject_class->finalize = modest_viewer_window_finalize;
+
+ g_type_class_add_private (gobject_class, sizeof(ModestViewerWindowPrivate));
+
+ /* 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
+modest_viewer_window_init (ModestViewerWindow *obj)
+{
+ ModestViewerWindowPrivate *priv = MODEST_VIEWER_WINDOW_GET_PRIVATE(obj);
+
+ priv->user_data = NULL;
+}
+
+
+static void
+modest_viewer_window_finalize (GObject *obj)
+{
+ ModestViewerWindowPrivate *priv;
+
+ priv = MODEST_VIEWER_WINDOW_GET_PRIVATE(obj);
+
+ if (priv->user_data)
+ g_free(priv->user_data);
+
+ G_OBJECT_CLASS(parent_class)->finalize (obj);
+}
+
+
+GtkWidget*
+modest_viewer_window_new (ModestUI *ui)
+{
+ GObject *self;
+ ModestViewerWindowPrivate *priv;
+ GtkWidget *w;
+ gpointer data;
+
+ self = G_OBJECT(g_object_new(MODEST_TYPE_VIEWER_WINDOW, NULL));
+ priv = MODEST_VIEWER_WINDOW_GET_PRIVATE(self);
+
+ data = NULL;
+ w = GTK_WIDGET(modest_ui_new_viewer_window(ui, &data));
+ if (!w)
+ return NULL;
+ if (!data)
+ g_message("viewer window user data is emtpy");
+
+ gtk_container_add(GTK_CONTAINER(self), w);
+ priv->user_data = data;
+
+ return GTK_WIDGET(self);
+}
+
+
+/*
+ * 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)
+{
+ ModestViewerWindowPrivate *priv;
+
+ if (!viewer_win) {
+ return NULL;
+ }
+ priv = MODEST_VIEWER_WINDOW_GET_PRIVATE(viewer_win);
+
+ // g_message("get priv->data = %p", priv->user_data);
+
+ return priv->user_data;
+}
--- /dev/null
+/* modest-viewer-window.h */
+/* insert (c)/licensing information) */
+
+#ifndef __MODEST_VIEWER_WINDOW_H__
+#define __MODEST_VIEWER_WINDOW_H__
+
+#include <gtk/gtkwindow.h>
+/* other include files */
+
+G_BEGIN_DECLS
+
+/* convenience macros */
+#define MODEST_TYPE_VIEWER_WINDOW (modest_viewer_window_get_type())
+#define MODEST_VIEWER_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_VIEWER_WINDOW,ModestViewerWindow))
+#define MODEST_VIEWER_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_VIEWER_WINDOW,GtkWindow))
+#define MODEST_IS_VIEWER_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_VIEWER_WINDOW))
+#define MODEST_IS_VIEWER_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_VIEWER_WINDOW))
+#define MODEST_VIEWER_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_VIEWER_WINDOW,ModestViewerWindowClass))
+
+typedef struct _ModestViewerWindow ModestViewerWindow;
+typedef struct _ModestViewerWindowClass ModestViewerWindowClass;
+
+struct _ModestViewerWindow {
+ GtkWindow parent;
+ /* insert public members, if any */
+};
+
+struct _ModestViewerWindowClass {
+ GtkWindowClass parent_class;
+ /* insert signal callback declarations, eg. */
+ /* void (* my_event) (ModestViewerWindow* obj); */
+};
+
+/* member functions */
+GType modest_viewer_window_get_type (void) G_GNUC_CONST;
+
+/* typical parameter-less _new function */
+/* if this is a kind of GtkWidget, it should probably return at GtkWidget*, */
+/* otherwise probably a GObject*. */
+GtkWidget* modest_viewer_window_new (ModestUI *ui);
+
+/* fill in other public functions, eg.: */
+/* void modest_viewer_window_do_something (ModestViewerWindow *self, const gchar* param); */
+/* gboolean modest_viewer_window_has_foo (ModestViewerWindow *self, gint value); */
+
+
+G_END_DECLS
+
+#endif /* __MODEST_VIEWER_WINDOW_H__ */
+