Changeset b50ce62 in tol for tolbase/lib/byswidget/bfunctions
- Timestamp:
- Jun 18, 2009, 1:18:32 PM (17 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- cfc30c0
- Parents:
- 5fd08bd
- File:
-
- 1 edited
-
tolbase/lib/byswidget/bfunctions/bftoltcl.tcl (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tolbase/lib/byswidget/bfunctions/bftoltcl.tcl
r5fd08bd rb50ce62 114 114 proc TclInfoRef {obj args} { 115 115 # 116 # PURPOSE: Get the value osSet TOL116 # PURPOSE: Get the value for Set TOL 117 117 # 118 118 # PARAMETERS: 119 119 # obj: reference of TCL 120 # args: ind ix of set120 # args: index of set 121 121 # 122 122 # RETURN: output [::tol::info var ref] information in "array get" … … 188 188 } 189 189 return {} 190 } 191 192 proc TclFindObjectRoot { ref } { 193 set type [ lindex $ref 0 ] 194 if { $type eq "File" } { 195 set ref_root [ lrange $ref 0 2 ] 196 } else { 197 set ref_root [ lrange $ref 0 1 ] 198 } 199 # verifico si ref_root es un objeto con nombre 200 set info_root [ ::tol::info var $root ] 201 set name_root [ lindex $info_root 1 ] 202 if { $name_root eq "" } { 203 # el objeto raiz no tiene nombre, solo nos salvamos si la raiz es 204 # un File y bajando por el camino encontramos algun global con 205 # nombre 206 if { $type eq "File" } { 207 ... 208 } 209 } else { 210 # bingo! la raiz de ref tiene nombre 211 return $name_root 212 } 213 } 214 215 proc TclRefToNameTol_ { ref } { 216 set type [ lindex $ref 0 ] 217 switch $type { 218 Console { 219 set root [ lrange $ref 0 1 ] 220 set info_root [ ::tol::info var $root ] 221 # verifico si tiene nombre 222 set name_root [ lindex $info_root 1 ] 223 if { $name_root eq "" } { 224 # el objeto raiz no tiene nombre, solo nos salvamos si el 225 # objeto referenciado es global y tiene nombre 226 set info_all [ ::tol::info var $ref ] 227 set grammar_ref [ lindex $info_all 0 ] 228 set name_ref [ lindex $info_all 1 ] 229 if { $name_ref eq "" } { 230 # no podemos hacer nada, no existe expresion de tol que 231 # pueda recuperar el valor de la referencia ref 232 return "" 233 } else { 234 # chequeamo si es un objeto global con nombre $name. 235 if { [ catch { ::tol::info var [ list $grammar_ref $name_ref ] } ] } { 236 # no se ha podido encontrar $name_ref como variable global en 237 # $grammar_ref 238 return "" 239 } else { 240 # hemos encontrado un objeto en $grammar_ref con nombre 241 # $name_ref. Dado el uso interno de PutName, eso no 242 # asegura que el objeto referenciado en $ref sea el 243 # mismo. Ya seria mala pata!!!!! 244 return $name_ref 245 } 246 } 247 } else { 248 # el objeto raiz tiene nombre, ya vamos mejorando ... 249 set name $name_root 250 foreach i [ lrange $ref 2 end ] { 251 append name "\[$i\]" 252 } 253 return $name 254 } 255 } 256 File { 257 } 258 Set { 259 } 260 NameBlock { 261 } 262 } 190 263 } 191 264
Note: See TracChangeset
for help on using the changeset viewer.
