Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

One Bell System - it used to work before they installed the Dimension!


devel / comp.lang.postscript / Menu maker program

SubjectAuthor
o Menu maker programluser droog

1
Menu maker program

<7bc0fcf9-dfb4-4b11-9038-9c93c5e79cbcn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=191&group=comp.lang.postscript#191

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:ae9:e702:0:b0:6b5:9c37:8b23 with SMTP id m2-20020ae9e702000000b006b59c378b23mr3066658qka.511.1661434769288;
Thu, 25 Aug 2022 06:39:29 -0700 (PDT)
X-Received: by 2002:a05:6870:33a5:b0:f5:febe:1b27 with SMTP id
w37-20020a05687033a500b000f5febe1b27mr5786186oae.229.1661434769036; Thu, 25
Aug 2022 06:39:29 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Thu, 25 Aug 2022 06:39:28 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=24.207.219.108; posting-account=G1KGwgkAAAAyw4z0LxHH0fja6wAbo7Cz
NNTP-Posting-Host: 24.207.219.108
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7bc0fcf9-dfb4-4b11-9038-9c93c5e79cbcn@googlegroups.com>
Subject: Menu maker program
From: luser.droog@gmail.com (luser droog)
Injection-Date: Thu, 25 Aug 2022 13:39:29 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 3490
 by: luser droog - Thu, 25 Aug 2022 13:39 UTC

Draws a one page menu using the contents of the /data data structure.

%!
% Menu generator program.
<<
/data [
{ (Coffee) }
{ (Caffe Latte) (5.50) (Espresso, Steamed milk, optional flavored syrup.) }
{ (Iced Latte) (5.50) (Espresso, Milk, Ice, optional flavored syrup.) }
{}
{}
{ (Beer) }
{ (Domestic) (6) (Budweiser, Bud Light, Bud Select, Busch) }
{ () () (Michelob Ultra, Michelob Golden Light, Rolling Rock) }
{ (Import / Craft) (8) () }
{ (Import) () (Corona, Modelo, Dos Equis, Stella Artois) }
{ (Lager) () (Urban Underdog) }
{ (IPAs and Pale Ales) ()
(City Wide APA, State Wide Hazy Pale Ale, Elysian Space Dust) }
{ (12oz Craft) (5.50) (Yeti Stout, Beach Doodad) }
]
/dispatch { dup length load exec }
0 { pop newline }
1 { section }
3 { item }
/section-font { /Palatino-BoldItalic section-size selectfont }
/section-size 22
/item-size 17
/leading -28
/item-font { /Palatino-Bold item-size selectfont }
/price-font { /Helvetica item-size selectfont }
/desc-font { /Palatino-Italic item-size selectfont }
/left 50
/nudge 10
/top { left 10.5 72 mul moveto }
/pos { currentpoint exch pop moveto }
/max { 2 copy lt { exch } if pop }
/newline { left currentpoint exch pop moveto
0 leading rmoveto }
/section { nudge 2 mul 0 rmoveto section-font 0 get show newline }
/item { multi-line-item }
/single-line-item {
item-font dup 0 get show gap1
price-font dup 1 get dup length 0 ne { ($) show show }{ pop } ifelse gap2
desc-font 2 get show newline }
/multi-line-item {
dup 0 get length 0 eq 1 index 1 get length 0 eq and not {
item-font dup 0 get show gap1
price-font dup 1 get dup length 0 ne { ($) show show }{ pop } ifelse
newline
} if
2 get dup length 0 ne {
desc-font nudge 2 mul 0 rmoveto show newline
}{ pop } ifelse }
/calc-gaps {
0 0 3 2 roll % max(col2) max(col1) data
{
dup length 3 eq { % mc2 mc1 item-data
dup 0 get stringwidth pop 3 -1 roll max exch % mc2 mc1' item-data
1 get stringwidth pop 3 -1 roll max exch % mc2' mc1'
}{ pop } ifelse % mc2 mc1
} forall % max(col2) max(col1)
exch 1 index add % max(col1) max(col1)+max(col2)
left add nudge 3 mul add /pos cvx 2 array astore cvx /gap2 exch def
left add nudge add /pos cvx 2 array astore cvx /gap1 exch def
}
>> begin

item-font data calc-gaps

top data {dispatch} forall

showpage quit

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor