Changeset 85311 in webkit


Ignore:
Timestamp:
Apr 29, 2011 2:32:49 AM (13 years ago)
Author:
Carlos Garcia Campos
Message:

2011-04-29 Carlos Garcia Campos <cgarcia@igalia.com>

Reviewed by Martin Robinson.

[GTK] Implement page loader client in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=58024

A new class BrowserWindow has been added to implement the page
loader client. It makes supporting multiple windows easier. Window
title and url entry are now updated during the loading process.

  • MiniBrowser/gtk/BrowserWindow.c: Added. (activateUriEntryCallback): (goBackCallback): (goForwardCallback): (browserWindowFinalize): (browserWindowGetProperty): (browserWindowSetProperty): (browser_window_init): (browserWindowConstructed): (browser_window_class_init): (browserWindowUpdateTitle): (browserWindowSetTitle): (browserWindowSetLoadProgress): (browserWindowUpdateURL): (didStartProvisionalLoadForFrame): (didReceiveServerRedirectForProvisionalLoadForFrame): (didFailProvisionalLoadWithErrorForFrame): (didCommitLoadForFrame): (didFinishDocumentLoadForFrame): (didFinishLoadForFrame): (didFailLoadWithErrorForFrame): (didReceiveTitleForFrame): (didFirstLayoutForFrame): (didFirstVisuallyNonEmptyLayoutForFrame): (didRemoveFrameFromHierarchy): (didStartProgress): (didChangeProgress): (didFinishProgress): (didBecomeUnresponsive): (didBecomeResponsive): (browserWindowLoaderClientInit): (browser_window_new): (browser_window_get_view):
  • MiniBrowser/gtk/BrowserWindow.h: Added.
  • MiniBrowser/gtk/GNUmakefile.am:
  • MiniBrowser/gtk/main.c: (createWindow):
Location:
trunk/Tools
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r85308 r85311  
     12011-04-29  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        Reviewed by Martin Robinson.
     4
     5        [GTK] Implement page loader client in MiniBrowser
     6        https://bugs.webkit.org/show_bug.cgi?id=58024
     7
     8        A new class BrowserWindow has been added to implement the page
     9        loader client. It makes supporting multiple windows easier. Window
     10        title and url entry are now updated during the loading process.
     11
     12        * MiniBrowser/gtk/BrowserWindow.c: Added.
     13        (activateUriEntryCallback):
     14        (goBackCallback):
     15        (goForwardCallback):
     16        (browserWindowFinalize):
     17        (browserWindowGetProperty):
     18        (browserWindowSetProperty):
     19        (browser_window_init):
     20        (browserWindowConstructed):
     21        (browser_window_class_init):
     22        (browserWindowUpdateTitle):
     23        (browserWindowSetTitle):
     24        (browserWindowSetLoadProgress):
     25        (browserWindowUpdateURL):
     26        (didStartProvisionalLoadForFrame):
     27        (didReceiveServerRedirectForProvisionalLoadForFrame):
     28        (didFailProvisionalLoadWithErrorForFrame):
     29        (didCommitLoadForFrame):
     30        (didFinishDocumentLoadForFrame):
     31        (didFinishLoadForFrame):
     32        (didFailLoadWithErrorForFrame):
     33        (didReceiveTitleForFrame):
     34        (didFirstLayoutForFrame):
     35        (didFirstVisuallyNonEmptyLayoutForFrame):
     36        (didRemoveFrameFromHierarchy):
     37        (didStartProgress):
     38        (didChangeProgress):
     39        (didFinishProgress):
     40        (didBecomeUnresponsive):
     41        (didBecomeResponsive):
     42        (browserWindowLoaderClientInit):
     43        (browser_window_new):
     44        (browser_window_get_view):
     45        * MiniBrowser/gtk/BrowserWindow.h: Added.
     46        * MiniBrowser/gtk/GNUmakefile.am:
     47        * MiniBrowser/gtk/main.c:
     48        (createWindow):
     49
    1502011-04-28  Stephanie Lewis  <slewis@apple.com>
    251
  • trunk/Tools/MiniBrowser/gtk/GNUmakefile.am

    r82570 r85311  
    1010
    1111Programs_MiniBrowser_SOURCES = \
     12        Tools/MiniBrowser/gtk/BrowserWindow.h \
     13        Tools/MiniBrowser/gtk/BrowserWindow.c \
    1214        Tools/MiniBrowser/gtk/main.c
    1315
  • trunk/Tools/MiniBrowser/gtk/main.c

    r85200 r85311  
    2626 */
    2727
     28#include "BrowserWindow.h"
    2829#include <WebKit2/WebKit2.h>
    2930#include <gtk/gtk.h>
    30 
    31 static void activateUriEntryCallback(GtkWidget *entry, gpointer data)
    32 {
    33     WKViewRef webView = g_object_get_data(G_OBJECT(entry), "web-view");
    34     const gchar *uri = gtk_entry_get_text(GTK_ENTRY(entry));
    35     WKPageLoadURL(WKViewGetPage(webView), WKURLCreateWithUTF8CString(uri));
    36 }
    3731
    3832static void destroyCallback(GtkWidget *widget, GtkWidget *window)
    3933{
    4034    gtk_main_quit();
    41 }
    42 
    43 static void goBackCallback(GtkWidget *widget, WKViewRef webView)
    44 {
    45     WKPageGoBack(WKViewGetPage(webView));
    46 }
    47 
    48 static void goForwardCallback(GtkWidget *widget, WKViewRef webView)
    49 {
    50     WKPageGoForward(WKViewGetPage(webView));
    51 }
    52 
    53 static GtkWidget *createToolbar(GtkWidget *uriEntry, WKViewRef webView)
    54 {
    55     GtkWidget *toolbar = gtk_toolbar_new();
    56 
    57 #if GTK_CHECK_VERSION(2, 15, 0)
    58     gtk_orientable_set_orientation(GTK_ORIENTABLE(toolbar), GTK_ORIENTATION_HORIZONTAL);
    59 #else
    60     gtk_toolbar_set_orientation(GTK_TOOLBAR(toolbar), GTK_ORIENTATION_HORIZONTAL);
    61 #endif
    62     gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH_HORIZ);
    63 
    64     GtkToolItem *item = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK);
    65     g_signal_connect(item, "clicked", G_CALLBACK(goBackCallback), (gpointer)webView);
    66     gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1);
    67 
    68     item = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD);
    69     g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(goForwardCallback), (gpointer)webView);
    70     gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1);
    71 
    72     item = gtk_tool_item_new();
    73     gtk_tool_item_set_expand(item, TRUE);
    74     gtk_container_add(GTK_CONTAINER(item), uriEntry);
    75     g_signal_connect(uriEntry, "activate", G_CALLBACK(activateUriEntryCallback), NULL);
    76     gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1);
    77 
    78     g_object_set_data(G_OBJECT(uriEntry), "web-view", (gpointer)webView);
    79     item = gtk_tool_button_new_from_stock(GTK_STOCK_OK);
    80     g_signal_connect_swapped(item, "clicked", G_CALLBACK(activateUriEntryCallback), (gpointer)uriEntry);
    81     gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1);
    82 
    83     return toolbar;
    8435}
    8536
     
    9142static GtkWidget *createWindow(WKViewRef webView)
    9243{
    93     GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    94     gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);
    95     gtk_widget_set_name(window, "MiniBrowser");
    96 
    97     GtkWidget *uriEntry = gtk_entry_new();
    98 
    99     GtkWidget *vbox = gtk_vbox_new(FALSE, 0);
    100     gtk_box_pack_start(GTK_BOX(vbox), createToolbar(uriEntry, webView), FALSE, FALSE, 0);
    101     gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(webView), TRUE, TRUE, 0);
    102 
    103     gtk_container_add(GTK_CONTAINER(window), vbox);
     44    GtkWidget *window = browser_window_new(webView);
    10445
    10546    g_signal_connect(window, "destroy", G_CALLBACK(destroyCallback), NULL);
Note: See TracChangeset for help on using the changeset viewer.