def __openfiles(self, requestevent, replyevent):
     try:
         listdesc = requestevent.AEGetParamDesc(keyDirectObject, typeAEList)
         for i in range(listdesc.AECountItems()):
             aliasdesc = listdesc.AEGetNthDesc(i + 1, typeAlias)[1]
             alias = File.Alias(rawdata=aliasdesc.data)
             fsref = alias.FSResolveAlias(None)[0]
             pathname = fsref.as_pathname()
             sys.argv.append(pathname)
     except Exception, e:
         print "argvemulator.py warning: can't unpack an open document event"
         import traceback
         traceback.print_exc()
 def open_file(self, requestevent, replyevent):
     from chimera import openModels, UserError, replyobj
     try:
         listdesc = requestevent.AEGetParamDesc(AEc.keyDirectObject,
                                                AEc.typeAEList)
         for i in xrange(listdesc.AECountItems()):
             aliasdesc = listdesc.AEGetNthDesc(i + 1, AEc.typeAlias)[1]
             alias = File.Alias(rawdata=aliasdesc.data)
             fsref = alias.FSResolveAlias(None)[0]
             pathname = fsref.as_pathname()
             #print "GOT OPEN FOR %s" % pathname
             openModels.open(pathname)
     except UserError, what:
         replyobj.error("%s" % what)
Exemple #3
0
    def makeusermenus(self):
        m = Wapplication.Menu(self.menubar, "File")
        newitem = FrameWork.MenuItem(m, "New", "N", 'new')
        openitem = FrameWork.MenuItem(m, "Open" + ELLIPSIS, "O", 'open')
        openbynameitem = FrameWork.MenuItem(m, "Open File by Name" + ELLIPSIS,
                                            "D", 'openbyname')
        self.openrecentmenu = FrameWork.SubMenu(m, "Open Recent")
        self.makeopenrecentmenu()
        FrameWork.Separator(m)
        closeitem = FrameWork.MenuItem(m, "Close", "W", 'close')
        saveitem = FrameWork.MenuItem(m, "Save", "S", 'save')
        saveasitem = FrameWork.MenuItem(m, "Save as" + ELLIPSIS, None,
                                        'save_as')
        FrameWork.Separator(m)
        saveasappletitem = FrameWork.MenuItem(m, "Save as Applet" + ELLIPSIS,
                                              None, 'save_as_applet')
        FrameWork.Separator(m)
        instmgritem = FrameWork.MenuItem(m, "Package Manager", None,
                                         'openpackagemanager')
        gensuiteitem = FrameWork.MenuItem(m, "Generate OSA Suite...", None,
                                          'gensuite')
        if not runningOnOSX():
            # On OSX there's a special "magic" quit menu, so we shouldn't add
            # it to the File menu.
            FrameWork.Separator(m)
            quititem = FrameWork.MenuItem(m, "Quit", "Q", 'quit')

        m = Wapplication.Menu(self.menubar, "Edit")
        undoitem = FrameWork.MenuItem(m, "Undo", 'Z', "undo")
        FrameWork.Separator(m)
        cutitem = FrameWork.MenuItem(m, "Cut", 'X', "cut")
        copyitem = FrameWork.MenuItem(m, "Copy", "C", "copy")
        pasteitem = FrameWork.MenuItem(m, "Paste", "V", "paste")
        FrameWork.MenuItem(m, "Clear", None, "clear")
        FrameWork.Separator(m)
        selallitem = FrameWork.MenuItem(m, "Select all", "A", "selectall")
        sellineitem = FrameWork.MenuItem(m, "Select line", "L", "selectline")
        FrameWork.Separator(m)
        finditem = FrameWork.MenuItem(m, "Find" + ELLIPSIS, "F", "find")
        findagainitem = FrameWork.MenuItem(m, "Find again", 'G', "findnext")
        enterselitem = FrameWork.MenuItem(m, "Enter search string", "E",
                                          "entersearchstring")
        replaceitem = FrameWork.MenuItem(m, "Replace", None, "replace")
        replacefinditem = FrameWork.MenuItem(m, "Replace & find again", 'T',
                                             "replacefind")
        FrameWork.Separator(m)
        shiftleftitem = FrameWork.MenuItem(m, "Shift left", "[", "shiftleft")
        shiftrightitem = FrameWork.MenuItem(m, "Shift right", "]",
                                            "shiftright")

        m = Wapplication.Menu(self.menubar, "Python")
        runitem = FrameWork.MenuItem(m, "Run window", "R", 'run')
        runselitem = FrameWork.MenuItem(m, "Run selection", None,
                                        'runselection')
        FrameWork.Separator(m)
        moditem = FrameWork.MenuItem(m, "Module browser" + ELLIPSIS, "M",
                                     self.domenu_modulebrowser)
        FrameWork.Separator(m)
        mm = FrameWork.SubMenu(m, "Preferences")
        FrameWork.MenuItem(mm, "Set Scripts folder" + ELLIPSIS, None,
                           self.do_setscriptsfolder)
        FrameWork.MenuItem(mm, "Editor default settings" + ELLIPSIS, None,
                           self.do_editorprefs)
        FrameWork.MenuItem(mm, "Set default window font" + ELLIPSIS, None,
                           self.do_setwindowfont)

        self.openwindowsmenu = Wapplication.Menu(self.menubar, 'Windows')
        self.makeopenwindowsmenu()
        self._menustocheck = [
            closeitem, saveitem, saveasitem, saveasappletitem, undoitem,
            cutitem, copyitem, pasteitem, selallitem, sellineitem, finditem,
            findagainitem, enterselitem, replaceitem, replacefinditem,
            shiftleftitem, shiftrightitem, runitem, runselitem
        ]

        prefs = self.getprefs()
        try:
            fsr, d = File.Alias(
                rawdata=prefs.scriptsfolder).FSResolveAlias(None)
            self.scriptsfolder = fsr.FSNewAliasMinimal()
        except:
            path = os.path.join(os.getcwd(), "Mac", "IDE scripts")
            if not os.path.exists(path):
                if sys.platform == "darwin":
                    path = os.path.join(os.getenv("HOME"), "Library", "Python",
                                        "IDE-Scripts")
                else:
                    path = os.path.join(os.getcwd(), "Scripts")
                if not os.path.exists(path):
                    os.makedirs(path)
                    f = open(
                        os.path.join(path,
                                     "Place your scripts here" + ELLIPSIS),
                        "w")
                    f.close()
            fsr = File.FSRef(path)
            self.scriptsfolder = fsr.FSNewAliasMinimal()
            self.scriptsfoldermodtime = getmodtime(fsr)
        else:
            self.scriptsfoldermodtime = getmodtime(fsr)
        prefs.scriptsfolder = self.scriptsfolder.data
        self._scripts = {}
        self.scriptsmenu = None
        self.makescriptsmenu()
        self.makehelpmenu()