r892 - trunk/src/target/OM-2007/applications/openmoko-footer/src
tongsong_li at sita.openmoko.org
tongsong_li at sita.openmoko.org
Wed Feb 7 09:46:24 CET 2007
Author: tongsong_li
Date: 2007-02-07 09:46:17 +0100 (Wed, 07 Feb 2007)
New Revision: 892
Modified:
trunk/src/target/OM-2007/applications/openmoko-footer/src/callbacks.c
trunk/src/target/OM-2007/applications/openmoko-footer/src/callbacks.h
trunk/src/target/OM-2007/applications/openmoko-footer/src/footer.c
trunk/src/target/OM-2007/applications/openmoko-footer/src/footer.h
trunk/src/target/OM-2007/applications/openmoko-footer/src/main.c
trunk/src/target/OM-2007/applications/openmoko-footer/src/main.h
trunk/src/target/OM-2007/applications/openmoko-footer/src/misc.c
Log:
format modify
Modified: trunk/src/target/OM-2007/applications/openmoko-footer/src/callbacks.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-footer/src/callbacks.c 2007-02-07 07:20:13 UTC (rev 891)
+++ trunk/src/target/OM-2007/applications/openmoko-footer/src/callbacks.c 2007-02-07 08:46:17 UTC (rev 892)
@@ -38,17 +38,19 @@
*@return none
*/
void
-footer_leftbutton_clicked(GtkWidget *widget, gpointer my_data) {
- switch (fork()) {
- case 0:
- setpgid(0, 0); /* Stop us killing child */
- execvp("openmoko-taskmanager", NULL);
- exit(1);
- case -1:
- g_debug ("Failed to fork()");
- break;
- }
- }
+footer_leftbutton_clicked(GtkWidget *widget, gpointer my_data)
+{
+ switch (fork())
+ {
+ case 0:
+ setpgid(0, 0); /* Stop us killing child */
+ execvp("openmoko-taskmanager", NULL);
+ exit(1);
+ case -1:
+ debug ("Failed to fork()");
+ break;
+ }
+}
@@ -59,7 +61,8 @@
*@return none
*/
void
-footer_rightbutton_clicked(GtkWidget *widget, gpointer my_data) {
+footer_rightbutton_clicked(GtkWidget *widget, gpointer my_data)
+{
XEvent ev;
int done = 0;
struct timeval then, now;
@@ -69,19 +72,21 @@
dpy = GDK_DISPLAY ();
gettimeofday(&then, NULL);
-
//check the buttoen event type: tap "done = 1 "; tap with hold "done = 2";
//Fixme : when double clicked, there is three outputs, two "tab" and one" tab hold".
- while (!done ) {
- if (XCheckMaskEvent(dpy,ButtonReleaseMask, &ev))
- if (ev.type == ButtonRelease) {
- done=1;
- }
- gettimeofday(&now, NULL);
- if ( (now.tv_usec-then.tv_usec) > (click_time*1000) ) {
- done=2;
+ while (!done )
+ {
+ if (XCheckMaskEvent(dpy,ButtonReleaseMask, &ev))
+ if (ev.type == ButtonRelease)
+ {
+ done=1;
+ }
+ gettimeofday(&now, NULL);
+ if ( (now.tv_usec-then.tv_usec) > (click_time*1000) )
+ {
+ done=2;
+ }
}
- }
/*check buttoen event type: tap "done = 1 "; tap with hold "done = 0"; activate done >1 ??.
do{
gettimeofday(&now, NULL);
@@ -94,16 +99,18 @@
*/
//function for "tap" action, execute "openmoko-clocks application".
- if (done == 1){
- g_debug ("tab");
- mbcommand(dpy, MB_CMD_NEXT, NULL);
- return;
- }
+ if (done == 1)
+ {
+ g_debug ("tab");
+ mbcommand(dpy, MB_CMD_NEXT, NULL);
+ return;
+ }
//function for "tap with hold" action, pop a popupmenu to change time format.
- else if (done == 2){
- g_debug ("tab hold");
- mbcommand(dpy, MB_CMD_PREV, NULL);
- }
+ else if (done == 2)
+ {
+ g_debug ("tab hold");
+ mbcommand(dpy, MB_CMD_PREV, NULL);
+ }
/* Fixme : click event
else if (done >1){
g_debug ("clicked");
@@ -133,28 +140,33 @@
/* A signal from the bus saying we are about to be disconnected */
if (dbus_message_is_signal
- (message, DBUS_INTERFACE_LOCAL, "Disconnected")) {
+ (message, DBUS_INTERFACE_LOCAL, "Disconnected"))
+ {
/* Tell the main loop to quit */
g_main_loop_quit(app->loop);
/* We have handled this message, don't pass it on */
return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ /* A message on our interface */
+ else if (dbus_message_is_signal(message, "org.openmoko.dbus.TaskManager", "push_statusbar_message"))
+ {
+ DBusError error;
+ char *s;
+ dbus_error_init (&error);
+ if (dbus_message_get_args
+ (message, &error, DBUS_TYPE_STRING, &s, DBUS_TYPE_INVALID))
+ {
+ g_debug("Setting status bar text to '%s", s);
+ footer_set_status( app->footer, s );
+ //FIXME: SIGSEGV, when uncommented. It now leaks! :M:
+ //dbus_free(s);
}
- /* A message on our interface */
- else if (dbus_message_is_signal(message, "org.openmoko.dbus.TaskManager", "push_statusbar_message")) {
- DBusError error;
- char *s;
- dbus_error_init (&error);
- if (dbus_message_get_args
- (message, &error, DBUS_TYPE_STRING, &s, DBUS_TYPE_INVALID)) {
- g_debug("Setting status bar text to '%s", s);
- footer_set_status( app->footer, s );
- //FIXME: SIGSEGV, when uncommented. It now leaks! :M:
- //dbus_free(s);
- } else {
- g_print("Ping received, but error getting message: %s", error.message);
+ else
+ {
+ g_print("Ping received, but error getting message: %s", error.message);
dbus_error_free (&error);
- }
- return DBUS_HANDLER_RESULT_HANDLED;
}
- return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
Modified: trunk/src/target/OM-2007/applications/openmoko-footer/src/callbacks.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-footer/src/callbacks.h 2007-02-07 07:20:13 UTC (rev 891)
+++ trunk/src/target/OM-2007/applications/openmoko-footer/src/callbacks.h 2007-02-07 08:46:17 UTC (rev 892)
@@ -25,18 +25,15 @@
//#define G_THREADS_ENABLED
-#define TASK_MANAGER_PROPERTY_WIDTH 200
-#define TASK_MANAGER_PROPERTY_HEIGHT 564
-#define TASK_MANAGER_PROPERTY_X 0
-#define TASK_MANAGER_PROPERTY_Y 45
+#define TASK_MANAGER_PROPERTY_WIDTH 200
+#define TASK_MANAGER_PROPERTY_HEIGHT 564
+#define TASK_MANAGER_PROPERTY_X 0
+#define TASK_MANAGER_PROPERTY_Y 45
/* footer */
-void
-footer_leftbutton_clicked(GtkWidget *widget, gpointer my_data);
+void footer_leftbutton_clicked(GtkWidget *widget, gpointer my_data);
-void
-footer_rightbutton_clicked(GtkWidget *widget, gpointer my_data);
+void footer_rightbutton_clicked(GtkWidget *widget, gpointer my_data);
/* dbus */
-DBusHandlerResult
-signal_filter (DBusConnection *connection, DBusMessage *message, void *user_data);
+DBusHandlerResult signal_filter (DBusConnection *connection, DBusMessage *message, void *user_data);
Modified: trunk/src/target/OM-2007/applications/openmoko-footer/src/footer.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-footer/src/footer.c 2007-02-07 07:20:13 UTC (rev 891)
+++ trunk/src/target/OM-2007/applications/openmoko-footer/src/footer.c 2007-02-07 08:46:17 UTC (rev 892)
@@ -84,14 +84,13 @@
static void footer_init (Footer *f) /* Instance Construction */
{
PangoFontDescription* PangoFont = pango_font_description_new(); //get system default PangoFontDesc
-
+
/*left image*/
f->LeftEventBox = gtk_event_box_new ();
gtk_widget_show (GTK_WIDGET (f->LeftEventBox));
gtk_event_box_set_visible_window (GTK_EVENT_BOX(f->LeftEventBox),FALSE);
gtk_box_pack_start (GTK_BOX (f), GTK_WIDGET(f->LeftEventBox), FALSE, FALSE, BUTTON_PADDING);
gtk_widget_set_events (GTK_WIDGET (f->LeftEventBox), GDK_BUTTON_PRESS_MASK);
-
f->LeftImage = gtk_image_new_from_file (PKGDATADIR"/icon_app_history.png");
gtk_widget_show (GTK_WIDGET (f->LeftImage));
@@ -104,8 +103,8 @@
gtk_misc_set_alignment (GTK_MISC (f->CenterLabel), LABEL_ALIGNMENT_X, LABEL_ALIGNMENT_Y);
gtk_label_set_single_line_mode (GTK_LABEL (f->CenterLabel), TRUE);
if (PangoFont){
- pango_font_description_set_size (PangoFont, FONT_SIZE);
- gtk_widget_modify_font (GTK_WIDGET (f->CenterLabel), PangoFont);
+ pango_font_description_set_size (PangoFont, FONT_SIZE);
+ gtk_widget_modify_font (GTK_WIDGET (f->CenterLabel), PangoFont);
}
gtk_label_set_ellipsize (GTK_LABEL (f->CenterLabel), PANGO_ELLIPSIZE_END);
gtk_box_pack_start (GTK_BOX (f), GTK_WIDGET (f->CenterLabel), TRUE, TRUE, LABEL_PADDING);
@@ -117,14 +116,12 @@
gtk_event_box_set_visible_window (GTK_EVENT_BOX(f->RightEventBox),FALSE);
gtk_box_pack_end (GTK_BOX (f), GTK_WIDGET(f->RightEventBox), FALSE, FALSE, BUTTON_PADDING);
gtk_widget_set_events (f->RightEventBox,GDK_BUTTON_PRESS_MASK);
-
f->RightImage = gtk_image_new_from_file (PKGDATADIR"/icon_app_toggle.png");
gtk_widget_show (GTK_WIDGET (f->RightImage));
gtk_container_add (GTK_CONTAINER (f->RightEventBox), f->RightImage);
-
-/*progressbar*/
+/*progressbar*/
/*
f->progressbar = gtk_progress_bar_new();
gtk_widget_show (f->progressbar);
@@ -156,9 +153,9 @@
/**
*@brief set footer progressbar status.
-*@param f Footer reference
-*@param s string which is consist of status message and progressbar percent,
-* the string of message and percent is connected by symbol "@".
+*@param f Footer reference
+*@param s string which is consist of status message and progressbar percent,
+* the string of message and percent is connected by symbol "@".
*@return none
*/
void footer_set_status(Footer *f, const char* s)
@@ -171,10 +168,10 @@
int StrLength;
gdouble fraction;
int i;
-
+
strcpy(message,s);
if(p_fraction = strrchr(s, '@'))
- StrLength = strlen(s)-strlen(p_fraction);
+ StrLength = strlen(s)-strlen(p_fraction);
else StrLength = strlen(s);
memcpy(message,s,StrLength);
@@ -182,9 +179,9 @@
for (i=0; i<4; i++)
str_fraction[i] = s[StrLength+1+i];
str_fraction[3] = '\0';
-
+
fraction = atoi(str_fraction)/(double)100;
-
+
g_print ("messsage is : %s\nthe char pointer is : %s\nlength of s and p_fraction: %d\nfraction is %lf:",message,p_fraction,StrLength,fraction );
gtk_progress_bar_set_text (f->progressbar, message);
@@ -192,5 +189,5 @@
if(fraction<=1 && fraction>=0)
gtk_progress_bar_set_fraction (f->progressbar, fraction);
*/
-
-}
+
+}
Modified: trunk/src/target/OM-2007/applications/openmoko-footer/src/footer.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-footer/src/footer.h 2007-02-07 07:20:13 UTC (rev 891)
+++ trunk/src/target/OM-2007/applications/openmoko-footer/src/footer.h 2007-02-07 08:46:17 UTC (rev 892)
@@ -49,14 +49,14 @@
#define IS_FOOTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOOTER_TYPE))
#define IS_FOOTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOOTER_TYPE))
-typedef struct _Footer Footer;
-typedef struct _FooterClass FooterClass;
+typedef struct _Footer Footer;
+typedef struct _FooterClass FooterClass;
/**
* @typedef OMFooterApp
*
* Opaque structure used for representing an Openmoko footer app UI.
- */
+ */
/*struct _Footer
{
GtkHBox hbox;
@@ -73,7 +73,7 @@
struct _Footer
{
GtkHBox hbox;
-
+
GtkWidget* LeftEventBox;
GtkWidget* LeftImage;
GtkWidget* CenterLabel;
@@ -84,21 +84,17 @@
struct _FooterClass
{
GtkHBoxClass parent_class;
-
+
void (*footer) (Footer *f);
};
-GType
-footer_get_type (void);
+GType footer_get_type (void);
-GtkWidget*
-footer_new (void);
+GtkWidget* footer_new (void);
-void
-footer_clear (Footer *f);
+void footer_clear (Footer *f);
-void
-footer_set_status (Footer *f, const char* s);
+void footer_set_status (Footer *f, const char* s);
G_END_DECLS
Modified: trunk/src/target/OM-2007/applications/openmoko-footer/src/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-footer/src/main.c 2007-02-07 07:20:13 UTC (rev 891)
+++ trunk/src/target/OM-2007/applications/openmoko-footer/src/main.c 2007-02-07 08:46:17 UTC (rev 892)
@@ -34,25 +34,29 @@
GError* err = NULL;
GdkPixbuf *pixbuf;
- GtkStyle *style;
+ GtkStyle *style;
GdkPixmap *pixmap;
GdkBitmap *bitmap;
-
+
dbus_error_init(&error);
- if (!(app = g_malloc ( sizeof (MokoFooter)))){
- fprintf (stderr,"Openmoko-taskmanager: footer UI initialized failed, app space malloc failed!");
- exit (-1);
- }
+ if (!(app = g_malloc ( sizeof (MokoFooter))))
+ {
+ fprintf (stderr,"Openmoko-taskmanager: footer UI initialized failed, app space malloc failed!");
+ exit (-1);
+ }
app->bus = dbus_bus_get (DBUS_BUS_SESSION, &error);
- if (!app->bus) {
- g_warning ("Failed to connect to the D-BUS daemon: %s", error.message);
+
+ if (!app->bus)
+ {
+ g_warning ("Openmoko footer: %s", error.message);
dbus_error_free(&error);
return 1;
}
- app->loop = g_main_loop_new( NULL, FALSE );
-
+
+ app->loop = g_main_loop_new( NULL, FALSE );
+
gtk_init (&argc, &argv);
///initialize TOP LEVEL WINDOW
@@ -74,30 +78,28 @@
///initialize OpenMoko Footer Widget
app->footer = FOOTER(footer_new());
gtk_widget_show_all (GTK_WIDGET (app->footer));
- g_signal_connect ( G_OBJECT (app->footer->LeftEventBox), "button_press_event",
- G_CALLBACK (footer_leftbutton_clicked), app);
- g_signal_connect ( G_OBJECT (app->footer->RightEventBox), "button_press_event",
- G_CALLBACK (footer_rightbutton_clicked), app);
+ g_signal_connect ( G_OBJECT (app->footer->LeftEventBox), "button_press_event", G_CALLBACK (footer_leftbutton_clicked), app);
+ g_signal_connect ( G_OBJECT (app->footer->RightEventBox), "button_press_event", G_CALLBACK (footer_rightbutton_clicked), app);
///Add OpenMoko Footer to Top Level windonw
- gtk_container_add( GTK_CONTAINER(app->toplevel_win), GTK_WIDGET(app->footer) );
+ gtk_container_add( GTK_CONTAINER(app->toplevel_win), GTK_WIDGET(app->footer));
// this violates the privacy concept, but it's a demo for now...
dbus_connection_setup_with_g_main (app->bus, NULL);
dbus_bus_add_match (app->bus, "type='signal',interface='org.openmoko.dbus.TaskManager'", &error );
- dbus_connection_add_filter (app->bus, signal_filter, app, NULL );
+ dbus_connection_add_filter (app->bus, signal_filter, app, NULL);
gtk_widget_show_all (app->toplevel_win);
- g_main_loop_run ( app->loop );
-
+ g_main_loop_run (app->loop);
+
if (pixbuf)
- g_free (pixbuf);
+ g_free (pixbuf);
if (pixmap)
- g_free (pixmap);
+ g_free (pixmap);
if (bitmap)
- g_free (bitmap);
+ g_free (bitmap);
g_free (app );
-
+
return 0;
}
Modified: trunk/src/target/OM-2007/applications/openmoko-footer/src/main.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-footer/src/main.h 2007-02-07 07:20:13 UTC (rev 891)
+++ trunk/src/target/OM-2007/applications/openmoko-footer/src/main.h 2007-02-07 08:46:17 UTC (rev 892)
@@ -35,14 +35,14 @@
* @typedef MokoFooter
*
* Opaque structure used for representing an Openmoko Task Manager App.
- */
+ */
/* Types */
typedef struct _MokoFooter
{
- DBusConnection* bus;
- GMainLoop* loop;
- GtkWidget* toplevel_win;
- Footer* footer;
+ DBusConnection* bus;
+ GMainLoop* loop;
+ GtkWidget* toplevel_win;
+ Footer* footer;
} MokoFooter;
#endif /* main.h */
Modified: trunk/src/target/OM-2007/applications/openmoko-footer/src/misc.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-footer/src/misc.c 2007-02-07 07:20:13 UTC (rev 891)
+++ trunk/src/target/OM-2007/applications/openmoko-footer/src/misc.c 2007-02-07 08:46:17 UTC (rev 892)
@@ -1,37 +1,37 @@
#include "misc.h"
void
-mbcommand(Display *dpy, int cmd_id, char *data) {
+mbcommand(Display *dpy, int cmd_id, char *data)
+{
+ XEvent ev;
+ Window root;
+ Atom cmd_prop, desktop_manager_atom;
- XEvent ev;
- Window root;
- Atom cmd_prop, desktop_manager_atom;
+ desktop_manager_atom = XInternAtom(dpy, "_NET_DESKTOP_MANGER",False);
- desktop_manager_atom = XInternAtom(dpy, "_NET_DESKTOP_MANGER",False);
+ root = DefaultRootWindow(dpy);
- root = DefaultRootWindow(dpy);
-
if (cmd_id == MB_CMD_DESKTOP)
- {
+ {
/* Check if desktop is running */
- if (!XGetSelectionOwner(dpy, desktop_manager_atom))
- {
- fprintf(stderr, "Desktop not running, exiting...\n");
- switch (fork())
- {
- case 0:
- execvp ("mbdesktop", NULL);
- break;
- case -1:
- fprintf(stderr, "failed to exec mbdesktop");
- break;
- }
- exit(0);
- }
- }
-
+ if (!XGetSelectionOwner(dpy, desktop_manager_atom))
+ {
+ fprintf(stderr, "Desktop not running, exiting...\n");
+ switch (fork())
+ {
+ case 0:
+ execvp ("mbdesktop", NULL);
+ break;
+ case -1:
+ fprintf(stderr, "failed to exec mbdesktop");
+ break;
+ }
+ exit(0);
+ }
+ }
+
cmd_prop = XInternAtom(dpy, "_MB_COMMAND", False);
-
+
memset(&ev, '\0', sizeof ev);
ev.xclient.type = ClientMessage;
ev.xclient.window = root; /* we send it _from_ root as we have no win */
@@ -40,8 +40,8 @@
ev.xclient.data.l[0] = cmd_id;
- XSendEvent(dpy, root, False,
- SubstructureRedirectMask|SubstructureNotifyMask, &ev);
+ XSendEvent(dpy, root, False,
+ SubstructureRedirectMask|SubstructureNotifyMask, &ev);
}
More information about the commitlog
mailing list