274 (wx.ID_SAVE, "save", _(u'Save'), None), |
274 (wx.ID_SAVE, "save", _(u'Save'), None), |
275 (wx.ID_SAVEAS, "saveas", _(u'Save As...'), None), |
275 (wx.ID_SAVEAS, "saveas", _(u'Save As...'), None), |
276 (wx.ID_PRINT, "print", _(u'Print'), None)]) |
276 (wx.ID_PRINT, "print", _(u'Print'), None)]) |
277 |
277 |
278 def _RecursiveAddMenuItems(self, menu, items): |
278 def _RecursiveAddMenuItems(self, menu, items): |
279 for name, text, help, children in items: |
279 for name, text, helpstr, children in items: |
280 new_id = wx.NewId() |
|
281 if len(children) > 0: |
280 if len(children) > 0: |
282 new_menu = wx.Menu(title='') |
281 new_menu = wx.Menu(title='') |
283 menu.AppendMenu(new_id, text, new_menu) |
282 menu.AppendMenu(wx.ID_ANY, text, new_menu) |
284 self._RecursiveAddMenuItems(new_menu, children) |
283 self._RecursiveAddMenuItems(new_menu, children) |
285 else: |
284 else: |
286 AppendMenu(menu, help=help, id=new_id, |
285 item = menu.Append(wx.ID_ANY, text, helpstr) |
287 kind=wx.ITEM_NORMAL, text=text) |
286 self.Bind(wx.EVT_MENU, self.GetAddConfNodeFunction(name), item) |
288 self.Bind(wx.EVT_MENU, self.GetAddConfNodeFunction(name), |
|
289 id=new_id) |
|
290 |
287 |
291 def _init_coll_AddMenu_Items(self, parent): |
288 def _init_coll_AddMenu_Items(self, parent): |
292 IDEFrame._init_coll_AddMenu_Items(self, parent, False) |
289 IDEFrame._init_coll_AddMenu_Items(self, parent, False) |
293 self._RecursiveAddMenuItems(parent, GetAddMenuItems()) |
290 self._RecursiveAddMenuItems(parent, GetAddMenuItems()) |
294 |
291 |
297 return wx.MessageBox( |
294 return wx.MessageBox( |
298 version.GetCommunityHelpMsg(), |
295 version.GetCommunityHelpMsg(), |
299 _(u'Community support'), |
296 _(u'Community support'), |
300 wx.OK | wx.ICON_INFORMATION) |
297 wx.OK | wx.ICON_INFORMATION) |
301 |
298 |
302 id = wx.NewId() |
299 item = parent.Append(wx.ID_ANY, _(u'Community support'), '') |
303 parent.Append(help='', id=id, kind=wx.ITEM_NORMAL, text=_(u'Community support')) |
300 self.Bind(wx.EVT_MENU, handler, item) |
304 self.Bind(wx.EVT_MENU, handler, id=id) |
|
305 |
301 |
306 parent.Append(help='', id=wx.ID_ABOUT, |
302 parent.Append(help='', id=wx.ID_ABOUT, |
307 kind=wx.ITEM_NORMAL, text=_(u'About')) |
303 kind=wx.ITEM_NORMAL, text=_(u'About')) |
308 self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT) |
304 self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT) |
309 |
305 |
694 for idx, projectpath in enumerate(recent_projects): |
690 for idx, projectpath in enumerate(recent_projects): |
695 text = u'&%d: %s' % (idx + 1, projectpath) |
691 text = u'&%d: %s' % (idx + 1, projectpath) |
696 |
692 |
697 if idx < self.RecentProjectsMenu.GetMenuItemCount(): |
693 if idx < self.RecentProjectsMenu.GetMenuItemCount(): |
698 item = self.RecentProjectsMenu.FindItemByPosition(idx) |
694 item = self.RecentProjectsMenu.FindItemByPosition(idx) |
699 id = item.GetId() |
|
700 item.SetItemLabel(text) |
695 item.SetItemLabel(text) |
701 self.Disconnect(id, id, wx.EVT_BUTTON._getEvtType()) |
696 self.Disconnect(id, id, wx.EVT_BUTTON._getEvtType()) |
702 else: |
697 else: |
703 id = wx.NewId() |
698 item = self.RecentProjectsMenu.Append(wx.ID_ANY, text, '') |
704 AppendMenu(self.RecentProjectsMenu, help='', id=id, |
699 self.Bind(wx.EVT_MENU, self.GenerateOpenRecentProjectFunction(projectpath), item) |
705 kind=wx.ITEM_NORMAL, text=text) |
|
706 self.Bind(wx.EVT_MENU, self.GenerateOpenRecentProjectFunction(projectpath), id=id) |
|
707 |
700 |
708 def GenerateOpenRecentProjectFunction(self, projectpath): |
701 def GenerateOpenRecentProjectFunction(self, projectpath): |
709 def OpenRecentProject(event): |
702 def OpenRecentProject(event): |
710 if self.CTR is not None and not self.CheckSaveBeforeClosing(): |
703 if self.CTR is not None and not self.CheckSaveBeforeClosing(): |
711 return |
704 return |
981 |
974 |
982 confnode = item_infos["confnode"] |
975 confnode = item_infos["confnode"] |
983 if confnode is not None: |
976 if confnode is not None: |
984 menu_items = confnode.GetContextualMenuItems() |
977 menu_items = confnode.GetContextualMenuItems() |
985 if menu_items is not None: |
978 if menu_items is not None: |
986 for text, help, callback in menu_items: |
979 for text, helpstr, callback in menu_items: |
987 new_id = wx.NewId() |
980 item = confnode_menu.Append(wx.ID_ANY, text, helpstr) |
988 confnode_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=text) |
981 self.Bind(wx.EVT_MENU, callback, item) |
989 self.Bind(wx.EVT_MENU, callback, id=new_id) |
|
990 else: |
982 else: |
991 for name, XSDClass, help in confnode.CTNChildrenTypes: |
983 for name, XSDClass, helpstr in confnode.CTNChildrenTypes: |
992 if not hasattr(XSDClass, 'CTNMaxCount') or not confnode.Children.get(name) \ |
984 if not hasattr(XSDClass, 'CTNMaxCount') or not confnode.Children.get(name) \ |
993 or len(confnode.Children[name]) < XSDClass.CTNMaxCount: |
985 or len(confnode.Children[name]) < XSDClass.CTNMaxCount: |
994 new_id = wx.NewId() |
986 item = confnode_menu.Append(wx.ID_ANY, _("Add") + " " + name, helpstr) |
995 confnode_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=_("Add") + " " + name) |
987 self.Bind(wx.EVT_MENU, self.GetAddConfNodeFunction(name, confnode), item) |
996 self.Bind(wx.EVT_MENU, self.GetAddConfNodeFunction(name, confnode), id=new_id) |
988 item = confnode_menu.Append(wx.ID_ANY, _("Delete")) |
997 new_id = wx.NewId() |
989 self.Bind(wx.EVT_MENU, self.GetDeleteMenuFunction(confnode), item) |
998 AppendMenu(confnode_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Delete")) |
|
999 self.Bind(wx.EVT_MENU, self.GetDeleteMenuFunction(confnode), id=new_id) |
|
1000 |
990 |
1001 self.PopupMenu(confnode_menu) |
991 self.PopupMenu(confnode_menu) |
1002 confnode_menu.Destroy() |
992 confnode_menu.Destroy() |
1003 |
993 |
1004 event.Skip() |
994 event.Skip() |