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

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

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

revision 1.2 by dams, Sat Jun 14 00:17:18 2003 UTC revision 1.3 by dams, Thu Jul 24 14:42:19 2003 UTC
# Line 2  package Libconf::GUI::Gtk2; Line 2  package Libconf::GUI::Gtk2;
2    
3  @ISA = qw(Exporter);  @ISA = qw(Exporter);
4  %EXPORT_TAGS = (  %EXPORT_TAGS = (
5      generators => [ qw(generateWidget) ],      generators => [ qw(generateWidget getBestWidget) ],
6  );  );
7  $EXPORT_TAGS{all} = [ map { @$_ } values %EXPORT_TAGS ];  $EXPORT_TAGS{all} = [ map { @$_ } values %EXPORT_TAGS ];
8  @EXPORT_OK = map { @$_ } values %EXPORT_TAGS;  @EXPORT_OK = map { @$_ } values %EXPORT_TAGS;
# Line 12  use lib qw(/usr/lib/libDrakX); Line 12  use lib qw(/usr/lib/libDrakX);
12  use common;  use common;
13  use ugtk2 qw(:helpers :wrappers :create);  use ugtk2 qw(:helpers :wrappers :create);
14    
15    use Libconf;
16    
17  # public methods  # public methods
18    
19    
20    sub getBestWidget {
21        my ($struct, $key) = @_;
22        my $data = $Libconf::data{$struct->{libconf}{template_name}};
23        my $data_mapping = $Libconf::data_mapping{$struct->{libconf}{template_name}};
24    #    { type => 'LIST', type2 => 'STRING|INTERFACE|IP/MASK', type3 => ' '}
25    
26        build_widget(@{$data->{$key}}{qw(type type2 type3)}, $data_mapping);
27    }
28    
29    
30    #        STRING|INTERFACE|IP/MASK
31    
32    sub build_widget {
33        my ($type, $type2, $type3, $data_mapping) = @_;
34    #    print "-- $type\n";
35    #     if ($type eq 'LIST') {
36    #         defined $type2 or die "ERROR : missing type2 for LIST type. key : $key, malformed template : . " $struct->{libconf}{template_name};
37    #         my @type2 = split('|', $type2);
38    #         if (@type2 == 1) { # we have an homogeneous list"
39    #         } else {
40    #         }
41    #     } els
42        if ($type eq 'BOOLEAN') {
43            $ret = Gtk2::CheckButton->new();
44            $ret->set_data('value', 4);
45            print " -- " . $ret->get_data('value') . "\n";
46            gtksignal_connect($ret, toggled => sub {
47                                  my ($widget) = @_;
48                                  my $value = $widget->get_active;
49                                  exists $data_mapping->{BOOLEAN} and $value = $data_mapping->{BOOLEAN}->($value);
50                                  print " -- $value \n";
51                                  $ret->set_data('value', 4);
52                                  $widget->get_data('value') . "\n"; });
53        } elsif ($type eq 'STRING') {
54            $ret = gtkentry();
55        } else {
56            $ret = gtkentry();
57        }
58        $ret;
59    }
60    
61    #BOOLEAN
62    #COMMAND
63    #DIRECTORY
64    #DURATION
65    #ENCODING
66    #FILENAME
67    #INTEGER
68    #LIST
69    #PID
70    #STRING
71    #VERSION
72    
73  sub generateWidget {  sub generateWidget {
74      my ($struct) = @_;      my ($struct) = @_;
75      my $vbox = Gtk2::VBox->new(0,10);      my $vbox = Gtk2::VBox->new(0,10);
# Line 69  sub generateWidget { Line 125  sub generateWidget {
125          return $vbox;          return $vbox;
126      }      }
127      if (UNIVERSAL::isa($struct, 'ARRAY')) {      if (UNIVERSAL::isa($struct, 'ARRAY')) {
128          my $tree_model = Gtk2::TreeStore->new(Gtk2::GType->STRING);          my $tree_model = Gtk2::TreeStore->new("Glib::String");
129          my $list = Gtk2::TreeView->new_with_model($tree_model);          my $list = Gtk2::TreeView->new_with_model($tree_model);
130          $list->append_column(Gtk2::TreeViewColumn->new_with_attributes(N("list"), Gtk2::CellRendererText->new, 'text' => 0));          $list->append_column(Gtk2::TreeViewColumn->new_with_attributes(N("list"), Gtk2::CellRendererText->new, 'text' => 0));
131          foreach my $element (@$struct) {          foreach my $element (@$struct) {
132              $tree_model->append_set(undef, [ 0 => $element ])->free;              $tree_model->append_set(undef, [ 0 => $element ]);
133          }          }
134          $list->show_all();          $list->show_all();
135          return $list;          return $list;

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

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