diff fontaine/document.py @ 1:74b83e3d921e

Add more states, add more tests.
author Ludovic Chabant <ludovic@chabant.com>
date Mon, 02 Jan 2017 21:54:59 -0800
parents 243401c49520
children 59fe8cb6190d
line wrap: on
line diff
--- a/fontaine/document.py	Mon Jan 02 12:30:49 2017 -0800
+++ b/fontaine/document.py	Mon Jan 02 21:54:59 2017 -0800
@@ -46,8 +46,9 @@
                                    'TYPE_%s' % add_type_name.upper())
 
                 def _type_adder(_text):
-                    self.paragraphs.append(
-                        FontaineSceneElement(add_type, _text))
+                    new_p = FontaineSceneElement(add_type, _text)
+                    self.paragraphs.append(new_p)
+                    return new_p
 
                 adder = _type_adder
                 self._adders[add_type_name] = adder
@@ -55,6 +56,9 @@
         else:
             raise AttributeError
 
+    def addPageBreak(self):
+        self.paragraphs.append(FontaineSceneElement(TYPE_PAGEBREAK, None))
+
     def lastParagraph(self):
         try:
             return self.paragraphs[-1]
@@ -74,20 +78,32 @@
 
 
 TYPE_ACTION = 0
-TYPE_CHARACTER = 1
-TYPE_DIALOG = 2
-TYPE_PARENTHETICAL = 3
+TYPE_CENTEREDACTION = 1
+TYPE_CHARACTER = 2
+TYPE_DIALOG = 3
+TYPE_PARENTHETICAL = 4
+TYPE_TRANSITION = 5
+TYPE_LYRICS = 6
+TYPE_PAGEBREAK = 7
 
 
 def _scene_element_type_str(t):
     if t == TYPE_ACTION:
         return 'ACTION'
+    if t == TYPE_CENTEREDACTION:
+        return 'CENTEREDACTION'
     if t == TYPE_CHARACTER:
         return 'CHARACTER'
     if t == TYPE_DIALOG:
         return 'DIALOG'
     if t == TYPE_PARENTHETICAL:
         return 'PARENTHETICAL'
+    if t == TYPE_TRANSITION:
+        return 'TRANSITION'
+    if t == TYPE_LYRICS:
+        return 'LYRICS'
+    if t == TYPE_PAGEBREAK:
+        return 'PAGEBREAK'
     raise NotImplementedError()