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