Date: Sat, 23 Sep 89 20:18:50 -0400 To: NeWS-makers@brillig.umd.edu Subject: psload for xnews From: aramis.rutgers.edu!porthos.rutgers.edu!marantz@rutgers.edu (Roy Marantz) For whatever anyone thinks it is worth here are the diffs needed to create a version of native psload for openlook/xnews. There are some interesting machinations that I had to go through to get this to work so it is instructive in that respect. Anyway happy hacking Roy cd /usr/local/openwin/share/src/xnews/client diff psload.cps psload.cps /usr/NeWS/clientsrc/client/psload.cps 43d42 < 45,56c44,55 < /Ydivs exch .5 add round def < /client win send setcanvas < ClearColor fillcanvas < /opened? win send < {can} {icn} ifelse setcanvas < RuleColor strokecanvas < initgraphics clippath pathbbox points2rect < Ydivs div exch Xdivs div exch scale pop pop < 1 1 Ydivs 1 sub {0 exch moveto Xdivs 0 rlineto} for < RuleColor setcolor stroke < 0 0 moveto < FillColor setcolor --- > /Ydivs exch .5 add round def > win begin > Iconic? dup { IconCanvas } { ClientCanvas } ifelse > end setcanvas > ClearColor fillcanvas > { RuleColor strokecanvas } if > initgraphics clippath pathbbox points2rect > Ydivs div exch Xdivs div exch scale pop pop > 1 1 Ydivs 1 sub {0 exch moveto Xdivs 0 rlineto} for > RuleColor setcolor stroke > 0 0 moveto > FillColor setcolor 58,59c57 < < /DLV { % loadfactor x => - (draw next loadfactor value) --- > /DLV { % loadfactor x => - (draw next loadfactor value) 63c61 < /paint win send --- > /paintclient win send % client will reset scaling 67a66 > % FillColor setcolor fill 72,118c71,79 < < /AbortProc { < % If we still have win around, destroy it. < /win where { < pop < /destroy win send < } if < } def < /NestedServer {currentfile cvx exec AbortProc} def < NestedServer < < /LoadFrame /defaultclass ClassBaseFrame send [ < /Connection % Holds the connection for the c side of the program < ] < classbegin < /newinit { < /newinit super send < /Connection currentfile def < } def < < /destroy { % need to get rid of the connection < /destroy super send < Connection closefile < } def < < /open { < /open super send < /opened? self send { < /paint self send % need to repaint on open < } if < } def < classend def < < /win [ClassCanvas] [/Footer false] < framebuffer /new LoadFrame send def < title /setlabel win send < % in NeWS 1.1 psload icon the graph uses the whole icon (including the label) < % title /seticonlabel win send < /can /client win send def < /icn /Icon /subframe win send pop def < {(C) print} /setpaintproc can send < {(I) print} /setpaintproc /Icon /sendsubframe win send < /reshapefromuser win send < can setcanvas < /activate win send < /map win send < --- > /win framebuffer /new DefaultWindow send def > { /FrameLabel title def > /IconLabel title def > /PaintClient {(C) print} def > /PaintIcon {(I) print} def > } win send > /reshapefromuser win send > win /ClientCanvas get setcanvas > /map win send -- uucp: {backbone}!rutgers!aramis.rutgers.edu!marantz arpa: marantz@aramis.rutgers.edu