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. r2990 - in
trunk/src/target/OM-2007.2/applications/openmoko-browser2: .
documentation documentation/design ([EMAIL PROTECTED])
2. r2991 - in
trunk/src/target/OM-2007.2/applications/openmoko-browser2: . src
([EMAIL PROTECTED])
3. r2992 - in
trunk/src/target/OM-2007.2/applications/openmoko-browser2: . src
([EMAIL PROTECTED])
4. r2993 - in
trunk/src/target/OM-2007.2/applications/openmoko-browser2: . src
([EMAIL PROTECTED])
--- Begin Message ---
Author: zecke
Date: 2007-09-18 03:40:30 +0200 (Tue, 18 Sep 2007)
New Revision: 2990
Added:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/documentation/
trunk/src/target/OM-2007.2/applications/openmoko-browser2/documentation/design/
trunk/src/target/OM-2007.2/applications/openmoko-browser2/documentation/design/GuiDesign
trunk/src/target/OM-2007.2/applications/openmoko-browser2/documentation/design/MainTasks
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
Log:
2007-09-16 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Document some of the bits that were discussed with
Ellen last Monday.
* documentation/design/GuiDesign: Added.
* documentation/design/MainTasks:
Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
2007-09-18 01:40:27 UTC (rev 2989)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
2007-09-18 01:40:30 UTC (rev 2990)
@@ -1,5 +1,13 @@
2007-09-16 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
+ Document some of the bits that were discussed with
+ Ellen last Monday.
+
+ * documentation/design/GuiDesign: Added.
+ * documentation/design/MainTasks:
+
+2007-09-16 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
+
Create the browser skeleton. It compiles but is not
doing anything useful.
Added:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/documentation/design/GuiDesign
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-browser2/documentation/design/GuiDesign
2007-09-18 01:40:27 UTC (rev 2989)
+++
trunk/src/target/OM-2007.2/applications/openmoko-browser2/documentation/design/GuiDesign
2007-09-18 01:40:30 UTC (rev 2990)
@@ -0,0 +1,73 @@
+= General Interface (MainWindow) =
+To follow the OpenMoko style guidelines we will be using a GtkNotebook
+with the following pages "Current Page", "Bookmark Page", "Go Page",
+"Select Page" and "Settings Page".
+When the application will be launched the default page to show is the "Bookmark
+Page".
+
+== Current Page ==
+The current page will be viewed in this "GtkNotebook page". To select
+another of the already opened pages visit "Select Page".
+
+The toolbar will have five entries and up to 8 gestures.
+
+Toolbar:
+ Forward
+ Backward
+ Stop/Reload
+ Adding a bookmark
+ Close
+
+Gestures:
+ Page-Overview. Zoom out to give a full page overview
+ Zoom-in
+ Zoom-out
+
+
+
+== Go Page ==
+It should be possible to replace the content of a page and be able
+to create new pages. This is why we will have a very simple input
+dialog to enter a URL/Search (hopefully assisted by the input method)
+and the option to open it in a new page or replace the current. E.g. this
+currently means that bookmarks are either opened in a new page or replace
+the current one. If it would replace the current page there must be an
+easy way to create a new blank page, so currently bookmarks will open in
+new pages.
+
+Discussion:
+ Entry Completion:
+ The proposal is to not remember every page but only the
+ pages that are in the bookmark-list and the pages that
+ got directly entered. The order should be to show the domain names
+ first and then after showing each domain other entries with the
+ path will be shown.
+
+ Bookmark and Go:
+
+
+
+== Select Page ==
+Show all opened pages in a grid and allow to switch the current tab.
+
+
+== Bookmark Page ==
+Allow to open a bookmarked page. This page will be opened and made current. It
is
+also possible to manage the bookmark page by removing, reordering and renaming
+entries.
+
+We will have a MokoSearchBar but currently have not discussed if we want to
have
+a search for the bookmarks. The combobox will be used to navigate the bookmark
+hierachy.
+Below a grid with bookmarks will be shown. This grid will have an "up" button
on the
+left when we are inside a hierachy. You can also navigate upwards or to
remembered
+places using the Combobox of the Bookmark Page.
+
+
+== Settings Page ==
+To be discussed
+
+
+
+= Closing Dialogs/Widgets =
+Using the close hardware button will be used to close the widget.
Added:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/documentation/design/MainTasks
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-browser2/documentation/design/MainTasks
2007-09-18 01:40:27 UTC (rev 2989)
+++
trunk/src/target/OM-2007.2/applications/openmoko-browser2/documentation/design/MainTasks
2007-09-18 01:40:30 UTC (rev 2990)
@@ -0,0 +1,83 @@
+= Main Tasks for an Embedded/Mobile Browser to be used with your thumb =
+
+-) Open a URL
+-) Visit a bookmarked site, add bookmarks
+-) Easily navigate and get an overview of the page
+-) Have more than one page open at a time
+-) Fullscreen browsing
+-) Gestures
+
+
+
+Tasks in depth:
+
+== Open a URL ==
+
+It should be easy to navigate to a new URL. The new URL could be opened
+in a new window/tab/XYZ or replace a current page.
+Ideally the OpenURL dialog/window is fullscreen, features auto completion
+for the entered URL and will show a list of bookmarks below the entry. When
+clicking on a bookmark it should show up in the URL entry and can be edited
further.
+
+
+== Visit a bookmarked site, add bookmarks ==
+Bookmarks:
+ We will allow to keep a hierachy of Bookmarked sites. The bookmark
consists out of a icon
+ (by default the favorite icon of the site), a URL to be navigated to and a
small
+ text to be shown to the user.
+
+Adding a bookmark:
+ Adding a bookmark should be possible with a thumb press. By default the
current
+ favorite icon, the URL should be used. The entering of a text is optional.
In case
+ of adding an already existing bookmark we will use the already existing
icon+name
+ and allow to edit.
+ The add dialog will allow to create new folders as well. The hierachy can
be chosen
+ using a ComboBox with the subdirectories being indented in the display.
+
+Ordering of bookmarsk:
+ It should be possible to change the order/rang of a bookmark by drag and
drop. This
+ should be able to be triggered from the Bookmark tab as well.
+ Having a hierachy makes it more tough to move bookmars around in the
hierachy. There
+ are two modes to do so. Using the editing menu which will be shown on
"Right-On-Hold"
+ or by dragging and dropping along the hierachy of the bookmark view.
+
+Visiting Bookmarked sites:
+ On one click a grid/icon-view of bookmarks should be presented on the
screen. The
+ grid should be of a fixed size and it should be possible to go to the
next, previous
+ site.
+ The grid will be reachable using the GtkNotebook of the MainWindow. There
will be one
+ GtkNotebook page for the bookmarks. And instead of having a start site the
+ bookmark page will be shown.
+
+== Easily navigate and get an overview of the page ==
+
+One click should trigger a whole page view, and having a rect in the size of
the viewport to
+control which area should be seen.
+
+== Have more than one page open at a time ==
+
+Some form of tab browsing. Probably similiar to the bookmark screen to show a
list of open
+windows in a small, but not too small preview.
+
+== FullScreen browsing ==
+
+With one click it should be possible to use the fullscreen for browsing. The
question is how
+to toggle back without having to use a keyboard. One option would be to have a
fixed point on the screen,
+another would be to have gestures. But they must not conflict with
MokoFingerScroll window.
+(Implementation is postponed)
+
+== Gestures ==
+
+The gestures should not conflict with MokoFingerScroll, should probably be
similiar to the simple XStroke
+implementation and should be used for the following options.
+We will allow to define the corners (my screen has eight corners) and their
actions, by default they will
+not conflict with the MokoFingerScroll.
+
+Zoom-In
+Zoom-Out
+Go Back
+Go Forward
+Add Bookmark
+Enter Fullscreen
+Leave Fullscreen
+
--- End Message ---
--- Begin Message ---
Author: zecke
Date: 2007-09-18 03:40:31 +0200 (Tue, 18 Sep 2007)
New Revision: 2991
Added:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/Makefile.am
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c
Log:
2007-09-16 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Start implementing the "Current Page". We start with
providing the default actions for navigation.
* src/Makefile.am:
* src/browser-data.h:
* src/current-page.c: Added.
(current_back_clicked_closure):
(current_forward_clicked_closure):
(current_stop_reload_clicked_closure):
(current_add_bookmark_clicked_closure):
(setup_current_page):
* src/current-page.h: Added.
* src/main.c:
(window_delete_event):
(setup_ui):
Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
2007-09-18 01:40:30 UTC (rev 2990)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
2007-09-18 01:40:31 UTC (rev 2991)
@@ -1,5 +1,23 @@
2007-09-16 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
+ Start implementing the "Current Page". We start with
+ providing the default actions for navigation.
+
+ * src/Makefile.am:
+ * src/browser-data.h:
+ * src/current-page.c: Added.
+ (current_back_clicked_closure):
+ (current_forward_clicked_closure):
+ (current_stop_reload_clicked_closure):
+ (current_add_bookmark_clicked_closure):
+ (setup_current_page):
+ * src/current-page.h: Added.
+ * src/main.c:
+ (window_delete_event):
+ (setup_ui):
+
+2007-09-16 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
+
Document some of the bits that were discussed with
Ellen last Monday.
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/Makefile.am
2007-09-18 01:40:30 UTC (rev 2990)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/Makefile.am
2007-09-18 01:40:31 UTC (rev 2991)
@@ -7,8 +7,8 @@
bin_PROGRAMS = openmoko-browser
-#EXTRA_DIST =
-openmoko_browser_SOURCES = main.c
+EXTRA_DIST = browser-data.h current-page.h
+openmoko_browser_SOURCES = main.c current-page.c
openmoko_browser_LDADD = @OPENMOKO_LIBS@ @WEBKITGTK_LIBS@ @GTHREAD_LIBS@
CLEANFILES = $(stamp_files)
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
2007-09-18 01:40:30 UTC (rev 2990)
+++
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
2007-09-18 01:40:31 UTC (rev 2991)
@@ -29,6 +29,9 @@
#include "webkitgtkpage.h"
+#include <glib.h>
+#include <gtk/gtk.h>
+
/*
* representation of one page
*/
@@ -40,7 +43,21 @@
* The state of the Browser
*/
struct BrowserData {
+ GtkWidget *mainWindow;
+ GtkWidget *mainNotebook;
+ GtkWidget *currentFingerScroll;
+
GList* browserPages;
+ struct BrowserPage* currentPage;
+
+ /**
+ * Two special views for the Browser. The Overview
+ * and Bookmark page are meant to be partly implemented
+ * using HTML and JavaScript and binding the GObject(s) to
+ * JavaScript.
+ */
+ WebKitGtkPage* pagesOverviewPage;
+ WebKitGtkPage* bookmarkPage;
};
#endif
Added:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c
2007-09-18 01:40:30 UTC (rev 2990)
+++
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c
2007-09-18 01:40:31 UTC (rev 2991)
@@ -0,0 +1,84 @@
+/*
+ * A simple WebBrowser - Implementations for the "Current Page"
+ *
+ * Copyright (C) 2007 Holger Hans Peter Freyther
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Current Version: $Rev$ ($Date$) [$Author$]
+ */
+
+#include "config.h"
+#include "current-page.h"
+
+#include <moko-finger-scroll.h>
+
+static void current_back_clicked_closure(GtkWidget* button, struct
BrowserData* data)
+{
+}
+
+static void current_forward_clicked_closure(GtkWidget* button, struct
BrowserData* data)
+{
+}
+
+static void current_stop_reload_clicked_closure(GtkWidget* button, struct
BrowserData* data)
+{
+}
+
+static void current_add_bookmark_clicked_closure(GtkWidget* button, struct
BrowserData* data)
+{
+}
+
+void setup_current_page(GtkBox* box, struct BrowserData* data)
+{
+ GtkWidget* toolbar = gtk_toolbar_new ();
+ gtk_box_pack_start (box, toolbar, FALSE, FALSE, 0);
+
+
+ GtkToolItem* toolitem;
+ toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_GO_BACK);
+ gtk_tool_item_set_expand (GTK_TOOL_ITEM (toolitem), TRUE);
+ g_signal_connect (toolitem, "clicked",
G_CALLBACK(current_back_clicked_closure), data);
+ gtk_widget_set_sensitive (GTK_WIDGET(toolitem), FALSE);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, 0);
+ gtk_toolbar_insert (GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new (),
1);
+
+ toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_GO_FORWARD);
+ gtk_tool_item_set_expand (GTK_TOOL_ITEM (toolitem), TRUE);
+ g_signal_connect (toolitem, "clicked",
G_CALLBACK(current_forward_clicked_closure), data);
+ gtk_widget_set_sensitive (GTK_WIDGET(toolitem), FALSE);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, 2);
+ gtk_toolbar_insert (GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new (),
3);
+
+ toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_STOP);
+ gtk_tool_item_set_expand (GTK_TOOL_ITEM (toolitem), TRUE);
+ g_signal_connect (toolitem, "clicked",
G_CALLBACK(current_stop_reload_clicked_closure), data);
+ gtk_widget_set_sensitive (GTK_WIDGET(toolitem), FALSE);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, 4);
+ gtk_toolbar_insert (GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new (),
5);
+
+ toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_ADD);
+ gtk_tool_item_set_expand (GTK_TOOL_ITEM (toolitem), TRUE);
+ g_signal_connect (toolitem, "clicked",
G_CALLBACK(current_add_bookmark_clicked_closure), data);
+ gtk_widget_set_sensitive (GTK_WIDGET(toolitem), FALSE);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, 6);
+
+ data->currentFingerScroll = moko_finger_scroll_new ();
+ gtk_box_pack_start (box, data->currentFingerScroll, TRUE, TRUE, 0);
+}
Copied:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h
(from rev 2990,
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h)
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
2007-09-18 01:40:30 UTC (rev 2990)
+++
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h
2007-09-18 01:40:31 UTC (rev 2991)
@@ -0,0 +1,34 @@
+/*
+ * A simple WebBrowser - Definitions for the "Current Page"
+ *
+ * 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$]
+ */
+
+#ifndef OPENMOKO_BROWSER_CURRENT_PAGE_H
+#define OPENMOKO_BROWSER_CURRENT_PAGE_H
+
+#include "browser-data.h"
+
+void setup_current_page(GtkBox* box, struct BrowserData* data);
+
+#endif
Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c
2007-09-18 01:40:30 UTC (rev 2990)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c
2007-09-18 01:40:31 UTC (rev 2991)
@@ -25,7 +25,7 @@
*/
#include "config.h"
-#include "browser-data.h"
+#include "current-page.h"
#include <gtk/gtk.h>
#include <glib/gi18n.h>
@@ -66,7 +66,29 @@
return EXIT_SUCCESS;
}
+static void window_delete_event(GtkWidget* widget, GdkEvent* event, gpointer
_data)
+{
+ gtk_main_quit ();
+}
static void setup_ui (struct BrowserData* data)
{
+ data->mainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ g_signal_connect (data->mainWindow, "delete-event",
G_CALLBACK(window_delete_event), NULL);
+
+ data->mainNotebook = gtk_notebook_new ();
+ gtk_notebook_set_tab_pos (GTK_NOTEBOOK (data->mainNotebook),
GTK_POS_BOTTOM);
+ gtk_container_add (GTK_CONTAINER (data->mainWindow), GTK_WIDGET
(data->mainNotebook));
+
+ /*
+ * Current Page
+ */
+ GtkWidget* box = gtk_vbox_new (FALSE, 0);
+ gtk_notebook_append_page (GTK_NOTEBOOK (data->mainNotebook), box,
gtk_image_new_from_stock (GTK_STOCK_NETWORK, GTK_ICON_SIZE_LARGE_TOOLBAR));
+ gtk_container_child_set (GTK_CONTAINER (data->mainNotebook), box,
"tab-expand", TRUE, "tab-fill", TRUE, NULL);
+ setup_current_page(GTK_BOX (box), data);
+
+
+
+ gtk_widget_show_all (GTK_WIDGET (data->mainWindow));
}
--- End Message ---
--- Begin Message ---
Author: zecke
Date: 2007-09-18 03:40:33 +0200 (Tue, 18 Sep 2007)
New Revision: 2992
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c
Log:
2007-09-17 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Use g_new0 to initialize the BrowserData.
* src/main.c:
(main):
Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
2007-09-18 01:40:31 UTC (rev 2991)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
2007-09-18 01:40:33 UTC (rev 2992)
@@ -1,3 +1,10 @@
+2007-09-17 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
+
+ Use g_new0 to initialize the BrowserData.
+
+ * src/main.c:
+ (main):
+
2007-09-16 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Start implementing the "Current Page". We start with
Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c
2007-09-18 01:40:31 UTC (rev 2991)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/main.c
2007-09-18 01:40:33 UTC (rev 2992)
@@ -56,7 +56,7 @@
moko_stock_register ();
g_set_application_name (_("Browser"));
- struct BrowserData* data = g_new (struct BrowserData, 1);
+ struct BrowserData* data = g_new0 (struct BrowserData, 1);
setup_ui (data);
gtk_main ();
--- End Message ---
--- Begin Message ---
Author: zecke
Date: 2007-09-18 03:40:35 +0200 (Tue, 18 Sep 2007)
New Revision: 2993
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h
Log:
2007-09-17 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Start implementing set_current_page to allow switching
the page. Stop/Reload is currently not implementable as
WebKit/Gtk+ has no way to signalize if the load is done.
* src/browser-data.h:
* src/current-page.c:
(current_back_clicked_closure):
(current_forward_clicked_closure):
(current_add_bookmark_clicked_closure):
(setup_current_page):
(set_current_page):
* src/current-page.h:
Modified: trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
2007-09-18 01:40:33 UTC (rev 2992)
+++ trunk/src/target/OM-2007.2/applications/openmoko-browser2/ChangeLog
2007-09-18 01:40:35 UTC (rev 2993)
@@ -1,5 +1,20 @@
2007-09-17 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
+ Start implementing set_current_page to allow switching
+ the page. Stop/Reload is currently not implementable as
+ WebKit/Gtk+ has no way to signalize if the load is done.
+
+ * src/browser-data.h:
+ * src/current-page.c:
+ (current_back_clicked_closure):
+ (current_forward_clicked_closure):
+ (current_add_bookmark_clicked_closure):
+ (setup_current_page):
+ (set_current_page):
+ * src/current-page.h:
+
+2007-09-17 Holger Hans Peter Freyther <[EMAIL PROTECTED]>
+
Use g_new0 to initialize the BrowserData.
* src/main.c:
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
2007-09-18 01:40:33 UTC (rev 2992)
+++
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/browser-data.h
2007-09-18 01:40:35 UTC (rev 2993)
@@ -58,6 +58,15 @@
*/
WebKitGtkPage* pagesOverviewPage;
WebKitGtkPage* bookmarkPage;
+
+
+ /*
+ * Current
+ */
+ GtkToolItem* currentBack;
+ GtkToolItem* currentForward;
+ GtkToolItem* currentStop;
+ GtkToolItem* currentAdd;
};
#endif
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c
2007-09-18 01:40:33 UTC (rev 2992)
+++
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.c
2007-09-18 01:40:35 UTC (rev 2993)
@@ -28,13 +28,19 @@
#include "current-page.h"
#include <moko-finger-scroll.h>
+#include <webkitgtkframe.h>
+#include <webkitgtkpage.h>
static void current_back_clicked_closure(GtkWidget* button, struct
BrowserData* data)
{
+ g_return_if_fail (data->currentPage);
+ webkit_gtk_page_go_backward(data->currentPage->webKitPage);
}
static void current_forward_clicked_closure(GtkWidget* button, struct
BrowserData* data)
{
+ g_return_if_fail (data->currentPage);
+ webkit_gtk_page_go_forward(data->currentPage->webKitPage);
}
static void current_stop_reload_clicked_closure(GtkWidget* button, struct
BrowserData* data)
@@ -43,42 +49,74 @@
static void current_add_bookmark_clicked_closure(GtkWidget* button, struct
BrowserData* data)
{
+ g_return_if_fail (data->currentPage);
+ g_print ("Location to bookmark: %s\n", webkit_gtk_frame_get_title
(webkit_gtk_page_get_main_frame (data->currentPage->webKitPage)));
}
+static void current_progress_changed(WebKitGtkPage* page, int prog, struct
BrowserData* data)
+{
+}
+
void setup_current_page(GtkBox* box, struct BrowserData* data)
{
GtkWidget* toolbar = gtk_toolbar_new ();
gtk_box_pack_start (box, toolbar, FALSE, FALSE, 0);
- GtkToolItem* toolitem;
- toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_GO_BACK);
- gtk_tool_item_set_expand (GTK_TOOL_ITEM (toolitem), TRUE);
- g_signal_connect (toolitem, "clicked",
G_CALLBACK(current_back_clicked_closure), data);
- gtk_widget_set_sensitive (GTK_WIDGET(toolitem), FALSE);
- gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, 0);
+ data->currentBack = gtk_tool_button_new_from_stock (GTK_STOCK_GO_BACK);
+ gtk_tool_item_set_expand (GTK_TOOL_ITEM (data->currentBack), TRUE);
+ g_signal_connect (data->currentBack, "clicked",
G_CALLBACK(current_back_clicked_closure), data);
+ gtk_widget_set_sensitive (GTK_WIDGET(data->currentBack), FALSE);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->currentBack, 0);
gtk_toolbar_insert (GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new (),
1);
- toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_GO_FORWARD);
- gtk_tool_item_set_expand (GTK_TOOL_ITEM (toolitem), TRUE);
- g_signal_connect (toolitem, "clicked",
G_CALLBACK(current_forward_clicked_closure), data);
- gtk_widget_set_sensitive (GTK_WIDGET(toolitem), FALSE);
- gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, 2);
+ data->currentForward = gtk_tool_button_new_from_stock
(GTK_STOCK_GO_FORWARD);
+ gtk_tool_item_set_expand (GTK_TOOL_ITEM (data->currentForward), TRUE);
+ g_signal_connect (data->currentForward, "clicked",
G_CALLBACK(current_forward_clicked_closure), data);
+ gtk_widget_set_sensitive (GTK_WIDGET(data->currentForward), FALSE);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->currentForward, 2);
gtk_toolbar_insert (GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new (),
3);
- toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_STOP);
- gtk_tool_item_set_expand (GTK_TOOL_ITEM (toolitem), TRUE);
- g_signal_connect (toolitem, "clicked",
G_CALLBACK(current_stop_reload_clicked_closure), data);
- gtk_widget_set_sensitive (GTK_WIDGET(toolitem), FALSE);
- gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, 4);
+ data->currentStop = gtk_tool_button_new_from_stock (GTK_STOCK_STOP);
+ gtk_tool_item_set_expand (GTK_TOOL_ITEM (data->currentStop), TRUE);
+ g_signal_connect (data->currentStop, "clicked",
G_CALLBACK(current_stop_reload_clicked_closure), data);
+ gtk_widget_set_sensitive (GTK_WIDGET(data->currentStop), FALSE);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->currentStop, 4);
gtk_toolbar_insert (GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new (),
5);
- toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_ADD);
- gtk_tool_item_set_expand (GTK_TOOL_ITEM (toolitem), TRUE);
- g_signal_connect (toolitem, "clicked",
G_CALLBACK(current_add_bookmark_clicked_closure), data);
- gtk_widget_set_sensitive (GTK_WIDGET(toolitem), FALSE);
- gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, 6);
+ data->currentAdd = gtk_tool_button_new_from_stock (GTK_STOCK_ADD);
+ gtk_tool_item_set_expand (GTK_TOOL_ITEM (data->currentAdd), TRUE);
+ g_signal_connect (data->currentAdd, "clicked",
G_CALLBACK(current_add_bookmark_clicked_closure), data);
+ gtk_widget_set_sensitive (GTK_WIDGET(data->currentAdd), FALSE);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->currentAdd, 6);
data->currentFingerScroll = moko_finger_scroll_new ();
gtk_box_pack_start (box, data->currentFingerScroll, TRUE, TRUE, 0);
}
+
+/*
+ * The current page changed
+ */
+void set_current_page(struct BrowserPage* page, struct BrowserData* data)
+{
+ if (page == data->currentPage)
+ return;
+
+ if (data->currentPage)
+ g_signal_handlers_disconnect_by_func(data->currentPage->webKitPage,
(gpointer)current_progress_changed, data);
+
+ if (!page) {
+ data->currentPage = NULL;
+ } else {
+ data->currentPage = page;
+ g_signal_connect(data->currentPage->webKitPage,
"load-progress-changed", G_CALLBACK(current_progress_changed), data);
+
+ /*
+ * Update the GtkToolItems
+ */
+ gtk_widget_set_sensitive (GTK_WIDGET (data->currentBack),
webkit_gtk_page_can_go_backward (data->currentPage->webKitPage));
+ gtk_widget_set_sensitive (GTK_WIDGET (data->currentForward),
webkit_gtk_page_can_go_forward (data->currentPage->webKitPage));
+ gtk_widget_set_sensitive (GTK_WIDGET (data->currentAdd),
webkit_gtk_frame_get_title (webkit_gtk_page_get_main_frame
(data->currentPage->webKitPage)) != NULL);
+ /* XXX ### FIXME TODO check if we should show stop/reload */
+ }
+}
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h
2007-09-18 01:40:33 UTC (rev 2992)
+++
trunk/src/target/OM-2007.2/applications/openmoko-browser2/src/current-page.h
2007-09-18 01:40:35 UTC (rev 2993)
@@ -30,5 +30,6 @@
#include "browser-data.h"
void setup_current_page(GtkBox* box, struct BrowserData* data);
+void set_current_page(struct BrowserPage* page, struct BrowserData* data);
#endif
--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog