summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Stanley <fungi@yuggoth.org>2015-07-22 20:45:26 +0000
committerJames E. Blair <corvus@gnu.org>2015-07-25 09:12:20 -0700
commit0bc1f9f2d89fe269d6a07df42025826c288775f3 (patch)
tree37e42fb24664b00277b46ba31e4f8966d2288869
parentff07c4700e19cd3197fd8bac1ab8346b18aaaf15 (diff)
downloadpresentty-0bc1f9f2d89fe269d6a07df42025826c288775f3.tar.gz
presentty-0bc1f9f2d89fe269d6a07df42025826c288775f3.tar.xz
presentty-0bc1f9f2d89fe269d6a07df42025826c288775f3.zip
Add a tilt transition
The tilt transition is like pan, only vertical instead of horizontal.
-rw-r--r--example/demo.rst17
-rw-r--r--presentty/rst.py1
-rw-r--r--presentty/transition.py10
3 files changed, 23 insertions, 5 deletions
diff --git a/example/demo.rst b/example/demo.rst
index bafd9ba..c105e7d 100644
--- a/example/demo.rst
+++ b/example/demo.rst
@@ -2,11 +2,11 @@
The following directives, when used at the top of the file, set default
values for all slides:
- This sets the transition style. Values are: 'dissolve', 'pan', or
- 'cut'. The optional argument of 'duration' sets the duration of
- the transition in seconds (0.4 seconds by default). The same
- syntax may be used within a slide to override the transition for
- that slide alone.
+ This sets the transition style. Values are: 'dissolve', 'pan',
+ 'tilt', or 'cut'. The optional argument of 'duration' sets the
+ duration of the transition in seconds (0.4 seconds by default).
+ The same syntax may be used within a slide to override thes
+ transition for that slide alone.
.. transition:: dissolve
:duration: 0.4
@@ -77,6 +77,13 @@ Pan Transition
...or "pan," where the slides appear horizontally adjacent and move
right to left...
+Tilt Transition
+===============
+.. transition:: tilt
+
+...or "tilt," where the slides appear vertically adjacent and move
+bottom to top...
+
Cut Transition
==============
.. transition:: cut
diff --git a/presentty/rst.py b/presentty/rst.py
index e96ff21..ab06f76 100644
--- a/presentty/rst.py
+++ b/presentty/rst.py
@@ -65,6 +65,7 @@ class UrwidTranslator(docutils.nodes.GenericNodeVisitor):
transition_map = {'dissolve': transition_mod.DissolveTransition,
'cut': transition_mod.CutTransition,
'pan': transition_mod.PanTransition,
+ 'tilt': transition_mod.TiltTransition,
}
def __init__(self, document, palette, hinter=None, basedir='.'):
diff --git a/presentty/transition.py b/presentty/transition.py
index c699ddb..5592cd9 100644
--- a/presentty/transition.py
+++ b/presentty/transition.py
@@ -46,6 +46,16 @@ class PanTransition(Transition):
c.pad_trim_left_right(0-offset, 0-(size[0]-offset))
return c
+class TiltTransition(Transition):
+ def render(self, size, focus=False):
+ old = self.old.render((size[0], size[1]))
+ new = self.new.render((size[0], size[1]))
+ c = urwid.CanvasCombine([(old, None, False),
+ (new, None, False)])
+ offset = int(size[1] * self.progress)
+ c.pad_trim_top_bottom(0-offset, 0-(size[1]-offset))
+ return c
+
class DissolveTransition(Transition):
def __init__(self, *args, **kw):
super(DissolveTransition, self).__init__(*args, **kw)