medit/moo/moopython/pygtk/mooutils-mod.py

36 lines
1.0 KiB
Python
Raw Normal View History

2005-11-09 04:19:46 -08:00
"""moo.utils module"""
2005-11-06 19:19:25 -08:00
import _moo_utils as _utils
from _moo_utils import *
2005-11-16 03:26:20 -08:00
class ActionFactory(object):
2005-11-06 19:19:25 -08:00
def __init__(self, action_id, **kwargs):
object.__init__(self)
self.id = action_id
self.kwargs = kwargs
def __call__(self, window):
self.window = window
action = Action()
2005-11-16 03:26:20 -08:00
self.set_action_properties(action)
return action
def set_action_properties(self, action):
2005-11-06 19:19:25 -08:00
action.set_property("id", self.id)
for key in self.kwargs.keys():
if key == "callback":
action.connect("activate", self.action_activate)
else:
action.set_property(key, self.kwargs[key])
def action_activate(self, action):
self.kwargs["callback"](self.window)
2005-11-16 03:26:20 -08:00
2005-11-06 19:19:25 -08:00
def window_class_add_action(klass, action_id, **kwargs):
2005-11-16 03:26:20 -08:00
if kwargs.has_key("factory"):
_utils._window_class_add_action(klass, action_id, kwargs["factory"])
else:
_utils._window_class_add_action(klass, action_id, ActionFactory(action_id, **kwargs))