Author: bdonlan
Date: 2004-07-05 21:19:15 -0400 (Mon, 05 Jul 2004)
New Revision: 302
Modified:
trunk/clients/haver-gtk/bin/serverdlg-test.pl
trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerDialog.pm
Log:
Adding some signals to ServerDialog. Mostly stubs for now.
Modified: trunk/clients/haver-gtk/bin/serverdlg-test.pl
===================================================================
--- trunk/clients/haver-gtk/bin/serverdlg-test.pl 2004-07-05 04:03:46 UTC
(rev 301)
+++ trunk/clients/haver-gtk/bin/serverdlg-test.pl 2004-07-06 01:19:15 UTC
(rev 302)
@@ -72,11 +72,15 @@
$heap->{killbtn}->show;
$heap->{toplevel}->show;
$heap->{killbtn}->signal_connect("clicked", $session->postback("kill"));
- $heap->{serverdlg} = new Haver::UI::Gtk::ServerDialog('main', $config);
+ $heap->{serverdlg} = new Haver::UI::Gtk::ServerDialog($session,
$config);
}
-sub connectwin_connect {}
-sub connectwin_close {}
+sub connectwin_connect {
+ print "connectwin_connect\n";
+}
+sub connectwin_close {
+ print "connectwin_close\n";
+}
sub kill { exit 0; }
POE::Kernel->run();
Modified: trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerDialog.pm
===================================================================
--- trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerDialog.pm 2004-07-05
04:03:46 UTC (rev 301)
+++ trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerDialog.pm 2004-07-06
01:19:15 UTC (rev 302)
@@ -34,7 +34,8 @@
my ($class, $parent, $config) = @_;
$class = ref $class || $class;
my $self = {
- parent => $parent,
+ close_callback => $parent->postback('connectwin_close'),
+ connect_callback => $parent->postback('connectwin_connect'),
config => $config,
};
bless $self, $class;
@@ -70,6 +71,7 @@
$self->populate();
$self->{window}->show;
+ $self->{window}->signal_connect('delete_event', sub { delete
$self->{window}; $self->destroy(); });
return $self;
}
@@ -148,12 +150,12 @@
$fields->{btn_connect} = new Gtk::Button('Connect');
$fields->{btn_box}->pack_start($fields->{btn_connect}, TRUE, TRUE, 0);
$fields->{btn_connect}->show;
- # XXX: signals
+ $fields->{btn_connect}->signal_connect('clicked', sub {
$self->btn_connect(); });
$fields->{btn_close} = new Gtk::Button('Close');
$fields->{btn_box}->pack_start($fields->{btn_close}, TRUE, TRUE, 0);
$fields->{btn_close}->show;
- # XXX: signals
+ $fields->{btn_close}->signal_connect('clicked', sub {
$self->btn_close(); });
return $fields->{outer_box};
}
@@ -175,16 +177,17 @@
$slist->{btn_add} = new Gtk::Button("Add");
$slist->{top_box}->pack_start($slist->{btn_add}, FALSE, FALSE, 0);
$slist->{btn_add}->show;
- # TODO: signal
+ $slist->{btn_add}->signal_connect("clicked", sub {
$self->slist_btn_add(); });
$slist->{btn_del} = new Gtk::Button("Del");
$slist->{top_box}->pack_start($slist->{btn_del}, FALSE, FALSE, 0);
$slist->{btn_del}->show;
- # TODO: signal
+ $slist->{btn_del}->signal_connect("clicked", sub {
$self->slist_btn_del(); });
$slist->{list} = new Gtk::List();
$slist->{list}->set_selection_mode('single');
$slist->{list}->show;
+ $slist->{list}->signal_connect('selection_changed', sub {
$self->slist_select(); });
$slist->{sw} = new Gtk::ScrolledWindow(undef, undef);
$slist->{sw}->set_usize(250, 150); # XXX
@@ -219,6 +222,23 @@
$self->{slist}{list}->add($item);
}
}
-
+sub slist_btn_add {}
+sub slist_btn_del {}
+sub slist_select {}
+sub btn_connect {}
+sub btn_close {
+ my $self = shift;
+ $self->destroy();
+}
+
+sub destroy {
+ my $self = shift;
+ $self->{close_callback}();
+ $self->{window}->destroy() if $self->{window};
+ # Break circular references between signal closures and $self. This
might
+ # not be needed, but better safe than sorry.
+ %$self = ();
+}
+
1;