From 69f4c73764e1e2debc185587e62c26b0ccb6520b Mon Sep 17 00:00:00 2001 From: isen Date: Thu, 08 Oct 2009 01:49:24 +0000 Subject: 426452 OK. works only with a list of tail position. --- (limited to 'tutorius') diff --git a/tutorius/creator.py b/tutorius/creator.py index 7455ecb..7463fa3 100644 --- a/tutorius/creator.py +++ b/tutorius/creator.py @@ -395,7 +395,7 @@ class EditToolBox(gtk.Window): def _list_prop_changed(self, widget, evt, action, propname, idx): try: - getattr(action, propname)[idx] = int(widget.get_text()) + getattr(action, propname)[idx] = eval(widget.get_text()) except ValueError: widget.set_text(str(getattr(action, propname)[idx])) self.__parent._creator._action_refresh_cb(None, None, action) diff --git a/tutorius/overlayer.py b/tutorius/overlayer.py index 931949d..d2cb3ac 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]): + 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,7 +175,7 @@ class TextBubble(gtk.Widget): self.label = text self.speaker = speaker - self.tailpos = tailpos + self.tailpos = tailpos self.line_width = 5 self.padding = 20 @@ -199,13 +199,14 @@ 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() + 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) @@ -228,13 +229,14 @@ class TextBubble(gtk.Widget): 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() + 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) diff --git a/tutorius/properties.py b/tutorius/properties.py index 62a7605..55b02ca 100644 --- a/tutorius/properties.py +++ b/tutorius/properties.py @@ -204,8 +204,12 @@ class TArrayProperty(TutoriusProperty): self.type = "array" self.max_size_limit = MaxSizeConstraint(max_size_limit) self.min_size_limit = MinSizeConstraint(min_size_limit) + self.indexeur = value #stock la value, pour l'indexation self.default = self.validate(value) - + + def __getitem__(self, key): # obligation de redéfinir l'indexation + return self.indexeur[key] # + class TColorProperty(TutoriusProperty): """ Represents a RGB color with 3 8-bit integer values. -- cgit v0.9.1