def SelectRect(self, Object): Canvas = self.Canvas if Object is self.SelectedRectOrig: pass else: if self.SelectedRect: self.DeSelectRect() self.SelectedRectOrig = Object self.SelectedRect = Canvas.AddRectangle( Object.XY, Object.WH, LineWidth=2, LineColor="Yellow", FillColor=None, InForeground=True, ) self.SelectedRect.HasChanged = False # draw handles for resizing rlPos = Object.XY + Object.WH udPos = Object.XY + Object.WH self.HandleRL = self.Canvas.AddBitmap( Resources.getMoveRLCursorBitmap(), rlPos, Position="cc") self.HandleUD = self.Canvas.AddBitmap( Resources.getMoveUDCursorBitmap(), udPos, Position="cc") self.SetHandles(Object) self.HandleRL.Bind(FC.EVT_FC_LEFT_DOWN, self.HandleSizeRL) self.HandleUD.Bind(FC.EVT_FC_LEFT_DOWN, self.HandleSizeUD) Canvas.Draw()
def SelectRect(self, Object): Canvas = self.Canvas if Object is self.SelectedRectOrig: pass else: if self.SelectedRect: self.DeSelectRect() self.SelectedRectOrig = Object self.SelectedRect = Canvas.AddRectangle(Object.XY, Object.WH, LineWidth = 2, LineColor = "Yellow", FillColor = None, InForeground = True) self.SelectedRect.HasChanged = False # draw handles for resizing rlPos = Object.XY + Object.WH udPos = Object.XY + Object.WH self.HandleRL = self.Canvas.AddBitmap(Resources.getMoveRLCursorBitmap(), rlPos, Position='cc') self.HandleUD = self.Canvas.AddBitmap(Resources.getMoveUDCursorBitmap(), udPos, Position='cc') self.SetHandles(Object) self.HandleRL.Bind(FC.EVT_FC_LEFT_DOWN, self.HandleSizeRL) self.HandleUD.Bind(FC.EVT_FC_LEFT_DOWN, self.HandleSizeUD) Canvas.Draw()
def __init__(self, parent, id = wx.ID_ANY, size = wx.DefaultSize, **kwargs): # The rest just get passed into FloatCanvas wx.Panel.__init__(self, parent, id, size=size) self.Modes = [("Pointer", GUIMode.GUIMouse(), Resources.getPointerBitmap()), ("Zoom In", GUIMode.GUIZoomIn(), Resources.getMagPlusBitmap()), ("Zoom Out", GUIMode.GUIZoomOut(), Resources.getMagMinusBitmap()), ("Pan", GUIMode.GUIMove(), Resources.getHandBitmap()), ] # self.BuildToolbar() ## Create the vertical sizer for the toolbar and Panel # box = wx.BoxSizer(wx.VERTICAL) # box.Add(self.ToolBar, 0, wx.ALL | wx.ALIGN_LEFT | wx.GROW, 4) # self.Canvas = FloatCanvas.FloatCanvas(self, **kwargs) # self.Canvas = MyFloatCanvas ( self, ** kwargs ) # box.Add(self.Canvas, 1, wx.GROW) # # self.SetSizerAndFit(box) # default to first mode #self.ToolBar.ToggleTool(self.PointerTool.GetId(), True) # self.Canvas.SetMode(self.Modes[0][1]) return None
def __init__(self, parent,id = wx.ID_ANY,size = wx.DefaultSize,**kwargs): FloatCanvas.FloatCanvas.__init__(self,parent,**kwargs) # self.dc_list = ['dense','pooling','convolution','flatten','dropout','Input','Connection',output self.InitAll() self.Test_object() self.Modes = [("Pointer", GUIMode.GUIMouse(), Resources.getPointerBitmap()), ("Zoom In", GUIMode.GUIZoomIn(), Resources.getMagPlusBitmap()), ("Zoom Out", GUIMode.GUIZoomOut(), Resources.getMagMinusBitmap()), ("Pan", GUIMode.GUIMove(), Resources.getHandBitmap()), ] self.SetMode(self.Modes[0][1])
def __init__(self): if "wxMac" in wx.PlatformInfo: # use 16X16 cursors for wxMac self.HandCursor = wx.CursorFromImage(Resources.getHand16Image()) self.GrabHandCursor = wx.CursorFromImage(Resources.getGrabHand16Image()) self.CrossCursor = wx.CURSOR_CROSS img = Resources.getMagPlus16Image() img.SetOptionInt(wx.IMAGE_OPTION_CUR_HOTSPOT_X, 6) img.SetOptionInt(wx.IMAGE_OPTION_CUR_HOTSPOT_Y, 6) self.MagPlusCursor = wx.CursorFromImage(img) img = Resources.getMagMinus16Image() img.SetOptionInt(wx.IMAGE_OPTION_CUR_HOTSPOT_X, 6) img.SetOptionInt(wx.IMAGE_OPTION_CUR_HOTSPOT_Y, 6) self.MagMinusCursor = wx.CursorFromImage(img) else: # use 24X24 cursors for GTK and Windows self.HandCursor = wx.CursorFromImage(Resources.getHandImage()) self.GrabHandCursor = wx.CursorFromImage(Resources.getGrabHandImage()) self.CrossCursor = wx.CURSOR_CROSS img = Resources.getMagPlusImage() img.SetOptionInt(wx.IMAGE_OPTION_CUR_HOTSPOT_X, 9) img.SetOptionInt(wx.IMAGE_OPTION_CUR_HOTSPOT_Y, 9) self.MagPlusCursor = wx.CursorFromImage(img) img = Resources.getMagMinusImage() img.SetOptionInt(wx.IMAGE_OPTION_CUR_HOTSPOT_X, 9) img.SetOptionInt(wx.IMAGE_OPTION_CUR_HOTSPOT_Y, 9) self.MagMinusCursor = wx.CursorFromImage(img)
def __init__(self, parent, id=wx.ID_ANY, size=wx.DefaultSize, **kwargs): wx.Panel.__init__(self, parent, id, size=size) self.Modes = [("Pointer", GUIMode.GUIMouse(), Resources.getPointerBitmap()), ("Zoom In", NavGuiZoomIn(), Resources.getMagPlusBitmap()), ("Zoom Out", NavGuiZoomOut(), Resources.getMagMinusBitmap()), ("Pan", NavGuiMove(), Resources.getHandBitmap()), ] self.timeLine = None self.BuildToolbar() box = wx.BoxSizer(wx.VERTICAL) box.Add(self.ToolBar, 0, wx.ALL | wx.ALIGN_LEFT | wx.GROW, 1) self.Canvas = CustomFloatCanvas(self, **kwargs) box.Add(self.Canvas, 1, wx.ALL | wx.EXPAND) self.SetSizerAndFit(box)
def __init__(self, parent, id=wx.ID_ANY, size=wx.DefaultSize, **kwargs): wx.Panel.__init__(self, parent, id, size=size) self.Modes = [ ("Pointer", GUIMode.GUIMouse(), Resources.getPointerBitmap()), ("Zoom In", NavGuiZoomIn(), Resources.getMagPlusBitmap()), ("Zoom Out", NavGuiZoomOut(), Resources.getMagMinusBitmap()), ("Pan", NavGuiMove(), Resources.getHandBitmap()), ] self.timeLine = None self.BuildToolbar() box = wx.BoxSizer(wx.VERTICAL) box.Add(self.ToolBar, 0, wx.ALL | wx.ALIGN_LEFT | wx.GROW, 1) self.Canvas = CustomFloatCanvas(self, **kwargs) box.Add(self.Canvas, 1, wx.ALL | wx.EXPAND) self.SetSizerAndFit(box)
def __init__(self, parent, id=wx.ID_ANY, size=wx.DefaultSize, **kwargs): self.navCanvas = NavCanvas.NavCanvas self.navCanvas.__init__(self, parent, id, size, ProjectionFun=YDownProjection, **kwargs) self.ToolBar.Destroy() self.Modes = [("Pointer", GUIMode.GUIMouse(), Resources.getPointerBitmap()), ("Pan", GUIMode.GUIMove(), Resources.getHandBitmap()),] self.BuildToolbar() # # Create the vertical sizer for the toolbar and Panel box = wx.BoxSizer(wx.VERTICAL) box.Add(self.ToolBar, 0, wx.ALL | wx.ALIGN_LEFT | wx.GROW, 4) self.Canvas = FloatCanvas.FloatCanvas(self, **kwargs) box.Add(self.Canvas, 1, wx.GROW) self.SetSizerAndFit(box) # default to first mode #self.ToolBar.ToggleTool(self.PointerTool.GetId(), True) self.Canvas.SetMode(self.Modes[0][1]) self.scale = 1. self.panning = False
def get_modes(self): return { self.POINTER: ("Pointer", "Drag a component to move it", GUIMode.GUIMouse(), Resources.getPointerBitmap()), self.ZOOM_IN: ("Zoom In", "Click somewhere to zoom in", GUIMode.GUIZoomIn(), Resources.getMagPlusBitmap()), self.ZOOM_OUT: ("Zoom Out", "Click somewhere to zoom out", GUIMode.GUIZoomOut(), Resources.getMagMinusBitmap()), self.PAN: ("Pan", "Drag on the canvas to move it", GUIMode.GUIMove(), Resources.getHandBitmap()), self.BUS: ("Bus (Ctrl+B)", "Click somewhere to insert a bus", GUIMode.GUIMouse(), wx.Bitmap('resources/' + Bus.key + '_small.png', wx.BITMAP_TYPE_PNG)), self.SOURCE: ("Source (Ctrl+G)", "Click somewhere to insert a source", GUIMode.GUIMouse(), wx.Bitmap('resources/' + Source.key + '_small.png', wx.BITMAP_TYPE_PNG)), self.CHARGE: ("Charge (Ctrl+A)", "Click somewhere to insert a source", GUIMode.GUIMouse(), wx.Bitmap('resources/' + Charge.key + '_small.png', wx.BITMAP_TYPE_PNG)), self.STORAGE: ("Storage (Ctrl+T)", "Click somewhere to insert a storage", GUIMode.GUIMouse(), wx.Bitmap('resources/' + Storage.key + '_small.png', wx.BITMAP_TYPE_PNG)), self.LINE: ("Line (Ctrl+L)", "Connecting bus", GUIMode.GUIMouse(), wx.Bitmap('resources/' + Line.key + '_small.png', wx.BITMAP_TYPE_PNG)), self.BRANCH: ("Branch (Ctrl+R)", "Connecting components to bus", GUIMode.GUIMouse(), wx.Bitmap('resources/' + Branch.key + '_small.png', wx.BITMAP_TYPE_PNG)), }
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, parent, id, title, position, size): wx.Frame.__init__(self, parent, id, title, position, size) self.CreateStatusBar() # Add the Canvas Canvas = NavCanvas.NavCanvas( self, -1, (500, 500), ProjectionFun=None, Debug=0, BackgroundColor="DARK SLATE BLUE", ).Canvas self.Canvas = Canvas self.Canvas.Bind(FloatCanvas.EVT_MOTION, self.OnMove) self.Canvas.Bind(FloatCanvas.EVT_LEFT_UP, self.OnLeftUp) self.Canvas.Bind(FloatCanvas.EVT_LEFT_DOWN, self.OnLeftDown) Point = N.array((0, 0), N.float) Canvas.AddCircle( Point, Diameter=40, FillColor="Red", LineStyle=None, ) Width = 300 self.Box = Canvas.AddScaledTextBox( LongString, Point, 10, Color="Black", BackgroundColor='White', LineStyle="Solid", LineWidth=2, Width=Width, PadSize=10.0, Family=wx.ROMAN, #Family = wx.TELETYPE, Style=wx.NORMAL, Weight=wx.NORMAL, Underlined=False, Position='tl', LineSpacing=0.8, Alignment="left", #Alignment = "center", #Alignment = "right", InForeground=False) self.Handle1 = Canvas.AddBitmap(Resources.getMoveCursorBitmap(), Point, Position='cc') self.Handle2a = Canvas.AddBitmap(Resources.getMoveRLCursorBitmap(), Point, Position='cc') self.Handle2b = Canvas.AddBitmap(Resources.getMoveRLCursorBitmap(), Point, Position='cc') self.SetHandles() self.Handle1.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.Handle1Hit) self.Handle2a.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.Handle2Hit) self.Handle2b.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.Handle2Hit) self.Show(True) self.Canvas.ZoomToBB() self.Resizing = False self.ResizeRect = 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
def __init__(self,parent, id,title,position,size): wx.Frame.__init__(self,parent, id,title,position, size) self.CreateStatusBar() # Add the Canvas Canvas = NavCanvas.NavCanvas(self,-1,(500,500), ProjectionFun = None, Debug = 0, BackgroundColor = "DARK SLATE BLUE", ).Canvas self.Canvas = Canvas self.Canvas.Bind(FloatCanvas.EVT_MOTION, self.OnMove ) self.Canvas.Bind(FloatCanvas.EVT_LEFT_UP, self.OnLeftUp ) self.Canvas.Bind(FloatCanvas.EVT_LEFT_DOWN, self.OnLeftDown) Point = N.array((0,0), N.float) Canvas.AddCircle(Point, Diameter=40, FillColor="Red", LineStyle=None, ) Width = 300 self.Box = Canvas.AddScaledTextBox(LongString, Point, 10, Color = "Black", BackgroundColor = 'White', LineStyle = "Solid", LineWidth = 2, Width = Width, PadSize = 10.0, Family = wx.ROMAN, #Family = wx.TELETYPE, Style = wx.NORMAL, Weight = wx.NORMAL, Underlined = False, Position = 'tl', LineSpacing = 0.8, Alignment = "left", #Alignment = "center", #Alignment = "right", InForeground = False) self.Handle1 = Canvas.AddBitmap(Resources.getMoveCursorBitmap(), Point, Position='cc') self.Handle2a = Canvas.AddBitmap(Resources.getMoveRLCursorBitmap(), Point, Position='cc') self.Handle2b = Canvas.AddBitmap(Resources.getMoveRLCursorBitmap(), Point, Position='cc') self.SetHandles() self.Handle1.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.Handle1Hit) self.Handle2a.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.Handle2Hit) self.Handle2b.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.Handle2Hit) self.Show(True) self.Canvas.ZoomToBB() self.Resizing = False self.ResizeRect = 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