r485 - in trunk/src/target/OM-2007: examples/openmoko-panel-demo/src openmoko-libs/libmokoui
mickey at gta01.hmw-consulting.de
mickey at gta01.hmw-consulting.de
Tue Jan 2 17:16:48 CET 2007
Author: mickey
Date: 2007-01-02 17:16:47 +0100 (Tue, 02 Jan 2007)
New Revision: 485
Modified:
trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/panel.c
trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.c
trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.h
trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-search-bar.c
trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-search-bar.h
trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-tool-box.c
Log:
mokoui: MokoPanelApplet now features two default popups, one for 'tap', one for 'tap and hold'
TODO: positioning popups
Modified: trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/panel.c
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/panel.c 2006-12-31 21:19:45 UTC (rev 484)
+++ trunk/src/target/OM-2007/examples/openmoko-panel-demo/src/panel.c 2007-01-02 16:16:47 UTC (rev 485)
@@ -22,6 +22,11 @@
#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" );
@@ -34,6 +39,24 @@
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" );
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 2006-12-31 21:19:45 UTC (rev 484)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.c 2007-01-02 16:16:47 UTC (rev 485)
@@ -13,11 +13,15 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Public License for more details.
*
- * Current Version: $Rev$ ($Date: 2006/12/07 17:20:16 $) [$Author: mickey $]
+ * Current Version: $Rev$ ($Date$) [$Author: mickey $]
*/
#include "moko-panel-applet.h"
+#include <gtk/gtkmenu.h>
+#include <gtk/gtkwidget.h>
+#include <gtk/gtkwindow.h>
+
#include <gdk/gdkx.h>
#define DEBUG_THIS_FILE
@@ -29,12 +33,23 @@
G_DEFINE_TYPE (MokoPanelApplet, moko_panel_applet, G_TYPE_OBJECT)
-#define PANEL_APPLET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MOKO_TYPE_PANEL_APPLET, MokoPanelAppletPrivate))
+#define MOKO_PANEL_APPLET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MOKO_TYPE_PANEL_APPLET, MokoPanelAppletPrivate))
+#define MOKO_PANEL_APPLET_TAP_HOLD_TIMEOUT 750
typedef struct _MokoPanelAppletPrivate
{
+ gboolean hold_timeout_triggered;
} MokoPanelAppletPrivate;
+enum {
+ DUMMY_SIGNAL,
+ CLICKED,
+ TAP_HOLD,
+ LAST_SIGNAL,
+};
+
+static guint moko_panel_applet_signals[LAST_SIGNAL] = { 0, };
+
/* parent class pointer */
static GObjectClass* parent_class = NULL;
static int* app_argc;
@@ -43,8 +58,16 @@
/* 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);
+void moko_panel_applet_real_button_press_callback(MokoPanelApplet* self, int x, int y);
+void moko_panel_applet_real_button_release_callback(MokoPanelApplet* self, int x, int y);
+
+void moko_panel_applet_signal_clicked(MokoPanelApplet* self);
+void moko_panel_applet_signal_tap_hold(MokoPanelApplet* self);
+
static void _mb_applet_resize_callback(MBTrayApp* mb_applet, int w, int h);
static void _mb_applet_paint_callback(MBTrayApp* mb_applet, Drawable drw);
+static void _mb_applet_button_callback(MBTrayApp* mb_applet, int x, int y, Bool released);
+
static GdkFilterReturn _moko_panel_applet_gdk_event_filter(GdkXEvent* xev, GdkEvent* gev, MokoPanelApplet* self);
static void
@@ -77,8 +100,32 @@
/* virtual methods */
klass->resize_callback = moko_panel_applet_real_resize_callback;
klass->paint_callback = moko_panel_applet_real_paint_callback;
+ klass->button_press_callback = moko_panel_applet_real_button_press_callback;
+ klass->button_release_callback = moko_panel_applet_real_button_release_callback;
+ klass->clicked = moko_panel_applet_signal_clicked;
+ klass->tap_hold = moko_panel_applet_signal_tap_hold;
+
/* install properties */
+
+ /* install signals */
+ moko_panel_applet_signals[CLICKED] = g_signal_new ("clicked",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (MokoPanelAppletClass, clicked),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ moko_panel_applet_signals[TAP_HOLD] = g_signal_new ("tap-hold",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (MokoPanelAppletClass, tap_hold),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
}
MokoPanelApplet*
@@ -99,14 +146,12 @@
//self->applet = mb_tray_app_new_with_display (unsigned char *app_name, MBTrayAppResizeCB resize_cb, MBTrayAppPaintCB paint_cb, int *argc, char ***argv, Display *display)
self->mb_applet = mb_tray_app_new_with_display( "testing", _mb_applet_resize_callback, _mb_applet_paint_callback, app_argc, app_argv, GDK_DISPLAY() );
mb_tray_app_set_user_data( self->mb_applet, self );
+ mb_tray_app_set_button_callback( self->mb_applet, _mb_applet_button_callback );
self->mb_pixbuf = mb_pixbuf_new( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) );
-
mb_tray_app_main_init( self->mb_applet );
gdk_window_add_filter( NULL, _moko_panel_applet_gdk_event_filter, self );
-
-
}
static GdkFilterReturn
@@ -120,17 +165,45 @@
return GDK_FILTER_CONTINUE;
}
+static gboolean _moko_panel_applet_window_clicked(GtkWidget* widget, GdkEventButton* event, MokoPanelApplet* self)
+{
+ gdk_pointer_ungrab( event->time );
+ gtk_widget_hide( self->window );
+}
+
+static gboolean _moko_panel_applet_tap_hold_timeout(MokoPanelApplet* self)
+{
+ moko_debug( "_moko_panel_applet_tap_hold_timeout" );
+ MokoPanelAppletPrivate* priv = MOKO_PANEL_APPLET_GET_PRIVATE( self );
+ g_signal_emit( G_OBJECT(self), moko_panel_applet_signals[TAP_HOLD], 0, NULL );
+ priv->hold_timeout_triggered = TRUE;
+ return FALSE;
+}
+
static void _mb_applet_resize_callback(MBTrayApp* mb_applet, int w, int h)
{
MokoPanelApplet* self = mb_tray_app_get_user_data( mb_applet );
MOKO_PANEL_APPLET_GET_CLASS( self )->resize_callback( self, w, h );
}
+
static void _mb_applet_paint_callback(MBTrayApp* mb_applet, Drawable drw)
{
MokoPanelApplet* self = mb_tray_app_get_user_data( mb_applet );
MOKO_PANEL_APPLET_GET_CLASS( self )->paint_callback( self, drw );
}
+static void _mb_applet_button_callback(MBTrayApp* mb_applet, int x, int y, Bool released)
+{
+ MokoPanelApplet* self = mb_tray_app_get_user_data( mb_applet );
+ MokoPanelAppletPrivate* priv = MOKO_PANEL_APPLET_GET_PRIVATE( self );
+ if ( !released )
+ MOKO_PANEL_APPLET_GET_CLASS( self )->button_press_callback( self, x, y );
+ else if ( !priv->hold_timeout_triggered )
+ MOKO_PANEL_APPLET_GET_CLASS( self )->button_release_callback( self, x, y );
+ else
+ moko_debug( "_mb_applet_button_callback: surpressing release callback, because timeout was triggered" );
+}
+
void moko_panel_applet_real_resize_callback(MokoPanelApplet* self, int w, int h)
{
moko_debug( "moko_panel_applet_resize_callback" );
@@ -164,6 +237,71 @@
mb_pixbuf_img_free( self->mb_pixbuf, background );
}
+void moko_panel_applet_real_button_press_callback(MokoPanelApplet* self, int x, int y)
+{
+ moko_debug( "moko_panel_applet_real_button_press_callback" );
+ moko_debug( "-- at %d, %d", x, y );
+ MokoPanelAppletPrivate* priv = MOKO_PANEL_APPLET_GET_PRIVATE( self );
+ priv->hold_timeout_triggered = FALSE;
+ g_timeout_add( MOKO_PANEL_APPLET_TAP_HOLD_TIMEOUT, (GSourceFunc) _moko_panel_applet_tap_hold_timeout, (gpointer) self );
+}
+
+void moko_panel_applet_real_button_release_callback(MokoPanelApplet* self, int x, int y)
+{
+ moko_debug( "moko_panel_applet_real_button_release_callback" );
+ moko_debug( "-- at %d, %d", x, y );
+
+ if ( x > 0 && x < mb_tray_app_width( self->mb_applet ) && y > 0 && y < mb_tray_app_height( self->mb_applet ) )
+ {
+ g_signal_emit( G_OBJECT(self), moko_panel_applet_signals[CLICKED], 0, NULL );
+ g_source_remove_by_user_data( (gpointer) self );
+ }
+}
+
+void moko_panel_applet_get_positioning_hint(MokoPanelApplet* self, GtkWidget* popup, int* x, int* y)
+{
+ int win_w;
+ int win_h;
+ gdk_window_get_geometry( GTK_WIDGET(self->window)->window, NULL, NULL, &win_w, &win_h, NULL );
+ moko_debug( "-- popup geom = %d, %d", win_w, win_h );
+ GtkAllocation* allocation = >K_WIDGET(self->window)->allocation;
+ moko_debug( "-- popup alloc = %d, %d", allocation->width, allocation->height );
+
+ int x_abs;
+ int y_abs;
+ mb_tray_app_get_absolute_coords( self->mb_applet, &x_abs, &y_abs );
+ moko_debug( "-- abs position = %d, %d", x_abs, y_abs );
+
+ x = x_abs;
+ y = y_abs + mb_tray_app_height( self->mb_applet ) + 4;
+
+ if ( x + win_w > DisplayWidth( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) )
+ x = DisplayWidth( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) - win_w - 2;
+
+ if ( y + win_h > DisplayHeight( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) )
+ y = DisplayHeight( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) - win_h - mb_tray_app_height( self->mb_applet ) - 2;
+
+ moko_debug( "-- final position = %d, %d", x, y );
+}
+
+void moko_panel_applet_signal_clicked(MokoPanelApplet* self)
+{
+ moko_debug( "moko_panel_applet_signal_clicked" );
+ if ( self->window && GTK_WIDGET_VISIBLE( self->window ) )
+ moko_panel_applet_close_popup( self );
+ else
+ moko_panel_applet_open_popup( self, MOKO_PANEL_APPLET_CLICK_POPUP );
+}
+
+void moko_panel_applet_signal_tap_hold(MokoPanelApplet* self)
+{
+ moko_debug( "moko_panel_applet_signal_tap_hold" );
+ moko_panel_applet_open_popup( self, MOKO_PANEL_APPLET_TAP_HOLD_POPUP );
+}
+
+////////////////
+// PUBLIC API //
+////////////////
void moko_panel_applet_set_icon(MokoPanelApplet* self, const gchar* filename)
{
moko_debug( "moko_panel_applet_set_icon" );
@@ -171,3 +309,72 @@
if ( self->mb_pixbuf_image ) mb_pixbuf_img_free( self->mb_pixbuf, self->mb_pixbuf_image );
self->mb_pixbuf_image = mb_pixbuf_img_new_from_file( self->mb_pixbuf, filename );
}
+
+void moko_panel_applet_set_popup(MokoPanelApplet* self, GtkWidget* popup, MokoPanelAppletPopupType type)
+{
+ if ( popup == self->popup[type] )
+ return;
+ if ( self->popup[type] )
+ {
+ gtk_widget_destroy( self->popup[type] );
+ //FIXME necessary here or does gtk_widget_destroy removes all references?
+ g_object_unref( self->popup[type] );
+ }
+ self->popup[type] = popup;
+ g_object_ref( popup );
+}
+
+void moko_panel_applet_open_popup(MokoPanelApplet* self, MokoPanelAppletPopupType type)
+{
+ moko_debug( "moko_panel_applet_open_popup [type=%d]", type );
+ GtkWidget* popup = self->popup[type];
+ if ( !popup )
+ {
+ moko_debug( "-- no popup for type %d : return", type );
+ return;
+ }
+
+ if ( self->window && GTK_WIDGET_VISIBLE( self->window ) )
+ moko_panel_applet_close_popup( self );
+
+ if ( GTK_IS_MENU(self->popup[type]) )
+ {
+ self->window = self->popup[type];
+ gtk_menu_popup( GTK_MENU( self->window ), NULL, NULL, NULL, NULL, 0, CurrentTime );
+ }
+ else
+ {
+ self->window = gtk_window_new( GTK_WINDOW_POPUP );
+ gtk_container_add( GTK_CONTAINER(self->window), self->popup[type] );
+ g_signal_connect( G_OBJECT(self->window), "button-press-event", G_CALLBACK(_moko_panel_applet_window_clicked), self );
+ gtk_widget_add_events( self->window, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK );
+ //gtk_widget_realize( self->window );
+
+ int x = 0;
+ int y = 0;
+ moko_panel_applet_get_positioning_hint( self, self->popup, &x, &y );
+ gtk_window_move( self->window, x, y );
+ gtk_widget_show_all( self->window );
+ gdk_pointer_grab( GTK_WIDGET(self->window)->window, TRUE, GDK_BUTTON_PRESS_MASK, NULL, NULL, CurrentTime );
+ }
+
+}
+
+void moko_panel_applet_close_popup(MokoPanelApplet* self)
+{
+ g_return_if_fail( self->window || !GTK_WIDGET_VISIBLE(self->window) );
+ moko_debug( "moko_panel_applet_close_popup" );
+
+ if ( GTK_IS_MENU( self->window ) )
+ {
+ gtk_menu_popdown( GTK_MENU( self->window) );
+ }
+ else
+ {
+ gdk_pointer_ungrab( CurrentTime );
+ gtk_widget_hide( self->window );
+ gtk_container_remove( GTK_CONTAINER(self->window), gtk_bin_get_child( GTK_BIN(self->window) ) );
+ gtk_widget_destroy( self->window );
+ self->window = 0L;
+ }
+}
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 2006-12-31 21:19:45 UTC (rev 484)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.h 2007-01-02 16:16:47 UTC (rev 485)
@@ -13,7 +13,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Public License for more details.
*
- * Current Version: $Rev$ ($Date: 2006/12/07 17:20:16 $) [$Author: mickey $]
+ * Current Version: $Rev$ ($Date$) [$Author: mickey $]
*/
#ifndef _MOKO_PANEL_APPLET_H_
@@ -21,6 +21,9 @@
#include <libmb/mbtray.h>
+#include <gtk/gtkwidget.h>
+#include <gtk/gtkwindow.h>
+
#include <X11/X.h>
#include <glib-object.h>
@@ -34,6 +37,12 @@
#define MOKO_IS_PANEL_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MOKO_TYPE_PANEL_APPLET))
#define MOKO_PANEL_APPLET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOKO_TYPE_PANEL_APPLET, MokoPanelAppletClass))
+typedef enum {
+ MOKO_PANEL_APPLET_CLICK_POPUP,
+ MOKO_PANEL_APPLET_TAP_HOLD_POPUP,
+ LAST_POPUP_TYPE,
+} MokoPanelAppletPopupType;
+
typedef struct {
GObject parent;
MBTrayApp* mb_applet;
@@ -42,6 +51,8 @@
MBPixbufImage* mb_pixbuf_image_scaled;
int* argc;
char*** argv;
+ GtkWidget* popup[LAST_POPUP_TYPE];
+ GtkWindow* window;
} MokoPanelApplet;
typedef struct {
@@ -49,12 +60,21 @@
void (*resize_callback) (MokoPanelApplet* self, int w, int h);
void (*paint_callback) (MokoPanelApplet* self, Drawable drw);
+ void (*button_press_callback) (MokoPanelApplet* self, int x, int y);
+ void (*button_release_callback) (MokoPanelApplet* self, int x, int y);
+
+ void (*clicked) (MokoPanelApplet* self);
+ void (*tap_hold) (MokoPanelApplet* self);
} MokoPanelAppletClass;
GType moko_panel_applet_get_type();
MokoPanelApplet* moko_panel_applet_new();
void moko_panel_applet_set_icon(MokoPanelApplet* self, const gchar* filename);
+void moko_panel_applet_get_positioning_hint(MokoPanelApplet* self, GtkWidget* popup, int* x, int* y);
+void moko_panel_applet_set_popup(MokoPanelApplet* self, GtkWidget* popup, MokoPanelAppletPopupType type);
+void moko_panel_applet_open_popup(MokoPanelApplet* self, MokoPanelAppletPopupType type);
+void moko_panel_applet_close_popup(MokoPanelApplet* self);
G_END_DECLS
Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-search-bar.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-search-bar.c 2006-12-31 21:19:45 UTC (rev 484)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-search-bar.c 2007-01-02 16:16:47 UTC (rev 485)
@@ -21,6 +21,8 @@
#include <gtk/gtkalignment.h>
#include <gtk/gtkentry.h>
+G_DEFINE_TYPE (MokoSearchBar, moko_search_bar, GTK_TYPE_TOOLBAR)
+
#define MOKO_SEARCH_BAR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MOKO_TYPE_SEARCH_BAR, MokoSearchBarPrivate))
typedef struct _MokoSearchBarPrivate MokoSearchBarPrivate;
@@ -36,33 +38,6 @@
static void
moko_search_bar_init (MokoSearchBar *self);
-
-GType moko_search_bar_get_type (void) /* Typechecking */
-{
- static GType self_type = 0;
-
- if (!self_type)
- {
- static const GTypeInfo f_info =
- {
- sizeof (MokoSearchBarClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) moko_search_bar_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (MokoSearchBar),
- 0,
- (GInstanceInitFunc) moko_search_bar_init,
- };
-
- /* add the type of your parent class here */
- self_type = g_type_register_static(GTK_TYPE_TOOLBAR, "MokoSearchBar", &f_info, 0);
- }
-
- return self_type;
-}
-
static void
moko_search_bar_class_init (MokoSearchBarClass *klass)
{
Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-search-bar.h
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-search-bar.h 2006-12-31 21:19:45 UTC (rev 484)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-search-bar.h 2007-01-02 16:16:47 UTC (rev 485)
@@ -26,15 +26,10 @@
G_BEGIN_DECLS
#define MOKO_TYPE_SEARCH_BAR (moko_search_bar_get_type())
-
#define MOKO_SEARCH_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOKO_TYPE_SEARCH_BAR, MokoSearchBar))
-
#define MOKO_SEARCH_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOKO_TYPE_SEARCH_BAR, MokoSearchBarClass))
-
#define MOKO_IS_SEARCH_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MOKO_TYPE_SEARCH_BAR))
-
#define MOKO_IS_SEARCH_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MOKO_TYPE_SEARCH_BAR))
-
#define MOKO_SEARCH_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOKO_TYPE_SEARCH_BAR, MokoSearchBarClass))
typedef struct {
Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-tool-box.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-tool-box.c 2006-12-31 21:19:45 UTC (rev 484)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-tool-box.c 2007-01-02 16:16:47 UTC (rev 485)
@@ -46,7 +46,7 @@
enum {
SEARCHBOX_VISIBLE,
SEARCHBOX_INVISIBLE,
- LAST_SIGNAL
+ LAST_SIGNAL,
};
static void moko_tool_box_class_init (MokoToolBoxClass *klass);
More information about the commitlog
mailing list