Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/faucetobject.py
diff options
context:
space:
mode:
authorWade Brainerd <wadetb@gmail.com>2009-04-06 11:53:32 (GMT)
committer Wade Brainerd <wadetb@gmail.com>2009-04-06 11:53:32 (GMT)
commit8791987ca75da157d176205c47d7f4a8abc25b03 (patch)
tree422785f3a85a0490b830f7538e876e7ba94d7bb2 /faucetobject.py
parentd04ac9a774e8d91b3fa7e55e8e4afe78eb71e202 (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.py126
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)