def __init__(self, *args, **kwargs): wx.Frame.__init__(self, *args, **kwargs) self.CreateStatusBar() # Add the Canvas Canvas = FloatCanvas.FloatCanvas(self, ProjectionFun=None, Debug=0, BackgroundColor="WHITE") self.Canvas = Canvas Canvas.Bind(FC.EVT_MOTION, self.OnMove) Canvas.Bind(FC.EVT_LEFT_UP, self.OnLeftUp) self.Bitmaps = [] ## create the bitmaps first for Point in ((-100, -100), (55, 1)): print Point btm = Resources.getMondrianImage() mbtm = MovingBitmap(btm, Point, btm.GetHeight(), Position='cc') self.Bitmaps.append((mbtm)) Canvas.AddObject(mbtm) for bmp in self.Bitmaps: bmp.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit) print bmp.XY self.Show(True) self.add_again() # How can I get all the objects on the canvas? # print Canvas.GetObjects() # And for each object, can I get position? self.MoveObject = None self.Moving = False
def __init__(self, *args, **kwargs): wx.Frame.__init__(self, *args, **kwargs) self.CreateStatusBar() # Add the Canvas Canvas = NavCanvas.NavCanvas(self,-1,(500,500), ProjectionFun = None, Debug = 0, BackgroundColor = "DARK SLATE BLUE", ).Canvas self.Canvas = Canvas Canvas.Bind(FC.EVT_MOTION, self.OnMove ) Canvas.Bind(FC.EVT_LEFT_UP, self.OnLeftUp ) Points = N.array(((0,0), (1,0), (0.5, 1)), N.float) data = (( (0,0), 1), ( (3,3), 2), ( (-2,3), 2.5 ), ) for p, L in data: Tri = TriangleShape1(p, 1) Canvas.AddObject(Tri) Tri.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit) Circle = MovingCircle( (1, 3), 2, FillColor="Blue") Canvas.AddObject(Circle) Circle.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit) Bitmaps = [] ## create the bitmaps first for Point in ((1,1), (-4,3)): Bitmaps.append(MovingBitmap(Resources.getMondrianImage(), Point, Height=1, Position='cc') ) Line = ConnectorLine(Bitmaps[0], Bitmaps[1], LineWidth=3, LineColor="Red") Canvas.AddObject(Line) ## then add them to the Canvas, so they are on top of the line for bmp in Bitmaps: Canvas.AddObject(bmp) bmp.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit) A = MovingArc((-5, 0),(-2, 2),(-5, 2), LineColor="Red", LineWidth=2, FillColor="green", FillStyle="CrossDiagHatch") self.Canvas.AddObject(A) A.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit) self.Show(True) self.Canvas.ZoomToBB() self.MoveObject = None self.Moving = False return None
def __init__(self, *args, **kwargs): wx.Frame.__init__(self, *args, **kwargs) self.CreateStatusBar() # Add the Canvas Canvas = NavCanvas.NavCanvas( self, -1, (500, 500), ProjectionFun=None, Debug=0, BackgroundColor="DARK SLATE BLUE", ).Canvas self.Canvas = Canvas Canvas.Bind(FC.EVT_MOTION, self.OnMove) Canvas.Bind(FC.EVT_LEFT_UP, self.OnLeftUp) Points = N.array(((0, 0), (1, 0), (0.5, 1)), N.float) data = ( ((0, 0), 1), ((3, 3), 2), ((-2, 3), 2.5), ) for p, L in data: Tri = TriangleShape1(p, 1) Canvas.AddObject(Tri) Tri.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit) Circle = MovingCircle((1, 3), 2, FillColor="Blue") Canvas.AddObject(Circle) Circle.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit) Bitmaps = [] ## create the bitmaps first for Point in ((1, 1), (-4, 3)): Bitmaps.append( MovingBitmap(Resources.getMondrianImage(), Point, Height=1, Position='cc')) Line = ConnectorLine(Bitmaps[0], Bitmaps[1], LineWidth=3, LineColor="Red") Canvas.AddObject(Line) ## then add them to the Canvas, so they are on top of the line for bmp in Bitmaps: Canvas.AddObject(bmp) bmp.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit) A = MovingArc((-5, 0), (-2, 2), (-5, 2), LineColor="Red", LineWidth=2, FillColor="green", FillStyle="CrossDiagHatch") self.Canvas.AddObject(A) A.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit) self.Show(True) self.Canvas.ZoomToBB() self.MoveObject = None self.Moving = False return None