#---------- computation of movpos button locations
+proc layout-subseg-featmap {seg concfeatpos args} {
+ global subsegfeatmap
+ set subsegfeatmap($concfeatpos) $args
+}
+
proc layout-subseg-end {seg feat posn x y} {
global cpage
+ upvar #0 subsegfeatmap($feat$posn) mapped
+ if {[info exists mapped]} {
+ foreach {feat posn} $mapped {
+ layout-subseg-end $seg $feat $posn $x $y
+ }
+ return
+ }
upvar #0 ld_sse/${cpage}($seg/$feat$posn) sse
if {![info exists sse]} { set sse {0 0 0} }
manyset $sse n sx sy
global cpage
upvar #0 ld_sse/$cpage sse
catch { unset sse }
- set f ../layout/ours.dgram-$cpage.overlay-info
- source $f
+ source ../layout/ours.dgram.segmap-info
+ source ../layout/ours.dgram-$cpage.overlay-info
upvar #0 movpos_bindings($cpage) bindings
if {![info exists bindings]} {
}
o("\n end\n");
}
+
+sub writeforui () {
+ close STDOUT or die $!;
+ open STDOUT, ">$basename.dgram.segmap-info" or die $!;
+ o("# autogenerated - do not edit\n");
+ foreach my $seg (keys %segs) {
+ my $segr= $segs{$seg};
+ my $featmap= $segr->{FeatMap};
+ next unless $featmap;
+ foreach my $mapent (@$featmap) {
+ o("layout-subseg-featmap $seg $mapent->{Abstract}");
+ local ($_) = $mapent->{Concrete};
+ s/([A-Z]+)(\d+)/ o(" $1 $2"); ""; /ge;
+ die "$seg $_ ?" if length;
+ o("\n");
+ }
+ }
+}
+
mainread();
redaction();
writeout();
writeasm();
+writeforui();
movfeatposmap_checks();
exit 1 if $mistakes;