r3882 - in trunk/src/target/OM-2007.2/panel-plugins: . openmoko-panel-memory openmoko-panel-memory/src

chris at sita.openmoko.org chris at sita.openmoko.org
Fri Jan 18 13:22:03 CET 2008


Author: chris
Date: 2008-01-18 13:22:01 +0100 (Fri, 18 Jan 2008)
New Revision: 3882

Added:
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/AUTHORS
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/ChangeLog
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/NEWS
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/README
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/autogen.sh
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/configure.ac
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/src/
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/src/Makefile.am
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/src/openmoko-panel-memory.c
Log:
        * AUTHORS:
        * autogen.sh:
        * configure.ac:
        * src/Makefile.am:
        * src/openmoko-panel-memory.c: (blink_idle), (memory_full_cb),
        (mb_panel_applet_create):
        Initial check-in of memory status applet


Added: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/AUTHORS
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/AUTHORS	2008-01-18 12:12:47 UTC (rev 3881)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/AUTHORS	2008-01-18 12:22:01 UTC (rev 3882)
@@ -0,0 +1 @@
+Chris Lord <chris at openedhand.com>

Added: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/ChangeLog	2008-01-18 12:12:47 UTC (rev 3881)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/ChangeLog	2008-01-18 12:22:01 UTC (rev 3882)
@@ -0,0 +1,10 @@
+2008-01-18  Chris Lord  <chris at openedhand.com>
+
+	* AUTHORS:
+	* autogen.sh:
+	* configure.ac:
+	* src/Makefile.am:
+	* src/openmoko-panel-memory.c: (blink_idle), (memory_full_cb),
+	(mb_panel_applet_create):
+	Initial check-in of memory status applet
+

Added: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/NEWS
===================================================================

Added: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/README
===================================================================

Added: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/autogen.sh
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/autogen.sh	2008-01-18 12:12:47 UTC (rev 3881)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/autogen.sh	2008-01-18 12:22:01 UTC (rev 3882)
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+REQUIRED_AUTOMAKE_VERSION=1.7 exec gnome-autogen.sh $@


Property changes on: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/autogen.sh
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/configure.ac
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/configure.ac	2008-01-18 12:12:47 UTC (rev 3881)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/configure.ac	2008-01-18 12:22:01 UTC (rev 3882)
@@ -0,0 +1,18 @@
+AC_PREREQ(2.53)
+AC_INIT(openmoko-panel-memory, 0.0, http://www.openmoko.org/)
+AM_INIT_AUTOMAKE()
+AC_CONFIG_SRCDIR(src/openmoko-panel-memory.c)
+AM_CONFIG_HEADER(config.h)
+AM_MAINTAINER_MODE
+
+AC_ISC_POSIX
+AC_PROG_CC
+AC_STDC_HEADERS
+AC_PROG_LIBTOOL
+
+PKG_CHECK_MODULES(APPLET, libmokopanelui2 libnotify dbus-glib-1)
+
+AC_OUTPUT([
+Makefile
+src/Makefile
+])

Added: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/src/Makefile.am	2008-01-18 12:12:47 UTC (rev 3881)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/src/Makefile.am	2008-01-18 12:22:01 UTC (rev 3882)
@@ -0,0 +1,12 @@
+AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" -DPKGDATADIR=\"$(pkgdatadir)\"
+AM_CFLAGS = -Wall @APPLET_CFLAGS@
+
+appletdir = $(libdir)/matchbox-panel/
+applet_LTLIBRARIES = libopenmoko-panel-memory.la
+
+libopenmoko_panel_memory_la_SOURCES = \
+	openmoko-panel-memory.c
+
+libopenmoko_panel_memory_la_LIBADD = @APPLET_LIBS@
+
+MAINTAINERCLEANFILES = Makefile.in

Added: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/src/openmoko-panel-memory.c
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/src/openmoko-panel-memory.c	2008-01-18 12:12:47 UTC (rev 3881)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-memory/src/openmoko-panel-memory.c	2008-01-18 12:22:01 UTC (rev 3882)
@@ -0,0 +1,109 @@
+/*  openmoko-panel-memory.c
+ *
+ *  Copyright (C) 2008 OpenMoko Inc.
+ *
+ *  Authored by Chris Lord <chris at openedhand.com>
+ *
+ *  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 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.
+ */
+
+#include <gtk/gtk.h>
+#include <libmokopanelui2/moko-panel-applet.h>
+#include <libnotify/notify.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-bindings.h>
+
+typedef struct {
+	MokoPanelApplet *applet;
+	GtkWidget *image;
+
+	DBusGProxy *sms_proxy;
+	NotifyNotification *notification;
+	
+	guint blink_idle;
+} MemoryAppletData;
+
+static gboolean
+blink_idle (MemoryAppletData *data)
+{
+	g_object_set (G_OBJECT (data->applet), "visible",
+		!GTK_WIDGET_VISIBLE (data->applet), NULL);
+	
+	return TRUE;
+}
+
+static void
+memory_full_cb (DBusGProxy *proxy, gboolean sim_full, gboolean phone_full,
+		MemoryAppletData *data)
+{
+	if (sim_full || phone_full) {
+		const gchar *message;
+		
+		gtk_widget_show (GTK_WIDGET (data->applet));
+		data->blink_idle = g_timeout_add_seconds (1,
+			(GSourceFunc)blink_idle, data);
+		
+		if (sim_full && phone_full) {
+			message = "Phone and SIM memory full";
+		} else if (sim_full) {
+			message = "SIM memory full";
+		} else {
+			message = "Phone memory full";
+		}
+		g_object_set (G_OBJECT (data->notification),
+			"body", message, NULL);
+		
+		notify_notification_show (data->notification, NULL);
+	} else {
+		g_source_remove (data->blink_idle);
+		gtk_widget_hide (GTK_WIDGET (data->applet));
+		notify_notification_close (data->notification, NULL);
+	}
+}
+
+G_MODULE_EXPORT GtkWidget *
+mb_panel_applet_create (const char* id, GtkOrientation orientation)
+{
+	DBusGConnection *connection;
+	MemoryAppletData *data;
+	
+	GError *error = NULL;
+	
+	if (!(connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error))) {
+		g_warning ("Failed to get dbus connection: %s", error->message);
+		g_error_free (error);
+		return NULL;
+	}
+	
+	data = g_slice_new0 (MemoryAppletData);
+	
+	data->sms_proxy = dbus_g_proxy_new_for_name (connection,
+		"org.openmoko.PhoneKit", "/org/openmoko/PhoneKit/Sms",
+		"org.openmoko.PhoneKit.Sms");
+	
+	dbus_g_proxy_add_signal (data->sms_proxy, "MemoryFull",
+		G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal (data->sms_proxy, "MemoryFull",
+		G_CALLBACK (memory_full_cb), data, NULL);
+	
+	notify_init ("openmoko-panel-memory");
+	data->notification = notify_notification_new ("Memory full", "",
+		GTK_STOCK_DIALOG_WARNING, NULL);
+	
+	data->applet = MOKO_PANEL_APPLET(moko_panel_applet_new());
+	
+	data->image = gtk_image_new_from_stock (
+		GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU);
+	gtk_widget_show (data->image);
+	moko_panel_applet_set_widget (data->applet, data->image);
+	
+	return GTK_WIDGET (data->applet);
+}
+





More information about the commitlog mailing list