Send commitlog mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
[EMAIL PROTECTED]
You can reach the person managing the list at
[EMAIL PROTECTED]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:
1. r3240 - in
trunk/src/target/OM-2007.2/libraries/moko-gtk-engine: . data
([EMAIL PROTECTED])
2. r3241 - in trunk/src/target/OM-2007.2/applications: .
openmoko-worldclock2 openmoko-worldclock2/src
([EMAIL PROTECTED])
3. r3242 - in
trunk/src/target/OM-2007.2/applications/openmoko-today2: . src
([EMAIL PROTECTED])
4. r3243 - in
trunk/src/target/OM-2007.2/applications/openmoko-today2: . src
([EMAIL PROTECTED])
5. r3244 - in
trunk/src/target/OM-2007.2/applications/openmoko-today2: . src
([EMAIL PROTECTED])
--- Begin Message ---
Author: thomas
Date: 2007-10-22 12:16:33 +0200 (Mon, 22 Oct 2007)
New Revision: 3240
Modified:
trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog
trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/data/gtkrc
Log:
* data/gtkrc: Button style tweaks
Modified: trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog
2007-10-22 08:59:54 UTC (rev 3239)
+++ trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog
2007-10-22 10:16:33 UTC (rev 3240)
@@ -1,3 +1,7 @@
+2007-10-22 Thomas Wood <[EMAIL PROTECTED]>
+
+ * data/gtkrc: Button style tweaks
+
2007-10-10 Thomas Wood <[EMAIL PROTECTED]>
* data/gtkrc: Correct ComboBox style
Modified: trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/data/gtkrc
===================================================================
--- trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/data/gtkrc
2007-10-22 08:59:54 UTC (rev 3239)
+++ trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/data/gtkrc
2007-10-22 10:16:33 UTC (rev 3240)
@@ -100,6 +100,8 @@
style "button"
{
+ # inner-border was added in GTK+ 2.10
+ GtkButton::inner_border = {15, 15, 10, 10}
engine "moko-engine" {
border = TRUE
gradient = TRUE
@@ -107,14 +109,45 @@
}
class "GtkButton" style "button"
-style "combo-fix" {
+style "button-colors" {
+ bg[NORMAL] = "#333"
+ fg[NORMAL] = "#fff"
+
+ bg[PRELIGHT] = "#333"
+ fg[PRELIGHT] = "#fff"
+}
+widget_class "GtkButton*" style "button-colors"
+
+style "treeview-header" {
+
+ # inner-border was added in GTK+ 2.10
+ GtkButton::inner_border = {0, 0, 0, 0}
+
+ bg[NORMAL] = "#eee"
+ fg[NORMAL] = "#000"
+
+ bg[PRELIGHT] = "#eee"
+ fg[PRELIGHT] = "#000"
+
+ engine "moko-engine" {
+ border = FALSE
+ gradient = TRUE
+ }
+}
+widget_class "*GtkTreeView.GtkButton*" style "treeview-header"
+
+style "combo" {
bg[NORMAL] = @selected_bg_color
text[NORMAL] = @selected_fg_color
bg[PRELIGHT] = @selected_bg_color
text[PRELIGHT] = @selected_fg_color
+
+ engine "moko-engine" {
+ gradient = TRUE
+ }
}
-widget_class "*Combo*" style "combo-fix"
+widget_class "*Combo*" style "combo"
style "toolbar"
{
--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-10-22 12:59:30 +0200 (Mon, 22 Oct 2007)
New Revision: 3241
Added:
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/AUTHORS
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/Makefile.am
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/NEWS
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/README
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/autogen.sh
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/configure.ac
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/Makefile.am
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/worldclock-main.c
Log:
* AUTHORS:
* Makefile.am:
* autogen.sh:
* configure.ac:
* src/Makefile.am:
* src/worldclock-main.c:
Initial check-in
Added: trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/AUTHORS
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/AUTHORS
2007-10-22 10:16:33 UTC (rev 3240)
+++ trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/AUTHORS
2007-10-22 10:59:30 UTC (rev 3241)
@@ -0,0 +1 @@
+Chris Lord <[EMAIL PROTECTED]>
Added: trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/ChangeLog
2007-10-22 10:16:33 UTC (rev 3240)
+++ trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/ChangeLog
2007-10-22 10:59:30 UTC (rev 3241)
@@ -0,0 +1,10 @@
+2007-10-22 Chris Lord <[EMAIL PROTECTED]>
+
+ * AUTHORS:
+ * Makefile.am:
+ * autogen.sh:
+ * configure.ac:
+ * src/Makefile.am:
+ * src/worldclock-main.c:
+ Initial check-in
+
Added: trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/Makefile.am
2007-10-22 10:16:33 UTC (rev 3240)
+++ trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/Makefile.am
2007-10-22 10:59:30 UTC (rev 3241)
@@ -0,0 +1 @@
+SUBDIRS=src
Added: trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/NEWS
===================================================================
Added: trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/README
===================================================================
Added: trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/autogen.sh
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/autogen.sh
2007-10-22 10:16:33 UTC (rev 3240)
+++ trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/autogen.sh
2007-10-22 10:59:30 UTC (rev 3241)
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+REQUIRED_AUTOMAKE_VERSION=1.7 exec gnome-autogen.sh $@
Property changes on:
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/autogen.sh
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/configure.ac
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/configure.ac
2007-10-22 10:16:33 UTC (rev 3240)
+++ trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/configure.ac
2007-10-22 10:59:30 UTC (rev 3241)
@@ -0,0 +1,21 @@
+AC_PREREQ(2.53)
+AC_INIT(openmoko-worldclock, 0.0, http://www.openedhand.com/)
+AM_INIT_AUTOMAKE()
+AC_CONFIG_SRCDIR(src/worldclock-main.c)
+AM_CONFIG_HEADER(config.h)
+AM_MAINTAINER_MODE
+
+AC_ISC_POSIX
+AC_PROG_CC
+AC_STDC_HEADERS
+AC_PROG_LIBTOOL
+
+PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.6.0)
+PKG_CHECK_MODULES(MOKOUI, libmokoui2 >= 0.3)
+PKG_CHECK_MODULES(JANA, libjana libjana-ecal libjana-gtk)
+
+AC_OUTPUT([
+Makefile
+src/Makefile
+])
+
Added:
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/Makefile.am
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/Makefile.am
2007-10-22 10:16:33 UTC (rev 3240)
+++
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/Makefile.am
2007-10-22 10:59:30 UTC (rev 3241)
@@ -0,0 +1,8 @@
+
+AM_CPPFLAGS = -DPKGDATADIR=\"$(pkgdatadir)\" $(GTK_CFLAGS) $(JANA_CFLAGS)
$(MOKOUI_CFLAGS) -Wall
+AM_LDFLAGS = $(GTK_LIBS) $(JANA_LIBS) $(MOKOUI_LIBS)
+
+bin_PROGRAMS=openmoko-worldclock
+
+openmoko_worldclock_SOURCES = worldclock-main.c
+
Added:
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/worldclock-main.c
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/worldclock-main.c
2007-10-22 10:16:33 UTC (rev 3240)
+++
trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/worldclock-main.c
2007-10-22 10:59:30 UTC (rev 3241)
@@ -0,0 +1,194 @@
+
+#include <gtk/gtk.h>
+#include <libjana/jana.h>
+#include <libjana-ecal/jana-ecal.h>
+#include <libjana-gtk/jana-gtk.h>
+#include <libmokoui2/moko-finger-scroll.h>
+
+static gchar *location;
+
+typedef struct {
+ GtkWidget *window;
+ GtkWidget *map;
+ GtkWidget *load_window;
+ GtkWidget *load_bar;
+
+ guint render_idle;
+
+ gchar *location;
+ gdouble zoom_level;
+} WorldClockData;
+
+static inline GtkToolItem *
+worldclock_utils_toolbutton_new (const gchar *icon_name)
+{
+ GtkToolItem *button = gtk_tool_button_new_from_stock (icon_name);
+ gtk_tool_item_set_expand (button, TRUE);
+ return button;
+}
+
+static void
+zoom_map (WorldClockData *data)
+{
+ if (data->zoom_level <= 0.95) {
+ data->zoom_level = 1;
+ gtk_widget_set_size_request (data->map, -1, -1);
+ } else {
+ gint width, height;
+ gtk_window_get_size (GTK_WINDOW (data->window),
+ &width, &height);
+ gtk_widget_set_size_request (data->map,
+ width * data->zoom_level,
+ height * data->zoom_level);
+ }
+}
+
+static void
+zoom_in_clicked_cb (GtkToolButton *button, WorldClockData *data)
+{
+ data->zoom_level *= 1.2;
+ zoom_map (data);
+}
+
+static void
+zoom_out_clicked_cb (GtkToolButton *button, WorldClockData *data)
+{
+ data->zoom_level /= 1.2;
+ zoom_map (data);
+}
+
+static gboolean
+set_time (GtkWidget *map)
+{
+ JanaTime *time;
+
+ time = jana_ecal_utils_time_now (location);
+ jana_gtk_world_map_set_time (JANA_GTK_WORLD_MAP (map), time);
+ g_object_unref (time);
+
+ return TRUE;
+}
+
+static gboolean
+render_idle (WorldClockData *data)
+{
+ gtk_progress_bar_pulse (GTK_PROGRESS_BAR (data->load_bar));
+ gtk_widget_queue_draw (data->map);
+ return TRUE;
+}
+
+static void
+render_start_cb (JanaGtkWorldMap *map, WorldClockData *data)
+{
+ data->render_idle = g_timeout_add (
+ 1000/5, (GSourceFunc)render_idle, data);
+ gtk_widget_show (data->load_window);
+}
+
+static void
+render_stop_cb (JanaGtkWorldMap *map, WorldClockData *data)
+{
+ g_source_remove (data->render_idle);
+ gtk_widget_hide (data->load_window);
+}
+
+int
+main (int argc, char **argv)
+{
+ WorldClockData data;
+ GtkToolItem *button;
+ GtkWidget *vbox, *scroll, *toolbar, *ebox, *label, *load_vbox, *frame;
+ guint id;
+
+ gtk_init (&argc, &argv);
+
+ data.zoom_level = 1;
+
+ data.window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ vbox = gtk_vbox_new (FALSE, 0);
+
+ /* Create toolbar */
+ toolbar = gtk_toolbar_new ();
+
+ /* Zoom in button */
+ button = worldclock_utils_toolbutton_new (GTK_STOCK_ZOOM_IN);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), button, 0);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar),
+ gtk_separator_tool_item_new (), 0);
+ g_signal_connect (button, "clicked",
+ G_CALLBACK (zoom_in_clicked_cb), &data);
+
+ /* Zoom out button */
+ button = worldclock_utils_toolbutton_new (GTK_STOCK_ZOOM_OUT);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), button, 0);
+ g_signal_connect (button, "clicked",
+ G_CALLBACK (zoom_out_clicked_cb), &data);
+
+ gtk_widget_show_all (toolbar);
+
+ /* Create scrolling map */
+ data.map = jana_gtk_world_map_new ();
+ scroll = moko_finger_scroll_new ();
+ moko_finger_scroll_add_with_viewport (MOKO_FINGER_SCROLL (scroll),
+ data.map);
+ g_object_set (G_OBJECT (scroll), "mode", MOKO_FINGER_SCROLL_MODE_PUSH,
+ NULL);
+ gtk_widget_show_all (scroll);
+ g_signal_connect (data.map, "render_start",
+ G_CALLBACK (render_start_cb), &data);
+ g_signal_connect (data.map, "render_stop",
+ G_CALLBACK (render_stop_cb), &data);
+
+ /* Create rendering indicator */
+ frame = gtk_frame_new (NULL);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
+ ebox = gtk_event_box_new ();
+ load_vbox = gtk_vbox_new (FALSE, 12);
+ gtk_container_set_border_width (GTK_CONTAINER (load_vbox), 12);
+ label = gtk_label_new ("Loading...");
+ data.load_bar = gtk_progress_bar_new ();
+ gtk_box_pack_start (GTK_BOX (load_vbox), label, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (load_vbox), data.load_bar, TRUE, TRUE, 0);
+ gtk_container_add (GTK_CONTAINER (ebox), load_vbox);
+ gtk_container_add (GTK_CONTAINER (frame), ebox);
+ gtk_widget_show_all (frame);
+ data.load_window = gtk_window_new (GTK_WINDOW_POPUP);
+ gtk_window_set_transient_for (GTK_WINDOW (data.load_window),
+ GTK_WINDOW (data.window));
+ gtk_window_set_position (GTK_WINDOW (data.load_window),
+ GTK_WIN_POS_CENTER_ON_PARENT);
+ gtk_container_add (GTK_CONTAINER (data.load_window), frame);
+
+ /* Pack */
+ gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), scroll, TRUE, TRUE, 0);
+ gtk_container_add (GTK_CONTAINER (data.window), vbox);
+ gtk_widget_show (vbox);
+
+#if 0
+ /* Force theme settings */
+ g_object_set (gtk_settings_get_default (),
+ "gtk-theme-name", "openmoko-standard-2", /* Moko */
+ "gtk-icon-theme-name", "openmoko-standard",
+ "gtk-xft-dpi", 285 * 1024,
+ "gtk-font-name", "Sans 6",
+ NULL);
+ gtk_window_set_default_size (GTK_WINDOW (data.window), 480, 600);
+#endif
+
+ location = jana_ecal_utils_guess_location ();
+ id = g_timeout_add (1000 * 60 * 10, (GSourceFunc)set_time, data.map);
+ set_time (data.map);
+
+ g_signal_connect (data.window, "delete-event",
+ G_CALLBACK (gtk_main_quit), NULL);
+ gtk_widget_show (data.window);
+
+ gtk_main ();
+
+ g_source_remove (id);
+ g_free (location);
+
+ return 0;
+}
+
--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-10-22 18:19:52 +0200 (Mon, 22 Oct 2007)
New Revision: 3242
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-today2/configure.ac
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/Makefile.am
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h
Log:
* configure.ac:
* src/Makefile.am:
* src/today-main.c: (bg_expose_cb), (bg_size_allocate_cb),
(today_create_home_page), (wallpaper_notify), (main):
* src/today.h:
Add wallpaper support
Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
2007-10-22 10:59:30 UTC (rev 3241)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
2007-10-22 16:19:52 UTC (rev 3242)
@@ -1,3 +1,12 @@
+2007-10-22 Chris Lord <[EMAIL PROTECTED]>
+
+ * configure.ac:
+ * src/Makefile.am:
+ * src/today-main.c: (bg_expose_cb), (bg_size_allocate_cb),
+ (today_create_home_page), (wallpaper_notify), (main):
+ * src/today.h:
+ Add wallpaper support
+
2007-10-15 Thomas Wood <[EMAIL PROTECTED]>
* src/today-main.c: (today_dial_button_clicked_cb): Don't use -s
Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/configure.ac
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/configure.ac
2007-10-22 10:59:30 UTC (rev 3241)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/configure.ac
2007-10-22 16:19:52 UTC (rev 3242)
@@ -34,6 +34,7 @@
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= $LIBGTK_VERSION)
PKG_CHECK_MODULES(ECAL, libecal-1.2 >= $LIBECAL_VERSION)
PKG_CHECK_MODULES(EBOOK, libebook-1.2 >= $LIBEBOOK_VERSION)
+PKG_CHECK_MODULES(GCONF, gconf-2.0)
AC_ARG_ENABLE(startup_notification,
AC_HELP_STRING([--enable-startup-notification], [enable startup
notification support]),
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/Makefile.am
2007-10-22 10:59:30 UTC (rev 3241)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/Makefile.am
2007-10-22 16:19:52 UTC (rev 3242)
@@ -5,7 +5,8 @@
-DDATADIR=\""$(datadir)"\" -D_GNU_SOURCE
AM_CFLAGS = -Wall -pedantic -std=c99 @GTK_CFLAGS@ @ECAL_CFLAGS@ \
- @EBOOK_CFLAGS@ @MOKOUI_CFLAGS@ @MOKOJOURNAL_CFLAGS@
+ @EBOOK_CFLAGS@ @MOKOUI_CFLAGS@ @MOKOJOURNAL_CFLAGS@ \
+ @GCONF_CFLAGS@
bin_PROGRAMS = openmoko-today
@@ -25,12 +26,15 @@
today-task-manager.c \
today-task-manager.h \
today-pim-journal.c \
- today-pim-journal.h
+ today-pim-journal.h \
+ today-clock.c \
+ today-clock.h
openmoko_today_LDADD = $(top_builddir)/libkoto/libkoto.a \
$(top_builddir)/libtaku/libtaku.a \
@GTK_LIBS@ @ECAL_LIBS@ @EBOOK_LIBS@ @SEXY_LIBS@ \
- @SN_LIBS@ @MOKOUI_LIBS@ @MOKOJOURNAL_LIBS@
+ @SN_LIBS@ @MOKOUI_LIBS@ @MOKOJOURNAL_LIBS@ \
+ @GCONF_LIBS@
MAINTAINERCLEANFILES = config.h.in Makefile.in
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
2007-10-22 10:59:30 UTC (rev 3241)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
2007-10-22 16:19:52 UTC (rev 3242)
@@ -4,6 +4,7 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
+#include <gconf/gconf-client.h>
#include <moko-finger-scroll.h>
#include <libtaku/launcher-util.h>
#include <libtaku/xutil.h>
@@ -60,6 +61,25 @@
{ "openmoko-dates", NULL }, TRUE, TRUE));
}
+static gboolean
+bg_expose_cb (GtkWidget *widget, GdkEventExpose *event, TodayData *data)
+{
+ if (data->wallpaper)
+ gdk_draw_drawable (widget->window, widget->style->black_gc,
+ data->wallpaper, 0, 0, 0, 0, -1, -1);
+
+ return FALSE;
+}
+
+static void
+bg_size_allocate_cb (GtkWidget *widget, GtkAllocation *allocation,
+ TodayData *data)
+{
+ /* Re-scale wallpaper */
+ gconf_client_notify (gconf_client_get_default (),
+ GCONF_POKY_INTERFACE_PREFIX GCONF_POKY_WALLPAPER);
+}
+
static GtkWidget *
today_create_home_page (TodayData *data)
{
@@ -110,13 +130,8 @@
gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport),
GTK_SHADOW_NONE);
gtk_widget_show_all (scroll);
- align = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT (align), 6, 6, 6, 6);
- gtk_container_add (GTK_CONTAINER (viewport), align);
vbox = gtk_vbox_new (FALSE, 6);
- gtk_container_add (GTK_CONTAINER (align), vbox);
- gtk_widget_show_all (align);
data->message_box = today_pim_journal_box_new (data);
gtk_box_pack_start (GTK_BOX (vbox), data->message_box, FALSE, TRUE, 0);
@@ -126,9 +141,83 @@
gtk_box_pack_start (GTK_BOX (vbox), data->summary_box, FALSE, TRUE, 6);
gtk_widget_show (data->summary_box);
+ /* Create event box with background */
+ data->bg_ebox = gtk_event_box_new ();
+ gtk_widget_set_app_paintable (data->bg_ebox, TRUE);
+ g_signal_connect_after (data->bg_ebox, "expose-event",
+ G_CALLBACK (bg_expose_cb), data);
+ g_signal_connect_after (data->bg_ebox, "size-allocate",
+ G_CALLBACK (bg_size_allocate_cb), data);
+
+ align = gtk_alignment_new (0.5, 0.5, 1, 1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (align), 6, 6, 6, 6);
+ gtk_container_add (GTK_CONTAINER (viewport), data->bg_ebox);
+ gtk_container_add (GTK_CONTAINER (data->bg_ebox), align);
+ gtk_container_add (GTK_CONTAINER (align), vbox);
+ gtk_widget_show_all (data->bg_ebox);
+
return main_vbox;
}
+static void
+wallpaper_notify (GConfClient *client, guint cnxn_id,
+ GConfEntry *entry, TodayData *data)
+{
+ gint width, height, pwidth, pheight;
+ GdkPixbuf *pixbuf, *pixbuf_scaled;
+ GConfValue *value;
+ const gchar *path;
+ gfloat scale;
+
+ if (!GTK_WIDGET_REALIZED (data->bg_ebox))
+ gtk_widget_realize (data->bg_ebox);
+
+ /* Return if the background is tiny, we'll get called again when it
+ * resizes anyway.
+ */
+ width = data->bg_ebox->allocation.width;
+ height = data->bg_ebox->allocation.height;
+ if ((width <= 0) || (height <= 0)) return;
+
+ value = gconf_entry_get_value (entry);
+ path = gconf_value_get_string (value);
+ if (!path || (!(pixbuf = gdk_pixbuf_new_from_file (path, NULL)))) {
+ if (data->wallpaper) {
+ g_object_unref (data->wallpaper);
+ data->wallpaper = NULL;
+ gtk_widget_queue_draw (data->bg_ebox);
+ }
+ return;
+ }
+
+ /* Create background pixmap */
+ if (data->wallpaper) g_object_unref (data->wallpaper);
+ data->wallpaper = gdk_pixmap_new (data->bg_ebox->window,
+ width, height, -1);
+
+ /* Scale and draw pixbuf */
+ pwidth = gdk_pixbuf_get_width (pixbuf);
+ pheight = gdk_pixbuf_get_height (pixbuf);
+ if (((gfloat)pwidth / (gfloat)pheight) >
+ ((gfloat)width / (gfloat)height))
+ scale = (gfloat)height/(gfloat)pheight;
+ else
+ scale = (gfloat)width/(gfloat)pwidth;
+ pwidth *= scale;
+ pheight *= scale;
+ pixbuf_scaled = gdk_pixbuf_scale_simple (pixbuf, pwidth, pheight,
+ GDK_INTERP_BILINEAR);
+ if (pixbuf_scaled) {
+ gdk_draw_pixbuf (data->wallpaper, NULL, pixbuf_scaled,
+ 0, 0, 0, 0, -1, -1, GDK_RGB_DITHER_MAX, 0, 0);
+ g_object_unref (pixbuf_scaled);
+ }
+ g_object_unref (pixbuf);
+
+ /* Redraw */
+ gtk_widget_queue_draw (data->bg_ebox);
+}
+
int
main (int argc, char **argv)
{
@@ -142,6 +231,8 @@
static GOptionEntry entries[] = {
{ NULL }
};
+
+ data.wallpaper = NULL;
/* Initialise */
bindtextdomain (GETTEXT_PACKAGE, TODAY_LOCALE_DIR);;
@@ -184,7 +275,7 @@
/* Connect up signals */
g_signal_connect (G_OBJECT (data.window), "delete-event",
G_CALLBACK (gtk_main_quit), NULL);
-
+
#if 0
/* Force theme settings */
g_object_set (gtk_settings_get_default (),
@@ -206,6 +297,17 @@
/* Show and start */
gtk_widget_show (data.window);
+
+ /* Listen to wallpaper setting */
+ gconf_client_add_dir (gconf_client_get_default (),
+ GCONF_POKY_INTERFACE_PREFIX, GCONF_CLIENT_PRELOAD_NONE, NULL);
+ gconf_client_notify_add (gconf_client_get_default (),
+ GCONF_POKY_INTERFACE_PREFIX GCONF_POKY_WALLPAPER,
+ (GConfClientNotifyFunc)wallpaper_notify,
+ &data, NULL, NULL);
+ gconf_client_notify (gconf_client_get_default (),
+ GCONF_POKY_INTERFACE_PREFIX GCONF_POKY_WALLPAPER);
+
gtk_main ();
return 0;
Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h
2007-10-22 10:59:30 UTC (rev 3241)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h
2007-10-22 16:19:52 UTC (rev 3242)
@@ -6,6 +6,9 @@
#include <libtaku/taku-launcher-tile.h>
#include <moko-journal.h>
+#define GCONF_POKY_INTERFACE_PREFIX "/desktop/poky/interface"
+#define GCONF_POKY_WALLPAPER "/wallpaper"
+
typedef struct {
/* Home */
GtkWidget *window;
@@ -17,6 +20,8 @@
GtkToolItem *contacts_button;
GtkToolItem *messages_button;
GtkToolItem *dates_button;
+ GtkWidget *bg_ebox;
+ GdkPixmap *wallpaper;
GtkTreeModel *events_model;
GtkTreeModel *tasks_model;
--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-10-22 19:03:26 +0200 (Mon, 22 Oct 2007)
New Revision: 3243
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
Log:
* src/today-main.c: (today_create_home_page):
No need to connect_after on event box signals
Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
2007-10-22 16:19:52 UTC (rev 3242)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
2007-10-22 17:03:26 UTC (rev 3243)
@@ -1,5 +1,10 @@
2007-10-22 Chris Lord <[EMAIL PROTECTED]>
+ * src/today-main.c: (today_create_home_page):
+ No need to connect_after on event box signals
+
+2007-10-22 Chris Lord <[EMAIL PROTECTED]>
+
* configure.ac:
* src/Makefile.am:
* src/today-main.c: (bg_expose_cb), (bg_size_allocate_cb),
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
2007-10-22 16:19:52 UTC (rev 3242)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
2007-10-22 17:03:26 UTC (rev 3243)
@@ -144,9 +144,9 @@
/* Create event box with background */
data->bg_ebox = gtk_event_box_new ();
gtk_widget_set_app_paintable (data->bg_ebox, TRUE);
- g_signal_connect_after (data->bg_ebox, "expose-event",
+ g_signal_connect (data->bg_ebox, "expose-event",
G_CALLBACK (bg_expose_cb), data);
- g_signal_connect_after (data->bg_ebox, "size-allocate",
+ g_signal_connect (data->bg_ebox, "size-allocate",
G_CALLBACK (bg_size_allocate_cb), data);
align = gtk_alignment_new (0.5, 0.5, 1, 1);
--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-10-22 19:24:07 +0200 (Mon, 22 Oct 2007)
New Revision: 3244
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
Log:
* src/today-main.c: (bg_size_allocate_cb):
Check the size against the last allocated size, or we can get into
semi-infinite loops
Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
2007-10-22 17:03:26 UTC (rev 3243)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
2007-10-22 17:24:07 UTC (rev 3244)
@@ -1,5 +1,11 @@
2007-10-22 Chris Lord <[EMAIL PROTECTED]>
+ * src/today-main.c: (bg_size_allocate_cb):
+ Check the size against the last allocated size, or we can get into
+ semi-infinite loops
+
+2007-10-22 Chris Lord <[EMAIL PROTECTED]>
+
* src/today-main.c: (today_create_home_page):
No need to connect_after on event box signals
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
2007-10-22 17:03:26 UTC (rev 3243)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
2007-10-22 17:24:07 UTC (rev 3244)
@@ -75,9 +75,15 @@
bg_size_allocate_cb (GtkWidget *widget, GtkAllocation *allocation,
TodayData *data)
{
+ static gint width = 0, height = 0;
+
/* Re-scale wallpaper */
- gconf_client_notify (gconf_client_get_default (),
- GCONF_POKY_INTERFACE_PREFIX GCONF_POKY_WALLPAPER);
+ if ((width != allocation->width) || (height != allocation->height)) {
+ width = allocation->width;
+ height = allocation->height;
+ gconf_client_notify (gconf_client_get_default (),
+ GCONF_POKY_INTERFACE_PREFIX GCONF_POKY_WALLPAPER);
+ }
}
static GtkWidget *
--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog