#!/usr/bin/perl

use strict;
use warnings;

use Gtk2 -init;
use Gtk2::WebKit;
use FindBin;

my $window = Gtk2::Window->new;
$window->set_title("alice");
$window->resize(800, 600);
my $view = Gtk2::WebKit::WebView->new;
my $settings = $view->get_settings;
$settings->set("enable-spell-checking" => 1);

$view->signal_connect(
  navigation_policy_decision_requested => sub {
    my ($view, $frame, $req, $action, $policy) = @_;
    if ($action->get_reason eq 'link-clicked' && $action->get_button == 1) {
      Gtk2::show_uri(undef, $req->get_uri);
      $policy->ignore;
      return 1;
    }
    $policy->use;
    return 0;
  }
);
$view->signal_connect(
  create_web_view => sub {
    my $window = Gtk2::Window->new;
    my $view = Gtk2::WebKit::WebView->new;
    $window->add($view);
    $window->show_all;
    return $view;
  }
);

$view->signal_connect(
  new_window_policy_decision_requested => sub {
    my ($view, $frame, $req, $action, $policy) = @_;
    print STDERR "new_window_policy_decision_requested\n";
    $policy->use;
    return 0;
  }
);

$view->signal_connect(
  web_view_ready => sub {
    print STDERR "web_view_ready\n";
    return 0;
  }
);

$window->add($view);
$view->open('http://127.0.0.1:8080/view');
$window->show_all;
Gtk2->main;
