pep8 compliance: W293 blank line contains whitespace
This commit is contained in:
parent
d2d826d28a
commit
e56bed1092
@ -35,7 +35,7 @@ class Control(object):
|
|||||||
ref.set(x)
|
ref.set(x)
|
||||||
else:
|
else:
|
||||||
self._value = x
|
self._value = x
|
||||||
|
|
||||||
def get_highlighted(self):
|
def get_highlighted(self):
|
||||||
return self._highlighted
|
return self._highlighted
|
||||||
|
|
||||||
@ -144,9 +144,9 @@ class Label(Widget):
|
|||||||
if self.highlighted:
|
if self.highlighted:
|
||||||
fg = self.highlight_color or fg
|
fg = self.highlight_color or fg
|
||||||
bg = self.highlight_bg_color or bg
|
bg = self.highlight_bg_color or bg
|
||||||
|
|
||||||
self.draw_with(surface, fg, bg)
|
self.draw_with(surface, fg, bg)
|
||||||
|
|
||||||
is_default = False
|
is_default = False
|
||||||
def draw_with(self, surface, fg, bg=None):
|
def draw_with(self, surface, fg, bg=None):
|
||||||
if bg:
|
if bg:
|
||||||
@ -184,7 +184,7 @@ class GLLabel(Label):
|
|||||||
pass
|
pass
|
||||||
class SmallLabel(Label):
|
class SmallLabel(Label):
|
||||||
"""Small text size. See theme.py"""
|
"""Small text size. See theme.py"""
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
class ButtonBase(Control):
|
class ButtonBase(Control):
|
||||||
@ -193,7 +193,7 @@ class ButtonBase(Control):
|
|||||||
action = None
|
action = None
|
||||||
default_choice_color = ThemeProperty('default_choice_color')
|
default_choice_color = ThemeProperty('default_choice_color')
|
||||||
default_choice_bg_color = ThemeProperty('default_choice_bg_color')
|
default_choice_bg_color = ThemeProperty('default_choice_bg_color')
|
||||||
|
|
||||||
def mouse_down(self, event):
|
def mouse_down(self, event):
|
||||||
if self.enabled:
|
if self.enabled:
|
||||||
self._highlighted = True
|
self._highlighted = True
|
||||||
@ -284,10 +284,10 @@ class ValueDisplay(Control, Label):
|
|||||||
# buf = self.font.render(text, True, self.fg_color)
|
# buf = self.font.render(text, True, self.fg_color)
|
||||||
# frame = surf.get_rect()
|
# frame = surf.get_rect()
|
||||||
# blit_in_rect(surf, buf, frame, self.align, self.margin)
|
# blit_in_rect(surf, buf, frame, self.align, self.margin)
|
||||||
|
|
||||||
def get_text(self):
|
def get_text(self):
|
||||||
return self.format_value(self.value)
|
return self.format_value(self.value)
|
||||||
|
|
||||||
def format_value(self, value):
|
def format_value(self, value):
|
||||||
if value is not None:
|
if value is not None:
|
||||||
return self.format % value
|
return self.format % value
|
||||||
@ -325,7 +325,7 @@ class CheckWidget(Widget):
|
|||||||
|
|
||||||
def __init__(self, **kwds):
|
def __init__(self, **kwds):
|
||||||
Widget.__init__(self, Rect((0, 0), self.default_size), **kwds)
|
Widget.__init__(self, Rect((0, 0), self.default_size), **kwds)
|
||||||
|
|
||||||
def draw(self, surf):
|
def draw(self, surf):
|
||||||
if self.highlighted:
|
if self.highlighted:
|
||||||
r = self.get_margin_rect()
|
r = self.get_margin_rect()
|
||||||
|
@ -13,7 +13,7 @@ class Modal(object):
|
|||||||
|
|
||||||
def ok(self):
|
def ok(self):
|
||||||
self.dismiss(True)
|
self.dismiss(True)
|
||||||
|
|
||||||
def cancel(self):
|
def cancel(self):
|
||||||
self.dismiss(False)
|
self.dismiss(False)
|
||||||
|
|
||||||
@ -51,13 +51,13 @@ class Dialog(Modal, Widget):
|
|||||||
self.enter_response = responses[default]
|
self.enter_response = responses[default]
|
||||||
if responses and cancel is not None:
|
if responses and cancel is not None:
|
||||||
self.cancel_response = responses[cancel]
|
self.cancel_response = responses[cancel]
|
||||||
|
|
||||||
def mouse_down(self, e):
|
def mouse_down(self, e):
|
||||||
if not e in self:
|
if not e in self:
|
||||||
response = self.click_outside_response
|
response = self.click_outside_response
|
||||||
if response is not None:
|
if response is not None:
|
||||||
self.dismiss(response)
|
self.dismiss(response)
|
||||||
|
|
||||||
class QuickDialog(Dialog):
|
class QuickDialog(Dialog):
|
||||||
""" Dialog that closes as soon as you click outside or press a key"""
|
""" Dialog that closes as soon as you click outside or press a key"""
|
||||||
def mouse_down(self, evt):
|
def mouse_down(self, evt):
|
||||||
@ -65,11 +65,11 @@ class QuickDialog(Dialog):
|
|||||||
self.dismiss(-1)
|
self.dismiss(-1)
|
||||||
if evt.button != 1:
|
if evt.button != 1:
|
||||||
event.post(evt)
|
event.post(evt)
|
||||||
|
|
||||||
def key_down(self, evt):
|
def key_down(self, evt):
|
||||||
self.dismiss()
|
self.dismiss()
|
||||||
event.post(evt)
|
event.post(evt)
|
||||||
|
|
||||||
def wrapped_label(text, wrap_width, **kwds):
|
def wrapped_label(text, wrap_width, **kwds):
|
||||||
paras = text.split("\n")
|
paras = text.split("\n")
|
||||||
text = "\n".join([textwrap.fill(para, wrap_width) for para in paras])
|
text = "\n".join([textwrap.fill(para, wrap_width) for para in paras])
|
||||||
|
104
albow/fields.py
104
albow/fields.py
@ -14,7 +14,7 @@ class TextEditor(Widget):
|
|||||||
|
|
||||||
upper = False
|
upper = False
|
||||||
tab_stop = True
|
tab_stop = True
|
||||||
|
|
||||||
_text = u""
|
_text = u""
|
||||||
|
|
||||||
def __init__(self, width, upper = None, **kwds):
|
def __init__(self, width, upper = None, **kwds):
|
||||||
@ -23,15 +23,15 @@ class TextEditor(Widget):
|
|||||||
if upper is not None:
|
if upper is not None:
|
||||||
self.upper = upper
|
self.upper = upper
|
||||||
self.insertion_point = None
|
self.insertion_point = None
|
||||||
|
|
||||||
def get_text(self):
|
def get_text(self):
|
||||||
return self._text
|
return self._text
|
||||||
|
|
||||||
def set_text(self, text):
|
def set_text(self, text):
|
||||||
self._text = text
|
self._text = text
|
||||||
|
|
||||||
text = overridable_property('text')
|
text = overridable_property('text')
|
||||||
|
|
||||||
def draw(self, surface):
|
def draw(self, surface):
|
||||||
frame = self.get_margin_rect()
|
frame = self.get_margin_rect()
|
||||||
fg = self.fg_color
|
fg = self.fg_color
|
||||||
@ -47,7 +47,7 @@ class TextEditor(Widget):
|
|||||||
x += frame.left
|
x += frame.left
|
||||||
y = frame.top
|
y = frame.top
|
||||||
draw.line(surface, fg, (x, y), (x, y + h - 1))
|
draw.line(surface, fg, (x, y), (x, y + h - 1))
|
||||||
|
|
||||||
def key_down(self, event):
|
def key_down(self, event):
|
||||||
if not (event.cmd or event.alt):
|
if not (event.cmd or event.alt):
|
||||||
k = event.key
|
k = event.key
|
||||||
@ -73,7 +73,7 @@ class TextEditor(Widget):
|
|||||||
pygame.scrap.put(SCRAP_TEXT, self.text)
|
pygame.scrap.put(SCRAP_TEXT, self.text)
|
||||||
except:
|
except:
|
||||||
print "scrap not available"
|
print "scrap not available"
|
||||||
|
|
||||||
elif event.key == K_v:
|
elif event.key == K_v:
|
||||||
try:
|
try:
|
||||||
t = pygame.scrap.get(SCRAP_TEXT).replace('\0', '')
|
t = pygame.scrap.get(SCRAP_TEXT).replace('\0', '')
|
||||||
@ -83,16 +83,16 @@ class TextEditor(Widget):
|
|||||||
#print repr(t)
|
#print repr(t)
|
||||||
else:
|
else:
|
||||||
self.attention_lost()
|
self.attention_lost()
|
||||||
|
|
||||||
self.call_parent_handler('key_down', event)
|
self.call_parent_handler('key_down', event)
|
||||||
|
|
||||||
def get_text_and_insertion_point(self):
|
def get_text_and_insertion_point(self):
|
||||||
text = self.get_text()
|
text = self.get_text()
|
||||||
i = self.insertion_point
|
i = self.insertion_point
|
||||||
if i is not None:
|
if i is not None:
|
||||||
i = max(0, min(i, len(text)))
|
i = max(0, min(i, len(text)))
|
||||||
return text, i
|
return text, i
|
||||||
|
|
||||||
def move_insertion_point(self, d):
|
def move_insertion_point(self, d):
|
||||||
text, i = self.get_text_and_insertion_point()
|
text, i = self.get_text_and_insertion_point()
|
||||||
if i is None:
|
if i is None:
|
||||||
@ -103,7 +103,7 @@ class TextEditor(Widget):
|
|||||||
else:
|
else:
|
||||||
i = max(0, min(i + d, len(text)))
|
i = max(0, min(i + d, len(text)))
|
||||||
self.insertion_point = i
|
self.insertion_point = i
|
||||||
|
|
||||||
def insert_char(self, c):
|
def insert_char(self, c):
|
||||||
if self.upper:
|
if self.upper:
|
||||||
c = c.upper()
|
c = c.upper()
|
||||||
@ -136,7 +136,7 @@ class TextEditor(Widget):
|
|||||||
self.insertion_point = i
|
self.insertion_point = i
|
||||||
return
|
return
|
||||||
return 'pass'
|
return 'pass'
|
||||||
|
|
||||||
def allow_char(self, c):
|
def allow_char(self, c):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ class TextEditor(Widget):
|
|||||||
if e.num_clicks == 2:
|
if e.num_clicks == 2:
|
||||||
self.insertion_point = None
|
self.insertion_point = None
|
||||||
return
|
return
|
||||||
|
|
||||||
x, y = e.local
|
x, y = e.local
|
||||||
i = self.pos_to_index(x)
|
i = self.pos_to_index(x)
|
||||||
self.insertion_point = i
|
self.insertion_point = i
|
||||||
@ -170,9 +170,9 @@ class TextEditor(Widget):
|
|||||||
i = i2
|
i = i2
|
||||||
else:
|
else:
|
||||||
i = i1
|
i = i1
|
||||||
|
|
||||||
return i
|
return i
|
||||||
|
|
||||||
def change_text(self, text):
|
def change_text(self, text):
|
||||||
self.set_text(text)
|
self.set_text(text)
|
||||||
self.call_handler('change_action')
|
self.call_handler('change_action')
|
||||||
@ -223,7 +223,7 @@ class Field(Control, TextEditor):
|
|||||||
return self._text
|
return self._text
|
||||||
else:
|
else:
|
||||||
return self.format_value(self.value)
|
return self.format_value(self.value)
|
||||||
|
|
||||||
def set_text(self, text):
|
def set_text(self, text):
|
||||||
self.editing = True
|
self.editing = True
|
||||||
self._text = text
|
self._text = text
|
||||||
@ -238,22 +238,22 @@ class Field(Control, TextEditor):
|
|||||||
self.commit()
|
self.commit()
|
||||||
elif self.enter_passes:
|
elif self.enter_passes:
|
||||||
return 'pass'
|
return 'pass'
|
||||||
|
|
||||||
def escape_action(self):
|
def escape_action(self):
|
||||||
if self.editing:
|
if self.editing:
|
||||||
self.editing = False
|
self.editing = False
|
||||||
self.insertion_point = None
|
self.insertion_point = None
|
||||||
else:
|
else:
|
||||||
return 'pass'
|
return 'pass'
|
||||||
|
|
||||||
def attention_lost(self):
|
def attention_lost(self):
|
||||||
self.commit(notify=True)
|
self.commit(notify=True)
|
||||||
|
|
||||||
def clamp_value(self, value):
|
def clamp_value(self, value):
|
||||||
if self.max is not None: value = min(value, self.max)
|
if self.max is not None: value = min(value, self.max)
|
||||||
if self.min is not None: value = max(value, self.min)
|
if self.min is not None: value = max(value, self.min)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def commit(self, notify = False):
|
def commit(self, notify = False):
|
||||||
if self.editing:
|
if self.editing:
|
||||||
text = self._text
|
text = self._text
|
||||||
@ -274,7 +274,7 @@ class Field(Control, TextEditor):
|
|||||||
else:
|
else:
|
||||||
self._text = unicode(value)
|
self._text = unicode(value)
|
||||||
self.editing = False
|
self.editing = False
|
||||||
|
|
||||||
else:
|
else:
|
||||||
self.insertion_point = None
|
self.insertion_point = None
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ class IntField(Field):
|
|||||||
return int(i)
|
return int(i)
|
||||||
except:
|
except:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
_shift_increment = 16
|
_shift_increment = 16
|
||||||
_increment = 1
|
_increment = 1
|
||||||
@property
|
@property
|
||||||
@ -312,34 +312,34 @@ class IntField(Field):
|
|||||||
else:
|
else:
|
||||||
return self._increment
|
return self._increment
|
||||||
return self._increment
|
return self._increment
|
||||||
|
|
||||||
@increment.setter
|
@increment.setter
|
||||||
def increment(self, val):
|
def increment(self, val):
|
||||||
self._increment = val
|
self._increment = val
|
||||||
|
|
||||||
def decrease_value(self):
|
def decrease_value(self):
|
||||||
self.value = self.clamp_value(self.value - self.increment)
|
self.value = self.clamp_value(self.value - self.increment)
|
||||||
|
|
||||||
def increase_value(self):
|
def increase_value(self):
|
||||||
self.value = self.clamp_value(self.value + self.increment)
|
self.value = self.clamp_value(self.value + self.increment)
|
||||||
|
|
||||||
def mouse_down(self, evt):
|
def mouse_down(self, evt):
|
||||||
if evt.button == 5:
|
if evt.button == 5:
|
||||||
self.decrease_value()
|
self.decrease_value()
|
||||||
|
|
||||||
self.change_text(str(self.value))
|
self.change_text(str(self.value))
|
||||||
|
|
||||||
elif evt.button == 4:
|
elif evt.button == 4:
|
||||||
self.increase_value()
|
self.increase_value()
|
||||||
self.change_text(str(self.value))
|
self.change_text(str(self.value))
|
||||||
|
|
||||||
else: Field.mouse_down(self, evt)
|
else: Field.mouse_down(self, evt)
|
||||||
|
|
||||||
allowed_chars = '-+*/<>()0123456789'
|
allowed_chars = '-+*/<>()0123456789'
|
||||||
|
|
||||||
def allow_char(self, c):
|
def allow_char(self, c):
|
||||||
return c in self.allowed_chars
|
return c in self.allowed_chars
|
||||||
|
|
||||||
def should_commit_immediately(self, text):
|
def should_commit_immediately(self, text):
|
||||||
try:
|
try:
|
||||||
return str(eval(text)) == text
|
return str(eval(text)) == text
|
||||||
@ -358,20 +358,20 @@ class TimeField(Field):
|
|||||||
return format % (h or 12,m) + " PM"
|
return format % (h or 12,m) + " PM"
|
||||||
else:
|
else:
|
||||||
return format % (h or 12,m) + " AM"
|
return format % (h or 12,m) + " AM"
|
||||||
|
|
||||||
def allow_char(self, c):
|
def allow_char(self, c):
|
||||||
return c in self.allowed_chars
|
return c in self.allowed_chars
|
||||||
|
|
||||||
def type(self, i):
|
def type(self, i):
|
||||||
h,m = 0,0
|
h,m = 0,0
|
||||||
i = i.upper()
|
i = i.upper()
|
||||||
|
|
||||||
pm = "PM" in i
|
pm = "PM" in i
|
||||||
for a in "APM":
|
for a in "APM":
|
||||||
i = i.replace(a, "")
|
i = i.replace(a, "")
|
||||||
|
|
||||||
parts = i.split(":")
|
parts = i.split(":")
|
||||||
|
|
||||||
if len(parts):
|
if len(parts):
|
||||||
h = int(parts[0])
|
h = int(parts[0])
|
||||||
if len(parts)>1:
|
if len(parts)>1:
|
||||||
@ -381,7 +381,7 @@ class TimeField(Field):
|
|||||||
h %= 24
|
h %= 24
|
||||||
m %= 60
|
m %= 60
|
||||||
return h,m
|
return h,m
|
||||||
|
|
||||||
def mouse_down(self, evt):
|
def mouse_down(self, evt):
|
||||||
if evt.button == 5:
|
if evt.button == 5:
|
||||||
delta = -1
|
delta = -1
|
||||||
@ -389,7 +389,7 @@ class TimeField(Field):
|
|||||||
delta = 1
|
delta = 1
|
||||||
else:
|
else:
|
||||||
return Field.mouse_down(self, evt)
|
return Field.mouse_down(self, evt)
|
||||||
|
|
||||||
(h,m) = self.value
|
(h,m) = self.value
|
||||||
pos = self.pos_to_index(evt.local[0])
|
pos = self.pos_to_index(evt.local[0])
|
||||||
if pos < 2:
|
if pos < 2:
|
||||||
@ -398,53 +398,53 @@ class TimeField(Field):
|
|||||||
m += delta
|
m += delta
|
||||||
else:
|
else:
|
||||||
h = (h + 12) % 24
|
h = (h + 12) % 24
|
||||||
|
|
||||||
self.value = (h,m)
|
self.value = (h,m)
|
||||||
|
|
||||||
def set_value(self, v):
|
def set_value(self, v):
|
||||||
h,m = v
|
h,m = v
|
||||||
super(TimeField, self).set_value((h%24, m%60))
|
super(TimeField, self).set_value((h%24, m%60))
|
||||||
|
|
||||||
from pygame import key
|
from pygame import key
|
||||||
from pygame.locals import KMOD_SHIFT
|
from pygame.locals import KMOD_SHIFT
|
||||||
|
|
||||||
class FloatField(Field):
|
class FloatField(Field):
|
||||||
type = float
|
type = float
|
||||||
_increment = 1.0
|
_increment = 1.0
|
||||||
_shift_increment = 16.0
|
_shift_increment = 16.0
|
||||||
tooltipText = "Point here and use mousewheel to adjust"
|
tooltipText = "Point here and use mousewheel to adjust"
|
||||||
|
|
||||||
allowed_chars = '-+.0123456789f'
|
allowed_chars = '-+.0123456789f'
|
||||||
|
|
||||||
def allow_char(self, c):
|
def allow_char(self, c):
|
||||||
return c in self.allowed_chars
|
return c in self.allowed_chars
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def increment(self):
|
def increment(self):
|
||||||
if key.get_mods() & KMOD_SHIFT:
|
if key.get_mods() & KMOD_SHIFT:
|
||||||
return self._shift_increment
|
return self._shift_increment
|
||||||
return self._increment
|
return self._increment
|
||||||
|
|
||||||
@increment.setter
|
@increment.setter
|
||||||
def increment(self, val):
|
def increment(self, val):
|
||||||
self._increment = self.clamp_value(val)
|
self._increment = self.clamp_value(val)
|
||||||
|
|
||||||
def decrease_value(self):
|
def decrease_value(self):
|
||||||
self.value = self.clamp_value(self.value - self.increment)
|
self.value = self.clamp_value(self.value - self.increment)
|
||||||
|
|
||||||
def increase_value(self):
|
def increase_value(self):
|
||||||
self.value = self.clamp_value(self.value + self.increment)
|
self.value = self.clamp_value(self.value + self.increment)
|
||||||
|
|
||||||
def mouse_down(self, evt):
|
def mouse_down(self, evt):
|
||||||
if evt.button == 5:
|
if evt.button == 5:
|
||||||
self.decrease_value()
|
self.decrease_value()
|
||||||
|
|
||||||
self.change_text(str(self.value))
|
self.change_text(str(self.value))
|
||||||
|
|
||||||
elif evt.button == 4:
|
elif evt.button == 4:
|
||||||
self.increase_value()
|
self.increase_value()
|
||||||
self.change_text(str(self.value))
|
self.change_text(str(self.value))
|
||||||
|
|
||||||
else: Field.mouse_down(self, evt)
|
else: Field.mouse_down(self, evt)
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
@ -91,7 +91,7 @@ class RootWidget(Widget):
|
|||||||
widget.root_widget = self
|
widget.root_widget = self
|
||||||
self.is_gl = surface.get_flags() & OPENGL <> 0
|
self.is_gl = surface.get_flags() & OPENGL <> 0
|
||||||
self.idle_handlers = []
|
self.idle_handlers = []
|
||||||
|
|
||||||
def set_timer(self, ms):
|
def set_timer(self, ms):
|
||||||
pygame.time.set_timer(USEREVENT, ms)
|
pygame.time.set_timer(USEREVENT, ms)
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ class RootWidget(Widget):
|
|||||||
|
|
||||||
frames = 0
|
frames = 0
|
||||||
hover_widget = None
|
hover_widget = None
|
||||||
|
|
||||||
def run_modal(self, modal_widget):
|
def run_modal(self, modal_widget):
|
||||||
old_captured_widget = None
|
old_captured_widget = None
|
||||||
|
|
||||||
@ -142,8 +142,8 @@ class RootWidget(Widget):
|
|||||||
last_click_time = start_time
|
last_click_time = start_time
|
||||||
last_click_button = 0
|
last_click_button = 0
|
||||||
self.do_draw = True
|
self.do_draw = True
|
||||||
|
|
||||||
|
|
||||||
while modal_widget.modal_result is None:
|
while modal_widget.modal_result is None:
|
||||||
try:
|
try:
|
||||||
self.hover_widget = self.find_widget(mouse.get_pos())
|
self.hover_widget = self.find_widget(mouse.get_pos())
|
||||||
@ -163,7 +163,7 @@ class RootWidget(Widget):
|
|||||||
for event in events:
|
for event in events:
|
||||||
if event.type:
|
if event.type:
|
||||||
log.debug("%s", event)
|
log.debug("%s", event)
|
||||||
|
|
||||||
type = event.type
|
type = event.type
|
||||||
if type == QUIT:
|
if type == QUIT:
|
||||||
self.quit()
|
self.quit()
|
||||||
@ -218,7 +218,7 @@ class RootWidget(Widget):
|
|||||||
else:
|
else:
|
||||||
last_mouse_event_handler = mouse_widget
|
last_mouse_event_handler = mouse_widget
|
||||||
event.dict['clicked_widget'] = None
|
event.dict['clicked_widget'] = None
|
||||||
|
|
||||||
last_mouse_event = event
|
last_mouse_event = event
|
||||||
clicked_widget = None
|
clicked_widget = None
|
||||||
last_mouse_event_handler.handle_mouse('mouse_up', event)
|
last_mouse_event_handler.handle_mouse('mouse_up', event)
|
||||||
@ -263,7 +263,7 @@ class RootWidget(Widget):
|
|||||||
elif type == NOEVENT:
|
elif type == NOEVENT:
|
||||||
add_modifiers(event)
|
add_modifiers(event)
|
||||||
self.call_idle_handlers(event)
|
self.call_idle_handlers(event)
|
||||||
|
|
||||||
except Cancel:
|
except Cancel:
|
||||||
pass
|
pass
|
||||||
finally:
|
finally:
|
||||||
@ -281,16 +281,16 @@ class RootWidget(Widget):
|
|||||||
if widget: widget.idleevent(event)
|
if widget: widget.idleevent(event)
|
||||||
else: print "Idle ref died!"
|
else: print "Idle ref died!"
|
||||||
return bool(widget)
|
return bool(widget)
|
||||||
|
|
||||||
self.idle_handlers = filter(call, self.idle_handlers)
|
self.idle_handlers = filter(call, self.idle_handlers)
|
||||||
|
|
||||||
def add_idle_handler(self, widget):
|
def add_idle_handler(self, widget):
|
||||||
from weakref import ref
|
from weakref import ref
|
||||||
self.idle_handlers.append(ref(widget))
|
self.idle_handlers.append(ref(widget))
|
||||||
def remove_idle_handler(self, widget):
|
def remove_idle_handler(self, widget):
|
||||||
from weakref import ref
|
from weakref import ref
|
||||||
self.idle_handlers.remove(ref(widget))
|
self.idle_handlers.remove(ref(widget))
|
||||||
|
|
||||||
def send_key(self, widget, name, event):
|
def send_key(self, widget, name, event):
|
||||||
add_modifiers(event)
|
add_modifiers(event)
|
||||||
widget.dispatch_key(name, event)
|
widget.dispatch_key(name, event)
|
||||||
|
Reference in New Issue
Block a user