[Bf-committers] Python Event Listeners and Notifiers
Dan Eicher
dan at trollwerks.org
Tue Nov 2 04:38:20 CET 2010
Been poking at this for a couple days and figured I'd post it to the ML
before I spent too much time on it.
Registration (non-automagic) works like operators, menus and KeyingSetInfo
(which I didn't even know existed). There's some simple logic and an
optional poll function to determine if execute() should be called
in response to an event.
A simple test case that prints to the console on a frame change event:
---------------------------------------------------------------------------------------------------
import bpy
class foo(bpy.types.Listener):
bl_idname = "foo"
bl_label = "foo"
bl_description = "foo goodness"
bl_category = "SCENE"
bl_data = "FRAME"
def poll(self, context, note):
if note.data == "SCENE":
return True
return False
def execute(self, context, note):
print('Frame:', context.scene.frame_current)
if __name__ == "__main__":
bpy.types.register(foo)
---------------------------------------------------------------------------------------------------
The notifiers still need some cleaning up and probably a means to fire them
from scripts.
The WIP patch -- http://www.pasteall.org/16578/diff
Dan
More information about the Bf-committers
mailing list