r342 - in trunk/src/target/OM-2007: artwork/themes/openmoko-standard/gtk-2.0 examples/openmoko-paned-demo/src openmoko-libs/libmokoui

mickey at gta01.hmw-consulting.de mickey at gta01.hmw-consulting.de
Thu Dec 7 19:11:44 CET 2006


Author: mickey
Date: 2006-12-07 18:11:43 +0000 (Thu, 07 Dec 2006)
New Revision: 342

Added:
   trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/mokodialogwindow
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-dialog-window.c
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-dialog-window.h
Modified:
   trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc
   trunk/src/target/OM-2007/examples/openmoko-paned-demo/src/demo-main.c
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/Makefile.am
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/libmokoui.pro
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-window.c
Log:
mokoui: first shot at MokoDialogWindow, which resembles a full screen modal dialog using the OpenMoko common look and feel


Modified: trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc
===================================================================
--- trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc	2006-12-07 17:14:17 UTC (rev 341)
+++ trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc	2006-12-07 18:11:43 UTC (rev 342)
@@ -102,6 +102,7 @@
 include "gtkcheckbutton"
 
 include "mokodetailswindow"
+include "mokodialogwindow"
 include "mokofingerbutton"
 include "mokofingertoolbox"
 include "mokofingerwheel"

Added: trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/mokodialogwindow
===================================================================
--- trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/mokodialogwindow	2006-12-07 17:14:17 UTC (rev 341)
+++ trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/mokodialogwindow	2006-12-07 18:11:43 UTC (rev 342)
@@ -0,0 +1,13 @@
+style "mokodialogwindow-title-labelbox"
+{
+    bg_pixmap[NORMAL] = "<none>"
+    bg[NORMAL] = "#000000"
+}
+widget "*.mokodialogwindow-title-labelbox" style "mokodialogwindow-title-labelbox"
+
+style "mokodialogwindow-title-label"
+{
+    font_name = "Vera Sans 14"
+    fg[NORMAL] = "#cccccc"
+}
+widget "*.mokodialogwindow-title-label" style "mokodialogwindow-title-label"

Modified: trunk/src/target/OM-2007/examples/openmoko-paned-demo/src/demo-main.c
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-paned-demo/src/demo-main.c	2006-12-07 17:14:17 UTC (rev 341)
+++ trunk/src/target/OM-2007/examples/openmoko-paned-demo/src/demo-main.c	2006-12-07 18:11:43 UTC (rev 342)
@@ -19,6 +19,7 @@
 
 #include <libmokoui/moko-application.h>
 #include <libmokoui/moko-details-window.h>
+#include <libmokoui/moko-dialog-window.h>
 #include <libmokoui/moko-paned-window.h>
 #include <libmokoui/moko-tool-box.h>
 #include <libmokoui/moko-navigation-list.h>
@@ -135,6 +136,11 @@
 void cb_button2_clicked(GtkButton *button, gpointer user_data)
 {
     g_debug( "openmoko-paned-demo: button2 clicked" );
+    MokoDialogWindow* dialog = moko_dialog_window_new();
+    moko_dialog_window_set_title( dialog, "Example Full Screen Dialog Window" );
+    g_debug( "--> dialog main loop" );
+    gtk_widget_show_all( GTK_WIDGET(dialog) );
+    g_debug( "<-- dialog returns" );
 }
 
 void cb_button3_clicked(GtkButton *button, gpointer user_data)

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/Makefile.am	2006-12-07 17:14:17 UTC (rev 341)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/Makefile.am	2006-12-07 18:11:43 UTC (rev 342)
@@ -2,6 +2,7 @@
     moko-alignment.h \
     moko-application.h \
     moko-details-window.h \
+    moko-dialog-window.h \
     moko-finger-tool-box.h \
     moko-finger-wheel.h \
     moko-finger-window.h \
@@ -19,6 +20,7 @@
     moko-alignment.c \
     moko-application.c \
     moko-details-window.c \
+    moko-dialog-window.c \
     moko-finger-tool-box.c \
     moko-finger-wheel.c \
     moko-finger-window.c \

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/libmokoui.pro
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/libmokoui.pro	2006-12-07 17:14:17 UTC (rev 341)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/libmokoui.pro	2006-12-07 18:11:43 UTC (rev 342)
@@ -6,6 +6,7 @@
     moko-alignment.h \
     moko-application.h \
     moko-details-window.h \
+    moko-dialog-window.h \
     moko-finger-tool-box.h \
     moko-finger-wheel.h \
     moko-finger-window.h \
@@ -23,6 +24,7 @@
     moko-alignment.c \
     moko-application.c \
     moko-details-window.c \
+    moko-dialog-window.c \
     moko-finger-tool-box.c \
     moko-finger-wheel.c \
     moko-finger-window.c \

Added: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-dialog-window.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-dialog-window.c	2006-12-07 17:14:17 UTC (rev 341)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-dialog-window.c	2006-12-07 18:11:43 UTC (rev 342)
@@ -0,0 +1,112 @@
+/*  moko-dialog-window.c
+ *
+ *  Authored By Michael 'Mickey' Lauer <mlauer at vanille-media.de>
+ *
+ *  Copyright (C) 2006 Vanille-Media
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser Public License as published by
+ *  the Free Software Foundation; version 2.1 of the license.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser Public License for more details.
+ *
+ *  Current Version: $Rev$ ($Date: 2006/12/06 23:15:19 $) [$Author: mickey $]
+ */
+
+#include "moko-dialog-window.h"
+
+#include <gtk/gtkeventbox.h>
+#include <gtk/gtklabel.h>
+#include <gtk/gtkvbox.h>
+
+#undef DEBUG_THIS_FILE
+#ifdef DEBUG_THIS_FILE
+#define moko_debug(fmt,...) g_debug(fmt,##__VA_ARGS__)
+#else
+#define moko_debug(fmt,...)
+#endif
+
+G_DEFINE_TYPE (MokoDialogWindow, moko_dialog_window, MOKO_TYPE_WINDOW)
+
+#define MOKO_DIALOG_WINDOW_GET_PRIVATE(o)   (G_TYPE_INSTANCE_GET_PRIVATE ((o), MOKO_TYPE_DIALOG_WINDOW, MokoDialogWindowPrivate))
+
+typedef struct _MokoDialogWindowPrivate MokoDialogWindowPrivate;
+
+struct _MokoDialogWindowPrivate
+{
+    GtkVBox* vbox;
+    GtkEventBox* eventbox;
+    GtkLabel* label;
+};
+
+static void
+moko_dialog_window_dispose(GObject* object)
+{
+    if (G_OBJECT_CLASS (moko_dialog_window_parent_class)->dispose)
+        G_OBJECT_CLASS (moko_dialog_window_parent_class)->dispose (object);
+}
+
+static void
+moko_dialog_window_finalize(GObject* object)
+{
+    G_OBJECT_CLASS (moko_dialog_window_parent_class)->finalize (object);
+}
+
+moko_dialog_window_class_init(MokoDialogWindowClass* klass)
+{
+    GObjectClass* object_class = G_OBJECT_CLASS(klass);
+
+    g_type_class_add_private (klass, sizeof(MokoDialogWindowPrivate));
+
+    object_class->dispose = moko_dialog_window_dispose;
+    object_class->finalize = moko_dialog_window_finalize;
+}
+
+MokoDialogWindow*
+moko_dialog_window_new(void)
+{
+    return g_object_new(MOKO_TYPE_DIALOG_WINDOW, NULL);
+}
+
+static void
+moko_dialog_window_init(MokoDialogWindow* self)
+{
+    moko_debug( "moko_dialog_window_init" );
+    MokoWindow* parent = moko_application_get_main_window( moko_application_get_instance() );
+    if ( parent )
+    {
+        gtk_window_set_transient_for( GTK_WINDOW(self), parent );
+        gtk_window_set_modal( GTK_WINDOW(self), TRUE );
+        gtk_window_set_destroy_with_parent( GTK_WINDOW(self), TRUE );
+    }
+}
+
+void moko_dialog_window_set_title(MokoDialogWindow* self, const gchar* title)
+{
+    moko_debug( "moko_dialog_window_set_title" );
+    MokoDialogWindowPrivate* priv = MOKO_DIALOG_WINDOW_GET_PRIVATE(self);
+    if ( !priv->label )
+    {
+        priv->label = gtk_label_new( title );
+        gtk_widget_set_name( GTK_WIDGET(priv->label), "mokodialogwindow-title-label" );
+        priv->eventbox = gtk_event_box_new();
+        gtk_container_add( GTK_CONTAINER(priv->eventbox), GTK_WIDGET(priv->label) );
+        gtk_widget_set_name( GTK_WIDGET(priv->eventbox), "mokodialogwindow-title-labelbox" );
+        //FIXME get from theme
+        gtk_misc_set_padding( GTK_MISC(priv->label), 0, 6 );
+    }
+    else
+    {
+        gtk_label_set_text( priv->label, title );
+        gtk_window_set_title( GTK_WINDOW(self), title );
+    }
+    if ( !priv->vbox )
+    {
+        priv->vbox = gtk_vbox_new( FALSE, 0 );
+        gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->eventbox), FALSE, FALSE, 0 );
+        gtk_container_add( GTK_CONTAINER(self), GTK_WIDGET(priv->vbox) );
+    }
+}


Property changes on: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-dialog-window.c
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-dialog-window.h
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-dialog-window.h	2006-12-07 17:14:17 UTC (rev 341)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-dialog-window.h	2006-12-07 18:11:43 UTC (rev 342)
@@ -0,0 +1,51 @@
+/*  moko-dialog-window.h
+ *
+ *  Authored By Michael 'Mickey' Lauer <mlauer at vanille-media.de>
+ *
+ *  Copyright (C) 2006 Vanille-Media
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser Public License as published by
+ *  the Free Software Foundation; version 2.1 of the license.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser Public License for more details.
+ *
+ *  Current Version: $Rev$ ($Date: 2006/12/06 23:15:19 $) [$Author: mickey $]
+ */
+
+#ifndef _MOKO_DIALOG_WINDOW_H_
+#define _MOKO_DIALOG_WINDOW_H_
+
+#include "moko-window.h"
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define MOKO_TYPE_DIALOG_WINDOW moko_dialog_window_get_type()
+#define MOKO_DIALOG_WINDOW(obj)   (G_TYPE_CHECK_INSTANCE_CAST ((obj),   MOKO_TYPE_DIALOG_WINDOW, MokoDialogWindow))
+#define MOKO_DIALOG_WINDOW_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST ((klass),   MOKO_TYPE_DIALOG_WINDOW, MokoDialogWindowClass))
+#define MOKO_IS_DIALOG_WINDOW(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj),   MOKO_TYPE_DIALOG_WINDOW))
+#define MOKO_IS_DIALOG_WINDOW_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass),   MOKO_TYPE_DIALOG_WINDOW))
+#define MOKO_DIALOG_WINDOW_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj),   MOKO_TYPE_DIALOG_WINDOW, MokoDialogWindowClass))
+
+typedef struct {
+    MokoWindow parent;
+} MokoDialogWindow;
+
+typedef struct {
+    MokoWindowClass parent_class;
+} MokoDialogWindowClass;
+
+GType moko_dialog_window_get_type();
+MokoDialogWindow* moko_dialog_window_new();
+
+void moko_dialog_window_set_title(MokoDialogWindow* self, const gchar* title);
+
+G_END_DECLS
+
+#endif // _MOKO_DIALOG_WINDOW_H_
+


Property changes on: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-dialog-window.h
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-window.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-window.c	2006-12-07 17:14:17 UTC (rev 341)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-window.c	2006-12-07 18:11:43 UTC (rev 342)
@@ -57,8 +57,10 @@
     moko_debug( "moko_window_init" );
     gtk_widget_set_size_request( GTK_WIDGET(self), 480, 640 ); //FIXME get from style
     MokoApplication* app = moko_application_get_instance();
-    g_assert( !moko_application_get_main_window( app ) ); // fail if someone creates more than one MokoWindow per application
-    moko_application_set_main_window( app, self );
+    if ( !moko_application_get_main_window( app ) )
+        moko_application_set_main_window( app, self );
+    else
+        g_warning( "moko_window_init: there is already a main window" );
 }
 
 GtkWidget* moko_window_new() /* Construction */





More information about the commitlog mailing list