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. r2625 - trunk/src/target/OM-2007.2/applications/fingerscroll
      ([EMAIL PROTECTED])
   2. r2626 - in trunk/src/target/OM-2007.2/libraries/libmokoui2: .
      libmokoui ([EMAIL PROTECTED])
   3. r2627 - in
      trunk/src/target/OM-2007.2/applications/openmoko-feedreader2: .
      data src ([EMAIL PROTECTED])
--- Begin Message ---
Author: mickey
Date: 2007-08-03 16:54:37 +0200 (Fri, 03 Aug 2007)
New Revision: 2625

Modified:
   trunk/src/target/OM-2007.2/applications/fingerscroll/example.c
   trunk/src/target/OM-2007.2/applications/fingerscroll/moko-finger-scroll.c
   trunk/src/target/OM-2007.2/applications/fingerscroll/moko-finger-scroll.h
Log:
fingerscroll: back out unintentionally commited stuff


Modified: trunk/src/target/OM-2007.2/applications/fingerscroll/example.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/fingerscroll/example.c      
2007-08-03 14:42:50 UTC (rev 2624)
+++ trunk/src/target/OM-2007.2/applications/fingerscroll/example.c      
2007-08-03 14:54:37 UTC (rev 2625)
@@ -113,7 +113,6 @@
   /* list */
   
   w = scroll = moko_finger_scroll_new ();
-  g_object_set( G_OBJECT(scroll), "mode", MOKO_FINGER_SCROLL_MODE_PHYSICAL, 
NULL ); 
   gtk_box_pack_start (GTK_BOX (box), w, TRUE, TRUE, 0);
 
   liststore = gtk_list_store_new (1, G_TYPE_STRING);

Modified: 
trunk/src/target/OM-2007.2/applications/fingerscroll/moko-finger-scroll.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/fingerscroll/moko-finger-scroll.c   
2007-08-03 14:42:50 UTC (rev 2624)
+++ trunk/src/target/OM-2007.2/applications/fingerscroll/moko-finger-scroll.c   
2007-08-03 14:54:37 UTC (rev 2625)
@@ -1,5 +1,4 @@
 
-#include <glib.h>
 #include "moko-finger-scroll.h"
 
 G_DEFINE_TYPE (MokoFingerScroll, moko_finger_scroll, GTK_TYPE_EVENT_BOX)
@@ -7,21 +6,12 @@
   (G_TYPE_INSTANCE_GET_PRIVATE ((o), MOKO_TYPE_FINGER_SCROLL, 
MokoFingerScrollPrivate))
 typedef struct _MokoFingerScrollPrivate MokoFingerScrollPrivate;
 
-typedef struct _point point;
-struct _point
-{
-       gdouble x;
-       gdouble y;
-       gint32 time;
-};
-
 struct _MokoFingerScrollPrivate {
        MokoFingerScrollMode mode;
        gdouble x;
        gdouble y;
        gdouble ex;
        gdouble ey;
-       point prev_values[3];
        gboolean enabled;
        gboolean clicked;
        gboolean moved;
@@ -32,8 +22,7 @@
        guint sps;
        gdouble vel_x;
        gdouble vel_y;
-;
-
+       
        GtkWidget *align;
        gboolean hscroll;
        gboolean vscroll;
@@ -48,27 +37,6 @@
        PROP_SPS,
 };
 
-#define PHYSICAL_MOVE_PERIOD 300
-
-static gint32
-time_diff (gint32 t1, gint32 t2)
-{
-       if (t2 > t1)
-               return t2-t1;
-       else
-               return ((gint64)t2 + 1<<32) - (gint64)t1;
-}
-
-static void
-rough_linear (point p0, point p1, point p2, gdouble *xm, gdouble *ym)
-{
-       /* just calulate two slopes and avarage */
-       *xm = (((p0.x-p1.x) / time_diff(p1.time,p0.time))
-               + ((p0.x-p1.x) / time_diff(p2.time,p0.time))) / 2;
-       *ym = (((p0.y-p1.y) / time_diff(p1.time,p0.time))
-               + ((p0.y-p2.y) / time_diff(p2.time,p0.time))) / 2;
-}
-
 static gboolean
 moko_finger_scroll_button_press_cb (MokoFingerScroll *scroll,
                                    GdkEventButton *event,
@@ -82,20 +50,12 @@
        g_get_current_time (&priv->click_start);
        priv->x = event->x;
        priv->y = event->y;
-       priv->ex = event->x;
-       priv->ey = event->y;
        priv->moved = FALSE;
        priv->clicked = TRUE;
        /* Stop scrolling on mouse-down (so you can flick, then hold to stop) */
        priv->vel_x = 0;
        priv->vel_y = 0;
-
-       priv->prev_values[0].x = event->x;
-       priv->prev_values[0].y = event->y;
-       priv->prev_values[0].time = event->time;
-       priv->prev_values[1].x = event->x;
-       priv->prev_values[1].y = event->y;
-       priv->prev_values[1].time = event->time;
+       
        return TRUE;
 }
 
@@ -151,10 +111,8 @@
        gboolean sx, sy;
        MokoFingerScrollPrivate *priv = FINGER_SCROLL_PRIVATE (scroll);
        
-       g_debug ("vel_x=%f, vel_y=%fr",priv->vel_x,priv->vel_y);
-
        if ((!priv->enabled) ||
-           (priv->mode == MOKO_FINGER_SCROLL_MODE_PUSH)) return FALSE;
+           (priv->mode != MOKO_FINGER_SCROLL_MODE_ACCEL)) return FALSE;
        if (!priv->clicked) {
                /* Decelerate gradually when pointer is raised */
                priv->vel_x *= priv->decel;
@@ -228,22 +186,6 @@
                                 allocation.height) *
                                (priv->vmax-priv->vmin)) + priv->vmin);
                        break;
-                   case MOKO_FINGER_SCROLL_MODE_PHYSICAL:
-                       /* Scroll by the amount of pixels the cursor has moved
-                        * since the last motion event.
-                        */
-                       moko_finger_scroll_scroll (scroll, x, y, NULL, NULL);
-                       priv->prev_values[1].x = priv->prev_values[0].x;
-                       priv->prev_values[1].y = priv->prev_values[0].y;
-                       priv->prev_values[1].time = priv->prev_values[0].time;
-                       priv->prev_values[0].x = event->x;
-                       priv->prev_values[0].y = event->y;
-                       priv->prev_values[0].time = event->time;
-                       priv->x = event->x;
-                       priv->y = event->y;
-                           
-                       break;
-       
                    default :
                        break;
                }
@@ -331,22 +273,6 @@
                ((GdkEvent *)event)->type = GDK_BUTTON_RELEASE;
                gdk_event_put ((GdkEvent *)event);
        }
-       if (priv->moved && priv->mode == MOKO_FINGER_SCROLL_MODE_PHYSICAL) {
-               point p0;
-               gdouble velx, vely;
-               p0.x = event->x;
-               p0.y = event->y;
-               p0.time = event->time;
-               g_debug ("doing physical");
-               /*velx and vely are in pixels/ms..*/
-               rough_linear (p0, priv->prev_values[0], priv->prev_values[1], 
&velx, &vely);
-               
-               priv->vel_x = (velx * 1000.0) / priv->sps;
-               priv->vel_y = (vely * 1000.0) / priv->sps;
-               g_timeout_add ((gint)(1000.0/(gdouble)priv->sps),
-                       (GSourceFunc)moko_finger_scroll_timeout,
-                       scroll);
-       }
 
        return TRUE;
 }
@@ -587,8 +513,8 @@
                        "Scroll mode",
                        "Change the finger-scrolling mode.",
                        MOKO_FINGER_SCROLL_MODE_PUSH,
-                       MOKO_FINGER_SCROLL_MODE_PHYSICAL,
-                       MOKO_FINGER_SCROLL_MODE_PHYSICAL,
+                       MOKO_FINGER_SCROLL_MODE_ACCEL,
+                       MOKO_FINGER_SCROLL_MODE_ACCEL,
                        G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
        g_object_class_install_property (

Modified: 
trunk/src/target/OM-2007.2/applications/fingerscroll/moko-finger-scroll.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/fingerscroll/moko-finger-scroll.h   
2007-08-03 14:42:50 UTC (rev 2624)
+++ trunk/src/target/OM-2007.2/applications/fingerscroll/moko-finger-scroll.h   
2007-08-03 14:54:37 UTC (rev 2625)
@@ -39,7 +39,6 @@
 typedef enum {
        MOKO_FINGER_SCROLL_MODE_PUSH,
        MOKO_FINGER_SCROLL_MODE_ACCEL,
-       MOKO_FINGER_SCROLL_MODE_PHYSICAL,
 } MokoFingerScrollMode;
 
 GType moko_finger_scroll_get_type (void);




--- End Message ---
--- Begin Message ---
Author: zecke
Date: 2007-08-03 22:00:37 +0200 (Fri, 03 Aug 2007)
New Revision: 2626

Modified:
   trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog
   
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-finger-scroll.c
Log:
2007-08-03  Holger Hans Peter Freyther  <[EMAIL PROTECTED]>

        Change GtkAdjustment handling to be the Gtk+ way. There is
        gtk_widget_set_scroll_adjustments which widgets that support
        scrolling indirectly implement (GtkTreeView, GtkViewport, GtkLayout).

        This allows to embed WebKitGtkPage which only implements the Gtk+ way
        of scrolling but does not export the GtkAdjustment via properties.

        This change was tested with the feedreader and the today app.

        * libmokoui/moko-finger-scroll.c:
        (moko_finger_scroll_scroll): Simplify
        (moko_finger_scroll_expose_event): Simplify
        (moko_finger_scroll_destroy): Unref our GtkAdjustment
        (moko_finger_scroll_remove_cb): Simplify
        (moko_finger_scroll_add): Use gtk_widget_set_scroll_adjustments
        (moko_finger_scroll_class_init): Register destroy of GtkObject
        (moko_finger_scroll_init): Create our GtkAjdustment, use 
g_object_ref_sink at one point.



Modified: trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog   2007-08-03 
14:54:37 UTC (rev 2625)
+++ trunk/src/target/OM-2007.2/libraries/libmokoui2/ChangeLog   2007-08-03 
20:00:37 UTC (rev 2626)
@@ -1,3 +1,23 @@
+2007-08-03  Holger Hans Peter Freyther  <[EMAIL PROTECTED]>
+
+        Change GtkAdjustment handling to be the Gtk+ way. There is
+        gtk_widget_set_scroll_adjustments which widgets that support
+        scrolling indirectly implement (GtkTreeView, GtkViewport, GtkLayout).
+
+        This allows to embed WebKitGtkPage which only implements the Gtk+ way
+        of scrolling but does not export the GtkAdjustment via properties.
+
+        This change was tested with the feedreader and the today app.
+
+        * libmokoui/moko-finger-scroll.c:
+        (moko_finger_scroll_scroll): Simplify
+        (moko_finger_scroll_expose_event): Simplify
+        (moko_finger_scroll_destroy): Unref our GtkAdjustment
+        (moko_finger_scroll_remove_cb): Simplify
+        (moko_finger_scroll_add): Use gtk_widget_set_scroll_adjustments
+        (moko_finger_scroll_class_init): Register destroy of GtkObject
+        (moko_finger_scroll_init): Create our GtkAjdustment, use 
g_object_ref_sink at one point.
+
 2007-07-29  Holger Freyther  <[EMAIL PROTECTED]>
 
         Refer to version two of the library

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-08-03 14:54:37 UTC (rev 2625)
+++ 
trunk/src/target/OM-2007.2/libraries/libmokoui2/libmokoui/moko-finger-scroll.c  
    2007-08-03 20:00:37 UTC (rev 2626)
@@ -49,6 +49,9 @@
        gboolean vscroll;
        GdkRectangle hscroll_rect;
        GdkRectangle vscroll_rect;
+
+       GtkAdjustment *hadjust;
+       GtkAdjustment *vadjust;
 };
 
 enum {
@@ -170,38 +173,34 @@
         * the scroll on a particular axis was successful.
         */
        gdouble h, v;
-       GtkAdjustment *hadjust, *vadjust;
        MokoFingerScrollPrivate *priv = FINGER_SCROLL_PRIVATE (scroll);
        
        if (!GTK_BIN (priv->align)->child) return;
        
-       g_object_get (G_OBJECT (GTK_BIN (priv->align)->child), "hadjustment",
-               &hadjust, "vadjustment", &vadjust, NULL);
-               
-       if (hadjust) {
-               h = gtk_adjustment_get_value (hadjust) - x;
-               if (h > hadjust->upper - hadjust->page_size) {
+       if (priv->hadjust) {
+               h = gtk_adjustment_get_value (priv->hadjust) - x;
+               if (h > priv->hadjust->upper - priv->hadjust->page_size) {
                        if (sx) *sx = FALSE;
-                       h = hadjust->upper - hadjust->page_size;
-               } else if (h < hadjust->lower) {
+                       h = priv->hadjust->upper - priv->hadjust->page_size;
+               } else if (h < priv->hadjust->lower) {
                        if (sx) *sx = FALSE;
-                       h = hadjust->lower;
+                       h = priv->hadjust->lower;
                } else if (sx)
                        *sx = TRUE;
-               gtk_adjustment_set_value (hadjust, h);
+               gtk_adjustment_set_value (priv->hadjust, h);
        }
        
-       if (vadjust) {
-               v = gtk_adjustment_get_value (vadjust) - y;
-               if (v > vadjust->upper - vadjust->page_size) {
+       if (priv->vadjust) {
+               v = gtk_adjustment_get_value (priv->vadjust) - y;
+               if (v > priv->vadjust->upper - priv->vadjust->page_size) {
                        if (sy) *sy = FALSE;
-                       v = vadjust->upper - vadjust->page_size;
-               } else if (v < vadjust->lower) {
+                       v = priv->vadjust->upper - priv->vadjust->page_size;
+               } else if (v < priv->vadjust->lower) {
                        if (sy) *sy = FALSE;
-                       v = vadjust->lower;
+                       v = priv->vadjust->lower;
                } else if (sy)
                        *sy = TRUE;
-               gtk_adjustment_set_value (vadjust, v);
+               gtk_adjustment_set_value (priv->vadjust, v);
        }
 
        moko_finger_scroll_redraw (scroll);
@@ -433,10 +432,6 @@
        if (GTK_BIN (priv->align)->child) {
                if (priv->vscroll) {
                        gint y, height;
-                       GtkAdjustment *vadjust;
-                       g_object_get (G_OBJECT (GTK_BIN (priv->align)->child),
-                               "vadjustment", &vadjust, NULL);
-
                        gdk_draw_rectangle (widget->window,
                                widget->style->fg_gc[GTK_STATE_INSENSITIVE],
                                TRUE,
@@ -445,12 +440,12 @@
                                priv->vscroll_rect.height);
                        
                        y = widget->allocation.y +
-                               ((vadjust->value/vadjust->upper)*
+                               ((priv->vadjust->value/priv->vadjust->upper)*
                                 (widget->allocation.height -
                                  (priv->hscroll ? SCROLL_WIDTH : 0)));
                        height = (widget->allocation.y +
-                               (((vadjust->value + vadjust->page_size)/
-                                 vadjust->upper)*
+                               (((priv->vadjust->value + 
priv->vadjust->page_size)/
+                                 priv->vadjust->upper)*
                                 (widget->allocation.height -
                                  (priv->hscroll ? SCROLL_WIDTH : 0)))) - y;
                        
@@ -462,10 +457,6 @@
                
                if (priv->hscroll) {
                        gint x, width;
-                       GtkAdjustment *hadjust;
-                       g_object_get (G_OBJECT (GTK_BIN (priv->align)->child),
-                               "hadjustment", &hadjust, NULL);
-
                        gdk_draw_rectangle (widget->window,
                                widget->style->fg_gc[GTK_STATE_INSENSITIVE],
                                TRUE,
@@ -474,12 +465,12 @@
                                priv->hscroll_rect.height);
 
                        x = widget->allocation.x +
-                               ((hadjust->value/hadjust->upper)*
+                               ((priv->hadjust->value/priv->hadjust->upper)*
                                 (widget->allocation.width  -
                                  (priv->vscroll ? SCROLL_WIDTH : 0)));
                        width = (widget->allocation.x +
-                               (((hadjust->value + hadjust->page_size)/
-                                 hadjust->upper)*
+                               (((priv->hadjust->value + 
priv->hadjust->page_size)/
+                                 priv->hadjust->upper)*
                                 (widget->allocation.width -
                                  (priv->vscroll ? SCROLL_WIDTH : 0)))) - x;
 
@@ -495,27 +486,32 @@
 }
 
 static void
+moko_finger_scroll_destroy (GtkObject *object)
+{
+       MokoFingerScrollPrivate *priv = FINGER_SCROLL_PRIVATE (object); 
+
+       if (priv->hadjust) {
+               g_object_unref (G_OBJECT (priv->hadjust));
+               priv->hadjust = NULL;
+       }
+
+       if (priv->vadjust) {
+               g_object_unref (G_OBJECT (priv->vadjust));
+               priv->vadjust = NULL;
+       }
+
+       GTK_OBJECT_CLASS (moko_finger_scroll_parent_class)->destroy (object);
+}
+
+static void
 moko_finger_scroll_remove_cb (GtkContainer *container,
                              GtkWidget    *child,
                              MokoFingerScroll *scroll)
 {
-       GtkAdjustment *hadjust, *vadjust;
-
        g_signal_handlers_disconnect_by_func (child,
                moko_finger_scroll_refresh, scroll);
        g_signal_handlers_disconnect_by_func (child,
                gtk_widget_queue_resize, scroll);
-
-       g_object_get (G_OBJECT (child),
-               "vadjustment", &vadjust, "hadjustment", &hadjust, NULL);
-       g_signal_handlers_disconnect_by_func (hadjust,
-               moko_finger_scroll_refresh, scroll);
-       g_signal_handlers_disconnect_by_func (vadjust,
-               moko_finger_scroll_refresh, scroll);
-       g_signal_handlers_disconnect_by_func (hadjust,
-               moko_finger_scroll_redraw, scroll);
-       g_signal_handlers_disconnect_by_func (vadjust,
-               moko_finger_scroll_redraw, scroll);
 }
 
 static void
@@ -523,7 +519,6 @@
                        GtkWidget    *child)
 {
        MokoFingerScrollPrivate *priv = FINGER_SCROLL_PRIVATE (container);
-       GtkAdjustment *hadjust, *vadjust;
        
        gtk_container_add (GTK_CONTAINER (priv->align), child);
        g_signal_connect_swapped (G_OBJECT (child), "size-allocate",
@@ -531,16 +526,8 @@
        g_signal_connect_swapped (G_OBJECT (child), "size-request",
                G_CALLBACK (gtk_widget_queue_resize), container);
 
-       g_object_get (G_OBJECT (GTK_BIN (priv->align)->child),
-               "vadjustment", &vadjust, "hadjustment", &hadjust, NULL);
-       g_signal_connect_swapped (G_OBJECT (hadjust), "changed",
-               G_CALLBACK (moko_finger_scroll_refresh), container);
-       g_signal_connect_swapped (G_OBJECT (vadjust), "changed",
-               G_CALLBACK (moko_finger_scroll_refresh), container);
-       g_signal_connect_swapped (G_OBJECT (hadjust), "value-changed",
-               G_CALLBACK (moko_finger_scroll_redraw), container);
-       g_signal_connect_swapped (G_OBJECT (vadjust), "value-changed",
-               G_CALLBACK (moko_finger_scroll_redraw), container);
+       if (!gtk_widget_set_scroll_adjustments (child, priv->hadjust, 
priv->vadjust))
+               g_warning("%s: cannot add non scrollable widget, wrap it in a 
viewport", __FUNCTION__);
 }
 
 static void
@@ -633,6 +620,7 @@
 moko_finger_scroll_class_init (MokoFingerScrollClass * klass)
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
+       GtkObjectClass *gtkobject_class = GTK_OBJECT_CLASS (klass);
        GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
        GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
 
@@ -642,6 +630,8 @@
        object_class->set_property = moko_finger_scroll_set_property;
        object_class->dispose = moko_finger_scroll_dispose;
        object_class->finalize = moko_finger_scroll_finalize;
+
+       gtkobject_class->destroy = moko_finger_scroll_destroy;
        
        widget_class->size_request = moko_finger_scroll_size_request;
        widget_class->expose_event = moko_finger_scroll_expose_event;
@@ -735,6 +725,14 @@
        gtk_widget_show (priv->align);
        
        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));
+
+       g_object_ref (G_OBJECT (priv->hadjust));
+       g_object_ref (G_OBJECT (priv->vadjust));
+       gtk_object_sink (GTK_OBJECT (priv->hadjust));
+       gtk_object_sink (GTK_OBJECT (priv->vadjust));
        
        g_signal_connect (G_OBJECT (self), "button-press-event",
                G_CALLBACK (moko_finger_scroll_button_press_cb), NULL);
@@ -744,6 +742,15 @@
                G_CALLBACK (moko_finger_scroll_motion_notify_cb), NULL);
        g_signal_connect (G_OBJECT (priv->align), "remove",
                G_CALLBACK (moko_finger_scroll_remove_cb), self);
+
+       g_signal_connect_swapped (G_OBJECT (priv->hadjust), "changed",
+               G_CALLBACK (moko_finger_scroll_refresh), self);
+       g_signal_connect_swapped (G_OBJECT (priv->vadjust), "changed",
+               G_CALLBACK (moko_finger_scroll_refresh), self);
+       g_signal_connect_swapped (G_OBJECT (priv->hadjust), "value-changed",
+               G_CALLBACK (moko_finger_scroll_redraw), self);
+       g_signal_connect_swapped (G_OBJECT (priv->vadjust), "value-changed",
+               G_CALLBACK (moko_finger_scroll_redraw), self);
 }
 
 GtkWidget *




--- End Message ---
--- Begin Message ---
Author: zecke
Date: 2007-08-03 22:50:28 +0200 (Fri, 03 Aug 2007)
New Revision: 2627

Added:
   
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/data/feedreader2_refresh_all.png
   
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.c
Removed:
   
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/data/rssreader_refresh_all.png
Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/data/Makefile.am
   trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/Makefile.am
   
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/application-data.h
   
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.h
   trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/main.c
Log:
007-08-03  Holger Hans Peter Freyther  <[EMAIL PROTECTED]>

        Implement the feed_item_view which will be used to show
        one feed entry to the user.

        Fix Makefile.am and the naming of the (unused) images.

        * data/Makefile.am:
        * data/rssreader_refresh_all.png: Removed.
        * src/Makefile.am:
        * src/application-data.h:
        * src/feed-item-view.c: Added.
        (prev_clicked):
        (next_clicked):
        (mail_clicked):
        (feed_item_view_init):
        (feed_item_view_class_init):
        (feed_item_view_new):
        (feed_item_view_set_can_go_back):
        (feed_item_view_set_can_go_forward):
        (feed_item_view_display):
        (feed_item_view_highlight):
        * src/feed-item-view.h:
        * src/main.c:
        (create_text_view):
        (create_configuration_ui):
        (create_ui): Disable the remove button
        (main):



Modified: trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/ChangeLog      
2007-08-03 20:00:37 UTC (rev 2626)
+++ trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/ChangeLog      
2007-08-03 20:50:28 UTC (rev 2627)
@@ -1,5 +1,34 @@
 2007-08-03  Holger Hans Peter Freyther  <[EMAIL PROTECTED]>
 
+        Implement the feed_item_view which will be used to show
+        one feed entry to the user.
+
+        Fix Makefile.am and the naming of the (unused) images.
+
+        * data/Makefile.am:
+        * data/rssreader_refresh_all.png: Removed.
+        * src/Makefile.am:
+        * src/application-data.h:
+        * src/feed-item-view.c: Added.
+        (prev_clicked):
+        (next_clicked):
+        (mail_clicked):
+        (feed_item_view_init):
+        (feed_item_view_class_init):
+        (feed_item_view_new):
+        (feed_item_view_set_can_go_back):
+        (feed_item_view_set_can_go_forward):
+        (feed_item_view_display):
+        (feed_item_view_highlight):
+        * src/feed-item-view.h:
+        * src/main.c:
+        (create_text_view):
+        (create_configuration_ui):
+        (create_ui): Disable the remove button
+        (main):
+
+2007-08-03  Holger Hans Peter Freyther  <[EMAIL PROTECTED]>
+
         Start creating the feedreader2, as with every second version
         there might be some over-engineering but as I'm aware of this
         phenomena I try to avoid the bad things.

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/data/Makefile.am
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/data/Makefile.am   
    2007-08-03 20:00:37 UTC (rev 2626)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/data/Makefile.am   
    2007-08-03 20:50:28 UTC (rev 2627)
@@ -1,7 +1,7 @@
-EXTRA_DIST = feedreader2_refresh_all.png  rssreader_subscribe.png
+EXTRA_DIST = feedreader2_refresh_all.png  feedreader2_subscribe.png
 
 resourcedir = $(pkgdatadir)
-resource_DATA = feedreader2_refresh_all.png  rssreader_subscribe.png
+resource_DATA = feedreader2_refresh_all.png  feedreader2_subscribe.png
 
 #
 # desktop integration: .desktop file

Copied: 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/data/feedreader2_refresh_all.png
 (from rev 2623, 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/data/rssreader_refresh_all.png)

Deleted: 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/data/rssreader_refresh_all.png
===================================================================
(Binary files differ)

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/Makefile.am
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/Makefile.am    
    2007-08-03 20:00:37 UTC (rev 2626)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/Makefile.am    
    2007-08-03 20:50:28 UTC (rev 2627)
@@ -9,6 +9,6 @@
 
 EXTRA_DIST = rfcdate.h moko_cache.h feed-configuration.h feed-data.h 
feed-item-view.h feed-selection-view.h application-data.h
 
-openmoko_feedreader2_SOURCES = feed-configuration.c feed-data.c rfcdate.c 
moko_cache.c main.c
+openmoko_feedreader2_SOURCES = feed-configuration.c feed-item-view.c 
feed-data.c rfcdate.c moko_cache.c main.c
 openmoko_feedreader2_LDADD = @OPENMOKO_LIBS@ @MRSS_LIBS@ @GTHREAD_LIBS@ 
@WEBKITGTK_LIBS@
 

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/application-data.h
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/application-data.h
 2007-08-03 20:00:37 UTC (rev 2626)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/application-data.h
 2007-08-03 20:50:28 UTC (rev 2627)
@@ -28,12 +28,13 @@
 #define APPLICATION_DATA_H
 
 #include "moko_cache.h"
-#include <gtk/gtk.h>
+#include "feed-item-view.h"
 
 struct ApplicationData {
     GtkWindow         *window;
     MokoCache         *cache;
     GtkNotebook       *notebook;
+    FeedItemView      *view;
 };
 
 /*

Added: 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.c
   2007-08-03 20:00:37 UTC (rev 2626)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.c
   2007-08-03 20:50:28 UTC (rev 2627)
@@ -0,0 +1,161 @@
+/*
+ *  RSS Reader, a simple RSS reader
+ *
+ *  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 "feed-item-view.h"
+
+#include <moko-finger-scroll.h>
+#include <moko-stock.h>
+
+enum {
+    NEXT,
+    PREV,
+    MAIL,
+    LAST_SIGNAL
+};
+
+static guint feed_item_view_signals[LAST_SIGNAL] = { 0, };
+
+static void
+prev_clicked (GtkWidget* wid, FeedItemView* view)
+{
+    g_signal_emit (view, feed_item_view_signals[PREV], 0);
+}
+
+static void
+next_clicked (GtkWidget* wid, FeedItemView* view)
+{
+    g_signal_emit (view, feed_item_view_signals[NEXT], 0);
+}
+
+static void
+mail_clicked (GtkWidget* wid, FeedItemView* view)
+{
+    g_signal_emit (view, feed_item_view_signals[MAIL], 0);
+}
+
+
+G_DEFINE_TYPE(FeedItemView, feed_item_view, GTK_TYPE_VBOX)
+
+static void
+feed_item_view_init (FeedItemView* view)
+{
+    GTK_BOX(view)->spacing = 0;
+    GTK_BOX(view)->homogeneous = FALSE;
+
+    GtkWidget* toolbar = gtk_toolbar_new ();
+    gtk_box_pack_start (GTK_BOX(view), toolbar, FALSE, FALSE, 0);
+
+    view->back = gtk_tool_button_new_from_stock (GTK_STOCK_MEDIA_PREVIOUS);
+    gtk_tool_item_set_expand (GTK_TOOL_ITEM(view->back), TRUE);
+    gtk_toolbar_insert (GTK_TOOLBAR(toolbar), view->back, 0);
+    g_signal_connect (view->back, "clicked", G_CALLBACK(prev_clicked), view);
+    
+    view->mail = gtk_tool_button_new_from_stock (MOKO_STOCK_MAIL_SEND);
+    gtk_tool_item_set_expand (GTK_TOOL_ITEM(view->mail), TRUE);
+    gtk_toolbar_insert (GTK_TOOLBAR(toolbar), view->mail, 1);
+    g_signal_connect (view->mail, "clicked", G_CALLBACK(mail_clicked), view);
+
+    view->forward = gtk_tool_button_new_from_stock (GTK_STOCK_MEDIA_NEXT);
+    gtk_tool_item_set_expand (GTK_TOOL_ITEM(view->forward), TRUE);
+    gtk_toolbar_insert (GTK_TOOLBAR(toolbar), view->forward, 2);
+    g_signal_connect (view->forward, "clicked", G_CALLBACK(next_clicked), 
view);
+
+    GtkWidget* scrolled = moko_finger_scroll_new ();
+    gtk_box_pack_start (GTK_BOX(view), scrolled, TRUE, TRUE, 0);
+
+    view->page = WEBKIT_GTK_PAGE(webkit_gtk_page_new ());
+    gtk_container_add (GTK_CONTAINER(scrolled), GTK_WIDGET(view->page));
+
+    /*
+     * disable this page
+     */
+    gtk_widget_set_sensitive (GTK_WIDGET(view->back), FALSE);
+    gtk_widget_set_sensitive (GTK_WIDGET(view->forward), FALSE);
+    gtk_widget_set_sensitive (GTK_WIDGET(view->mail), FALSE);
+    gtk_widget_set_sensitive (GTK_WIDGET(view->page), FALSE);
+}
+
+static void
+feed_item_view_class_init (FeedItemViewClass* view_class)
+{
+    feed_item_view_signals[NEXT] = g_signal_new ("next",
+            G_TYPE_FROM_CLASS(view_class),
+            (GSignalFlags) (G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
+            0,
+            NULL,
+            NULL,
+            g_cclosure_marshal_VOID__VOID,
+            G_TYPE_NONE, 0);
+
+    feed_item_view_signals[PREV] = g_signal_new ("previous",
+            G_TYPE_FROM_CLASS(view_class),
+            (GSignalFlags) (G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
+            0,
+            NULL,
+            NULL,
+            g_cclosure_marshal_VOID__VOID,
+            G_TYPE_NONE, 0);
+    feed_item_view_signals[MAIL] = g_signal_new ("mail",
+            G_TYPE_FROM_CLASS(view_class),
+            (GSignalFlags) (G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
+            0,
+            NULL,
+            NULL,
+            g_cclosure_marshal_VOID__VOID,
+            G_TYPE_NONE, 0);
+}
+
+GtkWidget*
+feed_item_view_new (void)
+{
+    return GTK_WIDGET(g_object_new (RSS_TYPE_FEED_ITEM_VIEW, NULL));
+}
+
+void
+feed_item_view_set_can_go_back (FeedItemView* view, gboolean can_go_back)
+{
+    gtk_widget_set_sensitive (GTK_WIDGET(view->back), can_go_back);
+}
+
+void
+feed_item_view_set_can_go_forward (FeedItemView* view, gboolean can_go_forward)
+{
+    gtk_widget_set_sensitive (GTK_WIDGET(view->forward), can_go_forward);
+}
+
+void
+feed_item_view_display (FeedItemView* view, const gchar* text)
+{
+    gtk_widget_set_sensitive (GTK_WIDGET(view->mail), TRUE);
+    gtk_widget_set_sensitive (GTK_WIDGET(view->page), TRUE);
+    webkit_gtk_page_load_html_string (view->page, text, "");
+}
+
+void
+feed_item_view_highlight (FeedItemView* view, const gchar* search_string)
+{
+    /* webkit_gtk_page_search (view->page, search_string); */
+}


Property changes on: 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.c
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.h
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.h
   2007-08-03 20:00:37 UTC (rev 2626)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.h
   2007-08-03 20:50:28 UTC (rev 2627)
@@ -39,8 +39,36 @@
 #define RSS_FEED_ITEM_VIEW_H
 
 #include <gtk/gtk.h>
+#include <webkitgtkpage.h>
 
+G_BEGIN_DECLS
 
+typedef struct _FeedItemView      FeedItemView;
+typedef struct _FeedItemViewClass FeedItemViewClass;
+
+#define RSS_TYPE_FEED_ITEM_VIEW             feed_item_view_get_type ()
+#define RSS_FEED_ITEM_VIEW(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj), 
RSS_TYPE_FEED_ITEM_VIEW, FeedItemView))
+#define RSS_FEED_ITEM_VIEW_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),  
RSS_TYPE_FEED_ITEM_VIEW, FeeditemViewClass))
+#define RSS_IS_FEED_ITEM_VIEW(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj), 
RSS_TYPE_FEED_ITEM_VIEW))
+#define RSS_IS_FEED_ITEM_VIEW_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),  
RSS_TYPE_FEED_ITEM_VIEW))
+#define RSS_FEED_ITEM_VIEW_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),  
RSS_TYPE_FEED_ITEM_VIEW, FeedItemViewClass))
+
+struct _FeedItemView {
+    GtkVBox parent;
+
+    WebKitGtkPage  *page;
+    GtkToolItem    *back;
+    GtkToolItem    *forward;
+    GtkToolItem    *mail;
+
+    gchar          *current_highlight;
+};
+
+struct _FeedItemViewClass {
+    GtkVBoxClass parent;
+};
+
+
 GType           feed_item_view_get_type             (void);
 GtkWidget*      feed_item_view_new                  (void);
 
@@ -50,12 +78,12 @@
 /*
  * display the text
  */
-void            feed_item_view_display              (FeedItemView*, gchar*);
+void            feed_item_view_display              (FeedItemView*, const 
gchar*);
 
 /*
  * highlight words from a search or such
  */
-void            feed_item_view_highlight            (FeedItemView*, gchar*);
+void            feed_item_view_highlight            (FeedItemView*, const 
gchar*);
 
 /*
  *  The following signals are emitted:
@@ -64,4 +92,6 @@
  *      visit_url   G_TYPE_STRING
  */
 
+G_END_DECLS
+
 #endif

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/main.c     
2007-08-03 20:00:37 UTC (rev 2626)
+++ trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/main.c     
2007-08-03 20:50:28 UTC (rev 2627)
@@ -30,6 +30,7 @@
 #include <webkitgtkglobal.h>
 
 #include <moko-finger-scroll.h>
+#include <moko-stock.h>
 
 #include "application-data.h"
 #include "feed-data.h"
@@ -44,6 +45,18 @@
 
 
 /*
+ * Text View
+ */
+static void
+create_text_view (struct ApplicationData* data)
+{
+    data->view = RSS_FEED_ITEM_VIEW(feed_item_view_new ());
+    gtk_notebook_append_page (data->notebook, GTK_WIDGET(data->view), 
gtk_image_new_from_stock (GTK_STOCK_MISSING_IMAGE, 
GTK_ICON_SIZE_LARGE_TOOLBAR));
+    gtk_container_child_set (GTK_CONTAINER(data->notebook), 
GTK_WIDGET(data->view), "tab-expand", TRUE, "tab-fill", TRUE, NULL);
+}
+
+
+/*
  * Config related functions
  */
 static void
@@ -80,6 +93,7 @@
     gtk_tool_item_set_expand (GTK_TOOL_ITEM(toolitem), TRUE);
     gtk_toolbar_insert (GTK_TOOLBAR(toolbar), toolitem, 2);
     g_signal_connect (toolitem, "clicked", 
G_CALLBACK(config_delete_clicked_closure), data);
+    gtk_widget_set_sensitive (GTK_WIDGET(toolitem), FALSE);
     
     /* main view */
     GtkWidget* scrolled = moko_finger_scroll_new ();
@@ -134,6 +148,12 @@
     GtkCellRenderer *text_renderer = 
GTK_CELL_RENDERER(gtk_cell_renderer_text_new ());
 
     /*
+     * 2. Text View
+     * (initialized before 1. so it can be used by them)
+     */
+    create_text_view (data);
+
+    /*
      * 3. Configuration
      */
     create_configuration_ui (data, text_renderer);
@@ -161,6 +181,7 @@
     gdk_threads_enter ();
     gtk_init (&argc, &argv);
     webkit_gtk_init ();
+    moko_stock_register ();
     g_set_application_name( _("FeedReader") );
 
     struct ApplicationData* data = g_new (struct ApplicationData, 1);




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

Reply via email to