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;


Reply via email to