544 id, kind, text, help, callback = item |
544 id, kind, text, help, callback = item |
545 AppendMenu(menu, help=help, id=id, kind=kind, text=text) |
545 AppendMenu(menu, help=help, id=id, kind=kind, text=text) |
546 # Link menu event to corresponding called functions |
546 # Link menu event to corresponding called functions |
547 self.Bind(wx.EVT_MENU, callback, id=id) |
547 self.Bind(wx.EVT_MENU, callback, id=id) |
548 |
548 |
|
549 def AppendItem(self, menu, text, callback, *args, **kwargs): |
|
550 item = menu.Append(wx.ID_ANY, text, *args, **kwargs) |
|
551 self.Bind(wx.EVT_MENU, callback, item) |
|
552 return item |
|
553 |
549 # Add Block Pin Menu items to the given menu |
554 # Add Block Pin Menu items to the given menu |
550 def AddBlockPinMenuItems(self, menu, connector): |
555 def AddBlockPinMenuItems(self, menu, connector): |
551 # Create menu items |
556 # Create menu items |
552 no_modifier = menu.Append(wx.ID_ANY, _(u'No modifier'), kind=wx.ITEM_RADIO) |
557 no_modifier = self.AppendItem(menu, _(u'No modifier'), self.OnNoModifierMenu, kind=wx.ITEM_RADIO) |
553 self.Bind(wx.EVT_MENU, self.OnNoModifierMenu, no_modifier) |
558 negated = self.AppendItem(menu, _(u'Negated'), self.OnNegatedMenu, kind=wx.ITEM_RADIO) |
554 negated = menu.Append(wx.ID_ANY, _(u'Negated'), kind=wx.ITEM_RADIO) |
559 rising_edge = self.AppendItem(menu, _(u'Rising Edge'), self.OnRisingEdgeMenu, kind=wx.ITEM_RADIO) |
555 self.Bind(wx.EVT_MENU, self.OnNegatedMenu, negated) |
560 falling_edge = self.AppendItem(menu, _(u'Falling Edge'), self.OnFallingEdgeMenu, kind=wx.ITEM_RADIO) |
556 rising_edge = menu.Append(wx.ID_ANY, _(u'Rising Edge'), kind=wx.ITEM_RADIO) |
|
557 self.Bind(wx.EVT_MENU, self.OnRisingEdgeMenu, rising_edge) |
|
558 falling_edge = menu.Append(wx.ID_ANY, _(u'Falling Edge'), kind=wx.ITEM_RADIO) |
|
559 self.Bind(wx.EVT_MENU, self.OnFallingEdgeMenu, falling_edge) |
|
560 |
561 |
561 not_a_function = self.Controler.GetEditedElementType( |
562 not_a_function = self.Controler.GetEditedElementType( |
562 self.TagName, self.Debug) != "function" |
563 self.TagName, self.Debug) != "function" |
563 rising_edge.Enable(not_a_function) |
564 rising_edge.Enable(not_a_function) |
564 falling_edge.Enable(not_a_function) |
565 falling_edge.Enable(not_a_function) |
572 else: |
573 else: |
573 no_modifier.Check(True) |
574 no_modifier.Check(True) |
574 |
575 |
575 # Add Alignment Menu items to the given menu |
576 # Add Alignment Menu items to the given menu |
576 def AddAlignmentMenuItems(self, menu): |
577 def AddAlignmentMenuItems(self, menu): |
577 [ |
|
578 ID_ALIGN_LEFT, ID_ALIGN_CENTER, ID_ALIGN_RIGHT, |
|
579 ID_ALIGN_TOP, ID_ALIGN_MIDDLE, ID_ALIGN_BOTTOM, |
|
580 ] = [wx.NewId() for dummy in xrange(6)] |
|
581 |
|
582 # Create menu items |
578 # Create menu items |
583 self.AddMenuItems(menu, [ |
579 self.AppendItem(menu, _(u'Left'), self.OnAlignLeftMenu) |
584 (ID_ALIGN_LEFT, wx.ITEM_NORMAL, _(u'Left'), '', self.OnAlignLeftMenu), |
580 self.AppendItem(menu, _(u'Center'), self.OnAlignCenterMenu) |
585 (ID_ALIGN_CENTER, wx.ITEM_NORMAL, _(u'Center'), '', self.OnAlignCenterMenu), |
581 self.AppendItem(menu, _(u'Right'), self.OnAlignRightMenu) |
586 (ID_ALIGN_RIGHT, wx.ITEM_NORMAL, _(u'Right'), '', self.OnAlignRightMenu), |
582 menu.AppendSeparator() |
587 None, |
583 self.AppendItem(menu, _(u'Top'), self.OnAlignTopMenu) |
588 (ID_ALIGN_TOP, wx.ITEM_NORMAL, _(u'Top'), '', self.OnAlignTopMenu), |
584 self.AppendItem(menu, _(u'Middle'), self.OnAlignMiddleMenu) |
589 (ID_ALIGN_MIDDLE, wx.ITEM_NORMAL, _(u'Middle'), '', self.OnAlignMiddleMenu), |
585 self.AppendItem(menu, _(u'Bottom'), self.OnAlignBottomMenu) |
590 (ID_ALIGN_BOTTOM, wx.ITEM_NORMAL, _(u'Bottom'), '', self.OnAlignBottomMenu)]) |
|
591 |
586 |
592 # Add Wire Menu items to the given menu |
587 # Add Wire Menu items to the given menu |
593 def AddWireMenuItems(self, menu, delete=False, replace=False): |
588 def AddWireMenuItems(self, menu, delete=False, replace=False): |
594 [ |
589 [ |
595 ID_ADD_SEGMENT, ID_DELETE_SEGMENT, ID_REPLACE_WIRE, |
590 ID_ADD_SEGMENT, ID_DELETE_SEGMENT, ID_REPLACE_WIRE, |