The program kfixpane is a perl script which takes one or more UIS pane files, and ensures that it conforms to certain guidelines.
These guidelines are for geometry and layout rules that are common to all glyphs shown in cantata This program is primarily used by kdarwin to make sure that converted uis files conform to the 2 layout and geometry rules.
The checks and changes made are:
\(bu Sets the minimum geometry of the pane to be 52 by 1.
\(bu Makes sure the subform title is on the first line of the subform.
\(bu Puts the pane one line down on the subform, so the subform title is visible.
\(bu Adds an "Options" pull-down menu in the upper left of the pane. The menu contains an item to bring up the Copyright.
\(bu Ensures there is a "Quit" button at the top right of the pane.
\(bu Ensures there is a "Help" button at the upper right of the pane, to the left of the Quit button.
\(bu Sets the geometry of input and output file selections (-I and -O), unless they appear within a grouping UIS construct.
\(bu If there is an "Options" action button on the pane, it is removed.
\(bu If there is a "Copyright" button on the pane, it is removed, since a "Copyright" item is put in the options menu.
This example shows how we took the syntactically correct Khoros 2 vgef pane we generated from uisupdate (see the uisupate man page for more details), and converted it into a pane that conforms with the Khoros 2 pane layout guidelines.
% cat vgef.pane-F 4.3 1 0 20x5+0+0 +0+0 'Cantata' cantata -M 1 1 20x5+10+20 +27+1 '2D Spatial Domain Filters' 2Dspatl -P 1 0 80x38+22+2 +14+0 ' ' vgef -b +12+1 'for Symmetric Exponential Filter' blank0 -I 1 0 0 1 0 1 50x1+2+3 ' ' 'Input Image' 'input image' i -O 1 0 0 1 0 1 50x1+2+4 ' ' 'Output Image' 'output image' o -f 1 0 1 1 0 48x1+4+7 0 1 0.45 0 1 0 ' a0 ' 'Filter Parameter GEF' a0 -i 1 0 1 1 0 48x1+4+10 0 255 3 1 0 ' T1 ' '1st Hysteresis Threshold' t1 -i 1 0 1 1 0 48x1+4+11 0 255 4 1 0 ' T2 ' '2nd Hysteresis Threshold' t2 -i 1 0 1 1 0 48x1+4+14 0 100000 5 1 0 'Length' 'Min Pixel Num in a Seg' l -R 1 0 1 13x2+1+16 'Execute' 'do operation' vgef -b +2+6 'Filter Parameters:' blank1 -b +2+9 'Hysteresis Thresholds:' blank2 -b +2+13 'Minimum Length of a Segment (in Pixels):' blank3 -H 1 6x1+39+16 'Help' 'man page for visef' KHOROS_HOME/manpages/help/vgef .1 help -E -E -E
% kfixpane -tb retro -oname vgef -type kroutine -short-desc "My vgef" -rpath "mybin/vgef" -help '$RETRO/objects/kroutine/vgef/help' vgef.pane
% cat vgef.pane
-F 4.3 1 0 52x1+0+0 +0+0 'Cantata' cantata -M 1 1 52x1+0+0 +1+0 'My vgef' 2Dspatl -P 1 0 52x1+0+1 +14+0 ' ' vgef -Q 1 0 5x1+47+0 'Close' -D 1 0 9x1+0+0 'Options' _gui_options -H 1 6x1+0+0 'Copyright' '(C)' $RETRO/repos/copyright/Copyright copyright -E -b +12+1 'for Symmetric Exponential Filter' blank0 -I 1 0 0 1 0 1 52x1+0+3 ' ' 'Input Image' 'input image' i -O 1 0 0 1 0 1 52x1+0+4 ' ' 'Output Image' 'output image' o -f 1 0 1 1 0 48x1+4+7 0 1 0.45 0 1 0 ' a0 ' 'Filter Parameter GEF' a0 -i 1 0 1 1 0 48x1+4+10 0 255 3 1 0 ' T1 ' '1st Hysteresis Threshold' t1 -i 1 0 1 1 0 48x1+4+11 0 255 4 1 0 ' T2 ' '2nd Hysteresis Threshold' t2 -i 1 0 1 1 0 48x1+4+14 0 100000 5 1 0 'Length' 'Min Pixel Num in a Seg' l -R 1 0 1 5x1+35+0 'Run' 'do operation' mybin/vgef -b +2+6 'Filter Parameters:' blank1 -b +2+9 'Hysteresis Thresholds:' blank2 -b +2+13 'Minimum Length of a Segment (in Pixels):' blank3 -H 1 5x1+41+0 'Help' 'man page for visef' $RETRO/objects/kroutine/vgef/help help -E -E -E