Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addons/bubblemessage.py9
-rw-r--r--setup.cfg1
-rw-r--r--tests/actiontests.py4
-rw-r--r--tests/serializertests.py4
-rw-r--r--tutorius/overlayer.py2
5 files changed, 13 insertions, 7 deletions
diff --git a/addons/bubblemessage.py b/addons/bubblemessage.py
index eb82ea3..7a8bc72 100644
--- a/addons/bubblemessage.py
+++ b/addons/bubblemessage.py
@@ -21,8 +21,7 @@ class BubbleMessage(Action):
position = TArrayProperty([0,0], 2, 2)
#Create a list of tail positions as an array of N element : N to be defined...
tail_pos = TArrayOneTypeProperty([[0,0],[0,0],[0,0]], 3, 3)
-
-
+
def __init__(self, message=None, pos=None, speaker=None, tailpos=None):
"""
Shows a dialog with a given text, at the given position on the screen.
@@ -39,6 +38,8 @@ class BubbleMessage(Action):
self.position = pos
if tailpos:
self.tail_pos = tailpos
+ if tailpos2:
+ self.tail_pos2 = tailpos2
if message:
self.message = message
@@ -64,7 +65,7 @@ class BubbleMessage(Action):
# TODO: tails are relative to tailpos. They should be relative to
# the speaking widget. Same of the bubble position.
self._bubble = overlayer.TextBubble(text=self.message,
- tailpos=self.tail_pos)
+ tailpos=self.tail_pos, tailpos2=self.tail_pos2)
self._bubble.show()
self.overlay.put(self._bubble, x, y)
self.overlay.queue_draw()
@@ -87,7 +88,7 @@ class BubbleMessage(Action):
assert not self._drag, "bubble action set to editmode twice"
x, y = self.position
self._bubble = overlayer.TextBubble(text=self.message,
- tailpos=self.tail_pos)
+ tailpos=self.tail_pos, tailpos2=self.tail_pos2)
self.overlay.put(self._bubble, x, y)
self._bubble.show()
diff --git a/setup.cfg b/setup.cfg
index a20c0bb..6aa342a 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -6,3 +6,4 @@ force=1
[test]
# same as above
prefix=/home/isen/tutorius/install/
+force=1
diff --git a/tests/actiontests.py b/tests/actiontests.py
index 4e126b3..265ffa1 100644
--- a/tests/actiontests.py
+++ b/tests/actiontests.py
@@ -65,7 +65,7 @@ class DialogMessageTest(unittest.TestCase):
class BubbleMessageTest(unittest.TestCase):
def setUp(self):
- self.bubble = addon.create('BubbleMessage', message="Message text", pos=[200, 300], tailpos=[-15, -25])
+ self.bubble = addon.create('BubbleMessage', message="Message text", pos=[200, 300], tailpos=[-15, -25], tailpos2=[-15, -25])
def test_properties(self):
props = self.bubble.get_properties()
@@ -76,6 +76,8 @@ class BubbleMessageTest(unittest.TestCase):
assert "tail_pos" in props, 'No tail position property in BubbleMessage'
+ assert "tail_pos2" in props, 'No tail position property in BubbleMessage'
+
class CountAction(Action):
"""
diff --git a/tests/serializertests.py b/tests/serializertests.py
index 6c25bae..320feaf 100644
--- a/tests/serializertests.py
+++ b/tests/serializertests.py
@@ -76,7 +76,7 @@ class XMLSerializerTest(unittest.TestCase):
# Add a few states
act1 = addon.create('BubbleMessage', message="Hi", pos=[300, 450])
ev1 = addon.create('GtkWidgetEventFilter', "0.12.31.2.2", "clicked", "Second")
- act2 = addon.create('BubbleMessage', message="Second message", pos=[250, 150], tailpos=[1,2])
+ act2 = addon.create('BubbleMessage', message="Second message", pos=[250, 150], tailpos=[1,2], tailpos2=[1,2])
st1 = State("INIT")
st1.add_action(act1)
@@ -143,7 +143,7 @@ class XMLSerializerTest(unittest.TestCase):
"""
st = State("INIT")
- act1 = addon.create('BubbleMessage', "Hi!", pos=[10,120], tailpos=[-12,30])
+ act1 = addon.create('BubbleMessage', "Hi!", pos=[10,120], tailpos=[-12,30], tailpos2=[-12,30])
act2 = addon.create('DialogMessage', "Hello again.", pos=[120,10])
act3 = WidgetIdentifyAction()
act4 = DisableWidgetAction("0.0.0.1.0.0.0")
diff --git a/tutorius/overlayer.py b/tutorius/overlayer.py
index 8203aa6..4ee5241 100644
--- a/tutorius/overlayer.py
+++ b/tutorius/overlayer.py
@@ -198,6 +198,7 @@ class TextBubble(gtk.Widget):
#
# TODO fetch speaker coordinates
+
# draw bubble tails if present
for i in range(len(self.tailpos)):
if self.tailpos[i] != [0,0]:
@@ -228,6 +229,7 @@ class TextBubble(gtk.Widget):
context.set_source_rgb(*xo_fill_color)
context.fill()
+
# bubble painting. Redrawing the inside after tails will combine
for i in range(len(self.tailpos)):
if self.tailpos[i] != [0,0]: