r2627 - in trunk/src/target/OM-2007.2/applications/openmoko-feedreader2: . data src

zecke at sita.openmoko.org zecke at sita.openmoko.org
Fri Aug 3 22:50:51 CEST 2007


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  <zecke at selfish.org>

        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  <zecke at selfish.org>
 
+        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  <zecke at selfish.org>
+
         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);





More information about the commitlog mailing list