… | |
… | |
81 | $self->{arch_name_lbl}->set_text ( |
81 | $self->{arch_name_lbl}->set_text ( |
82 | $arch->{_name} . ($arch->{name} ? " - $arch->{name}" : "") |
82 | $arch->{_name} . ($arch->{name} ? " - $arch->{name}" : "") |
83 | ); |
83 | ); |
84 | |
84 | |
85 | my $al_arch = $Crossfire::ARCH{$arch->{_name}}; |
85 | my $al_arch = $Crossfire::ARCH{$arch->{_name}}; |
86 | |
|
|
87 | if ($al_arch) { |
|
|
88 | $self->hide; |
86 | $self->hide; |
89 | $self->{ntbook}->remove ($_) |
87 | $self->{ntbook}->remove ($_) |
90 | for $self->{ntbook}->get_children; |
88 | for $self->{ntbook}->get_children; |
91 | |
89 | |
92 | my $ar = Crossfire::arch_attr $al_arch; |
90 | my $ar = Crossfire::arch_attr $arch; |
93 | # warn "FO1:" . Data::Dumper::Dumper ($al_arch) . ">\n"; |
91 | # warn "FO1:" . Data::Dumper::Dumper ($al_arch) . ">\n"; |
94 | # warn "FO2:" . Data::Dumper::Dumper ($ar) . ">\n"; |
92 | # warn "FO2:" . Data::Dumper::Dumper ($ar) . ">\n"; |
95 | # warn "REAL: " . Data::Dumper::Dumper ($arch) . "\n"; |
93 | # warn "REAL: " . Data::Dumper::Dumper ($arch) . "\n"; |
96 | |
94 | |
97 | $self->{ttip} = Gtk2::Tooltips->new; |
95 | $self->{ttip} = Gtk2::Tooltips->new; |
98 | |
96 | |
99 | #$self->add_section_edit_widgets ($self->{ntbook}, 'general', $arch, $ar->{attr}); |
97 | #$self->add_section_edit_widgets ($self->{ntbook}, 'general', $arch, $ar->{attr}); |
100 | |
98 | |
101 | for my $sec (@{$ar->{section}}) { |
99 | for my $sec (@{$ar->{section}}) { |
102 | my $secname = shift @$sec; |
100 | my $secname = shift @$sec; |
103 | $self->add_section_edit_widgets ($self->{ntbook}, $secname, $arch, $sec);#$sects{$sec}); |
101 | $self->add_section_edit_widgets ($self->{ntbook}, $secname, $arch, $sec);#$sects{$sec}); |
104 | } |
102 | } |
105 | |
103 | |
106 | for my $key (qw/lore msg/) { |
104 | for my $key (qw/lore msg/) { |
107 | $self->{ntbook}->append_page (my $v = Gtk2::VBox->new, $key); |
105 | $self->{ntbook}->append_page (my $v = Gtk2::VBox->new, $key); |
108 | $v->pack_start (my $sw = Gtk2::ScrolledWindow->new, 1, 1, 0); |
106 | $v->pack_start (my $sw = Gtk2::ScrolledWindow->new, 1, 1, 0); |
109 | $sw->set_policy ('automatic', 'automatic'); |
107 | $sw->set_policy ('automatic', 'automatic'); |
110 | $sw->add (my $tb = $self->{"${key}_txt"} = Gtk2::TextView->new); |
108 | $sw->add (my $tb = $self->{"${key}_txt"} = Gtk2::TextView->new); |
111 | my $buf = $tb->get_buffer->set_text ($arch->{$key}); |
109 | my $buf = $tb->get_buffer->set_text ($arch->{$key}); |
112 | |
110 | |
113 | $v->pack_start (my $b = Gtk2::Button->new_with_label ("save"), 0, 1, 0); |
111 | $v->pack_start (my $b = Gtk2::Button->new_with_label ("save"), 0, 1, 0); |
114 | $b->signal_connect (clicked => sub { |
112 | $b->signal_connect (clicked => sub { |
115 | my $buf = $tb->get_buffer; |
113 | my $buf = $tb->get_buffer; |
116 | $self->update_arch ($arch, $key, |
114 | $self->update_arch ($arch, $key, |
117 | $buf->get_text ($buf->get_start_iter, $buf->get_end_iter, 0) |
115 | $buf->get_text ($buf->get_start_iter, $buf->get_end_iter, 0) |
118 | ); |
|
|
119 | }); |
116 | ); |
120 | } |
117 | }); |
|
|
118 | } |
121 | |
119 | |
122 | $self->{ntbook}->append_page (my $inv = GCE::InventoryEditor->new, 'inventory'); |
120 | $self->{ntbook}->append_page (my $inv = GCE::InventoryEditor->new, 'inventory'); |
123 | $inv->set_arch ($arch, $change_cb); |
121 | $inv->set_arch ($arch, $change_cb); |
124 | |
122 | |
125 | $self->{ttip}->enable; |
123 | $self->{ttip}->enable; |
126 | |
124 | |
127 | $self->show_all; |
125 | $self->show_all; |
128 | |
|
|
129 | } else { |
|
|
130 | warn "NOARCH FOR: $arch->{_name}\n"; |
|
|
131 | } |
|
|
132 | } |
126 | } |
133 | |
127 | |
134 | sub add_section_edit_widgets { |
128 | sub add_section_edit_widgets { |
135 | my ($self, $ntbook, $name, $arch, $section) = @_; |
129 | my ($self, $ntbook, $name, $arch, $section) = @_; |
136 | |
130 | |