Made ActionFactory public

master
Yevgen Muntyan 2005-11-16 11:26:20 +00:00
parent ee020b6e11
commit d8378e849d
1 changed files with 10 additions and 4 deletions

View File

@ -3,7 +3,7 @@ import _moo_utils as _utils
from _moo_utils import *
class _ActionFactory(object):
class ActionFactory(object):
def __init__(self, action_id, **kwargs):
object.__init__(self)
self.id = action_id
@ -12,6 +12,10 @@ class _ActionFactory(object):
def __call__(self, window):
self.window = window
action = Action()
self.set_action_properties(action)
return action
def set_action_properties(self, action):
action.set_property("id", self.id)
for key in self.kwargs.keys():
@ -20,10 +24,12 @@ class _ActionFactory(object):
else:
action.set_property(key, self.kwargs[key])
return action
def action_activate(self, action):
self.kwargs["callback"](self.window)
def window_class_add_action(klass, action_id, **kwargs):
_utils._window_class_add_action(klass, action_id, _ActionFactory(action_id, **kwargs))
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))