diff options
author | Wade Brainerd <wadetb@gmail.com> | 2009-04-06 11:53:32 (GMT) |
---|---|---|
committer | Wade Brainerd <wadetb@gmail.com> | 2009-04-06 11:53:32 (GMT) |
commit | 8791987ca75da157d176205c47d7f4a8abc25b03 (patch) | |
tree | 422785f3a85a0490b830f7538e876e7ba94d7bb2 /faucetobject.py | |
parent | d04ac9a774e8d91b3fa7e55e8e4afe78eb71e202 (diff) |
Factor move function into MovableObject, remove duplication.
Also simplify some of the SVG based objects.
Diffstat (limited to 'faucetobject.py')
-rw-r--r-- | faucetobject.py | 126 |
1 files changed, 8 insertions, 118 deletions
diff --git a/faucetobject.py b/faucetobject.py index bf22ea1..8abf39a 100644 --- a/faucetobject.py +++ b/faucetobject.py @@ -14,133 +14,23 @@ # You should have received a copy of the GNU General Public License # along with Math. If not, see <http://www.gnu.org/licenses/>. from objectarea import Object -from draggableobject import DraggableObject from vector import Vector import gtk, math, rsvg FAUCET_SVG = rsvg.Handle('faucet.svg') -from movableobject import MovableObject - - -# Class containing various standard colors. Each color is a 3 element tuple. -class Color: - BLUE = (0.25, 0.25, 0.75) - GREEN = (0.25, 0.75, 0.25) - RED = (0.75, 0.25, 0.25) - - -class FaucetObject(MovableObject): +class FaucetObject(Object): """Faucet for filling volumes with water.""" - def __init__(self, pos, container): - MovableObject.__init__(self) - - self.pos = pos - self.size = Vector(200, 200) - - self.selectable = False - self.rotatable = False - self.draggable = False - - self.container = container - - self.amount_scale = 0.33333 - - #self.state = 'middle' - # - #self.left_pan_full = False - #self.right_pan_full = False - # - #self.pan1_position = Vector(200, 500) - #self.pan2_position = Vector(725, 500) + def __init__(self, pos): + Object.__init__(self) - def draw(self, cr): - cr.scale(self.amount_scale, self.amount_scale) - - self.draw_faucet(cr, Vector (0, 300)) - - #if self.state == 'left': - # self.draw_pan(cr, Vector (20, 255 + 68)) - # self.draw_pan(cr, Vector (539, 255 - 72)) - #elif self.state == 'right': - # self.draw_pan(cr, Vector (20, 255 - 72)) - # self.draw_pan(cr, Vector (539, 255 + 68)) - #else: - # self.draw_pan(cr, Vector (20, 255)) - # self.draw_pan(cr, Vector (539, 255)) - # - #self.draw_arm(cr, Vector (177, 210)) - - #def adjust_balance_state(self): - # print "BalanceObject: adjust_balance_state called, self.state =", self.state - # if self.state == 'left': - # self.pan1_position = Vector(200, 500 + 68) - # self.pan2_position = Vector(725, 500 - 72) - # elif self.state == 'right': - # self.pan1_position = Vector(200, 500 - 72) - # self.pan2_position = Vector(725, 500 + 68) - # else: - # self.pan1_position = Vector(200, 500) - # self.pan2_position = Vector(725, 500) - # - #def move(self, pos): - # #print "GroupObject: move called: self.container = ", self.container - # self.queue_draw() - # - # # Tentatively place in the object in the new position - # last_pos = self.pos - # self.pos = pos - # - # # If any point is out of bounds, move object back to last position. - # if not self.is_in_container(): - # self.pos = last_pos - # - # self.queue_draw() - # - #def get_bounds(self): - # if self.shape1_in_pair: - # return self.pos, self.pos + Vector(200, 200) - # else: - # return self.pos, self.pos + Vector(100, 200) - # - #def draw_circle(self, cr, pos, color): - # cr.save() - # # Draw the fill. - # #cr.set_source_rgb(color[0], color[1], color[2]) - # - # if self.selected: - # cr.set_source_rgb(color[0]*1.6, color[1]*1.6, color[2]*1.6) - # else: - # cr.set_source_rgb(color[0], color[1], color[2]) - # - # cr.arc(self.pos.x + pos.x, self.pos.y + pos.y, 35, 0.0, 2.0 * math.pi) - # cr.fill() - # - # # Draw the outline. - # #cr.set_source_rgb(color[0]*0.75, color[1]*0.75, color[2]*0.75) - # - # if self.selected: - # cr.set_dash((10, 10), 0) - # cr.set_source_rgb(color[0]*0.75, color[1]*0.75, color[2]*0.75) - # - # cr.set_line_width(4.0) - # cr.arc(self.pos.x + pos.x, self.pos.y + pos.y, 35, 0.0, 2.0 * math.pi) - # cr.stroke() - # cr.restore() - - + self.pos = pos - def draw_faucet(self, cr, pos): - cr.save() - - cr.translate(pos.x, pos.y) - - cr.scale(3.0, 3.0) + def draw(self, cr): + cr.translate(self.pos.x, self.pos.y) FAUCET_SVG.render_cairo(cr) - cr.restore() - - - + def get_bounds(self): + return self.pos, self.pos + Vector(FAUCET_SVG.props.width, FAUCET_SVG.props.height) |