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

Reply via email to