blob: 36706d31a8dce31212085c9209e305dbc0345936 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
################################################################################
# Save panel functions.
################################################################################
# Global variables needed for the save setup panel
set format rasButton
set saveColor svPseudoButton
set fileFmtButtons {
rasButton gifButton jpegButton tiffButton
fitsButton x11Button epsButton rawButton
}
# Format group procedures.
#---------------------------------
# Select a format.
proc set_format { widget func state args } \
{
global format saveColor
send $format set on false
if {$widget == $format} {
send $widget set on true
} else {
switch $widget {
rasButton { send client setSaveOption format ras }
gifButton { send client setSaveOption format gif }
jpegButton { send client setSaveOption format jpeg }
tiffButton { send client setSaveOption format tiff }
fitsButton { send client setSaveOption format fits }
x11Button { send client setSaveOption format x11 }
epsButton { send client setSaveOption format eps }
rawButton { send client setSaveOption format raw }
}
}
} ; foreach fmt $fileFmtButtons { send $fmt addCallback set_format }
proc setSaveFile { widget cbtype args } \
{
send client setSaveOption fname $args
send saveStatus set label [format "output file set to %s" $args]
}; send saveFile addCallback setSaveFile
proc doSaveOptions { param old new } \
{
global format saveColor
global warnings
send saveStatus set label {}
set val [join [lrange $new 1 end] " "]
#print [format "doSaveOptions %s = %s" [lindex $new 0] $val]
switch [lindex $new 0] {
format {
# Now (de)sensitize the color options depending on the format,
# force the color choice when needed.
send $format set on false
switch [lindex $val 0] {
ras { #send svRGBButton setSensitive false
send svPseudoButton setSensitive true
set format rasButton
}
gif { send svRGBButton setSensitive false
send svPseudoButton setSensitive true
if {$saveColor == "svRGBButton"} {
send $saveColor set on false
send svPseudoButton set on true
set saveColor svPseudoButton
}
set format gifButton
}
jpeg { send svRGBButton setSensitive true
send svPseudoButton setSensitive true
set format jpegButton
}
tiff { send svRGBButton setSensitive false
send svPseudoButton setSensitive true
set format tiffButton
}
fits { send svRGBButton setSensitive false
send svPseudoButton setSensitive false
send $saveColor set on false
send svGrayButton set on true
set saveColor svGrayButton
set format fitsButton
}
x11 { send svRGBButton setSensitive true
send svPseudoButton setSensitive true
set format x11Button
}
eps { send svRGBButton setSensitive true
send svPseudoButton setSensitive true
set format epsButton
}
raw { send svRGBButton setSensitive true
send svPseudoButton setSensitive true
set format rawButton
}
}
send $format set on true
}
color { send $saveColor set on false
switch [lindex $val 0] {
grayscale { send svGrayButton set on true
set saveColor svGrayButton
}
pseudocolor { send svPseudoButton set on true
set saveColor svPseudoButton
}
rgb { send svRGBButton set on true
set saveColor svRGBButton
}
}
}
fname { send saveFile set string $val
}
status { send saveStatus set label $val
send server synchronize
}
text { send saveData set label $val
}
warning { if {$warnings} { Wexec server $val }
}
}
} ; send saveOptions addCallback doSaveOptions
# Color group procedures.
#---------------------------------
send svGrayButton addCallback "send client setSaveOption color grayscale"
send svPseudoButton addCallback "send client setSaveOption color pseudocolor"
send svRGBButton addCallback "send client setSaveOption color rgb"
proc Save args \
{
global panel_up
send imagewin setCursorType busy
# Get the print command or file template if not previous reset.
set val [ send saveFile get string ]
send client setSaveOption fname $val
send saveStatus set label [format "output file set to %s" $args]
send client save
send imagewin setCursorType idle
} ; send okaySave addCallback Save
|