/[libconf]/libconf/perl-Libconf/GUI/Gtk2/CheckButton.pm
ViewVC logotype

Diff of /libconf/perl-Libconf/GUI/Gtk2/CheckButton.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by dams, Tue Oct 21 20:33:18 2003 UTC revision 1.4 by dams, Sat Oct 25 14:30:14 2003 UTC
# Line 1  Line 1 
1  package Libconf::GUI::Gtk2::CheckButton;  package Libconf::GUI::Gtk2::CheckButton;
2    
3  use ugtk2 qw(:helpers :wrappers :create);  use ugtk2 qw(:helpers :wrappers :create);
4    use Libconf::GUI::Gtk2::Widget;
5    
6  our @ISA = qw(Gtk2::CheckButton);  # multiple inheritance, yaaaaaaaaaaaaaaa
7    our @ISA = qw(Gtk2::CheckButton Libconf::GUI::Gtk2::Widget);
8    
9  #constructor  #constructor
10  #@widget_options is optional  #@widget_options is optional
11  sub new {  sub new {
12      my ($class, $default, $ref_value, $data_mapping, @widget_options) = @_;      my ($class, $default, $ref_value, $data_mapping, @widget_options) = @_;
13      my $self = Gtk2::CheckButton->new(@widget_options); #UGLY! better is  : $class->SUPER::new(@widget_options);      my $self = $class->SUPER::new(@widget_options);
14      $self->{'default_value'} = $default;      $self->{default_value} = $default;
15      $self->{'data_mapping'} = $data_mapping;      $self->{data_mapping} = $data_mapping;
16      $self->{ref_value} = $ref_value;      $self->{ref_value} = $ref_value;
17      bless $self, $class;      bless $self, $class;
18      gtksignal_connect($self, toggled => sub {      gtksignal_connect($self, toggled => sub {
19                            my ($widget) = @_;                            my $widget = shift;
20                            my $value = $widget->get_active;                            my $value = $widget->get_active();
21                            defined $data_mapping and $value = $data_mapping->($value);                            defined $data_mapping and $value = $data_mapping->($value);
22                            $self->set_value($value);                            $self->set_value($value);
23                            print " getvalue : -- " . $self->get_value() . "\n";                            print " getvalue : -- " . $self->get_value() . "\n";
# Line 23  sub new { Line 25  sub new {
25      return $self;      return $self;
26  }  }
27    
 #### TO BE REWORKED, data mapping is bad  
 sub set_default {  
     my ($self) = @_;  
     my $default_value = $self->{'default_value'};  
     $self->set_active($default_value);  
     $self->{'value'} = $default_value;  
 }  
   
28  sub set_value {  sub set_value {
29      my ($self, $value) = @_;      my $self = shift;
30      $self->{'value'} = $value;      $self->set_active($self->SUPER::set_value(@_));
     ${$self->{ref_value}} = $value;  
     defined $self->{'data_mapping'} and $value = $self->{'data_mapping'}->($value);  
     $self->set_active($value);  
 }  
   
 sub get_value {  
     my ($self) = @_;  
     my $value = $self->{'value'};  
     $value;  
31  }  }
32    
33  1;  1;

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26