Package Gnumed :: Package timelinelib :: Package canvas :: Package drawing :: Module graphobject
[frames] | no frames]

Source Code for Module Gnumed.timelinelib.canvas.drawing.graphobject

  1  # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018  Rickard Lindberg, Roger Lindberg 
  2  # 
  3  # This file is part of Timeline. 
  4  # 
  5  # Timeline is free software: you can redistribute it and/or modify 
  6  # it under the terms of the GNU General Public License as published by 
  7  # the Free Software Foundation, either version 3 of the License, or 
  8  # (at your option) any later version. 
  9  # 
 10  # Timeline is distributed in the hope that it will be useful, 
 11  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
 12  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 13  # GNU General Public License for more details. 
 14  # 
 15  # You should have received a copy of the GNU General Public License 
 16  # along with Timeline.  If not, see <http://www.gnu.org/licenses/>. 
 17   
 18  """ 
 19  Contains the GraphObject class. 
 20  Tests are defined :doc:`Here <unit_canvas_drawing_graphobject>`. 
 21  """ 
 22   
 23  import operator 
24 25 26 -class GraphObject(object):
27 """ 28 Contains metric and color information and a list of child 29 graphical objects. 30 When a Graphical object is translated to another position 31 all of its children are also translated. 32 The purpose is to be able to define a graphical object 33 position relative to it's parent. 34 """ 35
36 - def __init__(self, x=0, y=0, w=0, h=0, text=''):
37 self._childs = [] 38 self._rect = (x, y, w, h) 39 self._text = text 40 self._brush_color = (0, 0, 0) 41 self._pen_color = (0, 0, 0)
42
43 - def translate(self, x, y):
44 """ 45 Translate this object to a new position and translate 46 all of it's child the same amount. 47 """ 48 self._rect = tuple(map(operator.add, self._rect, (x, y, 0, 0))) 49 for child in self.childs: 50 child.translate(x, y)
51 52 @property
53 - def childs(self):
54 """Getter and Setter property.""" 55 return self._childs
56 57 @childs.setter
58 - def childs(self, childs):
59 """ """ 60 self._childs = childs
61 62 @property
63 - def first_child(self):
64 """Getter property.""" 65 return self._childs[0]
66
67 - def add_child(self, child):
68 """Add a new child to the list of childs.""" 69 self._childs.append(child)
70 71 @property
72 - def text(self):
73 """Getter property.""" 74 return self._text
75 76 @property
77 - def point(self):
78 """Getter property.""" 79 return self.rect[:2]
80 81 @property
82 - def rect(self):
83 """Getter property.""" 84 return self._rect
85 86 @property
87 - def width(self):
88 """Getter property.""" 89 return self._rect[2]
90 91 @property
92 - def height(self):
93 """Getter property.""" 94 return self._rect[3]
95 96 @property
97 - def brush_color(self):
98 """Getter and Setter property.""" 99 return self._brush_color
100 101 @brush_color.setter
102 - def brush_color(self, brush_color):
103 self._brush_color = brush_color
104 105 @property
106 - def pen_color(self):
107 """Getter and Setter property.""" 108 return self._pen_color
109 110 @pen_color.setter
111 - def pen_color(self, pen_color):
112 self._pen_color = pen_color
113