Browse code

Parse new 't' opcode for font characteristics (from xdot version 1.5)

José Fonseca authored on 05/11/2013 08:03:24
Showing 1 changed files

  • xdot.py index 0633923..6ea2755 100755
... ...
@@ -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