| ... | ... |
@@ -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 |
|