summaryrefslogtreecommitdiff
path: root/Master/texmf
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-12-26 20:31:07 +0000
committerNorbert Preining <preining@logic.at>2008-12-26 20:31:07 +0000
commitbdd611203c5ba91bac036ccc4ca3caa5ae0e5eb0 (patch)
tree3963a95736affc8efb825ea712716d9f8b620098 /Master/texmf
parentba819cc6b39bac0b59f53967b5eea43977d38bda (diff)
convert gui-arch.pl to gui-arch2.pl using the execute_action stuff
git-svn-id: svn://tug.org/texlive/trunk@11727 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf')
-rw-r--r--Master/texmf/scripts/texlive/tlmgrgui/gui-arch2.pl94
-rwxr-xr-xMaster/texmf/scripts/texlive/tlmgrgui/tlmgrgui2.pl2
2 files changed, 95 insertions, 1 deletions
diff --git a/Master/texmf/scripts/texlive/tlmgrgui/gui-arch2.pl b/Master/texmf/scripts/texlive/tlmgrgui/gui-arch2.pl
new file mode 100644
index 00000000000..d475e31d62a
--- /dev/null
+++ b/Master/texmf/scripts/texlive/tlmgrgui/gui-arch2.pl
@@ -0,0 +1,94 @@
+# gui-arch.pl
+# $Id$
+#
+# Copyright 2008 Tomasz Luczak, Norbert Preining
+#
+# GUI for tlmgr
+#
+
+
+our $back_arch = $back->add("arch",-label => ___"archs");
+$screens{"arch"} = $back_arch;
+
+# this will be loaded only on unix systems!
+#
+
+our @archsavail;
+our @archsinstalled;
+our %archs;
+
+our %archsbuttons;
+our $arch_frame;
+our $subframe;
+
+push @update_function_list, \&init_archs;
+
+$back_arch->Label(-text => ___"remarchnotpos")->pack(-padx => "5m", -pady => "5m");
+
+
+sub init_archs {
+ if (!defined($tlmediatlpdb)) {
+ @archsavailable = ();
+ } else {
+ @archsavail = $tlmediatlpdb->available_architectures;
+ }
+ @archsinstalled = $localtlpdb->available_architectures;
+ foreach my $a (@archsavail) {
+ $archs{$a} = 0;
+ if (grep(/^$a$/,@archsinstalled)) {
+ $archs{$a} = 1;
+ }
+ }
+ foreach my $a (keys %archsbuttons) {
+ $archsbuttons{$a}->destroy;
+ }
+ $arch_frame->destroy if defined($arch_frame);
+ $subframe->destroy if defined($subframe);
+ $subframe = $back_arch->Frame;
+ foreach my $a (@archsavail) {
+ $archsbuttons{$a} =
+ $subframe->Checkbutton(-command => sub { check_on_removal($a); },
+ -variable => \$archs{$a},
+ -text => platform_desc($a)
+ )->pack(-anchor => 'w');
+ }
+ $subframe->pack;
+ $arch_frame = $back_arch->Frame;
+ $arch_frame->pack(-padx => "10m", -pady => "5m");
+ $arch_frame->Button(-text => ___"applychanges", -command => sub { apply_changes(); })->pack(-side => 'left', -padx => "3m");
+ $arch_frame->Button(-text => ___"resetchanges", -command => sub { init_archs(); })->pack(-side => 'left', -padx => "3m");
+}
+
+sub check_on_removal {
+ my $a = shift;
+ if (!$archs{$a} && grep(/^$a$/,@archsinstalled)) {
+ # removal not supported
+ $archs{$a} = 1;
+ $arch_frame->Dialog(-title => "info",
+ -text => ___"remarchinfo",
+ -buttons => [ ___"ok" ])->Show;
+ }
+}
+
+
+sub apply_changes {
+ my @todo;
+ foreach my $a (@archsavail) {
+ next if grep(/^$a$/,@archsinstalled);
+ push @todo, $a if $archs{$a};
+ }
+ if (@todo) {
+ execute_action_gui ( "arch", "add", @todo );
+ reinit_local_tlpdb();
+ init_archs();
+ }
+}
+
+1;
+
+### Local Variables:
+### perl-indent-level: 2
+### tab-width: 2
+### indent-tabs-mode: nil
+### End:
+# vim:set tabstop=2 expandtab: #
diff --git a/Master/texmf/scripts/texlive/tlmgrgui/tlmgrgui2.pl b/Master/texmf/scripts/texlive/tlmgrgui/tlmgrgui2.pl
index 5ed0116adac..c7786f43e30 100755
--- a/Master/texmf/scripts/texlive/tlmgrgui/tlmgrgui2.pl
+++ b/Master/texmf/scripts/texlive/tlmgrgui/tlmgrgui2.pl
@@ -338,7 +338,7 @@ set_text_win($remove_win, ___"pleaseclick");
require("gui-uninstall.pl");
# arch support not be done via tlmgr on win32
if (!win32()) {
- require("gui-arch.pl");
+ require("gui-arch2.pl");
}
# config screen
require("gui-config2.pl");