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