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