X7ROOT File Manager
Current Path:
/lib64/python2.7/Demo/tkinter/guido
lib64
/
python2.7
/
Demo
/
tkinter
/
guido
/
??
..
??
AttrDialog.py
(14 KB)
??
AttrDialog.pyc
(18.33 KB)
??
AttrDialog.pyo
(18.33 KB)
??
ManPage.py
(6.7 KB)
??
ManPage.pyc
(6.27 KB)
??
ManPage.pyo
(6.27 KB)
??
MimeViewer.py
(4.39 KB)
??
MimeViewer.pyc
(4.83 KB)
??
MimeViewer.pyo
(4.83 KB)
??
ShellWindow.py
(4.07 KB)
??
ShellWindow.pyc
(5.47 KB)
??
ShellWindow.pyo
(5.47 KB)
??
brownian.py
(1.07 KB)
??
brownian.pyc
(1.59 KB)
??
brownian.pyo
(1.59 KB)
??
brownian2.py
(1.35 KB)
??
brownian2.pyc
(1.74 KB)
??
brownian2.pyo
(1.74 KB)
??
canvasevents.py
(6.45 KB)
??
canvasevents.pyc
(10.46 KB)
??
canvasevents.pyo
(10.46 KB)
??
dialog.py
(3.13 KB)
??
dialog.pyc
(3.11 KB)
??
dialog.pyo
(3.11 KB)
??
electrons.py
(2.27 KB)
??
electrons.pyc
(2.33 KB)
??
electrons.pyo
(2.33 KB)
??
hanoi.py
(4.54 KB)
??
hanoi.pyc
(3.82 KB)
??
hanoi.pyo
(3.82 KB)
??
hello.py
(331 B)
??
hello.pyc
(701 B)
??
hello.pyo
(701 B)
??
imagedraw.py
(509 B)
??
imagedraw.pyc
(1.13 KB)
??
imagedraw.pyo
(1.13 KB)
??
imageview.py
(205 B)
??
imageview.pyc
(570 B)
??
imageview.pyo
(570 B)
??
kill.py
(3.79 KB)
??
kill.pyc
(4.81 KB)
??
kill.pyo
(4.81 KB)
??
listtree.py
(991 B)
??
listtree.pyc
(1.5 KB)
??
listtree.pyo
(1.5 KB)
??
mbox.py
(7.3 KB)
??
mbox.pyc
(8.17 KB)
??
mbox.pyo
(8.17 KB)
??
newmenubardemo.py
(1.2 KB)
??
newmenubardemo.pyc
(1.59 KB)
??
newmenubardemo.pyo
(1.59 KB)
??
optionmenu.py
(441 B)
??
optionmenu.pyc
(594 B)
??
optionmenu.pyo
(594 B)
??
paint.py
(1.85 KB)
??
paint.pyc
(2.19 KB)
??
paint.pyo
(2.19 KB)
??
rmt.py
(4.39 KB)
??
rmt.pyc
(4.93 KB)
??
rmt.pyo
(4.93 KB)
??
solitaire.py
(17.37 KB)
??
solitaire.pyc
(20.41 KB)
??
solitaire.pyo
(20.41 KB)
??
sortvisu.py
(18.89 KB)
??
sortvisu.pyc
(23.18 KB)
??
sortvisu.pyo
(23.18 KB)
??
ss1.py
(25.57 KB)
??
ss1.pyc
(31.67 KB)
??
ss1.pyo
(31.07 KB)
??
svkill.py
(4.75 KB)
??
svkill.pyc
(5.8 KB)
??
svkill.pyo
(5.8 KB)
??
switch.py
(1.52 KB)
??
switch.pyc
(2.85 KB)
??
switch.pyo
(2.85 KB)
??
tkman.py
(8.79 KB)
??
tkman.pyc
(8.88 KB)
??
tkman.pyo
(8.88 KB)
??
wish.py
(623 B)
??
wish.pyc
(737 B)
??
wish.pyo
(737 B)
Editing: tkman.py
#! /usr/bin/python2.7 # Tk man page browser -- currently only shows the Tcl/Tk man pages import sys import os import string import re from Tkinter import * from ManPage import ManPage MANNDIRLIST = ['/depot/sundry/man/mann','/usr/local/man/mann'] MAN3DIRLIST = ['/depot/sundry/man/man3','/usr/local/man/man3'] foundmanndir = 0 for dir in MANNDIRLIST: if os.path.exists(dir): MANNDIR = dir foundmanndir = 1 foundman3dir = 0 for dir in MAN3DIRLIST: if os.path.exists(dir): MAN3DIR = dir foundman3dir = 1 if not foundmanndir or not foundman3dir: sys.stderr.write('\n') if not foundmanndir: msg = """\ Failed to find mann directory. Please add the correct entry to the MANNDIRLIST at the top of %s script.""" % \ sys.argv[0] sys.stderr.write("%s\n\n" % msg) if not foundman3dir: msg = """\ Failed to find man3 directory. Please add the correct entry to the MAN3DIRLIST at the top of %s script.""" % \ sys.argv[0] sys.stderr.write("%s\n\n" % msg) sys.exit(1) del foundmanndir del foundman3dir def listmanpages(mandir): files = os.listdir(mandir) names = [] for file in files: if file[-2:-1] == '.' and (file[-1] in 'ln123456789'): names.append(file[:-2]) names.sort() return names class SelectionBox: def __init__(self, master=None): self.choices = [] self.frame = Frame(master, name="frame") self.frame.pack(expand=1, fill=BOTH) self.master = self.frame.master self.subframe = Frame(self.frame, name="subframe") self.subframe.pack(expand=0, fill=BOTH) self.leftsubframe = Frame(self.subframe, name='leftsubframe') self.leftsubframe.pack(side=LEFT, expand=1, fill=BOTH) self.rightsubframe = Frame(self.subframe, name='rightsubframe') self.rightsubframe.pack(side=RIGHT, expand=1, fill=BOTH) self.chaptervar = StringVar(master) self.chapter = Menubutton(self.rightsubframe, name='chapter', text='Directory', relief=RAISED, borderwidth=2) self.chapter.pack(side=TOP) self.chaptermenu = Menu(self.chapter, name='chaptermenu') self.chaptermenu.add_radiobutton(label='C functions', value=MAN3DIR, variable=self.chaptervar, command=self.newchapter) self.chaptermenu.add_radiobutton(label='Tcl/Tk functions', value=MANNDIR, variable=self.chaptervar, command=self.newchapter) self.chapter['menu'] = self.chaptermenu self.listbox = Listbox(self.rightsubframe, name='listbox', relief=SUNKEN, borderwidth=2, width=20, height=5) self.listbox.pack(expand=1, fill=BOTH) self.l1 = Button(self.leftsubframe, name='l1', text='Display manual page named:', command=self.entry_cb) self.l1.pack(side=TOP) self.entry = Entry(self.leftsubframe, name='entry', relief=SUNKEN, borderwidth=2, width=20) self.entry.pack(expand=0, fill=X) self.l2frame = Frame(self.leftsubframe, name='l2frame') self.l2frame.pack(expand=0, fill=NONE) self.l2 = Button(self.l2frame, name='l2', text='Search regexp:', command=self.search_cb) self.l2.pack(side=LEFT) self.casevar = BooleanVar() self.casesense = Checkbutton(self.l2frame, name='casesense', text='Case sensitive', variable=self.casevar, relief=FLAT) self.casesense.pack(side=LEFT) self.search = Entry(self.leftsubframe, name='search', relief=SUNKEN, borderwidth=2, width=20) self.search.pack(expand=0, fill=X) self.title = Label(self.leftsubframe, name='title', text='(none)') self.title.pack(side=BOTTOM) self.text = ManPage(self.frame, name='text', relief=SUNKEN, borderwidth=2, wrap=NONE, width=72, selectbackground='pink') self.text.pack(expand=1, fill=BOTH) self.entry.bind('<Return>', self.entry_cb) self.search.bind('<Return>', self.search_cb) self.listbox.bind('<Double-1>', self.listbox_cb) self.entry.bind('<Tab>', self.entry_tab) self.search.bind('<Tab>', self.search_tab) self.text.bind('<Tab>', self.text_tab) self.entry.focus_set() self.chaptervar.set(MANNDIR) self.newchapter() def newchapter(self): mandir = self.chaptervar.get() self.choices = [] self.addlist(listmanpages(mandir)) def addchoice(self, choice): if choice not in self.choices: self.choices.append(choice) self.choices.sort() self.update() def addlist(self, list): self.choices[len(self.choices):] = list self.choices.sort() self.update() def entry_cb(self, *e): self.update() def listbox_cb(self, e): selection = self.listbox.curselection() if selection and len(selection) == 1: name = self.listbox.get(selection[0]) self.show_page(name) def search_cb(self, *e): self.search_string(self.search.get()) def entry_tab(self, e): self.search.focus_set() def search_tab(self, e): self.entry.focus_set() def text_tab(self, e): self.entry.focus_set() def updatelist(self): key = self.entry.get() ok = filter(lambda name, key=key, n=len(key): name[:n]==key, self.choices) if not ok: self.frame.bell() self.listbox.delete(0, AtEnd()) exactmatch = 0 for item in ok: if item == key: exactmatch = 1 self.listbox.insert(AtEnd(), item) if exactmatch: return key n = self.listbox.size() if n == 1: return self.listbox.get(0) # Else return None, meaning not a unique selection def update(self): name = self.updatelist() if name: self.show_page(name) self.entry.delete(0, AtEnd()) self.updatelist() def show_page(self, name): file = '%s/%s.?' % (self.chaptervar.get(), name) fp = os.popen('nroff -man %s | ul -i' % file, 'r') self.text.kill() self.title['text'] = name self.text.parsefile(fp) def search_string(self, search): if not search: self.frame.bell() print 'Empty search string' return if not self.casevar.get(): map = re.IGNORECASE else: map = None try: if map: prog = re.compile(search, map) else: prog = re.compile(search) except re.error, msg: self.frame.bell() print 'Regex error:', msg return here = self.text.index(AtInsert()) lineno = string.atoi(here[:string.find(here, '.')]) end = self.text.index(AtEnd()) endlineno = string.atoi(end[:string.find(end, '.')]) wraplineno = lineno found = 0 while 1: lineno = lineno + 1 if lineno > endlineno: if wraplineno <= 0: break endlineno = wraplineno lineno = 0 wraplineno = 0 line = self.text.get('%d.0 linestart' % lineno, '%d.0 lineend' % lineno) i = prog.search(line) if i >= 0: found = 1 n = max(1, len(prog.group(0))) try: self.text.tag_remove('sel', AtSelFirst(), AtSelLast()) except TclError: pass self.text.tag_add('sel', '%d.%d' % (lineno, i), '%d.%d' % (lineno, i+n)) self.text.mark_set(AtInsert(), '%d.%d' % (lineno, i)) self.text.yview_pickplace(AtInsert()) break if not found: self.frame.bell() def main(): root = Tk() sb = SelectionBox(root) if sys.argv[1:]: sb.show_page(sys.argv[1]) root.minsize(1, 1) root.mainloop() main()
Upload File
Create Folder