*! version 1.0.0 30jul2002 version 8 class { } , inherit(bargraph_g) program draw_bar args x0 y0 height id /* if horiz is y0 x0 */ local trans = `gdi(ybeta)' / `gdi(xbeta)' local width_b = min(.9*`height'*`trans', `.barsize') local x = `x0' + `.barsize' / 2 local top = `y0' + `height' /* the head */ local sz_b = `width_b' * `gdi(xbeta)' / `gdi(gbeta)' gdi symbol = circle gdi gm_symbolsize = `sz_b' gdi point `x' `=`top'-(`width_b'/2)/`trans'' /* the face */ tempname fg /* style */ .`fg' = .areastyle.new, style(background) .`fg'.setgdifull local ht_b = `width_b' / `trans' gdi gm_symbolsize = `=`sz_b'/6' /* eyes */ local y = `top' - (`ht_b' / 3.1) gdi point `=`x'-`width_b'/4' `y' gdi point `=`x'+`width_b'/4' `y' gdi symbol = diamond /* nose */ local y = `top' - (`ht_b' / 2) gdi point `x' `y' local y = `top' - (`ht_b' / 1.3) /* mouth */ local width_m2 = `width_b' / (2 * 1.8) gdi line `=`x'-`width_m2'' `=`y'+`ht_b'/8' /* */ `=`x'-`width_m2'/2' `y' gdi line `=`x'-`width_m2'/2' `y' `=`x'+`width_m2'/2' `y' gdi line `=`x'+`width_m2'/2' `y' /* */ `=`x'+`width_m2'' `=`y'+`ht_b'/8' ._set_barstyle `id' /* reset the style */ local top = `top' - `ht_b' /* body */ local rest = `top' - `y0' gdi line `x' `top' `x' `=`top'-`rest'/2' local y = `top' - `rest' / 8 /* wave */ gdi line `x' `y' `=`x0'+`.barsize'' `=`top'-`rest'/3' gdi line `=`x0'+`.barsize'' `=`top'-`rest'/3' /* */ `=`x'+`width_b'/2.2' `=`top'-`rest'/20' gdi symbol = square gdi point `=`x'+`width_b'/2.2' `=`top'-`rest'/20' gdi line `x0' `y' `x' `y' /* arm */ gdi line `x0' `y' `x0' `=`top'-`rest'/2' gdi symbol = triangle gdi point `x0' `=`top'-`rest'/2' local y = `top' - `rest' / 2 /* legs */ local y2 = `top' - 3 * `rest' / 4 gdi line `x' `y' `x0' `y2' gdi line `x' `y' `=`x0'+`.barsize'' `y2' gdi line `x0' `y2' `x0' `y0' gdi line `=`x0'+`.barsize'' `y2' `=`x0'+`.barsize'' `y0' end