Example #1
0
    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()
Example #2
0
    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()
Example #3
0
    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])
Example #5
0
    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)
Example #6
0
   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)
Example #7
0
    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
Example #9
0
 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)),
     }
Example #10
0
    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
Example #11
0
    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
Example #13
0
    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
Example #14
0
    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