예제 #1
0
    def _init_coll_HelpMenu_Items(self, parent):
        AppendMenu(parent,
                   help='',
                   id=wx.ID_HELP,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'PLCOpenEditor') + '\tF1')

        # AppendMenu(parent, help='', id=wx.ID_HELP_CONTENTS,
        #      kind=wx.ITEM_NORMAL, text=u'PLCOpen\tF2')
        # AppendMenu(parent, help='', id=wx.ID_HELP_CONTEXT,
        #      kind=wx.ITEM_NORMAL, text=u'IEC 61131-3\tF3')

        def handler(event):
            return wx.MessageBox(version.GetCommunityHelpMsg(),
                                 _(u'Community support'),
                                 wx.OK | wx.ICON_INFORMATION)

        id = wx.NewId()
        parent.Append(help='',
                      id=id,
                      kind=wx.ITEM_NORMAL,
                      text=_(u'Community support'))
        self.Bind(wx.EVT_MENU, handler, id=id)

        AppendMenu(parent,
                   help='',
                   id=wx.ID_ABOUT,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'About'))
        self.Bind(wx.EVT_MENU, self.OnPLCOpenEditorMenu, id=wx.ID_HELP)
        # self.Bind(wx.EVT_MENU, self.OnPLCOpenMenu, id=wx.ID_HELP_CONTENTS)
        self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT)
예제 #2
0
 def _init_coll_HelpMenu_Items(self, parent):
     AppendMenu(parent, help='', id=wx.ID_HELP,
         kind=wx.ITEM_NORMAL, text=_(u'PLCOpenEditor') + '\tF1')
     #AppendMenu(parent, help='', id=wx.ID_HELP_CONTENTS,
     #      kind=wx.ITEM_NORMAL, text=u'PLCOpen\tF2')
     #AppendMenu(parent, help='', id=wx.ID_HELP_CONTEXT,
     #      kind=wx.ITEM_NORMAL, text=u'IEC 61131-3\tF3')
     AppendMenu(parent, help='', id=wx.ID_ABOUT,
         kind=wx.ITEM_NORMAL, text=_(u'About'))
     self.Bind(wx.EVT_MENU, self.OnPLCOpenEditorMenu, id=wx.ID_HELP)
     #self.Bind(wx.EVT_MENU, self.OnPLCOpenMenu, id=wx.ID_HELP_CONTENTS)
     self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT)
예제 #3
0
    def RefreshRecentProjectsMenu(self):
        try:
            recent_projects = map(DecodeFileSystemPath,
                                  self.GetConfigEntry("RecentProjects", []))
        except Exception:
            recent_projects = []

        while self.RecentProjectsMenu.GetMenuItemCount() > len(
                recent_projects):
            item = self.RecentProjectsMenu.FindItemByPosition(0)
            self.RecentProjectsMenu.RemoveItem(item)

        self.FileMenu.Enable(ID_FILEMENURECENTPROJECTS,
                             len(recent_projects) > 0)
        for idx, projectpath in enumerate(recent_projects):
            text = u'&%d: %s' % (idx + 1, projectpath)

            if idx < self.RecentProjectsMenu.GetMenuItemCount():
                item = self.RecentProjectsMenu.FindItemByPosition(idx)
                id = item.GetId()
                item.SetItemLabel(text)
                self.Disconnect(id, id, wx.EVT_BUTTON._getEvtType())
            else:
                id = wx.NewId()
                AppendMenu(self.RecentProjectsMenu,
                           help='',
                           id=id,
                           kind=wx.ITEM_NORMAL,
                           text=text)
            self.Bind(wx.EVT_MENU,
                      self.GenerateOpenRecentProjectFunction(projectpath),
                      id=id)
예제 #4
0
    def _init_coll_FileMenu_Items(self, parent):
        AppendMenu(parent, help='', id=wx.ID_NEW,
                   kind=wx.ITEM_NORMAL, text=_(u'New') + '\tCTRL+N')
        AppendMenu(parent, help='', id=wx.ID_OPEN,
                   kind=wx.ITEM_NORMAL, text=_(u'Open') + '\tCTRL+O')
        parent.AppendSubMenu(self.RecentProjectsMenu, _("&Recent Projects"))
        parent.AppendSeparator()
        AppendMenu(parent, help='', id=wx.ID_SAVE,
                   kind=wx.ITEM_NORMAL, text=_(u'Save') + '\tCTRL+S')
        AppendMenu(parent, help='', id=wx.ID_SAVEAS,
                   kind=wx.ITEM_NORMAL, text=_(u'Save as') + '\tCTRL+SHIFT+S')
        AppendMenu(parent, help='', id=wx.ID_CLOSE,
                   kind=wx.ITEM_NORMAL, text=_(u'Close Tab') + '\tCTRL+W')
        AppendMenu(parent, help='', id=wx.ID_CLOSE_ALL,
                   kind=wx.ITEM_NORMAL, text=_(u'Close Project') + '\tCTRL+SHIFT+W')
        parent.AppendSeparator()
        AppendMenu(parent, help='', id=wx.ID_PAGE_SETUP,
                   kind=wx.ITEM_NORMAL, text=_(u'Page Setup') + '\tCTRL+ALT+P')
        AppendMenu(parent, help='', id=wx.ID_PREVIEW,
                   kind=wx.ITEM_NORMAL, text=_(u'Preview') + '\tCTRL+SHIFT+P')
        AppendMenu(parent, help='', id=wx.ID_PRINT,
                   kind=wx.ITEM_NORMAL, text=_(u'Print') + '\tCTRL+P')
        parent.AppendSeparator()
        AppendMenu(parent, help='', id=wx.ID_EXIT,
                   kind=wx.ITEM_NORMAL, text=_(u'Quit') + '\tCTRL+Q')

        self.Bind(wx.EVT_MENU, self.OnNewProjectMenu, id=wx.ID_NEW)
        self.Bind(wx.EVT_MENU, self.OnOpenProjectMenu, id=wx.ID_OPEN)
        self.Bind(wx.EVT_MENU, self.OnSaveProjectMenu, id=wx.ID_SAVE)
        self.Bind(wx.EVT_MENU, self.OnSaveProjectAsMenu, id=wx.ID_SAVEAS)
        self.Bind(wx.EVT_MENU, self.OnCloseTabMenu, id=wx.ID_CLOSE)
        self.Bind(wx.EVT_MENU, self.OnCloseProjectMenu, id=wx.ID_CLOSE_ALL)
        self.Bind(wx.EVT_MENU, self.OnPageSetupMenu, id=wx.ID_PAGE_SETUP)
        self.Bind(wx.EVT_MENU, self.OnPreviewMenu, id=wx.ID_PREVIEW)
        self.Bind(wx.EVT_MENU, self.OnPrintMenu, id=wx.ID_PRINT)
        self.Bind(wx.EVT_MENU, self.OnQuitMenu, id=wx.ID_EXIT)

        self.AddToMenuToolBar([(wx.ID_NEW, "new", _(u'New'), None),
                               (wx.ID_OPEN, "open", _(u'Open'), None),
                               (wx.ID_SAVE, "save", _(u'Save'), None),
                               (wx.ID_SAVEAS, "saveas", _(u'Save As...'), None),
                               (wx.ID_PRINT, "print", _(u'Print'), None)])
예제 #5
0
    def OnProjectTreeRightUp(self, event):
        item = event.GetItem()
        item_infos = self.ProjectTree.GetPyData(item)

        if item_infos["type"] == ITEM_CONFNODE:
            confnode_menu = wx.Menu(title='')

            confnode = item_infos["confnode"]
            if confnode is not None:
                menu_items = confnode.GetContextualMenuItems()
                if menu_items is not None:
                    for text, help, callback in menu_items:
                        new_id = wx.NewId()
                        confnode_menu.Append(help=help,
                                             id=new_id,
                                             kind=wx.ITEM_NORMAL,
                                             text=text)
                        self.Bind(wx.EVT_MENU, callback, id=new_id)
                else:
                    for name, XSDClass, help in confnode.CTNChildrenTypes:
                        if not hasattr(XSDClass, 'CTNMaxCount') or not confnode.Children.get(name) \
                                or len(confnode.Children[name]) < XSDClass.CTNMaxCount:
                            new_id = wx.NewId()
                            confnode_menu.Append(help=help,
                                                 id=new_id,
                                                 kind=wx.ITEM_NORMAL,
                                                 text=_("Add") + " " + name)
                            self.Bind(wx.EVT_MENU,
                                      self.GetAddConfNodeFunction(
                                          name, confnode),
                                      id=new_id)
            new_id = wx.NewId()
            AppendMenu(confnode_menu,
                       help='',
                       id=new_id,
                       kind=wx.ITEM_NORMAL,
                       text=_("Delete"))
            self.Bind(wx.EVT_MENU,
                      self.GetDeleteMenuFunction(confnode),
                      id=new_id)

            self.PopupMenu(confnode_menu)
            confnode_menu.Destroy()

            event.Skip()
        elif item_infos["type"] == ITEM_RESOURCE:
            # prevent last resource to be delted
            parent = self.ProjectTree.GetItemParent(item)
            parent_name = self.ProjectTree.GetItemText(parent)
            if parent_name == _("Resources"):
                IDEFrame.OnProjectTreeRightUp(self, event)
        else:
            IDEFrame.OnProjectTreeRightUp(self, event)
예제 #6
0
 def GenerateMenuRecursive(self, items, menu):
     for kind, infos in items:
         if isinstance(kind, list):
             text, id = infos
             submenu = wx.Menu('')
             self.GenerateMenuRecursive(kind, submenu)
             menu.AppendMenu(id, text, submenu)
         elif kind == wx.ITEM_SEPARATOR:
             menu.AppendSeparator()
         else:
             text, id, _help, callback = infos
             AppendMenu(menu, help='', id=id, kind=kind, text=text)
             if callback is not None:
                 self.Bind(wx.EVT_MENU, callback, id=id)
예제 #7
0
 def _RecursiveAddMenuItems(self, menu, items):
     for name, text, help, children in items:
         new_id = wx.NewId()
         if len(children) > 0:
             new_menu = wx.Menu(title='')
             menu.AppendMenu(new_id, text, new_menu)
             self._RecursiveAddMenuItems(new_menu, children)
         else:
             AppendMenu(menu,
                        help=help,
                        id=new_id,
                        kind=wx.ITEM_NORMAL,
                        text=text)
             self.Bind(wx.EVT_MENU,
                       self.GetAddConfNodeFunction(name),
                       id=new_id)
예제 #8
0
    def _init_coll_FileMenu_Items(self, parent):
        AppendMenu(parent,
                   help='',
                   id=wx.ID_NEW,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'New') + '\tCTRL+N')
        AppendMenu(parent,
                   help='',
                   id=wx.ID_OPEN,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Open') + '\tCTRL+O')
        AppendMenu(parent,
                   help='',
                   id=wx.ID_CLOSE,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Close Tab') + '\tCTRL+W')
        AppendMenu(parent,
                   help='',
                   id=wx.ID_CLOSE_ALL,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Close Project') + '\tCTRL+SHIFT+W')
        parent.AppendSeparator()
        AppendMenu(parent,
                   help='',
                   id=wx.ID_SAVE,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Save') + '\tCTRL+S')
        AppendMenu(parent,
                   help='',
                   id=wx.ID_SAVEAS,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Save As...') + '\tCTRL+SHIFT+S')
        AppendMenu(parent,
                   help='',
                   id=ID_PLCOPENEDITORFILEMENUGENERATE,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Generate Program') + '\tCTRL+G')
        AppendMenu(parent,
                   help='',
                   id=ID_PLCOPENEDITORFILEMENUGENERATEAS,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Generate Program As...') + '\tCTRL+SHIFT+G')
        parent.AppendSeparator()
        AppendMenu(parent,
                   help='',
                   id=wx.ID_PAGE_SETUP,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Page Setup') + '\tCTRL+ALT+P')
        AppendMenu(parent,
                   help='',
                   id=wx.ID_PREVIEW,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Preview') + '\tCTRL+SHIFT+P')
        AppendMenu(parent,
                   help='',
                   id=wx.ID_PRINT,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Print') + '\tCTRL+P')
        parent.AppendSeparator()
        AppendMenu(parent,
                   help='',
                   id=wx.ID_PROPERTIES,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'&Properties'))
        parent.AppendSeparator()
        AppendMenu(parent,
                   help='',
                   id=wx.ID_EXIT,
                   kind=wx.ITEM_NORMAL,
                   text=_(u'Quit') + '\tCTRL+Q')

        self.Bind(wx.EVT_MENU, self.OnNewProjectMenu, id=wx.ID_NEW)
        self.Bind(wx.EVT_MENU, self.OnOpenProjectMenu, id=wx.ID_OPEN)
        self.Bind(wx.EVT_MENU, self.OnCloseTabMenu, id=wx.ID_CLOSE)
        self.Bind(wx.EVT_MENU, self.OnCloseProjectMenu, id=wx.ID_CLOSE_ALL)
        self.Bind(wx.EVT_MENU, self.OnSaveProjectMenu, id=wx.ID_SAVE)
        self.Bind(wx.EVT_MENU, self.OnSaveProjectAsMenu, id=wx.ID_SAVEAS)
        self.Bind(wx.EVT_MENU,
                  self.OnGenerateProgramMenu,
                  id=ID_PLCOPENEDITORFILEMENUGENERATE)
        self.Bind(wx.EVT_MENU,
                  self.OnGenerateProgramAsMenu,
                  id=ID_PLCOPENEDITORFILEMENUGENERATEAS)
        self.Bind(wx.EVT_MENU, self.OnPageSetupMenu, id=wx.ID_PAGE_SETUP)
        self.Bind(wx.EVT_MENU, self.OnPreviewMenu, id=wx.ID_PREVIEW)
        self.Bind(wx.EVT_MENU, self.OnPrintMenu, id=wx.ID_PRINT)
        self.Bind(wx.EVT_MENU, self.OnPropertiesMenu, id=wx.ID_PROPERTIES)
        self.Bind(wx.EVT_MENU, self.OnQuitMenu, id=wx.ID_EXIT)

        self.AddToMenuToolBar([(wx.ID_NEW, "new", _(u'New'), None),
                               (wx.ID_OPEN, "open", _(u'Open'), None),
                               (wx.ID_SAVE, "save", _(u'Save'), None),
                               (wx.ID_SAVEAS, "saveas",
                                _(u'Save As...'), None),
                               (wx.ID_PRINT, "print", _(u'Print'), None),
                               (ID_PLCOPENEDITORFILEMENUGENERATE, "Build",
                                _(u'Generate Program'), None)])