Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
All Widgets can be deleted
  • Loading branch information
jonathanstowe committed May 17, 2016
1 parent f855cc6 commit 73019f8
Showing 1 changed file with 17 additions and 31 deletions.
48 changes: 17 additions & 31 deletions lib/GTK/Simple.pm6
Expand Up @@ -228,6 +228,22 @@ role GTK::Simple::Widget {
method hide() {
gtk_widget_show($!gtk_widget);
}

# All widgets get the 'delete-event'
has $!deleted_supply;
#| Tap this supply to react to the window being closed
method deleted() {
$!deleted_supply //= do {
my $s = Supplier.new;
g_signal_connect_wd($!gtk_widget, "delete-event",
-> $, $ {
$s.emit(self);
CATCH { default { note $_; } }
},
OpaquePointer, 0);
$s.Supply;
}
}
}

role GTK::Simple::Container {
Expand Down Expand Up @@ -284,22 +300,6 @@ class GTK::Simple::Window does GTK::Simple::Widget
$!gtk_widget = gtk_window_new(0);
gtk_window_set_title($!gtk_widget, $title.Str);
}

has $!deleted_supply;
#| Tap this supply to react to the window being closed
method deleted() {
$!deleted_supply //= do {
my $s = Supplier.new;
g_signal_connect_wd($!gtk_widget, "delete-event",
-> $, $ {
$s.emit(self);
CATCH { default { note $_; } }
},
OpaquePointer, 0);
$s.Supply
}
}

}

class GTK::Simple::App does GTK::Simple::Widget
Expand Down Expand Up @@ -340,23 +340,9 @@ class GTK::Simple::App does GTK::Simple::Widget
gtk_main_quit();
}

has $!deleted_supply;
#| Tap this supply to react to the window being closed
method deleted() {
$!deleted_supply //= do {
my $s = Supplier.new;
g_signal_connect_wd($!gtk_widget, "delete-event",
-> $, $ {
$s.emit(self);
CATCH { default { note $_; } }
},
OpaquePointer, 0);
$s.Supply;
}
}

method run() {
gtk_widget_show($!gtk_widget);
self.show();
gtk_main();
}

Expand Down

0 comments on commit 73019f8

Please sign in to comment.