27 |
|
|
28 |
|
proc chksave {} { # check if RIF is saved and accost user if not |
29 |
|
global readonly rifname oldradvar curmess |
30 |
< |
if $readonly { |
31 |
< |
set warnmess "You have modified variables, but the file\ |
32 |
< |
\"[file tail $rifname]\" was opened read-only. |
30 |
> |
if [modified] { |
31 |
> |
if $readonly { |
32 |
> |
set warnmess "You have modified variables, but the\ |
33 |
> |
file \"[file tail $rifname]\" was opened read-only. |
34 |
|
Do you wish to save this information somehow?" |
35 |
< |
set yesmess {Go to File Screen} |
36 |
< |
} else { |
37 |
< |
set warnmess "The file \"[file tail $rifname]\" has been\ |
38 |
< |
modified since it was last saved. |
35 |
> |
set yesmess {Go to File Screen} |
36 |
> |
} else { |
37 |
> |
set warnmess "The file \"[file tail $rifname]\" has\ |
38 |
> |
been modified since it was last saved. |
39 |
|
Do you wish to save it now?" |
40 |
< |
set yesmess {Save File} |
41 |
< |
} |
41 |
< |
if [modified] { |
40 |
> |
set yesmess {Save File} |
41 |
> |
} |
42 |
|
switch [tk_dialog .dlg {File Modified} $warnmess \ |
43 |
|
warning 0 $yesmess {Discard Changes} \ |
44 |
|
{Cancel Operation}] { |
46 |
|
2 { return 0 } |
47 |
|
} |
48 |
|
if $readonly { |
49 |
– |
.file invoke |
49 |
|
set curmess {Rename file or uncheck read-only to save.} |
50 |
+ |
.file invoke |
51 |
|
return 0 |
52 |
< |
} else { |
53 |
< |
catch {unset oldradvar} |
54 |
< |
save_vars $rifname |
52 |
> |
} elseif {[save_vars $rifname]} { |
53 |
> |
gotfile 1 |
54 |
> |
return 1 |
55 |
|
} |
56 |
< |
} else { return 1 } |
56 |
> |
return 0 |
57 |
> |
} |
58 |
> |
return 1 |
59 |
|
} |
60 |
|
|
61 |
|
# Set global variable default values |
75 |
|
|
76 |
|
# Make main window frames |
77 |
|
|
78 |
< |
frame .upper -geometry 640x410 |
78 |
> |
set smallscrn [expr [winfo screenwidth .] < 830] |
79 |
> |
|
80 |
> |
message .mess -relief ridge -font fixed -textvariable curmess -anchor nw |
81 |
> |
if $smallscrn { |
82 |
> |
frame .upper -width 640 -height 410 |
83 |
> |
frame .upper.right -width 120 -height 410 |
84 |
> |
.mess configure -width 640 |
85 |
> |
} else { |
86 |
> |
frame .upper -width 830 -height 410 |
87 |
> |
frame .upper.right -width 130 -height 410 |
88 |
> |
.mess configure -width 830 |
89 |
> |
} |
90 |
|
pack .upper -side top |
78 |
– |
frame .upper.right -geometry 120x410 |
91 |
|
place .upper.right -relx .98 -rely 0 -anchor ne |
80 |
– |
message .mess -relief ridge -font fixed -textvariable curmess \ |
81 |
– |
-anchor nw -width 620 |
92 |
|
pack .mess -side top -expand yes -fill both |
93 |
|
helplink .mess trad trad messages |
94 |
+ |
. configure -cursor top_left_arrow |
95 |
|
|
96 |
|
# Make mode buttons |
97 |
|
|
98 |
|
proc changescreen {} { # switch screen according to curmode |
99 |
< |
global curscreen curmode curmess |
99 |
> |
global curscreen curmode curmess smallscrn |
100 |
|
if [info exists curscreen] { |
101 |
|
if {"$curmode" == "$curscreen"} {return} |
102 |
|
destroy .upper.left |
105 |
|
} |
106 |
|
set curscreen $curmode |
107 |
|
do_$curscreen .upper.left |
108 |
< |
.upper.left configure -geometry 520x410 |
108 |
> |
if $smallscrn { |
109 |
> |
.upper.left configure -width 520 -height 410 |
110 |
> |
} else { |
111 |
> |
.upper.left configure -width 700 -height 410 |
112 |
> |
} |
113 |
|
place .upper.left -x 0 -y 0 |
114 |
|
} |
115 |
|
|
142 |
|
pack .upper.right.quit -side top -pady 10 -anchor se |
143 |
|
helplink .upper.right.quit trad trad quit |
144 |
|
|
145 |
< |
wm minsize . 640 460 |
145 |
> |
if $smallscrn { |
146 |
> |
wm minsize . 640 460 |
147 |
> |
wm maxsize . 640 512 |
148 |
> |
} else { |
149 |
> |
wm minsize . 830 460 |
150 |
> |
wm maxsize . 830 512 |
151 |
> |
} |
152 |
|
wm iconbitmap . @$radlib/trad.icon |
153 |
|
|
154 |
|
proc gotfile {{o 1}} { # set file possession state |
161 |
|
} |
162 |
|
} else { |
163 |
|
set mode disabled |
164 |
+ |
.file invoke |
165 |
|
} |
166 |
|
foreach b {scene zone views options action results} { |
167 |
|
.$b configure -state $mode |
171 |
|
# Decide where to go and start |
172 |
|
|
173 |
|
if {[llength $argv] == 0} { |
152 |
– |
gotfile 0 |
174 |
|
set curmess "Choose a Radiance project file." |
175 |
< |
.file invoke |
175 |
> |
gotfile 0 |
176 |
|
} elseif {[llength $argv] == 1} { |
177 |
|
cd [file dirname $argv] |
178 |
|
set curfile [file tail $argv] |
179 |
|
if {! [file exists $curfile]} { |
180 |
< |
newnew $argv |
180 |
> |
newnew $curfile |
181 |
|
.scene invoke |
182 |
|
} elseif {[newload $curfile]} { |
183 |
|
if $alldone { |