r3285 - in trunk/src/target/OM-2007.2/applications/openmoko-today2: . src
chris at sita.openmoko.org
chris at sita.openmoko.org
Fri Oct 26 15:34:15 CEST 2007
Author: chris
Date: 2007-10-26 15:34:10 +0200 (Fri, 26 Oct 2007)
New Revision: 3285
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-launcher.c
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:
* src/today-launcher.c: (redraw_widget_now),
(viewport_set_scroll_adjustments_cb), (table_expose_cb),
(today_launcher_page_create):
* src/today-main.c: (main):
* src/today.h:
Add some disabled code to draw wallpaper in the background of the
launcher
Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog 2007-10-26 11:46:42 UTC (rev 3284)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog 2007-10-26 13:34:10 UTC (rev 3285)
@@ -1,3 +1,13 @@
+2007-10-26 Chris Lord <chris at openedhand.com>
+
+ * src/today-launcher.c: (redraw_widget_now),
+ (viewport_set_scroll_adjustments_cb), (table_expose_cb),
+ (today_launcher_page_create):
+ * src/today-main.c: (main):
+ * src/today.h:
+ Add some disabled code to draw wallpaper in the background of the
+ launcher
+
2007-10-26 Thomas Wood <thomas at openedhand.com>
* src/today-main.c: (main): Do not hard code theme settings
Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-launcher.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-launcher.c 2007-10-26 11:46:42 UTC (rev 3284)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-launcher.c 2007-10-26 13:34:10 UTC (rev 3285)
@@ -364,10 +364,77 @@
}
}
+/* If there's zero padding around tiles and redraw is forced for every scroll,
+ * the following function also works to paint the wallpaper under the tiles.
+ */
+/*static gboolean
+tile_expose_cb (GtkWidget *widget, GdkEventExpose *event, TodayData *data)
+{
+ GtkAdjustment *vadjustment;
+
+ if (!data->wallpaper) return FALSE;
+
+ vadjustment = gtk_viewport_get_vadjustment (
+ (GtkViewport *)data->launcher_viewport);
+ gdk_draw_drawable (widget->window, widget->style->black_gc,
+ data->wallpaper, widget->allocation.x,
+ widget->allocation.y - vadjustment->value,
+ widget->allocation.x, widget->allocation.y,
+ widget->allocation.width, widget->allocation.height);
+
+ return FALSE;
+}*/
+
+static void
+redraw_widget_now (GtkWidget *widget)
+{
+ GdkRectangle rect;
+ rect.x = 0;
+ rect.y = 0;
+ rect.width = widget->allocation.width;
+ rect.height = widget->allocation.height;
+ gdk_window_invalidate_rect (widget->window, &rect, TRUE);
+ gdk_window_process_updates (widget->window, TRUE);
+}
+
+static void
+viewport_set_scroll_adjustments_cb (GtkViewport *viewport,
+ GtkAdjustment *hadjust,
+ GtkAdjustment *vadjust,
+ TodayData *data)
+{
+ static gpointer instance = NULL;
+ static gulong id = 0;
+
+ if (instance) g_signal_handler_disconnect (instance, id);
+ if (vadjust) {
+ instance = vadjust;
+ id = g_signal_connect_swapped (vadjust, "value-changed",
+ G_CALLBACK (redraw_widget_now), viewport);
+ } else {
+ instance = NULL;
+ }
+}
+
+static gboolean
+table_expose_cb (GtkWidget *widget, GdkEventExpose *event, TodayData *data)
+{
+ GtkAdjustment *vadjustment;
+
+ if (!data->wallpaper) return FALSE;
+
+ vadjustment = gtk_viewport_get_vadjustment (
+ (GtkViewport *)data->launcher_viewport);
+ gdk_draw_drawable (widget->window, widget->style->black_gc,
+ data->wallpaper, 0, 0, 0, vadjustment->value, -1, -1);
+
+ return FALSE;
+}
+
GtkWidget *
today_launcher_page_create (TodayData *data)
{
- GtkWidget *main_vbox, *hbox, *toggle, *viewport, *scroll;
+ GtkWidget *main_vbox, *hbox, *toggle, *scroll;
const char * const *dirs;
gchar *vfolder_dir;
@@ -399,12 +466,20 @@
FALSE, TRUE, 0);
gtk_widget_show (data->search_bar);
- viewport = gtk_viewport_new (NULL, NULL);
- gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport),
+ data->launcher_viewport = gtk_viewport_new (NULL, NULL);
+ gtk_viewport_set_shadow_type (GTK_VIEWPORT (data->launcher_viewport),
GTK_SHADOW_NONE);
gtk_icon_size_register ("taku-icon", 64, 64);
data->launcher_table = taku_table_new ();
+#ifdef SLOW_BLING
+ /* Draw the wallpaper in the background of the table */
+ g_signal_connect (data->launcher_viewport, "set-scroll-adjustments",
+ G_CALLBACK (viewport_set_scroll_adjustments_cb), data);
+ g_signal_connect (data->launcher_table, "expose-event",
+ G_CALLBACK (table_expose_cb), data);
+#endif
+
/* Create search category */
data->search_cat = g_new0 (TakuLauncherCategory, 1);
data->search_cat->name = g_strdup ("Search");
@@ -458,10 +533,11 @@
/* Make sure initial search shows all items */
today_launcher_update_search (data, "");
- gtk_container_add (GTK_CONTAINER (viewport), data->launcher_table);
+ gtk_container_add (GTK_CONTAINER (data->launcher_viewport),
+ data->launcher_table);
scroll = moko_finger_scroll_new ();
- gtk_container_add (GTK_CONTAINER (scroll), viewport);
+ gtk_container_add (GTK_CONTAINER (scroll), data->launcher_viewport);
gtk_box_pack_start (GTK_BOX (main_vbox), scroll, TRUE, TRUE, 0);
gtk_widget_show_all (scroll);
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-26 11:46:42 UTC (rev 3284)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c 2007-10-26 13:34:10 UTC (rev 3285)
@@ -392,6 +392,17 @@
g_signal_connect (G_OBJECT (data.window), "delete-event",
G_CALLBACK (gtk_main_quit), NULL);
+#if 0
+ /* This block here to ease testing, please don't remove! */
+ /* Force theme settings */
+ g_object_set (gtk_settings_get_default (),
+ "gtk-theme-name", "openmoko-standard-2",
+ "gtk-icon-theme-name", "openmoko-standard",
+ "gtk-xft-dpi", 285 * 1024,
+ "gtk-font-name", "Sans 6",
+ NULL);
+#endif
+
#ifndef STANDALONE
x = 0; y = 0; w = 480; h = 640;
gtk_window_set_type_hint (GTK_WINDOW (data.window),
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-26 11:46:42 UTC (rev 3284)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h 2007-10-26 13:34:10 UTC (rev 3285)
@@ -45,6 +45,7 @@
/* App launcher */
GList *categories;
GtkWidget *launcher_table;
+ GtkWidget *launcher_viewport;
GtkWidget *search_bar;
GtkWidget *filter_combo;
TakuLauncherCategory *search_cat;
More information about the commitlog
mailing list