Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tutorius/overlayer.py
diff options
context:
space:
mode:
Diffstat (limited to 'tutorius/overlayer.py')
-rw-r--r--tutorius/overlayer.py63
1 files changed, 24 insertions, 39 deletions
diff --git a/tutorius/overlayer.py b/tutorius/overlayer.py
index 592b8f0..4ee5241 100644
--- a/tutorius/overlayer.py
+++ b/tutorius/overlayer.py
@@ -157,14 +157,14 @@ class TextBubble(gtk.Widget):
A CanvasDrawableWidget drawing a round textbox and a tail pointing
to a specified widget.
"""
- def __init__(self, text, speaker=None, tailpos=[0,0], tailpos2=[0,0]):
+ def __init__(self, text, speaker=None, tailpos=[[0,0],[0,0],[0,0]]):#list with N éléments (cf bublemessage.py)
"""
Creates a new cairo rendered text bubble.
@param text the text to render in the bubble
@param speaker the widget to compute the tail position from
- @param tailpos (optional) position relative to the bubble to use as
- the tail position, if no speaker
+ @param tailpos (optional) list of positions relative to the bubble to use as
+ tails position, if no speaker
"""
gtk.Widget.__init__(self)
@@ -175,8 +175,7 @@ class TextBubble(gtk.Widget):
self.label = text
self.speaker = speaker
- self.tailpos = tailpos
- self.tailpos2= tailpos2
+ self.tailpos = tailpos
self.line_width = 5
self.padding = 20
@@ -199,23 +198,16 @@ class TextBubble(gtk.Widget):
#
# TODO fetch speaker coordinates
- # draw bubble tail if present
- if self.tailpos != [0,0]:
- context.move_to(xradius-width/4, yradius)
- context.line_to(self.tailpos[0], self.tailpos[1])
- context.line_to(xradius+width/4, yradius)
- context.set_line_width(self.line_width)
- context.set_source_rgb(*xo_line_color)
- context.stroke_preserve()
-
- # draw bubble tail2 if present
- if self.tailpos2 != [0,0]:
- context.move_to(xradius-width/4, yradius)
- context.line_to(self.tailpos2[0], self.tailpos2[1])
- context.line_to(xradius+width/4, yradius)
- context.set_line_width(self.line_width)
- context.set_source_rgb(*xo_line_color)
- context.stroke_preserve()
+
+ # draw bubble tails if present
+ for i in range(len(self.tailpos)):
+ if self.tailpos[i] != [0,0]:
+ context.move_to(xradius-width/4, yradius)
+ context.line_to(self.tailpos[i][0], self.tailpos[i][1])
+ context.line_to(xradius+width/4, yradius)
+ context.set_line_width(self.line_width)
+ context.set_source_rgb(*xo_line_color)
+ context.stroke_preserve()
# bubble border
context.move_to(width-self.padding, 0.0)
@@ -237,23 +229,16 @@ class TextBubble(gtk.Widget):
context.set_source_rgb(*xo_fill_color)
context.fill()
- # bubble painting. Redrawing the inside after the tail will combine
- if self.tailpos != [0,0]:
- context.move_to(xradius-width/4, yradius)
- context.line_to(self.tailpos[0], self.tailpos[1])
- context.line_to(xradius+width/4, yradius)
- context.set_line_width(self.line_width)
- context.set_source_rgb(*xo_fill_color)
- context.fill()
-
- # bubble painting. Redrawing the inside after the tail will combine
- if self.tailpos2 != [0,0]:
- context.move_to(xradius-width/4, yradius)
- context.line_to(self.tailpos2[0], self.tailpos2[1])
- context.line_to(xradius+width/4, yradius)
- context.set_line_width(self.line_width)
- 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]:
+ context.move_to(xradius-width/4, yradius)
+ context.line_to(self.tailpos[i][0], self.tailpos[i][1])
+ context.line_to(xradius+width/4, yradius)
+ context.set_line_width(self.line_width)
+ context.set_source_rgb(*xo_fill_color)
+ context.fill()
context.set_source_rgb(1.0, 1.0, 1.0)
pangoctx = pangocairo.CairoContext(context)