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

Reply via email to