339 |
""" |
""" |
340 |
return self.repl(s) |
return self.repl(s) |
341 |
|
|
342 |
class mpbigpackage(navidoc.mp.SimpleElement): |
class mpbigpackage(navidoc.mp.MetapostElement): |
343 |
key = 'bigpackage' |
key = 'bigpackage' |
344 |
|
def __init__(self, var, toks, list): |
345 |
|
dbg("mpbigpackaget: %s %s %s" % (var, toks, list)) |
346 |
|
self.elements = [] |
347 |
|
self.var = var or toks[0] |
348 |
|
self.name = toks[0] |
349 |
|
self.do_contents(list) |
350 |
|
|
351 |
|
if self.link != None: |
352 |
|
self.link.bbox = ('bboxmeasuredpic(%s)' % (self.var)) |
353 |
|
def handle_contained(self, element): |
354 |
|
element = config.element_list.parse_element(element) |
355 |
|
config.element_list.list.append(element) |
356 |
|
if hasattr(element, 'var') and element.var: |
357 |
|
self.elements.append(element.var) |
358 |
def setup_code(self): |
def setup_code(self): |
359 |
s = """ |
s = """ |
360 |
picture %%.titl.pict; |
picture %%.titl.pict; |
361 |
%%.titl.pict = classTitle("%name%"); |
%%.titl.pict = classTitle("%name%"); |
362 |
addto %%.titl.pict doublepath (bbox %%.titl.pict) withpen currentpen; |
addto %%.titl.pict doublepath (urcorner(%%.titl.pict)--lrcorner(%%.titl.pict)) withpen currentpen; |
363 |
|
addto %%.titl.pict doublepath (ulcorner(%%.titl.pict)--llcorner(%%.titl.pict)) withpen currentpen; |
364 |
|
addto %%.titl.pict doublepath (ulcorner(%%.titl.pict)--urcorner(%%.titl.pict)) withpen currentpen; |
365 |
unknownpicmeasurements(%%); |
unknownpicmeasurements(%%); |
366 |
picmeasurements(%%.titl); |
picmeasurements(%%.titl); |
367 |
%%.titl.sw = %%.nw; |
%%.titl.sw = %%.nw; |
368 |
""" |
""" |
369 |
return self.repl(s) |
return self.repl(s) |
370 |
def draw_code(self): |
def draw_code(self): |
371 |
s = """ |
s = '' |
372 |
|
if self.elements: |
373 |
|
# elements_sw_x = '(xpart llcorner(' + '.pict), xpart llcorner('.join(self.elements) + '.pict))' |
374 |
|
# elements_sw_y = '(ypart llcorner(' + '.pict), ypart llcorner('.join(self.elements) + '.pict))' |
375 |
|
# elements_ne_x = '(xpart urcorner(' + '.pict), xpart urcorner('.join(self.elements) + '.pict))' |
376 |
|
# elements_ne_y = '(ypart urcorner(' + '.pict), ypart urcorenr('.join(self.elements) + '.pict))' |
377 |
|
elements_sw_x = 'xpart ' + '.sw, xpart '.join(self.elements) + '.sw' |
378 |
|
elements_sw_y = 'ypart ' + '.sw, ypart '.join(self.elements) + '.sw' |
379 |
|
elements_ne_x = 'xpart ' + '.ne, xpart '.join(self.elements) + '.ne' |
380 |
|
elements_ne_y = 'ypart ' + '.ne, ypart '.join(self.elements) + '.ne' |
381 |
|
|
382 |
|
s = """ |
383 |
|
%%.sw = (min("""+elements_sw_x+"""), min("""+elements_sw_y+""")) - (10,10); |
384 |
|
%%.ne = (max("""+elements_ne_x+"""), max("""+elements_ne_y+""")) + (10,10); |
385 |
|
""" |
386 |
|
s = s + """ |
387 |
draw bboxmeasuredpic(%%); |
draw bboxmeasuredpic(%%); |
388 |
drawmeasuredpic(%%.titl); |
drawmeasuredpic(%%.titl); |
389 |
""" |
""" |