230 |
"%%.stereo = nullpicture;") |
"%%.stereo = nullpicture;") |
231 |
return self.repl(s) |
return self.repl(s) |
232 |
def draw_code(self): |
def draw_code(self): |
233 |
s = linkstr(self.link, "bboxmeasuredpic(%%)") + """ |
s = self.link.draw_code("bboxmeasuredpic(%%)") + """ |
234 |
drawmeasuredpic(%%); |
drawmeasuredpic(%%); |
235 |
draw bboxmeasuredpic(%%); |
draw bboxmeasuredpic(%%); |
236 |
""" |
""" |
251 |
""" |
""" |
252 |
return self.repl(s) |
return self.repl(s) |
253 |
def draw_code(self): |
def draw_code(self): |
254 |
s = linkstr(self.link, "bboxmeasuredpic(%%)") + """ |
s = self.link.draw_code("bboxmeasuredpic(%%)") + """ |
255 |
drawmeasuredpic(%%); |
drawmeasuredpic(%%); |
256 |
draw bboxmeasuredpic(%%); |
draw bboxmeasuredpic(%%); |
257 |
draw (((0,0)--(15,0)--(15,5)--(0,5)--cycle) shifted %%.nw); |
draw (((0,0)--(15,0)--(15,5)--(0,5)--cycle) shifted %%.nw); |
259 |
return self.repl(s) |
return self.repl(s) |
260 |
|
|
261 |
class mptitle(NamedMPElement): |
class mptitle(NamedMPElement): |
262 |
|
key = 'title' |
263 |
def __init__(self, var, s, l = []): |
def __init__(self, var, s, l = []): |
264 |
#print "mp:",s,l |
dbg("mp: %s %s" % (s,l)) |
265 |
self.var = var or s |
self.var = var or s |
266 |
self.name = s |
self.name = s |
267 |
self.do_contents(l) |
self.do_contents(l) |
273 |
""" |
""" |
274 |
return self.repl(s) |
return self.repl(s) |
275 |
def draw_code(self): |
def draw_code(self): |
276 |
s = linkstr(self.link, "bboxmeasuredpic(%%)", 0) + """ |
s = self.link.draw_code("bboxmeasuredpic(%%)", 0) + """ |
277 |
drawmeasuredpic(%%); |
drawmeasuredpic(%%); |
278 |
""" |
""" |
279 |
return self.repl(s) |
return self.repl(s) |
280 |
|
|
281 |
# XXX underlining |
# XXX underlining |
282 |
class mpseqobject(SimpleElement): |
class mpseqobject(SimpleElement): |
283 |
|
key = 'seqobject' |
284 |
def setup_code(self): |
def setup_code(self): |
285 |
s = """ |
s = """ |
286 |
picture %%.titl, %%.pict; |
picture %%.titl, %%.pict; |
304 |
return self.repl(s) |
return self.repl(s) |
305 |
|
|
306 |
class mpcomponent(SimpleElement): |
class mpcomponent(SimpleElement): |
307 |
|
key = 'component' |
308 |
def setup_code(self): |
def setup_code(self): |
309 |
s = """ |
s = """ |
310 |
picture %%.titl, %%.pict; |
picture %%.titl, %%.pict; |
317 |
return self.repl(s) |
return self.repl(s) |
318 |
|
|
319 |
class mpinterface(SimpleElement): |
class mpinterface(SimpleElement): |
320 |
|
key = 'interface' |
321 |
def setup_code(self): |
def setup_code(self): |
322 |
s = """ |
s = """ |
323 |
picture %%.titl, %%.pict, %%.intlabel.pict; |
picture %%.titl, %%.pict, %%.intlabel.pict; |
340 |
return self.repl(s) |
return self.repl(s) |
341 |
|
|
342 |
class mpnary(SimpleElement): |
class mpnary(SimpleElement): |
343 |
|
key = 'naryassoc' |
344 |
def setup_code(self): |
def setup_code(self): |
345 |
s = """ |
s = """ |
346 |
picture %%.pict; |
picture %%.pict; |
355 |
return self.repl(s) |
return self.repl(s) |
356 |
|
|
357 |
class mpbigpackage(SimpleElement): |
class mpbigpackage(SimpleElement): |
358 |
|
key = 'bigpackage' |
359 |
def setup_code(self): |
def setup_code(self): |
360 |
s = """ |
s = """ |
361 |
picture %%.titl.pict; |
picture %%.titl.pict; |
372 |
fixmeasuredpic(%%); |
fixmeasuredpic(%%); |
373 |
draw bboxmeasuredpic(%%); |
draw bboxmeasuredpic(%%); |
374 |
"""+\ |
"""+\ |
375 |
linkstr(self.link, "bboxmeasuredpic(%%.titl)")+""" |
self.link.draw_code("bboxmeasuredpic(%%.titl)")+""" |
376 |
fixmeasuredpic(%%.titl); |
fixmeasuredpic(%%.titl); |
377 |
drawmeasuredpic(%%.titl);""" |
drawmeasuredpic(%%.titl);""" |
378 |
return self.repl(s) |
return self.repl(s) |
379 |
|
|
380 |
class mpqual(NamedMPElement): |
class mpqual(NamedMPElement): |
381 |
|
key = 'qual' |
382 |
def __init__(self, var, s , list): |
def __init__(self, var, s , list): |
383 |
self.var = var |
self.var = var |
384 |
self.name = "q" |
self.name = "q" |
401 |
return self.repl(s) |
return self.repl(s) |
402 |
|
|
403 |
class mpassoc(NamedMPElement): |
class mpassoc(NamedMPElement): |
404 |
|
key = 'assoc' |
405 |
class end(NamedMPElement): |
class end(NamedMPElement): |
406 |
def __init__(self, var, list): |
def __init__(self, var, list): |
407 |
self.var = var |
self.var = var |
471 |
return self.repl(s).replace("START", self.a.obj).replace("END", self.b.obj) |
return self.repl(s).replace("START", self.a.obj).replace("END", self.b.obj) |
472 |
|
|
473 |
class mpvobtransform(mpassoc): |
class mpvobtransform(mpassoc): |
474 |
|
key = 'vobtransform' |
475 |
def __init__(self, var, s , list): |
def __init__(self, var, s , list): |
476 |
mpassoc.__init__(self, var, s , list) |
mpassoc.__init__(self, var, s , list) |
477 |
self.a.type = "vobtransformfrom" |
self.a.type = "vobtransformfrom" |
478 |
self.b.type = "vobtransformto" |
self.b.type = "vobtransformto" |
479 |
|
|
480 |
class mpvobtransformsub(mpassoc): |
class mpvobtransformsub(mpassoc): |
481 |
|
key = 'vobtransformsub' |
482 |
def __init__(self, var, s , list): |
def __init__(self, var, s , list): |
483 |
mpassoc.__init__(self, var, s , list) |
mpassoc.__init__(self, var, s , list) |
484 |
self.a.type = "vobtransformfromsub" |
self.a.type = "vobtransformfromsub" |
486 |
|
|
487 |
|
|
488 |
class mpvobin(mpassoc): |
class mpvobin(mpassoc): |
489 |
|
key = 'vobin' |
490 |
def __init__(self, var, s , list): |
def __init__(self, var, s , list): |
491 |
mpassoc.__init__(self, var, s , list) |
mpassoc.__init__(self, var, s , list) |
492 |
self.a.type = "vobinfrom" |
self.a.type = "vobinfrom" |
520 |
return self.repl(s).replace("START", self.start).replace("END", self.end) |
return self.repl(s).replace("START", self.start).replace("END", self.end) |
521 |
|
|
522 |
class mpsupply(SimpleRelation): |
class mpsupply(SimpleRelation): |
523 |
|
key = 'supply' |
524 |
def draw_code(self): |
def draw_code(self): |
525 |
return self.pathCode() + self.repl(" draw %%.p; ") |
return self.pathCode() + self.repl(" draw %%.p; ") |
526 |
|
|
527 |
class mpuse(SimpleRelation): |
class mpuse(SimpleRelation): |
528 |
|
key = 'use' |
529 |
def draw_code(self): |
def draw_code(self): |
530 |
return self.pathCode() + self.repl(" drawarrow %%.p dashed evenly; ") |
return self.pathCode() + self.repl(" drawarrow %%.p dashed evenly; ") |
531 |
|
|
532 |
class mprealize(SimpleRelation): |
class mprealize(SimpleRelation): |
533 |
|
key = 'realize' |
534 |
def draw_code(self): |
def draw_code(self): |
535 |
return self.pathCode() + self.repl(" realize(%%.p); ") |
return self.pathCode() + self.repl(" realize(%%.p); ") |
536 |
|
|
537 |
class mpinherit(SimpleRelation): |
class mpinherit(SimpleRelation): |
538 |
|
key = 'inherit' |
539 |
def draw_code(self): |
def draw_code(self): |
540 |
return self.pathCode() + self.repl(" inherit(%%.p); ") |
return self.pathCode() + self.repl(" inherit(%%.p); ") |
541 |
|
|
542 |
class mpdep(SimpleRelation): |
class mpdep(SimpleRelation): |
543 |
|
key = 'dep' |
544 |
def __init__(self, var, s , list): |
def __init__(self, var, s , list): |
545 |
(m,s) = match_remove('^\s*"(.*?)"\s*', s) |
(m,s) = match_remove('^\s*"(.*?)"\s*', s) |
546 |
self.stereo = m.group(1) |
self.stereo = m.group(1) |
549 |
return self.pathCode() + self.repl(' dep(%%.p, "%stereo%"); ') |
return self.pathCode() + self.repl(' dep(%%.p, "%stereo%"); ') |
550 |
|
|
551 |
class mpvobsubmatch(SimpleRelation): |
class mpvobsubmatch(SimpleRelation): |
552 |
|
key = 'vobsubmatch' |
553 |
def draw_code(self): |
def draw_code(self): |
554 |
return self.pathCode() + self.repl(" vobsubmatch(%%.p); ") |
return self.pathCode() + self.repl(" vobsubmatch(%%.p); ") |
555 |
|
|
562 |
return "" |
return "" |
563 |
|
|
564 |
class above(placement): |
class above(placement): |
565 |
|
key = 'above' |
566 |
def setup_code(self): |
def setup_code(self): |
567 |
return self.repl(' vertically(%s, %s, %s, %s);' % |
return self.repl(' vertically(%s, %s, %s, %s);' % |
568 |
(self.length, self.var, self.start, self.end)) |
(self.length, self.var, self.start, self.end)) |
569 |
|
|
570 |
class under(placement): |
class under(placement): |
571 |
|
key = 'under' |
572 |
def setup_code(self): |
def setup_code(self): |
573 |
return self.repl(' vertically(%s, %s, %s, %s);' % |
return self.repl(' vertically(%s, %s, %s, %s);' % |
574 |
(self.length, self.var, self.end, self.start)) |
(self.length, self.var, self.end, self.start)) |
575 |
|
|
576 |
class leftOf(placement): |
class leftOf(placement): |
577 |
|
key = 'left-of' |
578 |
def setup_code(self): |
def setup_code(self): |
579 |
return self.repl(' horizontally(%s, %s, %s, %s);' % |
return self.repl(' horizontally(%s, %s, %s, %s);' % |
580 |
(self.length, self.var, self.start, self.end)) |
(self.length, self.var, self.start, self.end)) |
581 |
|
|
582 |
class leftOf(placement): |
class leftOf(placement): |
583 |
|
key = 'right-of' |
584 |
def setup_code(self): |
def setup_code(self): |
585 |
return self.repl(' horizontally(%s, %s, %s, %s);' % |
return self.repl(' horizontally(%s, %s, %s, %s);' % |
586 |
(self.length, self.var, self.end, self.start)) |
(self.length, self.var, self.end, self.start)) |