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. r3024 - in trunk/src/target/OM-2007.2/libraries/libmokoui2: .
      libmokoui ([EMAIL PROTECTED])
   2. r3025 - in trunk/src/target/OM-2007.2/libraries/libmokoui2: .
      libmokoui ([EMAIL PROTECTED])
   3. r3026 - in trunk/src/target/OM-2007.2/libraries/libmokoui2: .
      libmokoui ([EMAIL PROTECTED])
   4. r3027 - in
      trunk/src/target/OM-2007.2/libraries/moko-gtk-engine: . src
      ([EMAIL PROTECTED])
   5. r3028 - in trunk/src/target/OM-2007.2/libraries/libmokoui2: .
      libmokoui ([EMAIL PROTECTED])
   6. r3029 - in
      trunk/src/target/OM-2007.2/libraries/moko-gtk-engine: .   data src
      ([EMAIL PROTECTED])
   7. r3030 - in
      trunk/src/target/OM-2007.2/applications/openmoko-browser2:        . src
      ([EMAIL PROTECTED])
   8. r3031 - in
      trunk/src/target/OM-2007.2/applications/openmoko-browser2:        . src
      ([EMAIL PROTECTED])
--- Begin Message ---
Author: chris
Date: 2007-09-21 12:53:36 +0200 (Fri, 21 Sep 2007)
New Revision: 3024

Modified:
   trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog
   
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-finger-scroll.c
Log:
Don't ignore 'mode' in moko_finger_scroll_new_full, fix documentation 
for "velocity_max" property


Modified: trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog   2007-09-21 
09:34:30 UTC (rev 3023)
+++ trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog   2007-09-21 
10:53:36 UTC (rev 3024)
@@ -1,3 +1,10 @@
+2007-09-21  Chris Lord  <[EMAIL PROTECTED]>
+
+       * libmokoui/moko-finger-scroll.c: (moko_finger_scroll_class_init),
+       (moko_finger_scroll_init), (moko_finger_scroll_new_full):
+       Don't ignore 'mode' in moko_finger_scroll_new_full, fix documentation
+       for "velocity_max" property
+
 2007-09-21  Thomas Wood  <[EMAIL PROTECTED]>
 
        * libmokoui/moko-stock.c: (_moko_stock_add_icon):

Modified: 
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-finger-scroll.c
===================================================================
--- 
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-finger-scroll.c  
    2007-09-21 09:34:30 UTC (rev 3023)
+++ 
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-finger-scroll.c  
    2007-09-21 10:53:36 UTC (rev 3024)
@@ -694,7 +694,7 @@
                g_param_spec_double (
                        "velocity_max",
                        "Maximum scroll velocity",
-                       "Minimum distance the child widget should scroll "
+                       "Maximum distance the child widget should scroll "
                                "per 'frame', in pixels.",
                        0, G_MAXDOUBLE, 48,
                        G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
@@ -754,8 +754,10 @@
        
        gtk_widget_add_events (GTK_WIDGET (self), GDK_POINTER_MOTION_HINT_MASK);
 
-       priv->hadjust = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 
0.0, 0.0));
-       priv->vadjust = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 
0.0, 0.0));
+       priv->hadjust = GTK_ADJUSTMENT (
+               gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
+       priv->vadjust = GTK_ADJUSTMENT (
+               gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
 
        g_object_ref (G_OBJECT (priv->hadjust));
        g_object_ref (G_OBJECT (priv->vadjust));
@@ -800,6 +802,7 @@
                             gdouble decel, guint sps)
 {
        return g_object_new (MOKO_TYPE_FINGER_SCROLL,
+                            "mode", mode,
                             "enabled", enabled,
                             "velocity_min", vel_min,
                             "velocity_max", vel_max,




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-09-21 12:58:45 +0200 (Fri, 21 Sep 2007)
New Revision: 3025

Modified:
   trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog
   
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-finger-scroll.c
Log:
* libmokoui/moko-finger-scroll.c: (moko_finger_scroll_init),
(moko_finger_scroll_new), (moko_finger_scroll_new_full):
Complete the documentation for MokoFingerScroll


Modified: trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog   2007-09-21 
10:53:36 UTC (rev 3024)
+++ trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog   2007-09-21 
10:58:45 UTC (rev 3025)
@@ -1,3 +1,9 @@
+2007-09-21  Thomas Wood  <[EMAIL PROTECTED]>
+
+       * libmokoui/moko-finger-scroll.c: (moko_finger_scroll_init),
+       (moko_finger_scroll_new), (moko_finger_scroll_new_full):
+       Complete the documentation for MokoFingerScroll
+
 2007-09-21  Chris Lord  <[EMAIL PROTECTED]>
 
        * libmokoui/moko-finger-scroll.c: (moko_finger_scroll_class_init),

Modified: 
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-finger-scroll.c
===================================================================
--- 
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-finger-scroll.c  
    2007-09-21 10:53:36 UTC (rev 3024)
+++ 
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-finger-scroll.c  
    2007-09-21 10:58:45 UTC (rev 3025)
@@ -783,11 +783,12 @@
                G_CALLBACK (moko_finger_scroll_redraw), self);
 }
 
-/** moko_finger_scroll_new:
+/**
+ * moko_finger_scroll_new:
  * 
  * Create a new finger scroll widget
  *
- * Returns: the newly created widget
+ * Returns: the newly created #MokoFingerScroll
  */
 
 GtkWidget *
@@ -796,6 +797,20 @@
        return g_object_new (MOKO_TYPE_FINGER_SCROLL, NULL);
 }
 
+/**
+ * moko_finger_scroll_new_full:
+ * @mode: #MokoFingerScrollMode
+ * @enabled: Value for the enabled property
+ * @vel_min: Value for the velocity-min property
+ * @vel_max: Value for the velocity-max property
+ * @decel: Value for the deceleration property
+ * @sps: Value for the sps property
+ *
+ * Create a new #MokoFingerScroll widget and set various properties
+ *
+ * returns: the newly create #MokoFingerScrull
+ */
+
 GtkWidget *
 moko_finger_scroll_new_full (gint mode, gboolean enabled,
                             gdouble vel_min, gdouble vel_max,
@@ -811,12 +826,12 @@
                             NULL);
 }
 
-/** moko_finger_scroll_add_with_viewport:
+/**
+ * moko_finger_scroll_add_with_viewport:
+ * @self: A #MokoFingerScroll
+ * @child: Child widget to add to the viewport
  *
- * @self: A MokoFingerScroll widget
- * @child: widget you want to add
- *
- * Convenience function used to add a child to a GtkViewport, and add the
+ * Convenience function used to add a child to a #GtkViewport, and add the
  * viewport to the scrolled window.
  */
 




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-09-21 13:22:30 +0200 (Fri, 21 Sep 2007)
New Revision: 3026

Modified:
   trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog
   trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-hint-entry.c
Log:
* libmokoui/moko-hint-entry.c: (moko_hint_entry_new),
(moko_hint_entry_clear): Correct and complete documentation for
 MokoHintEntry


Modified: trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog   2007-09-21 
10:58:45 UTC (rev 3025)
+++ trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog   2007-09-21 
11:22:30 UTC (rev 3026)
@@ -1,5 +1,11 @@
 2007-09-21  Thomas Wood  <[EMAIL PROTECTED]>
 
+       * libmokoui/moko-hint-entry.c: (moko_hint_entry_new),
+       (moko_hint_entry_clear): Correct and complete documentation for
+        MokoHintEntry
+
+2007-09-21  Thomas Wood  <[EMAIL PROTECTED]>
+
        * libmokoui/moko-finger-scroll.c: (moko_finger_scroll_init),
        (moko_finger_scroll_new), (moko_finger_scroll_new_full):
        Complete the documentation for MokoFingerScroll

Modified: 
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-hint-entry.c
===================================================================
--- trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-hint-entry.c 
2007-09-21 10:58:45 UTC (rev 3025)
+++ trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-hint-entry.c 
2007-09-21 11:22:30 UTC (rev 3026)
@@ -197,9 +197,9 @@
                        NULL);
 }
 
-/*
+/**
  * moko_hint_entry_clear:
- * @entry: a @MokoHintEntry
+ * @entry: a #MokoHintEntry
  *
  * Clear the text in the entry and if the widget is not focused, display the
  * hint text.
@@ -214,6 +214,15 @@
   update (entry);
 }
 
+/**
+ * moko_hint_entry_is_empty:
+ * @entry: a #MokoHintyEntry
+ *
+ * Check if the entry has a user entered value. 
+ *
+ * returns: TRUE if the hint is currently displayed. FALSE if the user has
+ * entered a value
+ */
 gboolean
 moko_hint_entry_is_empty (MokoHintEntry *entry)
 {




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-09-21 16:26:35 +0200 (Fri, 21 Sep 2007)
New Revision: 3027

Modified:
   trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog
   trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-style.c
   trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-style.h
Log:
* src/moko-style.c: (moko_rc_style_merge), (moko_rc_style_parse):
* src/moko-style.h:

Use bit flag to indicate which engine options have been set (fixes any
options not set in the first matched style)


Modified: trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog      
2007-09-21 11:22:30 UTC (rev 3026)
+++ trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog      
2007-09-21 14:26:35 UTC (rev 3027)
@@ -1,5 +1,13 @@
 2007-09-21  Thomas Wood  <[EMAIL PROTECTED]>
 
+       * src/moko-style.c: (moko_rc_style_merge), (moko_rc_style_parse):
+       * src/moko-style.h:
+
+       Use bit flag to indicate which engine options have been set (fixes any
+       options not set in the first matched style)
+
+2007-09-21  Thomas Wood  <[EMAIL PROTECTED]>
+
        * data/gtkrc: Define some standard icon sizes
 
 2007-09-20  Thomas Wood  <[EMAIL PROTECTED]>

Modified: trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-style.c
===================================================================
--- trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-style.c       
2007-09-21 11:22:30 UTC (rev 3026)
+++ trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-style.c       
2007-09-21 14:26:35 UTC (rev 3027)
@@ -107,11 +107,19 @@
 {
   if (MOKO_IS_RC_STYLE (src))
   {
+    guint flags;
     MokoRcStyle *src_data = MOKO_RC_STYLE (src);
     MokoRcStyle *dest_data = MOKO_RC_STYLE (dest);
 
-    dest_data->has_border = src_data->has_border;
-    dest_data->has_gradient = src_data->has_gradient;
+    flags = (~dest_data->flags) & src_data->flags;
+
+    if (flags & BORDER_SET)
+      dest_data->has_border = src_data->has_border;
+
+    if (flags & GRADIENT_SET)
+      dest_data->has_gradient = src_data->has_gradient;
+
+    dest_data->flags = dest_data->flags | src_data->flags;
   }
 
   moko_parent_rc_style_class->merge (dest, src);
@@ -182,12 +190,14 @@
         if (token != G_TOKEN_NONE)
           break;
         theme_data->has_border = i;
+       theme_data->flags = theme_data->flags | BORDER_SET;
         break;
       case TOKEN_HAS_GRADIENT:
         token = moko_rc_parse_boolean (scanner, TOKEN_HAS_GRADIENT, &i);
         if (token != G_TOKEN_NONE)
           break;
         theme_data->has_gradient = i;
+       theme_data->flags = theme_data->flags | GRADIENT_SET;
         break;
 
       default:

Modified: trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-style.h
===================================================================
--- trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-style.h       
2007-09-21 11:22:30 UTC (rev 3026)
+++ trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-style.h       
2007-09-21 14:26:35 UTC (rev 3027)
@@ -75,10 +75,17 @@
 typedef struct _MokoRcStyle MokoRcStyle;
 typedef struct _MokoRcStyleClass MokoRcStyleClass;
 
+/* which properties have been set? */
+enum {
+  BORDER_SET = 1,
+  GRADIENT_SET = 2
+};
+
 struct _MokoRcStyle
 {
   GtkRcStyle parent_instance;
 
+  guint flags;
   gboolean has_border;
   gboolean has_gradient;
 };




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-09-21 21:38:51 +0200 (Fri, 21 Sep 2007)
New Revision: 3028

Modified:
   trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog
   trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-stock.c
Log:
* libmokoui/moko-stock.c: (_moko_stock_add_icon): Start documentation
  for moko-stock


Modified: trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog   2007-09-21 
14:26:35 UTC (rev 3027)
+++ trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog   2007-09-21 
19:38:51 UTC (rev 3028)
@@ -1,5 +1,10 @@
 2007-09-21  Thomas Wood  <[EMAIL PROTECTED]>
 
+       * libmokoui/moko-stock.c: (_moko_stock_add_icon): Start documentation
+         for moko-stock
+
+2007-09-21  Thomas Wood  <[EMAIL PROTECTED]>
+
        * libmokoui/moko-hint-entry.c: (moko_hint_entry_new),
        (moko_hint_entry_clear): Correct and complete documentation for
         MokoHintEntry

Modified: trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-stock.c
===================================================================
--- trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-stock.c      
2007-09-21 14:26:35 UTC (rev 3027)
+++ trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-stock.c      
2007-09-21 19:38:51 UTC (rev 3028)
@@ -105,6 +105,12 @@
   g_object_unref (G_OBJECT (pixbuf));
 }
 
+/**
+ * moko_stock_register:
+ *
+ * Register the OpenMoko stock icons for use with stock icon functions.
+ *
+ */
 void
 moko_stock_register ()
 {




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-09-21 21:40:52 +0200 (Fri, 21 Sep 2007)
New Revision: 3029

Modified:
   trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog
   trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/data/gtkrc
   trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-draw.c
Log:
* data/gtkrc: Add some gradient and border options to styles
* src/moko-draw.c: (moko_draw_box): Implement gradient option


Modified: trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog      
2007-09-21 19:38:51 UTC (rev 3028)
+++ trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ChangeLog      
2007-09-21 19:40:52 UTC (rev 3029)
@@ -1,5 +1,10 @@
 2007-09-21  Thomas Wood  <[EMAIL PROTECTED]>
 
+       * data/gtkrc: Add some gradient and border options to styles
+       * src/moko-draw.c: (moko_draw_box): Implement gradient option
+
+2007-09-21  Thomas Wood  <[EMAIL PROTECTED]>
+
        * src/moko-style.c: (moko_rc_style_merge), (moko_rc_style_parse):
        * src/moko-style.h:
 

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-09-21 19:38:51 UTC (rev 3028)
+++ trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/data/gtkrc     
2007-09-21 19:40:52 UTC (rev 3029)
@@ -89,6 +89,7 @@
 {
   engine "moko-engine" {
     border = TRUE
+    gradient = TRUE
   }
 }
 class "GtkButton" style "button"
@@ -102,11 +103,15 @@
 
 style "toolbar"
 {
-       GtkToolbar::internal_padding = 0
+  GtkToolbar::internal_padding = 0
   xthickness = 0
   ythickness = 0
 
   bg[NORMAL] = "#333333"
+  engine "moko-engine" {
+    gradient = TRUE
+    border = FALSE
+  }
 }
 class "GtkToolbar" style "toolbar"
 
@@ -117,6 +122,11 @@
 
   bg[NORMAL] = "#ff7d00"
   bg[PRELIGHT] = "#333333"
+
+  engine "moko-engine" {
+    gradient = TRUE
+    border = FALSE
+  }
 }
 widget_class "*Tool*GtkToggleButton" style "toolitem"
 widget_class "*Tool*GtkButton" style "toolitem"
@@ -130,6 +140,30 @@
 }
 class "GtkNotebook" style "notebook"
 
+style "menu"
+{
+  GtkMenu::vertical-padding = 8
+  GtkMenu::horizontal-padding = 8
+  engine "moko-engine" {
+    gradient = FALSE
+    border = TRUE
+  }
+}
+class "GtkMenu" style "menu"
+
+style "menuitem"
+{
+  xthickness = 8
+  ythickness = 8
+
+  bg[PRELIGHT] = "#ff7d00"
+
+  engine "moko-engine" {
+    gradient = TRUE
+  }
+}
+widget_class "*MenuItem*" style "menuitem"
+
 include "matchboxpanel"
 include "openmoko-calculator"
 include "openmoko-contacts"

Modified: trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-draw.c
===================================================================
--- trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-draw.c        
2007-09-21 19:38:51 UTC (rev 3028)
+++ trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/src/moko-draw.c        
2007-09-21 19:40:52 UTC (rev 3029)
@@ -154,10 +154,15 @@
   }
 
   /*** draw the gradient ***/
-  if (!DETAIL ("menu") && !DETAIL ("trough"))
-   moko_gradient (style, window, state_type, x+1, y+1, width-2, height-2);
+  if (MOKO_RC_STYLE (style->rc_style)->has_gradient)
+  {
+    moko_gradient (style, window, state_type, x, y, width, height);
+  }
+  else
+  {
+    gtk_paint_flat_box (style, window, state_type, shadow_type, area, widget, 
detail, x, y, width, height);
+  }
 
-
   if (DETAIL ("trough"))
   {
     if (widget && GTK_IS_HSCALE (widget))




--- End Message ---
--- Begin Message ---
Author: zecke
Date: 2007-09-22 00:53:37 +0200 (Sat, 22 Sep 2007)
New Revision: 3030

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
Log:
2007-09-21  Holger 'Siddhartha' Freyther  <[EMAIL PROTECTED]>

        Place the asterisk right.

        * src/browser-data.h:


Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog 
2007-09-21 19:40:52 UTC (rev 3029)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog 
2007-09-21 22:53:37 UTC (rev 3030)
@@ -1,3 +1,9 @@
+2007-09-21  Holger 'Siddhartha' Freyther  <[EMAIL PROTECTED]>
+
+        Place the asterisk right.
+
+        * src/browser-data.h:
+
 2007-09-18  Holger Hans Peter Freyther  <[EMAIL PROTECTED]>
 
         GNU/libc build fix.

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h    
    2007-09-21 19:40:52 UTC (rev 3029)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h    
    2007-09-21 22:53:37 UTC (rev 3030)
@@ -43,9 +43,9 @@
  * The state of the Browser
  */
 struct BrowserData {
-    GtkWidget *mainWindow;
-    GtkWidget *mainNotebook;
-    GtkWidget *currentFingerScroll;
+    GtkWidget* mainWindow;
+    GtkWidget* mainNotebook;
+    GtkWidget* currentFingerScroll;
 
     GList* browserPages;
     struct BrowserPage* currentPage;




--- End Message ---
--- Begin Message ---
Author: zecke
Date: 2007-09-22 00:53:42 +0200 (Sat, 22 Sep 2007)
New Revision: 3031

Added:
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.c
Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/Makefile.am
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/go-page.c
   trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c
   
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/open-pages-page.c
Log:
2007-09-21  Holger 'Siddhartha' Freyther  <[EMAIL PROTECTED]>

        Make the "GO"-Page, "Open-Pages"-Page and the "Current"-Page
        share a GtkListStore. This avoids to recreate it in Open-Page on every
        activation, will keep the GtkTreeSelection and will help us to
        bind that to JavaScript.

        * src/Makefile.am:
        * src/browser-data.c: Copied from src/go-page.h.
        (browser_page_finalize):
        (browser_page_init):
        (browser_page_class_init):
        (browser_page_new):
        * src/browser-data.h:
        * src/current-page.c:
        (current_close_page):
        (clear_current_page):
        (update_current_page_from_iter):
        * src/current-page.h:
        * src/go-page.c:
        (create_new_page_clicked):
        * src/main.c:
        (main):
        * src/open-pages-page.c:
        (open_pages_page_cell_data_func):
        (selection_changed):
        (setup_open_pages_page):


Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog 
2007-09-21 22:53:37 UTC (rev 3030)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog 
2007-09-21 22:53:42 UTC (rev 3031)
@@ -1,5 +1,33 @@
 2007-09-21  Holger 'Siddhartha' Freyther  <[EMAIL PROTECTED]>
 
+        Make the "GO"-Page, "Open-Pages"-Page and the "Current"-Page
+        share a GtkListStore. This avoids to recreate it in Open-Page on every
+        activation, will keep the GtkTreeSelection and will help us to
+        bind that to JavaScript.
+
+        * src/Makefile.am:
+        * src/browser-data.c: Copied from src/go-page.h.
+        (browser_page_finalize):
+        (browser_page_init):
+        (browser_page_class_init):
+        (browser_page_new):
+        * src/browser-data.h:
+        * src/current-page.c:
+        (current_close_page):
+        (clear_current_page):
+        (update_current_page_from_iter):
+        * src/current-page.h:
+        * src/go-page.c:
+        (create_new_page_clicked):
+        * src/main.c:
+        (main):
+        * src/open-pages-page.c:
+        (open_pages_page_cell_data_func):
+        (selection_changed):
+        (setup_open_pages_page):
+
+2007-09-21  Holger 'Siddhartha' Freyther  <[EMAIL PROTECTED]>
+
         Place the asterisk right.
 
         * src/browser-data.h:

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/Makefile.am   
2007-09-21 22:53:37 UTC (rev 3030)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/Makefile.am   
2007-09-21 22:53:42 UTC (rev 3031)
@@ -8,7 +8,7 @@
 bin_PROGRAMS = openmoko-browser2
 
 EXTRA_DIST = browser-data.h current-page.h go-page.h open-pages-page.h
-openmoko_browser2_SOURCES = main.c current-page.c go-page.c open-pages-page.c
+openmoko_browser2_SOURCES = main.c browser-data.c current-page.c go-page.c 
open-pages-page.c
 openmoko_browser2_LDADD = @OPENMOKO_LIBS@ @WEBKITGTK_LIBS@ @GTHREAD_LIBS@
 
 CLEANFILES = $(stamp_files)

Copied: 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.c 
(from rev 3030, 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h)
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h    
    2007-09-21 22:53:37 UTC (rev 3030)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.c    
    2007-09-21 22:53:42 UTC (rev 3031)
@@ -0,0 +1,60 @@
+/*
+ * A simple WebBrowser
+ *
+ *  Copyright (C) 2007 Holger Hans Peter Freyther
+ *
+ *  Permission is hereby granted, free of charge, to any person obtaining a
+ *  copy of this software and associated documentation files (the "Software"),
+ *  to deal in the Software without restriction, including without limitation
+ *  the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ *  and/or sell copies of the Software, and to permit persons to whom the
+ *  Software is furnished to do so, subject to the following conditions:
+ *
+ *  The above copyright notice and this permission notice shall be included
+ *  in all copies or substantial portions of the Software.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ *  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ *  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *  OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *  Current Version: $Rev$ ($Date$) [$Author$]
+ */
+
+#include "config.h"
+#include "browser-data.h"
+
+G_DEFINE_TYPE(BrowserPage, browser_page, G_TYPE_OBJECT)
+
+static void
+browser_page_finalize (GObject* object)
+{
+    BrowserPage* page = BROWSER_PAGE (object);
+    g_object_unref (page->webKitPage);
+    page->webKitPage = 0;
+}
+
+static void
+browser_page_init (BrowserPage* self)
+{
+    self->webKitPage = NULL;
+}
+
+static void
+browser_page_class_init (BrowserPageClass *klass)
+{
+    G_OBJECT_CLASS(klass)->finalize = browser_page_finalize;
+}
+
+BrowserPage*
+browser_page_new (WebKitGtkPage* webKitPage)
+{
+    BrowserPage* page = BROWSER_PAGE (g_object_new (BROWSER_TYPE_PAGE, 0));
+    page->webKitPage = webKitPage;
+    g_object_ref (page->webKitPage);
+
+    return page;
+}

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h    
    2007-09-21 22:53:37 UTC (rev 3030)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h    
    2007-09-21 22:53:42 UTC (rev 3031)
@@ -35,10 +35,27 @@
 /*
  * representation of one page
  */
-struct BrowserPage {
+#define BROWSER_TYPE_PAGE               (browser_page_get_type ())
+#define BROWSER_PAGE(obj)               (G_TYPE_CHECK_INSTANCE_CAST((obj), 
BROWSER_TYPE_PAGE, BrowserPage))
+#define BROWSER_PAGE_CLASS(klass)       (G_TYPE_CHECK_CLASS_CASS((klass),  
BROWSER_TYPE_PAGE, BrowserPageClass))
+#define BROWSER_IS_PAGE(obj)            (G_TYPE_CHECK_INSTANCE_TYPE((obj), 
BROWSER_TYPE_PAGE))
+#define BROWSER_IS_PAGE_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE((klass),  
BROWSER_TYPE_PAGE))
+#define BROWSER_PAGE_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS((obj),  
BROWSER_TYPE_PAGE, BrowserPageClass))
+typedef struct _BrowserPage BrowserPage;
+typedef struct _BrowserPageClass BrowserPageClass;
+
+struct _BrowserPage {
+    GObject parent;
     WebKitGtkPage* webKitPage;
 };
 
+struct _BrowserPageClass {
+    GObjectClass parent_class;
+};
+
+GType browser_page_get_type (void);
+BrowserPage* browser_page_new (WebKitGtkPage* page);
+
 /*
  * The state of the Browser
  */
@@ -47,8 +64,9 @@
     GtkWidget* mainNotebook;
     GtkWidget* currentFingerScroll;
 
-    GList* browserPages;
-    struct BrowserPage* currentPage;
+    GtkListStore* browserPages;
+    BrowserPage* currentPage;
+    GtkTreeIter currentPageIter;
 
     /**
      * Two special views for the Browser. The Overview
@@ -82,7 +100,6 @@
      * Open-Pages-Page
      */
     GtkWidget* pagesBox;
-    GtkListStore* pagesStore;
     GtkTreeView* pagesView;
 };
 

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c    
    2007-09-21 22:53:37 UTC (rev 3030)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c    
    2007-09-21 22:53:42 UTC (rev 3031)
@@ -77,17 +77,15 @@
     g_return_if_fail (data->currentPage);
 
     /* XXX FIXME TODO Select a better page, currently the first one is used */
-    /* To destroy the WebKitGtkPage we will g_object_unref it */
-    struct BrowserPage* oldCurrent = data->currentPage;
-    data->browserPages = g_list_remove (data->browserPages, oldCurrent);
-    set_current_page (NULL, data);
+    /*
+     * Remove the current page and switch to the Go page or to select another 
tab
+     */
+    gtk_list_store_remove (data->browserPages, &data->currentPageIter);
+    clear_current_page (data);
+
+    GtkTreeIter iter;
     gtk_notebook_set_current_page (GTK_NOTEBOOK (data->mainNotebook),
-                                   g_list_first(data->browserPages) ? 2 : 1);
-
-
-    g_object_unref (oldCurrent->webKitPage);
-    g_free (oldCurrent);
-
+                                   gtk_tree_model_get_iter_first 
(GTK_TREE_MODEL (data->browserPages), &iter) ? 2 : 1);
 }
 
 void setup_current_page(GtkBox* box, struct BrowserData* data)
@@ -135,11 +133,32 @@
     gtk_box_pack_start (box, data->currentFingerScroll, TRUE, TRUE, 0);
 }
 
+void clear_current_page (struct BrowserData* data)
+{
+    if (data->currentPage) {
+        gtk_container_remove (GTK_CONTAINER (data->currentFingerScroll), 
GTK_WIDGET (data->currentPage->webKitPage));
+        g_signal_handlers_disconnect_by_func(data->currentPage->webKitPage, 
(gpointer)current_progress_changed, data);
+    }
+
+    data->currentPage = NULL;
+    gtk_widget_set_sensitive (GTK_WIDGET (data->currentBack), FALSE);
+    gtk_widget_set_sensitive (GTK_WIDGET (data->currentForward), FALSE);
+    gtk_widget_set_sensitive (GTK_WIDGET (data->currentStop), FALSE);
+    gtk_widget_set_sensitive (GTK_WIDGET (data->currentAdd), FALSE);
+    gtk_widget_set_sensitive (GTK_WIDGET (data->currentClose), FALSE);
+}
+
 /*
  * The current page changed
  */
-void set_current_page(struct BrowserPage* page, struct BrowserData* data)
+void update_current_page_from_iter(struct BrowserData* data)
 {
+    g_assert (gtk_list_store_iter_is_valid (data->browserPages, 
&data->currentPageIter));
+
+    BrowserPage* page;
+    gtk_tree_model_get (GTK_TREE_MODEL (data->browserPages), 
&data->currentPageIter, 0, &page, -1);
+    g_object_unref (page);
+
     if (page == data->currentPage)
         return;
 
@@ -148,26 +167,17 @@
         g_signal_handlers_disconnect_by_func(data->currentPage->webKitPage, 
(gpointer)current_progress_changed, data);
     }
 
-    if (!page) {
-        data->currentPage = NULL;
-        gtk_widget_set_sensitive (GTK_WIDGET (data->currentBack), FALSE);
-        gtk_widget_set_sensitive (GTK_WIDGET (data->currentForward), FALSE);
-        gtk_widget_set_sensitive (GTK_WIDGET (data->currentStop), FALSE);
-        gtk_widget_set_sensitive (GTK_WIDGET (data->currentAdd), FALSE);
-        gtk_widget_set_sensitive (GTK_WIDGET (data->currentClose), FALSE);
-    } else {
-        data->currentPage = page;
-        g_signal_connect(data->currentPage->webKitPage, 
"load-progress-changed", G_CALLBACK(current_progress_changed), data);
-        gtk_container_add (GTK_CONTAINER (data->currentFingerScroll), 
GTK_WIDGET (data->currentPage->webKitPage));
-        gtk_widget_show (GTK_WIDGET (data->currentPage->webKitPage));
+    data->currentPage = page;
+    g_signal_connect(data->currentPage->webKitPage, "load-progress-changed", 
G_CALLBACK(current_progress_changed), data);
+    gtk_container_add (GTK_CONTAINER (data->currentFingerScroll), GTK_WIDGET 
(data->currentPage->webKitPage));
+    gtk_widget_show (GTK_WIDGET (data->currentPage->webKitPage));
 
-        /*
-         * Update the GtkToolItems
-         */
-        /* XXX ### FIXME TODO check if we should show stop/reload */
-        gtk_widget_set_sensitive (GTK_WIDGET (data->currentBack), 
webkit_gtk_page_can_go_backward (data->currentPage->webKitPage));
-        gtk_widget_set_sensitive (GTK_WIDGET (data->currentForward), 
webkit_gtk_page_can_go_forward (data->currentPage->webKitPage));
-        gtk_widget_set_sensitive (GTK_WIDGET (data->currentAdd), 
webkit_gtk_frame_get_title (webkit_gtk_page_get_main_frame 
(data->currentPage->webKitPage)) != NULL);
-        gtk_widget_set_sensitive (GTK_WIDGET (data->currentClose), TRUE);
-    }
+    /*
+     * Update the GtkToolItems
+     */
+    /* XXX ### FIXME TODO check if we should show stop/reload */
+    gtk_widget_set_sensitive (GTK_WIDGET (data->currentBack), 
webkit_gtk_page_can_go_backward (data->currentPage->webKitPage));
+    gtk_widget_set_sensitive (GTK_WIDGET (data->currentForward), 
webkit_gtk_page_can_go_forward (data->currentPage->webKitPage));
+    gtk_widget_set_sensitive (GTK_WIDGET (data->currentAdd), 
webkit_gtk_frame_get_title (webkit_gtk_page_get_main_frame 
(data->currentPage->webKitPage)) != NULL);
+    gtk_widget_set_sensitive (GTK_WIDGET (data->currentClose), TRUE);
 }

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h    
    2007-09-21 22:53:37 UTC (rev 3030)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h    
    2007-09-21 22:53:42 UTC (rev 3031)
@@ -30,6 +30,7 @@
 #include "browser-data.h"
 
 void setup_current_page(GtkBox* box, struct BrowserData* data);
-void set_current_page(struct BrowserPage* page, struct BrowserData* data);
+void update_current_page_from_iter(struct BrowserData* data);
+void clear_current_page(struct BrowserData* data);
 
 #endif

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/go-page.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/go-page.c     
2007-09-21 22:53:37 UTC (rev 3030)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/go-page.c     
2007-09-21 22:53:42 UTC (rev 3031)
@@ -138,13 +138,11 @@
     else
         url = autocorrect_url (gtk_entry_get_text (data->goUrlEntry));
 
-    struct BrowserPage* page = g_new(struct BrowserPage, 1);
-    page->webKitPage = WEBKIT_GTK_PAGE (webkit_gtk_page_new ());
-
-    data->browserPages = g_list_append (data->browserPages, page);
+    BrowserPage* page = browser_page_new (WEBKIT_GTK_PAGE (webkit_gtk_page_new 
()));
+    gtk_list_store_append (data->browserPages, &data->currentPageIter);
+    gtk_list_store_set (data->browserPages, &data->currentPageIter, 0, page, 
-1);
     webkit_gtk_page_open (page->webKitPage, url);
-    set_current_page (page, data);
-    g_object_ref (page->webKitPage);
+    update_current_page_from_iter (data);
 
     gtk_notebook_set_current_page (GTK_NOTEBOOK (data->mainNotebook), 0);
 }

Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c        
2007-09-21 22:53:37 UTC (rev 3030)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c        
2007-09-21 22:53:42 UTC (rev 3031)
@@ -64,6 +64,7 @@
 
     gtk_main ();
     gdk_threads_leave ();
+    g_object_unref (data->browserPages);
     g_free (data);
 
     return EXIT_SUCCESS;
@@ -76,6 +77,7 @@
 
 static void setup_ui (struct BrowserData* data)
 {
+    data->browserPages = GTK_LIST_STORE (gtk_list_store_new (1, 
BROWSER_TYPE_PAGE));
     data->mainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
     g_signal_connect (data->mainWindow, "delete-event", 
G_CALLBACK(window_delete_event), NULL);
 

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/open-pages-page.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/open-pages-page.c 
    2007-09-21 22:53:37 UTC (rev 3030)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/open-pages-page.c 
    2007-09-21 22:53:42 UTC (rev 3031)
@@ -34,9 +34,15 @@
 
 #include <glib/gi18n.h>
 
-static gint find_browser_page (struct BrowserPage* page, WebKitGtkPage* 
webKitPage)
+static void open_pages_page_cell_data_func(GtkTreeViewColumn* tree_column, 
GtkCellRenderer* ren, GtkTreeModel* tree_model, GtkTreeIter* iter, gpointer 
data)
 {
-    return !(page->webKitPage == webKitPage);
+    BrowserPage* page;
+    gtk_tree_model_get (tree_model, iter, 0, &page, -1);
+    g_assert (page);
+
+    /* XXX, FIXME, TODO check that we don't have any race conditions here. We 
might get a new title inside WebKit while using that string? */
+    g_object_set (G_OBJECT (ren), "text", webkit_gtk_frame_get_title 
(webkit_gtk_page_get_main_frame (page->webKitPage)), NULL);
+    g_object_unref (page);
 }
 
 /*
@@ -51,61 +57,24 @@
     if (!has_selection)
         return;
 
-    WebKitGtkPage* page = 0;
-    gtk_tree_model_get (model, &iter, 1, &page, -1);
-    g_assert (page);
-
-    /*
-     * now find a page a BrowserPage
-     */
-    GList* element = g_list_find_custom(data->browserPages, page, 
(GCompareFunc)find_browser_page);
-    if (element)
-        set_current_page ((struct BrowserPage*)element->data, data);
-    
-    g_object_unref (page);
+    data->currentPageIter = iter;
+    update_current_page_from_iter (data);
 }
 
 
-static void pages_add_to_list_store(struct BrowserPage* page, GtkListStore* 
store)
-{
-    GtkTreeIter iter;
-    gtk_list_store_append (store, &iter);
-    gtk_list_store_set (store, &iter,
-                        0, g_strdup (webkit_gtk_frame_get_title 
(webkit_gtk_page_get_main_frame (page->webKitPage))),
-                        1, page->webKitPage,
-                        -1);
-}
-
-/*
- * For now rebuild the GtkListStore
- *
- * XXX FIXME TODO Make Current, Go and Pages use the same GtkListStore
- * and share the code with the bookmarks.
- */
-static void switched_notebook_tab(GtkNotebook* notebook, GtkNotebookPage* 
page, guint page_num, struct BrowserData* data)
-{
-    if (gtk_notebook_get_nth_page (notebook, page_num) == data->pagesBox) {
-        gtk_list_store_clear (data->pagesStore);
-        g_list_foreach (data->browserPages, (GFunc)pages_add_to_list_store, 
data->pagesStore);
-    }
-}
-
 void setup_open_pages_page(GtkBox* box, struct BrowserData* data)
 {
     data->pagesBox = GTK_WIDGET (box);
-    g_signal_connect (data->mainNotebook, "switch-page", 
G_CALLBACK(switched_notebook_tab), data);
 
-    /* URL/title and WebKitGtkPage, as it is a GObject */
-    data->pagesStore = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_OBJECT);
-
     GtkContainer* scrolled = GTK_CONTAINER (moko_finger_scroll_new ());
     gtk_box_pack_start (box, GTK_WIDGET(scrolled), TRUE, TRUE, 0);
-    data->pagesView = GTK_TREE_VIEW (gtk_tree_view_new_with_model 
(GTK_TREE_MODEL (data->pagesStore)));
+    data->pagesView = GTK_TREE_VIEW (gtk_tree_view_new_with_model 
(GTK_TREE_MODEL (data->browserPages)));
     gtk_container_add (scrolled, GTK_WIDGET (data->pagesView));
     g_signal_connect (gtk_tree_view_get_selection (data->pagesView), 
"changed", G_CALLBACK(selection_changed), data);
 
     GtkCellRenderer* ren = GTK_CELL_RENDERER (gtk_cell_renderer_text_new ());
-    GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes 
(_("Title"), ren, "text", 0, NULL);
+    GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes 
(_("Title"), ren, NULL);
+    gtk_tree_view_column_set_cell_data_func (column, ren, 
open_pages_page_cell_data_func, NULL, NULL);
     gtk_tree_view_column_set_expand (column, TRUE);
     gtk_tree_view_append_column (data->pagesView, column);
 }




--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to