v03i082: Xcu -- widget set from Cornell University, Part06/12
Dan Heller
argv at island.uu.net
Wed Apr 26 07:24:51 AEST 1989
Submitted-by: Gene Dykes <gdykes at tcgould.tn.cornell.edu>
Posting-number: Volume 3, Issue 82
Archive-name: xcu/part06
#! /bin/sh
# This is a shell archive. Remove anything before this line, then feed it
# into a shell via "sh file" or similar. To overwrite existing files,
# type "sh file -c".
# The tool that generated this appeared in the comp.sources.unix newsgroup;
# send mail to comp-sources-unix at uunet.uu.net if you want that tool.
# If this archive is complete, you will see the following message at the end:
# "End of archive 6 (of 12)."
# Contents: examples/xlayout/manip.wc examples/xworld/README
# src/CuSimple.c src/CuTbl.y
# Wrapped by argv at island on Mon Apr 24 15:41:44 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'examples/xlayout/manip.wc' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'examples/xlayout/manip.wc'\"
else
echo shar: Extracting \"'examples/xlayout/manip.wc'\" \(17470 characters\)
sed "s/^X//" >'examples/xlayout/manip.wc' <<'END_OF_FILE'
X#WLDL
X6
X
X5 CuWlm
X12
X18 CuLabel.facetWidth 1 (0) 6 Global
X18 CuLabel.foreground 5 (black) 6 Global
X19 CuLabel.borderColor 9 (LightGray) 6 Global
X18 CuLabel.background 9 (LightGray) 6 Global
X17 CuTbl.borderColor 9 (LightGray) 6 Global
X17 CuTbl.borderWidth 1 (0) 6 Global
X16 CuTbl.background 9 (LightGray) 6 Global
X4 font 4 (9x15) 6 Global
X16 brightFacetColor 14 (LightSteelBlue) 6 Global
X13 dimFacetColor 9 (SteelBlue) 6 Global
X18 highlightThickness 1 (2) 6 Global
X4 name 6 (office) 5 Local
X0
X0
X2
X
X 6 CuBmgr
X 2
X 8 bmgrType 9 (OneOfMany) 5 Local
X 4 name 10 (plus_minus) 5 Local
X 0
X 18
X 11 (yo_negative) 6 String 11 (yo_negative)
X 11 (yo_positive) 6 String 11 (yo_positive)
X 11 (hi_negative) 6 String 11 (hi_negative)
X 11 (hi_positive) 6 String 11 (hi_positive)
X 11 (sc_negative) 6 String 11 (sc_negative)
X 11 (sc_positive) 6 String 11 (sc_positive)
X 11 (zm_negative) 6 String 11 (zm_negative)
X 11 (zm_positive) 6 String 11 (zm_positive)
X 11 (ry_negative) 6 String 11 (ry_negative)
X 11 (ry_positive) 6 String 11 (ry_positive)
X 11 (rx_negative) 6 String 11 (rx_negative)
X 11 (rx_positive) 6 String 11 (rx_positive)
X 11 (tz_negative) 6 String 11 (tz_negative)
X 11 (tz_positive) 6 String 11 (tz_positive)
X 11 (ty_negative) 6 String 11 (ty_negative)
X 11 (ty_positive) 6 String 11 (ty_positive)
X 11 (tx_negative) 6 String 11 (tx_negative)
X 11 (tx_positive) 6 String 11 (tx_positive)
X 0
X
X 5 CuTbl
X 5
X 14 internalHeight 2 (10) 5 Local
X 13 internalWidth 2 (10) 5 Local
X 11 interHeight 2 (10) 5 Local
X 12 formatString 2 (c.) 5 Local
X 4 name 7 (visible) 5 Local
X 0
X 0
X 11
X
X 5 CuTbl
X 1
X 12 formatString 2 (c.) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 9 (Transient) 5 Local
X 4 name 4 (quit) 5 Local
X 0
X 1
X 4 (QUIT) 6 String 4 (QUIT)
X 1
X
X 8 CuButton
X 1
X 4 name 4 (QUIT) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 1
X 12 formatString 2 (c.) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 9 (Transient) 5 Local
X 4 name 7 (texture) 5 Local
X 0
X 1
X 7 (TEXTURE) 6 String 7 (TEXTURE)
X 1
X
X 8 CuButton
X 1
X 4 name 7 (TEXTURE) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 1
X 12 formatString 2 (c.) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 9 (Transient) 5 Local
X 4 name 5 (reset) 5 Local
X 0
X 1
X 5 (RESET) 6 String 5 (RESET)
X 1
X
X 8 CuButton
X 1
X 4 name 5 (RESET) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 6 (c
Xc
Xc.) 5 Local
X 4 name 3 (A11) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 9 (OneOfMany) 5 Local
X 4 name 10 (read_write) 5 Local
X 0
X 3
X 3 (OFF) 6 String 3 (OFF)
X 6 (RECORD) 6 String 6 (RECORD)
X 6 (REPLAY) 6 String 6 (REPLAY)
X 3
X
X 8 CuButton
X 2
X 3 set 4 (True) 5 Local
X 4 name 3 (OFF) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 1
X 4 name 6 (RECORD) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 1
X 4 name 6 (REPLAY) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 equalColumns 4 (True) 5 Local
X 12 formatString 4 (c c.) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 12 (DoubleToggle) 5 Local
X 4 name 10 (dbl_buffer) 5 Local
X 0
X 2
X 14 (DBL
XBUFFER
XOFF) 3 Int 1 (0)
X 13 (DBL
XBUFFER
XON) 3 Int 1 (1)
X 2
X
X 8 CuButton
X 1
X 4 name 14 (DBL
XBUFFER
XOFF) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 3 set 4 (True) 5 Local
X 4 name 13 (DBL
XBUFFER
XON) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 equalColumns 4 (True) 5 Local
X 12 formatString 4 (c c.) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 12 (DoubleToggle) 5 Local
X 4 name 2 (up) 5 Local
X 0
X 2
X 11 (UP
XVARIABLE) 3 Int 1 (0)
X 11 (UP
XCONSTANT) 3 Int 1 (1)
X 2
X
X 8 CuButton
X 1
X 4 name 11 (UP
XVARIABLE) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 3 set 4 (True) 5 Local
X 4 name 11 (UP
XCONSTANT) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 equalColumns 4 (True) 5 Local
X 12 formatString 4 (c c.) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 12 (DoubleToggle) 5 Local
X 4 name 5 (cycle) 5 Local
X 0
X 2
X 9 (CYCLE OFF) 3 Int 1 (0)
X 8 (CYCLE ON) 3 Int 1 (1)
X 2
X
X 8 CuButton
X 1
X 4 name 8 (CYCLE ON) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 3 set 4 (True) 5 Local
X 4 name 9 (CYCLE OFF) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 6 (c
Xc
Xc.) 5 Local
X 4 name 5 (hi_yo) 5 Local
X 0
X 0
X 3
X
X 5 CuTbl
X 3
X 12 equalColumns 4 (True) 5 Local
X 12 formatString 6 (c c c.) 5 Local
X 4 name 3 (A10) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 9 (OneOfMany) 5 Local
X 4 name 8 (hy_value) 5 Local
X 0
X 6
X 3 (hy8) 5 Float 3 (8.0)
X 3 (hy4) 5 Float 3 (4.0)
X 3 (hy2) 5 Float 3 (2.0)
X 3 (hy1) 5 Float 3 (1.0)
X 4 (hy.1) 5 Float 3 (0.1)
X 3 (hy0) 5 Float 1 (0)
X 6
X
X 8 CuButton
X 2
X 5 label 1 (8) 5 Local
X 4 name 3 (hy8) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 3
X 3 set 4 (True) 5 Local
X 5 label 1 (4) 5 Local
X 4 name 3 (hy4) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (2) 5 Local
X 4 name 3 (hy2) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (1) 5 Local
X 4 name 3 (hy1) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 2 (.1) 5 Local
X 4 name 4 (hy.1) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 2 (RS) 5 Local
X 4 name 3 (hy0) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 10 interWidth 1 (2) 5 Local
X 12 formatString 4 (c c.) 5 Local
X 0
X 0
X 2
X
X 5 CuTbl
X 2
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 2 (yo) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 11 (yo_positive) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (-) 5 Local
X 4 name 11 (yo_negative) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 2 (hi) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 11 (hi_positive) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (-) 5 Local
X 4 name 11 (hi_negative) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 4
X 10 facetWidth 1 (0) 6 Global
X 10 foreground 5 (black) 6 Global
X 12 formatString 4 (c c.) 5 Local
X 12 equalColumns 4 (True) 5 Local
X 0
X 0
X 2
X
X 7 CuLabel
X 1
X 4 name 3 (YON) 5 Local
X 0
X 0
X 0
X
X 7 CuLabel
X 1
X 4 name 6 (HITHER) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 6 (c
Xc
Xc.) 5 Local
X 4 name 10 (zoom_scene) 5 Local
X 0
X 0
X 3
X
X 5 CuTbl
X 3
X 12 equalColumns 4 (True) 5 Local
X 12 formatString 10 (c c
Xc c c.) 5 Local
X 4 name 2 (A9) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 9 (OneOfMany) 5 Local
X 4 name 10 (zoom_value) 5 Local
X 0
X 5
X 7 (zoom1.5) 5 Float 3 (1.5)
X 7 (zoom1.1) 5 Float 3 (1.1)
X 6 (zoom.9) 5 Float 3 (0.9)
X 6 (zoom.5) 5 Float 3 (0.5)
X 5 (zoom0) 5 Float 1 (0)
X 5
X
X 8 CuButton
X 2
X 5 label 3 (1.5) 5 Local
X 4 name 7 (zoom1.5) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 3
X 3 set 4 (True) 5 Local
X 5 label 3 (1.1) 5 Local
X 4 name 7 (zoom1.1) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 2 (.9) 5 Local
X 4 name 6 (zoom.9) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 2 (.5) 5 Local
X 4 name 6 (zoom.5) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 2 (RS) 5 Local
X 4 name 5 (zoom0) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 3
X 10 interWidth 1 (2) 5 Local
X 12 formatString 6 (c c c.) 5 Local
X 4 name 2 (A8) 5 Local
X 0
X 0
X 3
X
X 5 CuTbl
X 2
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 2 (sc) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 11 (sc_positive) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (-) 5 Local
X 4 name 11 (sc_negative) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 4
X 18 layoutWhenUnmapped 4 (True) 5 Local
X 17 mappedWhenManaged 5 (False) 5 Local
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 3 (A8a) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 1 ( ) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (-) 5 Local
X 4 name 1 ( ) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 2 (zm) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 11 (zm_positive) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (-) 5 Local
X 4 name 11 (zm_negative) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 6 (c c c.) 5 Local
X 4 name 2 (A7) 5 Local
X 0
X 0
X 3
X
X 7 CuLabel
X 1
X 4 name 2 (SC) 5 Local
X 0
X 0
X 0
X
X 7 CuLabel
X 1
X 4 name 2 ( ) 5 Local
X 0
X 0
X 0
X
X 7 CuLabel
X 1
X 4 name 2 (ZM) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 6 (c
Xc
Xc.) 5 Local
X 4 name 8 (rotation) 5 Local
X 0
X 0
X 3
X
X 5 CuTbl
X 3
X 12 equalColumns 4 (True) 5 Local
X 12 formatString 6 (c c c.) 5 Local
X 4 name 2 (A6) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 9 (OneOfMany) 5 Local
X 4 name 12 (rotate_value) 5 Local
X 0
X 6
X 8 (rotate90) 5 Float 4 (90.0)
X 8 (rotate30) 5 Float 4 (30.0)
X 8 (rotate10) 5 Float 2 (10)
X 7 (rotate5) 5 Float 1 (5)
X 7 (rotate2) 5 Float 1 (2)
X 7 (rotate1) 5 Float 1 (1)
X 6
X
X 8 CuButton
X 2
X 5 label 2 (90) 5 Local
X 4 name 8 (rotate90) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 2 (30) 5 Local
X 4 name 8 (rotate30) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 2 (10) 5 Local
X 4 name 8 (rotate10) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 3
X 3 set 4 (True) 5 Local
X 5 label 1 (5) 5 Local
X 4 name 7 (rotate5) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (2) 5 Local
X 4 name 7 (rotate2) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (1) 5 Local
X 4 name 7 (rotate1) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 3
X 10 interWidth 1 (2) 5 Local
X 12 formatString 6 (c c c.) 5 Local
X 4 name 2 (A5) 5 Local
X 0
X 0
X 3
X
X 5 CuTbl
X 4
X 18 layoutWhenUnmapped 4 (True) 5 Local
X 17 mappedWhenManaged 5 (False) 5 Local
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 2 (rz) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 11 (rz_positive) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (-) 5 Local
X 4 name 11 (rz_negative) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 2 (ry) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 11 (ry_positive) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (-) 5 Local
X 4 name 11 (ry_negative) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 2 (rx) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 11 (rx_positive) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (-) 5 Local
X 4 name 11 (rx_negative) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 6 (c c c.) 5 Local
X 4 name 2 (A4) 5 Local
X 0
X 0
X 3
X
X 7 CuLabel
X 1
X 4 name 2 ( ) 5 Local
X 0
X 0
X 0
X
X 7 CuLabel
X 1
X 4 name 2 (RY) 5 Local
X 0
X 0
X 0
X
X 7 CuLabel
X 1
X 4 name 2 (RX) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 6 (c
Xc
Xc.) 5 Local
X 4 name 11 (translation) 5 Local
X 0
X 0
X 3
X
X 5 CuTbl
X 3
X 12 equalColumns 4 (True) 5 Local
X 12 formatString 6 (c c c.) 5 Local
X 4 name 2 (A3) 5 Local
X 0
X 0
X 1
X
X 6 CuBmgr
X 2
X 8 bmgrType 9 (OneOfMany) 5 Local
X 4 name 15 (translate_value) 5 Local
X 0
X 6
X 11 (translate10) 5 Float 4 (10.0)
X 10 (translate4) 5 Float 3 (4.0)
X 10 (translate2) 5 Float 3 (2.0)
X 10 (translate1) 5 Float 3 (1.0)
X 11 (translate.5) 5 Float 3 (0.5)
X 11 (translate.1) 5 Float 3 (0.1)
X 6
X
X 8 CuButton
X 2
X 5 label 2 (10) 5 Local
X 4 name 11 (translate10) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (4) 5 Local
X 4 name 10 (translate4) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (2) 5 Local
X 4 name 10 (translate2) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 3
X 3 set 4 (True) 5 Local
X 5 label 1 (1) 5 Local
X 4 name 10 (translate1) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 2 (.5) 5 Local
X 4 name 11 (translate.5) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 2 (.1) 5 Local
X 4 name 11 (translate.1) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 3
X 10 interWidth 1 (2) 5 Local
X 12 formatString 6 (c c c.) 5 Local
X 4 name 2 (A2) 5 Local
X 0
X 0
X 3
X
X 5 CuTbl
X 2
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 2 (tz) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 11 (tz_positive) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (-) 5 Local
X 4 name 11 (tz_negative) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 2 (ty) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 11 (ty_positive) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 2
X 5 label 1 (-) 5 Local
X 4 name 11 (ty_negative) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 5 (c c.
X) 5 Local
X 4 name 2 (tx) 5 Local
X 0
X 0
X 2
X
X 8 CuButton
X 2
X 5 label 1 (+) 5 Local
X 4 name 11 (tx_positive) 5 Local
X 0
X 0
X 0
X
X 8 CuButton
X 3
X 3 set 4 (True) 5 Local
X 5 label 1 (-) 5 Local
X 4 name 11 (tx_negative) 5 Local
X 0
X 0
X 0
X
X 5 CuTbl
X 2
X 12 formatString 6 (c c c.) 5 Local
X 4 name 2 (A1) 5 Local
X 0
X 0
X 3
X
X 7 CuLabel
X 1
X 4 name 2 (TZ) 5 Local
X 0
X 0
X 0
X
X 7 CuLabel
X 1
X 4 name 2 (TY) 5 Local
X 0
X 0
X 0
X
X 7 CuLabel
X 1
X 4 name 2 (TX) 5 Local
X 0
X 0
X 0
END_OF_FILE
echo shar: NEWLINE appended to \"'examples/xlayout/manip.wc'\"
if test 17471 -ne `wc -c <'examples/xlayout/manip.wc'`; then
echo shar: \"'examples/xlayout/manip.wc'\" unpacked with wrong size!
fi
# end of 'examples/xlayout/manip.wc'
fi
if test -f 'examples/xworld/README' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'examples/xworld/README'\"
else
echo shar: Extracting \"'examples/xworld/README'\" \(516 characters\)
sed "s/^X//" >'examples/xworld/README' <<'END_OF_FILE'
XThis directory contains a "Good-bye, World" example of using the
Xwidget layout manager. The file "world.wl" contains a near minimal
Xexample of a layout description, and world.c is a minimal client
Xto execute a program using that description. Note that world.c
Xcontains the "make_tag_class_list()" function explicitly. It can be
Xgenerated automatically as shown in the xwlm example.
X
XClicking the mouse in the widget will cause a callback that terminates the
Xprogram. To execute, issue the command:
X
X world world
END_OF_FILE
echo shar: NEWLINE appended to \"'examples/xworld/README'\"
if test 517 -ne `wc -c <'examples/xworld/README'`; then
echo shar: \"'examples/xworld/README'\" unpacked with wrong size!
fi
# end of 'examples/xworld/README'
fi
if test -f 'src/CuSimple.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'src/CuSimple.c'\"
else
echo shar: Extracting \"'src/CuSimple.c'\" \(20090 characters\)
sed "s/^X//" >'src/CuSimple.c' <<'END_OF_FILE'
X/* CuSimple */
X#include <X11/IntrinsicP.h>
X#include <X11/copyright.h>
X#include <X11/StringDefs.h>
X#include "CuSimpleP.h"
X/* Facet */
X#include "CuSimpleI.h"
X
X/* CuSimple */
X#define UnspecifiedPixmap 2 /* ??? NULL */
X#define IsSensitive(w) ((w)->core.sensitive && (w)->core.ancestor_sensitive)
X
X/* CuSimple */
Xstatic Cursor defaultCursor = None;
Xstatic Pixmap defaultPixmap = NULL;
X/* Facet */
Xstatic Dimension defFacetWidth = 5 ;
Xstatic Dimension defHighlightWidth = 2 ;
Xstatic Boolean def_false = False ;
Xstatic Pixel def_bp = None ;
Xstatic Pixel def_wp = None ;
X
Xstatic XtResource resources[] = {
X#define offset(field) XtOffset(CuSimpleWidget, simple.field)
X#include "CuSimpleR.h"
X#undef offset
X};
X
X#ifdef CompositeSimple
Xstatic XtResource compResources[] = {
X#define offset(field) XtOffset(CuSimpleCompWidget, simple.field)
X#include "CuSimpleR.h"
X#undef offset
X};
X
X#endif
X/* Forward Definition of private routines */
X
Xstatic void ChangeSensitive();
Xstatic void ClassPartInitialize();
Xstatic void Realize();
Xstatic Boolean SetValues();
Xstatic void Initialize();
Xstatic void Redisplay();
Xstatic void Resize();
Xstatic void Destroy();
X/* (private) */
Xstatic void GetCursorColors () ;
Xstatic void Draw_Facets();
Xstatic void Draw_Highlight();
Xstatic Boolean SetValuesCorePart();
Xstatic void SetValuesFacetPart();
Xstatic void DestroyFacet();
Xstatic void GetDimFacetGC();
Xstatic void GetBrightFacetGC();
Xstatic void GetHighlightGC();
Xstatic void GetBackgroundGC();
X#ifdef CompositeSimple
Xstatic XtGeometryResult GeometryManager() ;
Xstatic void CompInitialize();
Xstatic void CompClassPartInitialize();
Xstatic void CompRedisplay();
Xstatic Boolean CompSetValues();
Xstatic void CompDestroy();
X#endif
X
X/* Static Class Definition */
X
XCuSimpleClassRec cuSimpleClassRec = {
X { /* core fields */
X /* superclass */ (WidgetClass) &widgetClassRec,
X /* class_name */ "CuSimple",
X /* widget_size */ sizeof(CuSimpleRec),
X /* class_initialize */ NULL,
X /* class_part_initialize */ ClassPartInitialize,
X /* class_inited */ FALSE,
X /* initialize */ Initialize,
X /* initialize_hook */ NULL,
X /* realize */ Realize,
X /* actions */ NULL,
X /* num_actions */ 0,
X /* resources */ resources,
X /* num_resources */ XtNumber(resources),
X /* xrm_class */ NULLQUARK,
X /* compress_motion */ TRUE,
X /* compress_exposure */ TRUE,
X /* compress_enterleave */ TRUE,
X /* visible_interest */ FALSE,
X /* destroy */ Destroy,
X /* resize */ Resize,
X /* expose */ Redisplay,
X /* set_values */ SetValues,
X /* set_values_hook */ NULL,
X /* set_values_almost */ XtInheritSetValuesAlmost,
X /* get_values_hook */ NULL,
X /* accept_focus */ NULL,
X /* version */ XtVersion,
X /* callback_private */ NULL,
X /* tm_table */ NULL,
X /* query_geometry */ NULL,
X /* display_accelerator */ XtInheritDisplayAccelerator,
X /* extension */ NULL,
X },
X { /* simple fields */
X /* CuSimple */
X /* change_sensitive */ ChangeSensitive,
X /* Facet */
X /* draw facet */ Draw_Facets,
X /* draw highlight */ Draw_Highlight
X }
X};
X
XWidgetClass cuSimpleWidgetClass = (WidgetClass)&cuSimpleClassRec;
X
X#ifdef CompositeSimple
XCuSimpleCompClassRec cuSimpleCompClassRec = {
X { /* core_class fields */
X /* superclass */ (WidgetClass) &compositeClassRec,
X /* class_name */ "CuSimple",
X /* widget_size */ sizeof(CuSimpleRec),
X /* class_initialize */ NULL,
X /* class_part_initialize */ CompClassPartInitialize,
X /* class_inited */ FALSE,
X /* initialize */ CompInitialize,
X /* initialize_hook */ NULL,
X /* realize */ Realize,
X /* actions */ NULL,
X /* num_actions */ 0,
X /* resources */ compResources,
X /* num_resources */ XtNumber(compResources),
X /* xrm_class */ NULLQUARK,
X /* compress_motion */ TRUE,
X /* compress_exposure */ TRUE,
X /* compress_enterleave */ TRUE,
X /* visible_interest */ FALSE,
X /* destroy */ CompDestroy,
X /* resize */ Resize,
X /* expose */ CompRedisplay,
X /* set_values */ CompSetValues,
X /* set_values_hook */ NULL,
X /* set_values_almost */ XtInheritSetValuesAlmost,
X /* get_values_hook */ NULL,
X /* accept_focus */ NULL,
X /* version */ XtVersion,
X /* callback_private */ NULL,
X /* tm_table */ NULL,
X /* query_geometry */ NULL,
X /* display_accelerator */ XtInheritDisplayAccelerator,
X /* extension */ NULL,
X },
X { /* composite_class fields */
X /* geometry_manager */ GeometryManager,
X /* change_managed */ NULL,
X /* insert_child */ XtInheritInsertChild,
X /* delete_child */ XtInheritDeleteChild,
X /* extension */ NULL,
X },
X {
X /* CuSimple */
X /* change_sensitive */ ChangeSensitive,
X /* Facet */
X /* draw facet */ Draw_Facets,
X /* draw highlight */ Draw_Highlight
X }
X};
X
XWidgetClass cuSimpleCompWidgetClass = (WidgetClass)&cuSimpleCompClassRec;
X
X#endif
X/**
X *** Toolkit Callable Routines
X **/
X
Xstatic void ClassPartInitialize(class)
X WidgetClass class;
X{
X register CuSimpleWidgetClass c = (CuSimpleWidgetClass)class;
X
X /* CuSimple */
X if (c->simple_class.change_sensitive == XtInheritChangeSensitive)
X c->simple_class.change_sensitive = ChangeSensitive;
X /* Facet */
X if ( c->simple_class.draw_facets == XtInheritDrawFacets )
X c->simple_class.draw_facets = Draw_Facets ;
X
X if ( c->simple_class.draw_highlight == XtInheritDrawHighlight )
X c->simple_class.draw_highlight = Draw_Highlight ;
X}
X
Xstatic void Initialize(request, new)
X Widget request, new;
X{
X CuSimpleWidget fw = (CuSimpleWidget) new;
X
X/* screen depth hack */
X /***
X fw->core.depth = 24 ;
X ***/
X
X GetDimFacetGC( new, &fw->simple );
X GetBrightFacetGC( new, &fw->simple );
X GetHighlightGC( new, &fw->simple );
X GetCursorColors (fw) ;
X fw->simple.highlighted = FALSE;
X fw->simple.first_expose = True ;
X if (fw->simple.shadow)
X {
X /* For shadows to look right, parts of it have to look like parent */
X fw->simple.background_pixel = fw->core.background_pixel ;
X fw->core.background_pixel = fw->core.parent->core.background_pixel ;
X fw->simple.save_border_width = fw->core.border_width ;
X fw->core.border_width = 0 ;
X GetBackgroundGC (fw) ;
X }
X}
X
Xstatic void Realize(w, valueMask, attributes)
X register Widget w;
X Mask *valueMask;
X XSetWindowAttributes *attributes;
X{
X Pixmap border_pixmap;
X CuSimpleWidget sw = (CuSimpleWidget) w ;
X
X if (!IsSensitive(w)) {
X /* change border to gray; have to remember the old one,
X * so XtDestroyWidget deletes the proper one */
X if (!((CuSimpleWidget)w)->simple.insensitive_border)
X ((CuSimpleWidget)w)->simple.insensitive_border =
X XmuCreateStippledPixmap (XtScreen(w),
X w->core.border_pixel,
X w->core.background_pixel,
X w->core.depth) ;
X border_pixmap = w->core.border_pixmap;
X attributes->border_pixmap =
X w->core.border_pixmap = ((CuSimpleWidget)w)->simple.insensitive_border;
X
X *valueMask |= CWBorderPixmap;
X *valueMask &= ~CWBorderPixel;
X }
X
X if ((attributes->cursor = ((CuSimpleWidget)w)->simple.cursor) != None)
X *valueMask |= CWCursor;
X
X XtCreateWindow( w, (unsigned int)InputOutput, (Visual *)CopyFromParent,
X *valueMask, attributes );
X
X if (attributes->cursor != None)
X {
X XRecolorCursor (XtDisplay(w), attributes->cursor,
X &sw->simple.cursor_fg, &sw->simple.cursor_bg) ;
X }
X if (!IsSensitive(w))
X w->core.border_pixmap = border_pixmap;
X}
X
X
Xstatic Boolean SetValues(current, request, new)
X Widget current, request, new;
X{
X CuSimpleWidget curfw = (CuSimpleWidget) current;
X CuSimpleWidget reqfw = (CuSimpleWidget) request;
X CuSimpleWidget newfw = (CuSimpleWidget) new;
X Boolean was_resized ;
X
X if (curfw->simple.cursor_foreground != newfw->simple.cursor_foreground ||
X curfw->simple.cursor_background != newfw->simple.cursor_background)
X {
X GetCursorColors (newfw) ;
X }
X
X if ((current->core.sensitive != new->core.sensitive ||
X current->core.ancestor_sensitive != new->core.ancestor_sensitive))
X ChangeSensitive( new );
X
X was_resized = SetValuesCorePart( current, request, new ) ;
X
X SetValuesFacetPart( &curfw->simple, &reqfw->simple, &newfw->simple, new ) ;
X
X if (curfw->simple.shadow != newfw->simple.shadow)
X {
X if (newfw->simple.shadow)
X {
X /* For shadows to look right, parts have to look like parent */
X newfw->simple.background_pixel = newfw->core.background_pixel ;
X newfw->core.background_pixel =
X newfw->core.parent->core.background_pixel;
X newfw->simple.save_border_width = newfw->core.border_width ;
X newfw->core.border_width = 0 ;
X GetBackgroundGC (newfw) ;
X }
X else
X {
X /* revert to normal pixmaps */
X newfw->core.background_pixel = newfw->simple.background_pixel;
X newfw->core.border_width = newfw->simple.save_border_width ;
X XtDestroyGC( newfw->simple.background_GC );
X }
X }
X
X if (was_resized) {
X (*XtClass(new)->core_class.resize) ((Widget)newfw);
X }
X
X return( was_resized );
X}
X
Xstatic void Destroy( w )
X Widget w ;
X{
X CuSimpleWidget fw = (CuSimpleWidget)w ;
X DestroyFacet( &fw->simple ) ;
X if (fw->simple.shadow)
X XtDestroyGC( fw->simple.background_GC );
X
X}
X
Xstatic void Resize(w)
X Widget w;
X{
XXtCallCallbacks (w, XtNresize, NULL) ;
Xreturn ;
X}
X
Xstatic void Redisplay(w, event, region)
X Widget w;
X XEvent *event;
X Region region;
X{
X CuSimpleWidget fw = (CuSimpleWidget) w;
X
X /* Draw these parts of the button: facets and highlight */
X
X (*((CuSimpleClassRec *)XtClass(fw))->simple_class.draw_facets)(w,&fw->simple);
X
X if ( fw->simple.highlighted == TRUE )
X (*((CuSimpleClassRec *) XtClass(fw))->
X simple_class.draw_highlight)(w,&fw->simple) ;
X
X if (fw->simple.first_expose)
X {
X fw->simple.first_expose = False ;
X XtCallCallbacks(w, XtNfirstExpose, region);
X }
X}
X
X/**
X *** Private Routines
X **/
X
Xstatic void
XGetCursorColors (sw)
X CuSimpleWidget sw ;
X{
XXrmValue pixel_value ;
XXrmValue color_value ;
X
Xif (sw->simple.cursor_foreground == None)
X sw->simple.cursor_foreground = BlackPixelOfScreen(XtScreen((Widget)sw)) ;
X
Xpixel_value.size = sizeof (sw->simple.cursor_foreground) ;
Xpixel_value.addr = (caddr_t) &sw->simple.cursor_foreground ;
XXtConvert ((Widget) sw, XtRPixel, &pixel_value, XtRColor, &color_value) ;
Xsw->simple.cursor_fg = *((XColor *)color_value.addr) ;
X
Xif (sw->simple.cursor_background == None)
X sw->simple.cursor_background = WhitePixelOfScreen(XtScreen((Widget)sw)) ;
X
Xpixel_value.size = sizeof (sw->simple.cursor_background) ;
Xpixel_value.addr = (caddr_t) &sw->simple.cursor_background ;
XXtConvert ((Widget) sw, XtRPixel, &pixel_value, XtRColor, &color_value) ;
Xsw->simple.cursor_bg = *((XColor *)color_value.addr) ;
X
Xreturn ;
X}
X
Xstatic Boolean SetValuesCorePart( cur, req, new )
X Widget cur, req, new ;
X{
X Boolean was_resized = False;
X
X if ((cur->core.width != new->core.width) ||
X (cur->core.height != new->core.height)) {
X
X /* we have to know if the size change is going to take
X before calling Resize() */
X
X if ((XtMakeResizeRequest(cur,
X new->core.width, new->core.height,
X &new->core.width, &new->core.height)
X == XtGeometryNo)) {
X new->core.width = cur->core.width;
X new->core.height = cur->core.height;
X }
X else was_resized = True ;
X }
X
X return( was_resized );
X}
X
Xstatic void SetValuesFacetPart( cur, req, new, w )
X CuSimplePart *cur, *req, *new ;
X Widget w ;
X{
X if ( cur->dim_facet_color != new->dim_facet_color ) {
X XtDestroyGC( cur->dim_facet_GC );
X GetDimFacetGC( w, new );
X }
X
X if ( cur->highlight_color != new->highlight_color ) {
X XtDestroyGC( cur->highlight_GC );
X GetBrightFacetGC( w, new );
X }
X
X if ( cur->bright_facet_color != new->bright_facet_color ) {
X XtDestroyGC( cur->bright_facet_GC );
X GetBrightFacetGC( w, new );
X }
X}
X
Xstatic void DestroyFacet( simple )
X CuSimplePart *simple ;
X{
X XtDestroyGC(simple->dim_facet_GC);
X XtDestroyGC(simple->bright_facet_GC);
X XtDestroyGC(simple->highlight_GC);
X}
X
X/* routines to get all the graphics contexts */
X
Xstatic void GetBackgroundGC( fw )
X CuSimpleWidget fw ;
X{
X XGCValues values;
X
X values.foreground = fw->simple.background_pixel;
X fw->simple.background_GC = XtGetGC(
X (Widget)fw, (unsigned) GCForeground, &values);
X}
X
Xstatic void GetDimFacetGC( w, simple )
X Widget w ;
X CuSimplePart *simple ;
X{
X XGCValues values;
X
X values.foreground = simple->dim_facet_color;
X simple->dim_facet_GC = XtGetGC(
X w, (unsigned) GCForeground, &values);
X}
X
Xstatic void GetBrightFacetGC( w, simple )
X Widget w ;
X CuSimplePart *simple ;
X{
X XGCValues values;
X
X values.foreground = simple->bright_facet_color;
X simple->bright_facet_GC = XtGetGC(
X w, (unsigned) GCForeground, &values);
X}
X
Xstatic void GetHighlightGC( w, simple )
X Widget w ;
X CuSimplePart *simple ;
X{
X XGCValues values;
X
X values.foreground = simple->highlight_color;
X values.line_width = simple->highlight_width;
X simple->highlight_GC = XtGetGC(
X w, (unsigned) (GCForeground | GCLineWidth), &values);
X}
X
X/*
X * Repaint the widget window
X */
X
Xstatic void Draw_Facets( w, simple )
X Widget w ;
X CuSimplePart *simple ;
X{
XCuSimpleWidget fw = (CuSimpleWidget) w ;
X XPoint points[4] ;
X
X /* note that for FillPolygon a pixel on a horizontal boundary
X is only filled if the rest of the polygon is below it.
X This means we have to fudge some of the boundaries by one */
X
Xif (!FacetWidth)
X return ;
X
Xif (fw->simple.shadow)
X {
X
X XFillRectangle( XtDisplay(w), XtWindow(w), DimGC,
X FacetWidth, FacetWidth,
X Width - FacetWidth, Height - FacetWidth ) ;
X XFillRectangle( XtDisplay(w), XtWindow(w), BackgroundGC,
X 0, 0,
X Width - FacetWidth, Height - FacetWidth ) ;
X }
Xelse
X {
X/* top */
X
X points[0].x = 0 ; points[0].y = 0 ;
X points[1].x = Width ; points[1].y = points[0].y ;
X points[2].x = points[1].x - FacetWidth + 1 ;
X points[2].y = points[1].y + FacetWidth ;
X points[3].x = points[0].x + FacetWidth ;
X points[3].y = points[2].y ;
X
X XFillPolygon( XtDisplay(w), XtWindow(w), BrightGC, points, 4,
X Convex, CoordModeOrigin );
X
X/* left side */
X
X points[0].x = points[0].x ; points[0].y = points[0].y ;
X points[1].x = points[3].x ; points[1].y = points[3].y ;
X points[2].x = points[1].x ;
X points[2].y = Height - FacetWidth ;
X points[3].x = points[0].x ;
X points[3].y = points[2].y + FacetWidth ;
X
X XFillPolygon( XtDisplay(w), XtWindow(w), BrightGC, points, 4,
X Convex, CoordModeOrigin );
X
X/* bottom */
X
X points[0].x = points[3].x ; points[0].y = points[3].y ;
X points[1].x = points[2].x ; points[1].y = points[2].y ;
X points[2].x = Width - FacetWidth - 1 ;
X points[2].y = points[1].y ;
X points[3].x = Width ;
X points[3].y = points[0].y ;
X
X XFillPolygon( XtDisplay(w), XtWindow(w), DimGC, points, 4,
X Convex, CoordModeOrigin );
X
X/* right side */
X
X points[0].x = points[3].x ; points[0].y = points[3].y ;
X points[1].x = points[2].x - 1 ; points[1].y = points[2].y ;
X points[2].x = points[1].x ;
X points[2].y = FacetWidth ;
X points[3].x = points[0].x ;
X points[3].y = points[2].y - FacetWidth ;
X
X XFillPolygon( XtDisplay(w), XtWindow(w), DimGC, points, 4,
X Convex, CoordModeOrigin );
X }
X
X}
X
Xstatic void Draw_Highlight( w, simple )
X Widget w ;
X CuSimplePart *simple ;
X{
XCuSimpleWidget fw = (CuSimpleWidget) w ;
Xif (Highlighted && HighlightWidth != 0)
X {
X /* wide lines are centered on the path, so indent it */
X int offset = HighlightWidth/2;
X if (fw->simple.shadow)
X {
X XFillRectangle( XtDisplay(w), XtWindow(w), Highlight_GC,
X FacetWidth, Height - FacetWidth,
X Width - FacetWidth, FacetWidth ) ;
X XFillRectangle( XtDisplay(w), XtWindow(w), Highlight_GC,
X Width - FacetWidth, FacetWidth,
X FacetWidth, Height - FacetWidth ) ;
X
X /**
X XDrawRectangle (XtDisplay(w), XtWindow(w),
X Highlight_GC,
X offset + FacetWidth, offset + FacetWidth,
X Width - HighlightWidth - FacetWidth,
X Height - HighlightWidth - FacetWidth);
X **/
X }
X else
X XDrawRectangle (XtDisplay(w), XtWindow(w),
X Highlight_GC,
X offset, offset,
X Width - HighlightWidth,
X Height - HighlightWidth);
X }
X}
X
X
X/* CuSimple Routines */
X
Xstatic void ChangeSensitive(w)
X register Widget w;
X{
X if (XtIsRealized(w)) {
X if (IsSensitive(w))
X if (w->core.border_pixmap != UnspecifiedPixmap)
X XSetWindowBorderPixmap( XtDisplay(w), XtWindow(w),
X w->core.border_pixmap );
X else
X XSetWindowBorder( XtDisplay(w), XtWindow(w),
X w->core.border_pixel );
X else {
X if (!((CuSimpleWidget)w)->simple.insensitive_border)
X ((CuSimpleWidget)w)->simple.insensitive_border =
X XmuCreateStippledPixmap (XtScreen(w),
X w->core.border_pixel,
X w->core.background_pixel,
X w->core.depth) ;
X XSetWindowBorderPixmap( XtDisplay(w), XtWindow(w),
X ((CuSimpleWidget)w)->
X simple.insensitive_border );
X }
X }
X return ;
X}
X
X#ifdef CompositeSimple
X
X/*
X * Routines for Composite superclasses.
X * Doesn't work right now. Get a bad cursor error from the server.
X * I haven't had the need or the time to look into it yet.
X */
X
Xstatic XtGeometryResult GeometryManager(w)
XWidget w ;
X{
X return( XtGeometryYes ) ;
X}
X
Xstatic void CompClassPartInitialize( widgetClass )
X WidgetClass widgetClass ;
X{
X /*
X register CuSimpleCompWidgetClass c = (CuSimpleCompWidgetClass)widgetClass;
X */
X CuSimpleCompWidgetClass c = (CuSimpleCompWidgetClass)widgetClass;
X /* CuSimple */
X if (c->simple_class.change_sensitive == XtInheritChangeSensitive)
X c->simple_class.change_sensitive = ChangeSensitive;
X /* Facet */
X if ( c->simple_class.draw_facets == XtInheritDrawFacets )
X c->simple_class.draw_facets = Draw_Facets ;
X
X if ( c->simple_class.draw_highlight == XtInheritDrawHighlight )
X c->simple_class.draw_highlight = Draw_Highlight ;
X}
X
Xstatic void CompInitialize(request, new)
X Widget request, new;
X{
X CuSimpleCompWidget fcw = (CuSimpleCompWidget) new;
X
X/* screen depth hack */
X /***
X fcw->core.depth = 24 ;
X ***/
X
X GetDimFacetGC( new, &fcw->simple );
X GetBrightFacetGC( new, &fcw->simple );
X GetHighlightGC( new, &fcw->simple );
X
X fcw->simple.highlighted = FALSE;
X
X}
X
Xstatic Boolean CompSetValues(current, request, new)
X Widget current, request, new;
X{
X CuSimpleCompWidget curfcw = (CuSimpleCompWidget) current;
X CuSimpleCompWidget reqfcw = (CuSimpleCompWidget) request;
X CuSimpleCompWidget newfcw = (CuSimpleCompWidget) new;
X Boolean was_resized ;
X
X was_resized = SetValuesCorePart( current, request, new ) ;
X
X SetValuesFacetPart( &curfcw->simple, &reqfcw->simple, &newfcw->simple, new ) ;
X
X if (was_resized) {
X (*XtClass(new)->core_class.resize) ((Widget)newfcw);
X }
X
X return( was_resized );
X}
X
Xstatic void CompDestroy( w )
X Widget w ;
X{
X CuSimpleCompWidget fcw = (CuSimpleCompWidget)w ;
X DestroyFacet( &fcw->simple ) ;
X}
X
Xstatic void CompRedisplay(w, event, region)
X Widget w;
X XEvent *event;
X Region region;
X{
X CuSimpleCompWidget fcw = (CuSimpleCompWidget) w;
X
X /* Now draw the button: facets, button face (with text), and border */
X
X (*((CuSimpleCompClassRec *) XtClass(fcw))->
X simple_class.draw_facets)( w, &fcw->simple ) ;
X
X if ( fcw->simple.highlighted == TRUE )
X (*((CuSimpleCompClassRec *) XtClass(fcw))->
X simple_class.draw_highlight)( w, &fcw->simple ) ;
X}
X
X#endif
X
END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuSimple.c'\"
if test 20091 -ne `wc -c <'src/CuSimple.c'`; then
echo shar: \"'src/CuSimple.c'\" unpacked with wrong size!
fi
# end of 'src/CuSimple.c'
fi
if test -f 'src/CuTbl.y' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'src/CuTbl.y'\"
else
echo shar: Extracting \"'src/CuTbl.y'\" \(13666 characters\)
sed "s/^X//" >'src/CuTbl.y' <<'END_OF_FILE'
X%{
X
X/* *
X * * This code is completely original. Permission is granted to do with
X * * it as one wishes. I disclaim any responsibility whatsoever for
X * * any bad things that may happen because of using it.
X * */
X
Xstatic void col_exceeded () ;
Xstatic void row_exceeded () ;
Xstatic void find_strings () ;
Xstatic void mismatch () ;
Xstatic void no_rows () ;
X
Xstatic CuTblWidget tw_ ; /* no other way to get it into yylex... */
Xstatic Boolean new_menu_start = False ;
X
X%}
X
X%start init
X
X%union {
X float f_val ;
X int i_val ;
X char *s_val ;
X char c_val ;
X }
X
X%token <i_val> INTEGER
X%token <c_val> CHARACTER
X%token <s_val> STRING
X%token <s_val> ITEM_ELEMENT
X%token HSPAN_ELEMENT
X%token VSPAN_ELEMENT
X%token EQUAL_ROWS
X%token EQUAL_COLUMNS
X%token ALIGNED_COLUMNS
X%token CLIP_ON_SHRINK
X%token EQUAL_COLUMNS
X%token IGNORED_OPTION
X%token TAMPERSAND
X%token CONTINUATION
X%token STRING_BREAKER
X%token LNL_EQUIVALENT
X%token SNL_EQUIVALENT
X%token INTER_WIDTH
X%token INTER_HEIGHT
X%token INTERNAL_WIDTH
X%token INTERNAL_HEIGHT
X%token RESIZE_PARTICIPANTS
X%token PADDING
X%token INTERS
X%token INTERNALS
X%token CHILDREN
X%token BACKGROUND_COLOR
X%token T_BACKGROUND_COLOR
X%token C_BACKGROUND_COLOR
X%token FOREGROUND_COLOR
X%token T_FOREGROUND_COLOR
X%token C_FOREGROUND_COLOR
X%token BORDER_COLOR
X%token T_BORDER_COLOR
X%token C_BORDER_COLOR
X%token BORDER_WIDTH
X%token T_BORDER_WIDTH
X%token C_BORDER_WIDTH
X%token TS
X%token TE
X%token NL
X%token DOT_NL
X%token ERROR
X
X%%
X
Xinit :
X {
X /* One time initializations */
X tw->tbl.null_elements = (ElementRecord *)
X XtCalloc (1, sizeof (ElementRecord)) ;
X tw->tbl.temp_elements = (ElementRecord *)
X XtCalloc (MAX_TBL_COLS, sizeof (ElementRecord)) ;
X tw_ = tw ;
X }
X | init tbl
X ;
X
Xtbl : dot_ts _options format_series dot_nl data dot_te
X {
X new_menu_start = True ;
X }
X ;
X
Xdot_nl : '.'
X | DOT_NL
X ;
X
Xdot_ts :
X | TS NL
X ;
X
Xdot_te :
X | TE
X ;
X
X_options :
X | options ';' NL
X | options ';'
X ;
X
Xformat_series : format
X | format_series NL format
X ;
X
Xformat : element_series
X {
X Cardinal i ;
X
X if (tw->tbl.rows == MAX_TBL_ROWS)
X row_exceeded () ;
X
X /* allocate just enough space for the number of columns in this row */
X
X tw->tbl.item[tw->tbl.rows] = (ElementRecord *)
X XtCalloc (tw->tbl.n_cols, sizeof (ElementRecord)) ;
X tw->tbl.cols[tw->tbl.rows] = tw->tbl.n_cols ;
X
X /* copy the elements found into the permanent record */
X
X for (i=0; i < tw->tbl.n_cols; i++)
X {
X tw->tbl.item[tw->tbl.rows][i] = tw->tbl.temp_elements[i] ;
X tw->tbl.temp_elements[i] = *tw->tbl.null_elements ;
X }
X tw->tbl.rows++ ;
X
X /* re-initialize for next row */
X
X tw->tbl.n_cols = 0 ;
X }
X ;
X
Xdata :
X | data_group_series
X ;
X
Xdata_group_series : data_group
X | data_group_series data_group
X ;
X
Xdata_group : data_series
X | TAMPERSAND NL format_series DOT_NL data_series
X ;
X
Xdata_series : stringline
X | data_series stringline
X ;
X
Xstringline : STRING
X {
X find_strings ($1, tw) ;
X }
X ;
X
Xoptions : option
X | options option
X | options NL option
X ;
X
Xoption : EQUAL_ROWS
X {
X tw->tbl.equal_rows = True ;
X }
X | EQUAL_COLUMNS
X {
X tw->tbl.equal_columns = True ;
X }
X | ALIGNED_COLUMNS
X {
X tw->tbl.aligned_columns = True ;
X }
X | CLIP_ON_SHRINK
X {
X tw->tbl.clip_on_shrink = True ;
X }
X | IGNORED_OPTION
X {
X }
X | STRING_BREAKER '(' CHARACTER ')'
X {
X tw->tbl.string_breaker = $3 ;
X }
X | LNL_EQUIVALENT '(' CHARACTER ')'
X {
X layout_input->lnl_equivalent = $3 ;
X }
X | SNL_EQUIVALENT '(' CHARACTER ')'
X {
X layout_input->snl_equivalent = $3 ;
X }
X | INTER_WIDTH '(' INTEGER ')'
X {
X tw->tbl.inter_width = $3 ;
X }
X | INTER_HEIGHT '(' INTEGER ')'
X {
X tw->tbl.inter_height = $3 ;
X }
X | INTERNAL_WIDTH '(' INTEGER ')'
X {
X tw->tbl.internal_width = $3 ;
X }
X | INTERNAL_HEIGHT '(' INTEGER ')'
X {
X tw->tbl.internal_height = $3 ;
X }
X | INTERS '(' INTEGER ')'
X {
X tw->tbl.inter_width = $3 ;
X tw->tbl.inter_height = $3 ;
X }
X | INTERNALS '(' INTEGER ')'
X {
X tw->tbl.internal_width = $3 ;
X tw->tbl.internal_height = $3 ;
X }
X | PADDING '(' INTEGER ')'
X {
X tw->tbl.inter_width = $3 ;
X tw->tbl.inter_height = $3 ;
X tw->tbl.internal_width = $3 ;
X tw->tbl.internal_height = $3 ;
X }
X | BORDER_WIDTH '(' INTEGER ')'
X {
X tw->core.border_width = $3 ;
X tw->tbl.child_border_width = $3 ;
X }
X | T_BORDER_WIDTH '(' INTEGER ')'
X {
X tw->core.border_width = $3 ;
X }
X | C_BORDER_WIDTH '(' INTEGER ')'
X {
X tw->tbl.child_border_width = $3 ;
X tw->tbl.typical_border = $3 ;
X }
X | BORDER_COLOR '(' INTEGER ')'
X {
X tw->core.border_pixel = $3 ; /* see comment below */
X tw->tbl.child_border_color = $3 ;
X }
X | T_BORDER_COLOR '(' INTEGER ')'
X {
X /*
X * This doesn't work!
X */
X tw->core.border_pixel = $3 ;
X }
X | C_BORDER_COLOR '(' INTEGER ')'
X {
X tw->tbl.child_border_color = $3 ;
X }
X | FOREGROUND_COLOR '(' INTEGER ')'
X {
X tw->tbl.child_foreground_color = $3 ;
X }
X | C_FOREGROUND_COLOR '(' INTEGER ')'
X {
X tw->tbl.child_foreground_color = $3 ;
X }
X | BACKGROUND_COLOR '(' INTEGER ')'
X {
X tw->core.background_pixel = $3 ;
X tw->tbl.child_background_color = $3 ;
X }
X | T_BACKGROUND_COLOR '(' INTEGER ')'
X {
X tw->core.background_pixel = $3 ;
X }
X | C_BACKGROUND_COLOR '(' INTEGER ')'
X {
X tw->tbl.child_background_color = $3 ;
X }
X | resize_participants '(' participants ')'
X {
X }
X ;
X
Xresize_participants : RESIZE_PARTICIPANTS
X {
X tw->tbl.resize_participants = CuResizeNone ;
X }
X ;
X
Xparticipants : participant
X | participants participant
X ;
X
Xparticipant : INTERS
X {
X tw->tbl.resize_participants =
X (CuResizeParticipants) ((int)tw->tbl.resize_participants |
X (int)CuResizeInters) ;
X }
X | INTERNALS
X {
X tw->tbl.resize_participants =
X (CuResizeParticipants) ((int)tw->tbl.resize_participants |
X (int)CuResizeInternals) ;
X }
X | CHILDREN
X {
X tw->tbl.resize_participants =
X (CuResizeParticipants) ((int)tw->tbl.resize_participants |
X (int)CuResizeChildren) ;
X }
X ;
X
Xelement_series : element
X | element_series element
X ;
X
Xelement : ITEM_ELEMENT
X {
X char *ptr ;
X int nc = tw->tbl.n_cols ;
X
X if (nc == MAX_TBL_COLS)
X col_exceeded () ;
X
X tw->tbl.temp_elements[nc].primary = TBL_ITEM ;
X
X /* check for qualifiers */
X
X ptr = $1 ;
X while (*ptr != 0)
X {
X switch (*ptr++)
X {
X case 'l' : case 'L' :
X {
X tw->tbl.temp_elements[nc].justify = CuJustifyLeft ;
X break ;
X }
X case 'r' : case 'R' :
X {
X tw->tbl.temp_elements[nc].justify = CuJustifyRight ;
X break ;
X }
X case 'c' : case 'C' :
X {
X tw->tbl.temp_elements[nc].justify = CuJustifyCenter;
X break ;
X }
X case 'e' : case 'E' :
X {
X tw->tbl.temp_elements[nc].e = True ;
X break ;
X }
X case '@' :
X {
X tw->tbl.temp_elements[nc].f = True ;
X break ;
X }
X case 'g' : case 'G' :
X {
X switch (*ptr)
X {
X case 'n' : case 'N' :
X {
X switch (*(ptr+1))
X {
X case 'e' : case 'E' :
X {
X tw->tbl.temp_elements[nc].g = CuNorthEastGravity ;
X ptr += 2 ;
X break ;
X }
X case 'w' : case 'W' :
X {
X tw->tbl.temp_elements[nc].g = CuNorthWestGravity ;
X ptr += 2 ;
X break ;
X }
X default :
X {
X tw->tbl.temp_elements[nc].g = CuNorthGravity ;
X ptr += 1 ;
X break ;
X }
X }
X break ;
X }
X case 's' : case 'S' :
X {
X switch (*(ptr+1))
X {
X case 'e' : case 'E' :
X {
X tw->tbl.temp_elements[nc].g = CuSouthEastGravity ;
X ptr += 2 ;
X break ;
X }
X case 'w' : case 'W' :
X {
X tw->tbl.temp_elements[nc].g = CuSouthWestGravity ;
X ptr += 2 ;
X break ;
X }
X default :
X {
X tw->tbl.temp_elements[nc].g = CuSouthGravity ;
X ptr += 1 ;
X break ;
X }
X }
X break ;
X }
X case 'e' : case 'E' :
X {
X tw->tbl.temp_elements[nc].g = CuEastGravity ;
X ptr++ ;
X break ;
X }
X case 'w' : case 'W' :
X {
X tw->tbl.temp_elements[nc].g = CuWestGravity ;
X ptr++ ;
X break ;
X }
X case 'c' : case 'C' :
X {
X tw->tbl.temp_elements[nc].g = CuCenterGravity ;
X ptr++ ;
X break ;
X }
X default :
X {
X char *my_text = "CuTbl: Invalid gravity specifier: (%c)\n" ;
X char *etext = XtMalloc (strlen(my_text) + 1) ;
X sprintf (etext, my_text, *ptr) ;
X XtWarning (etext) ;
X break ;
X }
X }
X break ;
X }
X default :
X {
X break ;
X }
X }
X }
X
X XtFree ($1) ;
X tw->tbl.n_cols++ ;
X }
X | VSPAN_ELEMENT
X {
X if (tw->tbl.n_cols == MAX_TBL_COLS)
X col_exceeded () ;
X tw->tbl.temp_elements[tw->tbl.n_cols++].primary = TBL_VSPAN ;
X }
X | HSPAN_ELEMENT
X {
X if (tw->tbl.n_cols == MAX_TBL_COLS)
X col_exceeded () ;
X tw->tbl.temp_elements[tw->tbl.n_cols++].primary = TBL_HSPAN ;
X }
X ;
X
X%%
X
X/***** **** *** ** * find_strings * ** *** **** *****/
X
Xstatic void
Xfind_strings (text, tw)
X char *text ;
X CuTblWidget tw ;
X{
X/*
X * One quick pass to find out the number of sub-strings
X */
Xint *first_char ;
Xint *n_chars ;
XCardinal i, j ;
XCardinal istring ;
XCardinal n_strings ;
Xint length = strlen (text) ;
X
Xtw->tbl.n_cols = 0 ;
Xfor (i=0; i < length; i++)
X {
X if (text[i] == tw->tbl.string_breaker)
X {
X tw->tbl.n_cols++ ;
X }
X }
Xtw->tbl.n_cols++ ;
X
X/*
X * Check to see if there is a corresponding format row.
X * If not, duplicate the last format row.
X */
X
Xif (tw->tbl.data_row + 1 > tw->tbl.rows)
X {
X Cardinal i ;
X
X if (tw->tbl.rows == 0)
X no_rows () ;
X if (tw->tbl.rows == MAX_TBL_ROWS)
X row_exceeded () ;
X
X /* allocate just enough space for the number of columns in this row */
X
X tw->tbl.item[tw->tbl.rows] =
X (ElementRecord *) XtCalloc (tw->tbl.cols[tw->tbl.rows-1],
X sizeof (ElementRecord)) ;
X /* make a copy of the previous row */
X for (i=0; i < tw->tbl.cols[tw->tbl.rows-1]; i++)
X tw->tbl.item[tw->tbl.rows][i] = tw->tbl.item[tw->tbl.rows-1][i] ;
X tw->tbl.cols[tw->tbl.rows] = tw->tbl.cols[tw->tbl.rows-1] ;
X tw->tbl.rows++ ;
X }
X
X/*
X * Check to see that the number of data items matches the number of format items
X */
X
X {
X Cardinal n_items = 0 ;
X for (i=0; i < tw->tbl.cols[tw->tbl.data_row]; i++)
X if (tw->tbl.item[tw->tbl.data_row][i].primary == TBL_ITEM ||
X tw->tbl.item[tw->tbl.data_row][i].primary == TBL_VSPAN)
X n_items++ ;
X
X if (tw->tbl.n_cols != n_items)
X {
X mismatch ((Cardinal)tw->tbl.n_cols, n_items, tw->tbl.data_row);
X }
X }
X
X/*
X * Do another pass of the string to find the starting points and lengths
X * of the the substrings
X */
X
Xfirst_char = (int *) XtMalloc (tw->tbl.n_cols * sizeof (int)) ;
Xn_chars = (int *) XtMalloc (tw->tbl.n_cols * sizeof (int)) ;
X
Xn_strings = 0 ;
Xfirst_char[0] = 0 ;
X
Xfor (i=0; i < length; i++)
X {
X if (text[i] == tw->tbl.string_breaker)
X {
X n_chars[n_strings] = i - first_char[n_strings] ;
X n_strings++ ;
X first_char[n_strings] = i+1 ;
X }
X }
Xn_chars[n_strings] = length - first_char[n_strings] ;
X
X/*
X * Now copy the substrings into the item records
X */
X
Xistring = 0 ;
Xfor (j=0; j < tw->tbl.cols[tw->tbl.data_row]; j++)
X {
X if (tw->tbl.item[tw->tbl.data_row][j].primary != TBL_ITEM)
X {
X if (tw->tbl.item[tw->tbl.data_row][j].primary == TBL_VSPAN)
X istring++ ;
X continue ;
X }
X tw->tbl.item[tw->tbl.data_row][j].text = XtMalloc (n_chars[istring] + 1) ;
X strncpy (tw->tbl.item[tw->tbl.data_row][j].text,
X &text[first_char[istring]], n_chars[istring]) ;
X tw->tbl.item[tw->tbl.data_row][j].text[n_chars[istring]] = '\0' ;
X /* Convert instances of "\n" to '\n' */
X convert_nl (tw->tbl.item[tw->tbl.data_row][j].text) ;
X
X istring++ ;
X }
X
Xtw->tbl.data_row++ ;
Xtw->tbl.n_cols = 0 ;
X
XXtFree ((char *) first_char) ;
XXtFree ((char *) n_chars) ;
X
Xreturn ;
X}
X
X/***** **** *** ** * row_exceeded * ** *** **** *****/
X
Xstatic void
Xrow_exceeded ()
X{
Xchar *my_text = "CuTbl: MAX_TBL_ROWS exceeded: %d\n" ;
Xchar *etext = XtMalloc (strlen(my_text) + 5) ;
Xsprintf (etext, my_text, MAX_TBL_ROWS) ;
XXtError (etext) ;
X}
X
X/***** **** *** ** * no_rows * ** *** **** *****/
X
Xstatic void
Xno_rows ()
X{
XXtError ("CuTbl: No format items found before data!\n") ;
X}
X
X/***** **** *** ** * col_exceeded * ** *** **** *****/
X
Xstatic void
Xcol_exceeded ()
X{
Xchar *my_text = "CuTbl: MAX_TBL_COLS exceeded: %d\n" ;
Xchar *etext = XtMalloc (strlen(my_text) + 5) ;
Xsprintf (etext, my_text, MAX_TBL_COLS) ;
XXtError (etext) ;
X}
X
X/***** **** *** ** * mismatch * ** *** **** *****/
X
Xstatic void
Xmismatch (data_items, format_items, row_number)
XCardinal data_items ;
XCardinal format_items ;
XCardinal row_number ;
X{
Xchar *my_text = "CuTbl: item/format mismatch in data row # %d (%d != %d)\n" ;
Xchar *etext = XtMalloc (strlen(my_text) + 15) ;
Xsprintf (etext, my_text, row_number, data_items, format_items) ;
XXtError (etext) ;
X}
X
X/***** **** *** ** * convert_nl * ** *** **** *****/
X
X/*
X * if no newline equivalent,
X * convert instances of "\n" into '\n' and collapse the remainder of the text
X * else,
X * convert the equivalent into a newline
X */
X
Xstatic void
Xconvert_nl (text)
X char *text ;
X{
XCardinal i, j ;
XCardinal len = strlen(text) ;
X
Xfor (i=0; i < len; i++)
X {
X if (layout_input->snl_equivalent == -1)
X {
X if (text[i] == '\\' && text[i+1] == 'n')
X {
X text[i] = '\n' ;
X j = i+1 ;
X while (text[j] != 0)
X {
X text[j] = text[j+1] ;
X j++ ;
X }
X }
X }
X else
X if (text[i] == layout_input->snl_equivalent)
X text[i] = '\n' ;
X }
Xreturn ;
X}
X
X#include "CuTbl.lex.c"
END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuTbl.y'\"
if test 13667 -ne `wc -c <'src/CuTbl.y'`; then
echo shar: \"'src/CuTbl.y'\" unpacked with wrong size!
fi
# end of 'src/CuTbl.y'
fi
echo shar: End of archive 6 \(of 12\).
cp /dev/null ark6isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 12 archives.
rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0
More information about the Comp.sources.x
mailing list