... | ... |
@@ -504,6 +504,14 @@ class Graph(Shape): |
504 | 504 |
return None |
505 | 505 |
|
506 | 506 |
|
507 |
+BOLD = 1 |
|
508 |
+ITALIC = 2 |
|
509 |
+UNDERLINE = 4 |
|
510 |
+SUPERSCRIPT = 8 |
|
511 |
+SUBSCRIPT = 16 |
|
512 |
+STRIKE_THROUGH = 32 |
|
513 |
+ |
|
514 |
+ |
|
507 | 515 |
class XDotAttrParser: |
508 | 516 |
"""Parser for xdot drawing attributes. |
509 | 517 |
See also: |
... | ... |
@@ -609,7 +617,7 @@ class XDotAttrParser: |
609 | 617 |
a = 1.0 |
610 | 618 |
return r, g, b, a |
611 | 619 |
|
612 |
- sys.stderr.write("unknown color '%s'\n" % c) |
|
620 |
+ sys.stderr.write("warning: unknown color '%s'\n" % c) |
|
613 | 621 |
return None |
614 | 622 |
|
615 | 623 |
def parse(self): |
... | ... |
@@ -644,6 +652,9 @@ class XDotAttrParser: |
644 | 652 |
w = s.read_float() |
645 | 653 |
t = s.read_text() |
646 | 654 |
self.handle_text(x, y, j, w, t) |
655 |
+ elif op == "t": |
|
656 |
+ f = s.read_int() |
|
657 |
+ self.handle_font_characteristics(f) |
|
647 | 658 |
elif op == "E": |
648 | 659 |
x0, y0 = s.read_point() |
649 | 660 |
w = s.read_float() |
... | ... |
@@ -676,8 +687,8 @@ class XDotAttrParser: |
676 | 687 |
path = s.read_text() |
677 | 688 |
self.handle_image(x0, y0, w, h, path) |
678 | 689 |
else: |
679 |
- sys.stderr.write("unknown xdot opcode '%s'\n" % op) |
|
680 |
- break |
|
690 |
+ sys.stderr.write("error: unknown xdot opcode '%s'\n" % op) |
|
691 |
+ sys.exit(1) |
|
681 | 692 |
|
682 | 693 |
return self.shapes |
683 | 694 |
|
... | ... |
@@ -705,6 +716,11 @@ class XDotAttrParser: |
705 | 716 |
self.pen.fontsize = size |
706 | 717 |
self.pen.fontname = name |
707 | 718 |
|
719 |
+ def handle_font_characteristics(self, flags): |
|
720 |
+ # TODO |
|
721 |
+ if flags != 0: |
|
722 |
+ sys.stderr.write("warning: font characteristics not supported yet\n" % op) |
|
723 |
+ |
|
708 | 724 |
def handle_text(self, x, y, j, w, t): |
709 | 725 |
self.shapes.append(TextShape(self.pen, x, y, j, w, t)) |
710 | 726 |
|