annotate pyntnclick/widgets/filechooser.py @ 712:f33dd2093f77 pyntnclick

Hook up image drawing code again
author Neil Muller <neil@dip.sun.ac.za>
date Sun, 05 Aug 2012 14:55:48 +0200
parents d4f97c8e0dbe
children ab489f7e87f8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
1 # Display a paged lsit of files and directories
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
2 # Allow moving up and down directory trees
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
3
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
4 import os
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
5
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
6 from pyntnclick.widgets.base import Box
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
7 from pyntnclick.widgets.text import TextButton, LabelWidget
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
8
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
9
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
10 class FileChooser(Box):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
11
712
f33dd2093f77 Hook up image drawing code again
Neil Muller <neil@dip.sun.ac.za>
parents: 710
diff changeset
12 def __init__(self, rect, gd, curdir, ok_callback,
f33dd2093f77 Hook up image drawing code again
Neil Muller <neil@dip.sun.ac.za>
parents: 710
diff changeset
13 page_length=12, padding=2):
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
14 super(FileChooser, self).__init__(rect, gd)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
15 self.page_length = page_length
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
16 self.page = 0
712
f33dd2093f77 Hook up image drawing code again
Neil Muller <neil@dip.sun.ac.za>
parents: 710
diff changeset
17 self.ok_callback = ok_callback
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
18 self.curdir = os.path.realpath(os.path.normpath(curdir))
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
19 self.selected = None
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
20 self.padding = padding
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
21 self.dirs = []
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
22 self.files = []
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
23 self.modal = True
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
24 self.prev_but = None
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
25 self.next_but = None
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
26 self.get_lists()
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
27 self.fill_page()
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
28
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
29 def get_lists(self):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
30 self.dirs = []
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
31 self.files = []
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
32 for entry in sorted(os.listdir(self.curdir)):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
33 path = os.path.join(self.curdir, entry)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
34 if os.path.isdir(path):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
35 self.dirs.append(entry)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
36 else:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
37 self.files.append(entry)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
38
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
39 def _dir_button(self, entry):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
40 widget = TextButton((0, 0), self.gd, entry + '/',
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
41 fontname=self.gd.constants.bold_font,
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
42 fontsize=10)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
43 widget.add_callback('clicked', self.change_dir, entry)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
44 return widget
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
45
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
46 def _file_button(self, entry):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
47 if entry == self.selected:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
48 # highlight
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
49 widget = TextButton((0, 0), self.gd, entry,
710
d4f97c8e0dbe Fix selection display
Neil Muller <neil@dip.sun.ac.za>
parents: 709
diff changeset
50 fontsize=10, border=2, color='yellow')
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
51 else:
710
d4f97c8e0dbe Fix selection display
Neil Muller <neil@dip.sun.ac.za>
parents: 709
diff changeset
52 widget = TextButton((0, 0), self.gd, entry, border=0,
d4f97c8e0dbe Fix selection display
Neil Muller <neil@dip.sun.ac.za>
parents: 709
diff changeset
53 fontsize=10)
d4f97c8e0dbe Fix selection display
Neil Muller <neil@dip.sun.ac.za>
parents: 709
diff changeset
54 widget.add_callback('clicked', self.change_selection, entry)
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
55 return widget
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
56
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
57 def fill_page(self):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
58 for widget in self.children[:]:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
59 self.remove(widget)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
60 start_page = self.page * self.page_length
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
61 end_page = start_page + self.page_length
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
62 entries = self.dirs + self.files
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
63 top = self.rect.top + self.padding
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
64 left = self.rect.left + self.padding
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
65 # Add current directory at the top
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
66 widget = LabelWidget((0, 0), self.gd, self.curdir[-30:], color='black')
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
67 widget.rect.topleft = (left, top)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
68 self.add(widget)
709
d279a7dd166a Fix paging bug. Better widget spacing
Neil Muller <neil@dip.sun.ac.za>
parents: 707
diff changeset
69 upbut = TextButton((left + 2 * self.padding + widget.rect.width, top),
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
70 self.gd, u'\N{LEFTWARDS ARROW WITH HOOK}Back one level')
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
71 upbut.add_callback('clicked', self.change_dir, os.pardir)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
72 self.add(upbut)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
73 top += max(widget.rect.height, upbut.rect.height) + 4 * self.padding
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
74 page_top = top
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
75 page_left = left
709
d279a7dd166a Fix paging bug. Better widget spacing
Neil Muller <neil@dip.sun.ac.za>
parents: 707
diff changeset
76 top += self.padding
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
77 for entry in entries[start_page:end_page]:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
78 if entry in self.dirs:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
79 widget = self._dir_button(entry)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
80 else:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
81 widget = self._file_button(entry)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
82 widget.rect.topleft = (left, top)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
83 self.add(widget)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
84 top += widget.rect.height + self.padding
709
d279a7dd166a Fix paging bug. Better widget spacing
Neil Muller <neil@dip.sun.ac.za>
parents: 707
diff changeset
85 page_left = max(page_left, left + widget.rect.width + self.padding)
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
86 # Add page list buttons
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
87 if not self.prev_but:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
88 self.prev_but = TextButton((0, 0), self.gd, u'\N{UPWARDS ARROW}')
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
89 self.prev_but.add_callback('clicked', self.change_page, -1)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
90 self.prev_but.rect.topleft = (page_left, page_top)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
91 if not self.next_but:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
92 self.next_but = TextButton((0, 0), self.gd, u'\N{DOWNWARDS ARROW}')
709
d279a7dd166a Fix paging bug. Better widget spacing
Neil Muller <neil@dip.sun.ac.za>
parents: 707
diff changeset
93 self.next_but.add_callback('clicked', self.change_page, +1)
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
94 page_top = max(top - self.next_but.rect.height,
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
95 self.prev_but.rect.bottom + self.padding)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
96 self.next_but.rect.topleft = (page_left, page_top)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
97 if self.page > 0:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
98 self.prev_but.enable()
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
99 else:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
100 self.prev_but.disable()
709
d279a7dd166a Fix paging bug. Better widget spacing
Neil Muller <neil@dip.sun.ac.za>
parents: 707
diff changeset
101 if end_page + 1 < len(entries):
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
102 self.next_but.enable()
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
103 else:
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
104 self.next_but.disable()
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
105 self.add(self.next_but)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
106 self.add(self.prev_but)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
107 # Add OK and Cancel buttons
709
d279a7dd166a Fix paging bug. Better widget spacing
Neil Muller <neil@dip.sun.ac.za>
parents: 707
diff changeset
108 top = max(self.prev_but.rect.bottom + self.padding,
d279a7dd166a Fix paging bug. Better widget spacing
Neil Muller <neil@dip.sun.ac.za>
parents: 707
diff changeset
109 top + 2 * self.padding)
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
110 ok_but = TextButton((left, top), self.gd, 'OK')
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
111 ok_but.add_callback('clicked', self.ok)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
112 self.add(ok_but)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
113 cancel_but = TextButton(
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
114 (left + ok_but.rect.width + 4 * self.padding, top),
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
115 self.gd, 'Cancel')
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
116 cancel_but.add_callback('clicked', self.cancel)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
117 self.add(cancel_but)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
118
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
119 def change_page(self, ev, widget, change):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
120 self.page += change
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
121 self.fill_page()
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
122 return True
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
123
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
124 def change_dir(self, ev, widget, newdir):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
125 """Change directory and refresh the widget."""
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
126 self.curdir = os.path.normpath(os.path.join(self.curdir, newdir))
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
127 self.page = 0
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
128 self.selected = None
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
129 self.get_lists()
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
130 self.fill_page()
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
131
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
132 def change_selection(self, ev, widget, entry):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
133 """Update selection"""
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
134 self.selected = entry
710
d4f97c8e0dbe Fix selection display
Neil Muller <neil@dip.sun.ac.za>
parents: 709
diff changeset
135 self.fill_page()
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
136
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
137 def cancel(self, ev, widget):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
138 if hasattr(self.parent, 'paused'):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
139 self.parent.paused = False
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
140 self.parent.remove(self)
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
141 return True
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
142
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
143 def ok(self, ev, widget):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
144 if hasattr(self.parent, 'paused'):
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
145 self.parent.paused = False
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
146 self.parent.remove(self)
712
f33dd2093f77 Hook up image drawing code again
Neil Muller <neil@dip.sun.ac.za>
parents: 710
diff changeset
147 if self.selected:
f33dd2093f77 Hook up image drawing code again
Neil Muller <neil@dip.sun.ac.za>
parents: 710
diff changeset
148 self.ok_callback(os.path.normpath(os.path.join(self.curdir,
f33dd2093f77 Hook up image drawing code again
Neil Muller <neil@dip.sun.ac.za>
parents: 710
diff changeset
149 self.selected)))
707
6b8fa2248ee1 Hack'ish filechooser widget
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
150 return True