</packing>
</child>
<child>
- <object class="GtkScrolledWindow" id="webkit_window">
+ <object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="shadow_type">in</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
- <placeholder/>
+ <object class="GtkScrolledWindow" id="webkit_window">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="browser_status">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">end</property>
+ <property name="margin_left">4</property>
+ <property name="margin_top">4</property>
+ <property name="single_line_mode">True</property>
+ <property name="angle">0.040000000000000001</property>
+ <property name="lines">1</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">3</property>
</packing>
</child>
</object>
panh = GTK_WIDGET(gtk_builder_get_object(builder, "webkit_window"));
+ webbrowser_init(GTK_LABEL(gtk_builder_get_object(builder,
+ "browser_status")));
+
gtk_container_add(GTK_CONTAINER(panh), web_get_widget());
g_object_unref(G_OBJECT(builder));
#include "webbrowser.h"
static WebKitWebView *view;
+static GtkLabel *w_status;
static gboolean new_window_requested_cbk(WebKitWebView *view,
WebKitWebFrame *frame,
return TRUE;
}
+static void hovering_over_link_cbk(WebKitWebView *web_view,
+ gchar *title,
+ gchar *uri,
+ gpointer user_data)
+{
+ if (uri)
+ gtk_label_set_label(w_status, uri);
+ else
+ gtk_label_set_label(w_status, "");
+}
+
GtkWidget *web_get_widget()
{
if (!view) {
"new-window-policy-decision-requested",
G_CALLBACK(new_window_requested_cbk),
view);
-
+ g_signal_connect(view,
+ "hovering-over-link",
+ G_CALLBACK(hovering_over_link_cbk),
+ NULL);
}
return GTK_WIDGET(view);
{
webkit_web_view_load_string(view, str, NULL, "UTF-8", "file://");
}
+
+void webbrowser_init(GtkLabel *status)
+{
+ w_status = status;
+}