|
1 | 1 | #! /usr/local/bin/python |
2 | 2 |
|
3 | | -# Tkinter interface to SYSV `kill' command. |
| 3 | +# Tkinter interface to SYSV `ps' and `kill' commands. |
4 | 4 |
|
5 | 5 | from Tkinter import * |
| 6 | + |
| 7 | +if TkVersion < 4.0: |
| 8 | + raise ImportError, "This version of svkill requires Tk 4.0 or later" |
| 9 | + |
6 | 10 | from string import splitfields |
7 | 11 | from string import split |
8 | 12 | import commands |
|
11 | 15 | user = os.environ['LOGNAME'] |
12 | 16 |
|
13 | 17 | class BarButton(Menubutton): |
14 | | - _CNF = {Pack: {'side': 'left'}} |
15 | 18 | def __init__(self, master=None, cnf={}): |
16 | | - Menubutton.__init__(self, master, (self._CNF, cnf)) |
| 19 | + Menubutton.__init__(self, master, cnf) |
| 20 | + self.pack(side='left') |
17 | 21 | self.menu = Menu(self, {'name': 'menu'}) |
18 | 22 | self['menu'] = self.menu |
19 | 23 |
|
@@ -46,15 +50,14 @@ def do_update(self): |
46 | 50 | list = splitfields(s, '\n') |
47 | 51 | self.header.set(list[0] + ' ') |
48 | 52 | del list[0] |
49 | | - y = self.frame.vscroll.get()[2] |
50 | 53 | self.frame.list.delete(0, AtEnd()) |
51 | 54 | for line in list: |
52 | 55 | self.frame.list.insert(0, line) |
53 | | - self.frame.list.yview(y) |
54 | 56 | def do_motion(self, e): |
55 | | - e.widget.select_from(e.widget.nearest(e.y)) |
| 57 | + e.widget.select_clear('0', 'end') |
| 58 | + e.widget.select_set(e.widget.nearest(e.y)) |
56 | 59 | def do_leave(self, e): |
57 | | - e.widget.select_clear() |
| 60 | + e.widget.select_clear('0', 'end') |
58 | 61 | def do_1(self, e): |
59 | 62 | self.kill(e.widget.get(e.widget.nearest(e.y))) |
60 | 63 | def __init__(self, master=None, cnf={}): |
@@ -117,9 +120,10 @@ def __init__(self, master=None, cnf={}): |
117 | 120 | self.frame, |
118 | 121 | {'relief': 'sunken', |
119 | 122 | 'font': '*-Courier-Medium-R-Normal-*-120-*', |
120 | | - 'geometry': '40x10', |
| 123 | + 'width': 40, 'height': 10, |
121 | 124 | 'selectbackground': '#eed5b7', |
122 | 125 | 'selectborderwidth': 0, |
| 126 | + 'selectmode': 'browse', |
123 | 127 | 'yscroll': self.frame.vscroll.set}) |
124 | 128 | self.frame.vscroll['command'] = self.frame.list.yview |
125 | 129 | self.frame.vscroll.pack({'side': 'right', 'fill': 'y'}) |
|
0 commit comments