Fixed 4Dgifts window.ps for 3.2.1
Mark Callow
msc at ramoth.esd.sgi.com
Thu Dec 28 09:42:00 AEST 1989
I changed the title bar painting in release 3.2.1 to make it faster and
to stop the flashing. In doing so I broke the code in window.ps in 4Dgifts
that paints stripes instead of a solid block in the title bar.
Now that I've learned of this codes existence, I've fixed it. Here is the
correct window.ps file for release 3.2.1
== cut here ==== ~4Dgifts/.4sight/window.ps for release 3.2.1 === cut here ==
systemdict begin
%
% This is used to draw the stripes on the title bar. Args are:
% lslope,rslope slope [0-1] of edge of stripe on left and right side
% step number of pixels between stripes
% x, y lower left of area to be striped
% w, h size of area to be striped
%
/fillslanted { % lslope rslope step x y w h => -
% gsave 4 copy 0 1 0 setrgbcolor rectpath fill grestore
7 dict begin
/h exch def /w exch def
/y exch def /x exch def
/step exch def
/rslope exch step mul def /lslope exch step mul def
0 step h step sub {
/y y step add def
dup lslope mul x add
y
moveto
dup x w add exch h exch sub rslope mul sub
y lineto
stroke
pop
} for
end
} def
SGIWindow begin
/KeyFocusColor 1.0 0.0 0.0 rgbcolor def
/BannerColor 0.1 0.1 0.1 rgbcolor def
/FrameFont /Times-BoldItalic findfont 14 scalefont def
/IconFont /Times-BoldItalic findfont 14 scalefont def
/Slantiness .3 def % how slanty are the stripes
% (0 == not, 1 == most)
/StripeSpacing 2 def % spacing of stripes on the
% title bar (in pixels )
/PaintFrameLabel { % true/false => - (Paint frame text label)
%
% This should only be called by paintframelabel which does a gsave
% and sets the canvas, color and font.
%
% set up clipping
BannerButtonMargin BannerButtonWidth add
TitleSideMargin add % t/f x1
dup FrameHeight BannerHeight sub 0.3753 sub % t/f x1 x1 y1
2 copy moveto
dup 3 1 roll % t/f x1 y1 x1 y1
FrameWidth TitleSideMargin sub
NoQuit? NoClose? or not {
BannerButtonMargin BannerButtonWidth add sub
} if % t/f x1 y1 x1 y1 x2
2 index max
1 index lineto % t/f x1 y1 x1 y1
0 BannerHeight rlineto
BannerHeight add lineto % t/f x1 y1
0 BannerHeight neg rlineto
clip % t/f x1 y1
3 -1 roll {
%
% Label already exists.
% clear banner to make way for a different length title
0 exch
FrameWidth BannerHeight
bulbousrect
PaintFocus
} { pop } ifelse % x1
TitleSideMargin add
TitleCapHeight dup add add % x1'
CloseControl getcanvaslocation exch pop % x1' y
currentfont fontheight 0.085 mul add % x1' y' XXX show paints
too low
moveto % -
FrameLabel show
} def
/PaintFocus {
gsave
FrameCanvas setcanvas
FrameFont setfont
KeyFocus? {KeyFocusColor} {BannerColor} ifelse setcolor
Slantiness 0 StripeSpacing xfc div % lslope rslope step
CloseControl getcanvaslocation exch pop % ls rs st y1
0 Slantiness StripeSpacing xfc div % ... y1 ls' rs' st'
NoStow? {
BannerButtonMargin 4 index % ... y1 ls' rs' st' x y
BannerButtonWidth TitleSideMargin dup add add
TitleCapHeight dup add add % ... ls' rs' st' x y w
} {
BannerButtonMargin BannerButtonWidth add
TitleSideMargin add 4 index % ... ls' rs' st' x y
TitleCapHeight dup add
} ifelse % ... ls' rs' st' x y w
TitleCapHeight fillslanted % ls rs st y1
BannerButtonMargin BannerButtonWidth add
TitleCapHeight dup add add
TitleSideMargin dup dup add add add
FrameLabel stringwidth pop add % ... y1 x1'
exch % ... x1 y1
FrameWidth TitleSideMargin sub
NoQuit? NoClose? or not {
BannerButtonMargin BannerButtonWidth add sub
} if % ... x1 y1 x2
2 index max % ... x1 y1 x2
2 index sub TitleCapHeight % ... x1 y1 w h
fillslanted
grestore
} def
end
end
== cut here ================== end of file ===================== cut here ==
--
>From the TARDIS of Mark Callow
msc at ramoth.sgi.com, ...{ames,decwrl}!sgi!msc
"There is much virtue in a window. It is to a human being as a frame is to
a painting, as a proscenium to a play. It strongly defines its content."
More information about the Comp.sys.sgi
mailing list