r507 - in trunk/src/target/OM-2007: examples/openmoko-panel-demo examples/openmoko-panel-demo/src examples/openmoko-panel-demo-simple/src openmoko-libs/libmokoui

mickey at gta01.hmw-consulting.de mickey at gta01.hmw-consulting.de
Thu Jan 4 16:52:17 CET 2007


Author: mickey
Date: 2007-01-04 16:52:16 +0100 (Thu, 04 Jan 2007)
New Revision: 507

Added:
   trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/demo-panel-applet.c
   trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/demo-panel-applet.h
   trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/main.c
Removed:
   trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/panel.c
Modified:
   trunk/src/target/OM-2007/examples/openmoko-panel-demo-simple/src/panel.c
   trunk/src/target/OM-2007/examples/openmoko-panel-demo/openmoko-panel-demo.pro
   trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/Makefile.am
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.c
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.h
Log:
mokoui: add moko_panel_system_init(). You need to call this before using and moko_panel functions


Modified: trunk/src/target/OM-2007/examples/openmoko-panel-demo/openmoko-panel-demo.pro
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-panel-demo/openmoko-panel-demo.pro	2007-01-04 15:18:42 UTC (rev 506)
+++ trunk/src/target/OM-2007/examples/openmoko-panel-demo/openmoko-panel-demo.pro	2007-01-04 15:52:16 UTC (rev 507)
@@ -1,4 +1,5 @@
-SOURCES = src/panel.c
+HEADERS = src/demo-panel-applet.h
+SOURCES = src/demo-panel-applet.c src/main.c
 
 MOKOCONFIG = mokoui
 include ( $(OPENMOKODIR)/devel/qmake/openmoko-include.pro )

Modified: trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/Makefile.am	2007-01-04 15:18:42 UTC (rev 506)
+++ trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/Makefile.am	2007-01-04 15:52:16 UTC (rev 507)
@@ -2,7 +2,7 @@
 
 bin_PROGRAMS = openmoko-panel-demo
 
-openmoko_panel_demo_SOURCES = panel.c
+openmoko_panel_demo_SOURCES = demo-panel-applet.c main.c
 
 openmoko_panel_demo_LDADD = @OPENMOKO_LIBS@
 

Added: trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/demo-panel-applet.c
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/demo-panel-applet.c	2007-01-04 15:18:42 UTC (rev 506)
+++ trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/demo-panel-applet.c	2007-01-04 15:52:16 UTC (rev 507)
@@ -0,0 +1,84 @@
+/*  demo-panel-applet.c
+ *
+ *  Authored By Michael 'Mickey' Lauer <mlauer at vanille-media.de>
+ *
+ *  Copyright (C) 2007 Vanille-Media
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU 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 Public License for more details.
+ *
+ *  Current Version: $Rev$ ($Date: 2006/12/21 18:03:04 $) [$Author: mickey $]
+ */
+
+#include "demo-panel-applet.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 (DemoPanelApplet, demo_panel_applet, MOKO_TYPE_PANEL_APPLET);
+
+#define PANEL_APPLET_GET_PRIVATE(o)   (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEMO_TYPE_PANEL_APPLET, DemoPanelAppletPrivate))
+
+typedef struct _DemoPanelAppletPrivate
+{
+} DemoPanelAppletPrivate;
+
+/* parent class pointer */
+MokoPanelAppletClass* parent_class = NULL;
+
+/* forward declarations */
+/* ... */
+
+static void
+demo_panel_applet_dispose(GObject* object)
+{
+    if (G_OBJECT_CLASS (demo_panel_applet_parent_class)->dispose)
+        G_OBJECT_CLASS (demo_panel_applet_parent_class)->dispose (object);
+}
+
+static void
+demo_panel_applet_finalize(GObject* object)
+{
+    G_OBJECT_CLASS (demo_panel_applet_parent_class)->finalize (object);
+}
+
+static void
+demo_panel_applet_class_init(DemoPanelAppletClass* klass)
+{
+    /* hook parent */
+    GObjectClass* object_class = G_OBJECT_CLASS (klass);
+    parent_class = g_type_class_peek_parent(klass);
+
+    /* add private */
+    g_type_class_add_private (klass, sizeof(DemoPanelAppletPrivate));
+
+    /* hook destruction */
+    object_class->dispose = demo_panel_applet_dispose;
+    object_class->finalize = demo_panel_applet_finalize;
+
+    /* virtual methods */
+
+    /* install properties */
+}
+
+DemoPanelApplet*
+demo_panel_applet_new(void)
+{
+    return g_object_new(DEMO_TYPE_PANEL_APPLET, NULL);
+}
+
+static void
+demo_panel_applet_init(DemoPanelApplet* self)
+{
+    /* Populate your instance here */
+}


Property changes on: trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/demo-panel-applet.c
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/demo-panel-applet.h
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/demo-panel-applet.h	2007-01-04 15:18:42 UTC (rev 506)
+++ trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/demo-panel-applet.h	2007-01-04 15:52:16 UTC (rev 507)
@@ -0,0 +1,49 @@
+/*  demo-panel-applet.h
+ *
+ *  Authored By Michael 'Mickey' Lauer <mlauer at vanille-media.de>
+ *
+ *  Copyright (C) 2007 Vanille-Media
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU 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 Public License for more details.
+ *
+ *  Current Version: $Rev$ ($Date: 2006/12/21 18:03:04 $) [$Author: mickey $]
+ */
+
+#ifndef _DEMO_PANEL_APPLET_H_
+#define _DEMO_PANEL_APPLET_H_
+
+#include <libmokoui/moko-panel-applet.h>
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define DEMO_TYPE_PANEL_APPLET demo_panel_applet_get_type()
+#define DEMO_PANEL_APPLET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEMO_TYPE_PANEL_APPLET, DemoPanelApplet))
+#define DEMO_PANEL_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEMO_TYPE_PANEL_APPLET, DemoPanelAppletClass))
+#define DEMO_IS_PANEL_APPLET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEMO_TYPE_PANEL_APPLET))
+#define DEMO_IS_PANEL_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEMO_TYPE_PANEL_APPLET))
+#define DEMO_PANEL_APPLET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEMO_TYPE_PANEL_APPLET, DemoPanelAppletClass))
+
+typedef struct {
+    MokoPanelApplet parent;
+} DemoPanelApplet;
+
+typedef struct {
+    MokoPanelAppletClass parent_class;
+} DemoPanelAppletClass;
+
+GType demo_panel_applet_get_type();
+DemoPanelApplet* demo_panel_applet_new();
+
+G_END_DECLS
+
+#endif // _DEMO_PANEL_APPLET_H_
+


Property changes on: trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/demo-panel-applet.h
___________________________________________________________________
Name: svn:eol-style
   + native

Copied: trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/main.c (from rev 506, trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/panel.c)
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/panel.c	2007-01-04 15:18:42 UTC (rev 506)
+++ trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/main.c	2007-01-04 15:52:16 UTC (rev 507)
@@ -0,0 +1,58 @@
+/*
+ *  Panel-Demo -- OpenMoko Demo Panel Applet
+ *
+ *  Authored by Michael 'Mickey' Lauer <mlauer at vanille-media.de>
+ *
+ *  Copyright (C) 2006 First International Computer Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU 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 Public License for more details.
+ *
+ *  Current Version: $Rev$ ($Date$) [$Author$]
+ */
+
+#include "demo-panel-applet.h"
+
+#include <gtk/gtk.h>
+#include <glib.h>
+
+static void button_callback( GtkButton* button, MokoPanelApplet* applet )
+{
+    moko_panel_applet_close_popup( applet );
+}
+
+int main( int argc, char** argv )
+{
+    g_debug( "openmoko-panel-demo starting" );
+
+    moko_panel_system_init( &argc, &argv );
+    DemoPanelApplet* applet = demo_panel_applet_new();
+
+    // you can add a menu
+    GtkMenu* panelmenu = GTK_MENU(gtk_menu_new());
+    GtkMenuItem* fooitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Foo" ));
+    GtkMenuItem* baritem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Bar" ));
+    gtk_widget_show( GTK_WIDGET(fooitem) );
+    gtk_widget_show( GTK_WIDGET(baritem) );
+    gtk_menu_shell_append( panelmenu, fooitem );
+    gtk_menu_shell_append( panelmenu, baritem );
+    gtk_widget_show_all( GTK_WIDGET(panelmenu) );
+
+    moko_panel_applet_set_popup( applet, GTK_WIDGET(panelmenu), MOKO_PANEL_APPLET_TAP_HOLD_POPUP );
+
+    // or something else
+    GtkButton* button = gtk_button_new_with_label( "Hello Applet World!" );
+    g_signal_connect( G_OBJECT(button), "clicked", G_CALLBACK(button_callback), applet );
+    moko_panel_applet_set_popup( applet, GTK_WIDGET(button), MOKO_PANEL_APPLET_CLICK_POPUP );
+
+    gtk_main();
+
+    g_debug( "openmoko-panel-demo ending" );
+    return 0;
+}

Deleted: trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/panel.c
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/panel.c	2007-01-04 15:18:42 UTC (rev 506)
+++ trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/panel.c	2007-01-04 15:52:16 UTC (rev 507)
@@ -1,64 +0,0 @@
-/*
- *  Panel-Demo -- OpenMoko Demo Panel Applet
- *
- *  Authored by Michael 'Mickey' Lauer <mlauer at vanille-media.de>
- *
- *  Copyright (C) 2006 First International Computer Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU 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 Public License for more details.
- *
- *  Current Version: $Rev$ ($Date$) [$Author$]
- */
-
-#include <libmokoui/moko-panel-applet.h>
-
-#include <gtk/gtk.h>
-#include <glib.h>
-
-static void button_callback( GtkButton* button, MokoPanelApplet* applet )
-{
-    moko_panel_applet_close_popup( applet );
-}
-
-int main( int argc, char** argv )
-{
-    g_debug( "openmoko-panel-demo starting" );
-
-    gtk_init( &argc, &argv );
-
-    // usually you should derive an object from the MokoPanelApplet
-    // for this demo we go the simple way and just use it...
-
-    MokoPanelApplet* applet = moko_panel_applet_new( &argc, &argv );
-    moko_panel_applet_set_icon( applet, PKGDATADIR "/icon.png" );
-
-    // you can add a menu
-    GtkMenu* panelmenu = GTK_MENU(gtk_menu_new());
-    GtkMenuItem* fooitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Foo" ));
-    GtkMenuItem* baritem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Bar" ));
-    gtk_widget_show( GTK_WIDGET(fooitem) );
-    gtk_widget_show( GTK_WIDGET(baritem) );
-    gtk_menu_shell_append( panelmenu, fooitem );
-    gtk_menu_shell_append( panelmenu, baritem );
-    gtk_widget_show_all( GTK_WIDGET(panelmenu) );
-
-    moko_panel_applet_set_popup( applet, GTK_WIDGET(panelmenu), MOKO_PANEL_APPLET_TAP_HOLD_POPUP );
-
-    // or something else
-    GtkButton* button = gtk_button_new_with_label( "Hello Applet World!" );
-    g_signal_connect( G_OBJECT(button), "clicked", G_CALLBACK(button_callback), applet );
-    moko_panel_applet_set_popup( applet, GTK_WIDGET(button), MOKO_PANEL_APPLET_CLICK_POPUP );
-
-
-    gtk_main();
-
-    g_debug( "openmoko-panel-demo ending" );
-    return 0;
-}

Modified: trunk/src/target/OM-2007/examples/openmoko-panel-demo-simple/src/panel.c
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-panel-demo-simple/src/panel.c	2007-01-04 15:18:42 UTC (rev 506)
+++ trunk/src/target/OM-2007/examples/openmoko-panel-demo-simple/src/panel.c	2007-01-04 15:52:16 UTC (rev 507)
@@ -29,14 +29,15 @@
 
 int main( int argc, char** argv )
 {
-    g_debug( "openmoko-panel-demo starting" );
+    g_debug( "openmoko-panel-demo-simple starting" );
 
-    gtk_init( &argc, &argv );
+    moko_panel_system_init( &argc, &argv );
 
     // usually you should derive an object from the MokoPanelApplet
     // for this demo we go the simple way and just use it...
+    // see openmoko-panel-demo-simple for a more sophisticated example
 
-    MokoPanelApplet* applet = moko_panel_applet_new( &argc, &argv );
+    MokoPanelApplet* applet = moko_panel_applet_new();
     moko_panel_applet_set_icon( applet, PKGDATADIR "/icon.png" );
 
     // you can add a menu
@@ -59,6 +60,6 @@
 
     gtk_main();
 
-    g_debug( "openmoko-panel-demo ending" );
+    g_debug( "openmoko-panel-demo-simple ending" );
     return 0;
 }

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.c	2007-01-04 15:18:42 UTC (rev 506)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.c	2007-01-04 15:52:16 UTC (rev 507)
@@ -54,7 +54,16 @@
 static GObjectClass* parent_class = NULL;
 static int* app_argc;
 static char*** app_argv;
+static gboolean init_ok = FALSE;
 
+void moko_panel_system_init( int* argc, char*** argv )
+{
+    gtk_init( argc, argv );
+    app_argc = argc;
+    app_argv = argv;
+    init_ok = TRUE;
+}
+
 /* forward declarations */
 void moko_panel_applet_real_resize_callback(MokoPanelApplet* self, int w, int h);
 void moko_panel_applet_real_paint_callback(MokoPanelApplet* self, Drawable drw);
@@ -86,6 +95,7 @@
 static void
 moko_panel_applet_class_init(MokoPanelAppletClass* klass)
 {
+    g_assert( init_ok ); // if this fails, you probably forgot to call moko_panel_init()
     /* hook parent */
     GObjectClass* object_class = G_OBJECT_CLASS (klass);
     parent_class = g_type_class_peek_parent(klass);
@@ -129,10 +139,8 @@
 }
 
 MokoPanelApplet*
-moko_panel_applet_new(int* argc, char*** argv)
+moko_panel_applet_new()
 {
-    app_argc = argc;
-    app_argv = argv;
     MokoPanelApplet* self = g_object_new(MOKO_TYPE_PANEL_APPLET, NULL);
     return self;
 }

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.h
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.h	2007-01-04 15:18:42 UTC (rev 506)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.h	2007-01-04 15:52:16 UTC (rev 507)
@@ -67,8 +67,10 @@
     void (*tap_hold) (MokoPanelApplet* self);
 } MokoPanelAppletClass;
 
+/* type interface */
 GType moko_panel_applet_get_type();
 MokoPanelApplet* moko_panel_applet_new();
+void moko_panel_system_init( int* argc, char*** argv );
 
 /* simple interface */
 void moko_panel_applet_set_icon(MokoPanelApplet* self, const gchar* filename);





More information about the commitlog mailing list