def PostMessage(msgtype, msgdata=None): """Post a message containing the msgdata to all listeners that are interested in the given msgtype. @param msgtype: Message Type EDMSG_* @keyword msgdata: Message data to pass to listener (can be anything) """ Publisher().sendMessage(msgtype, msgdata)
def Unsubscribe(callback, messages=None): """Remove a listener so that it doesn't get sent messages for msgtype. If msgtype is not specified the listener will be removed for all msgtypes that it is associated with. @param callback: Function or bound method to remove subscription for @keyword messages: EDMSG_* val or list of EDMSG_* vals """ Publisher().unsubscribe(callback, messages)
def PostMessage(msgtype, msgdata=None, context=None): """Post a message containing the msgdata to all listeners that are interested in the given msgtype from the given context. If context is None than default context is assumed. Message is always propagated to the default context. @param msgtype: Message Type EDMSG_* @keyword msgdata: Message data to pass to listener (can be anything) @keyword context: Context of the message. """ Publisher().sendMessage(msgtype, msgdata, context=context)
def Subscribe(callback, msgtype=EDMSG_ALL): """Subscribe your listener function to listen for an action of type msgtype. The callback must be a function or a _bound_ method that accepts one parameter for the actions message. The message that is sent to the callback is a class object that has two attributes, one for the message type and the other for the message data. See below example for how these two values can be accessed. >>> def MyCallback(msg): print "Msg Type: ", msg.GetType(), "Msg Data: ", msg.GetData() >>> class Foo: def MyCallbackMeth(self, msg): print "Msg Type: ", msg.GetType(), "Msg Data: ", msg.GetData() >>> Subscribe(MyCallback, EDMSG_SOMETHING) >>> myfoo = Foo() >>> Subscribe(myfoo.MyCallBackMeth, EDMSG_SOMETHING) @param callback: Callable function or bound method @keyword msgtype: Message to subscribe to (default to all) """ Publisher().subscribe(callback, msgtype)
# Update the theme the notebook specifically to the current preferences EDMSG_THEME_NOTEBOOK = EDMSG_ALL + ('nb', 'theme') # Signal that the font preferences for the ui have changed (msgdata == font) EDMSG_DSP_FONT = EDMSG_ALL + ('dfont', ) # Add file to file history # msgdata == filename EDMSG_ADD_FILE_HISTORY = EDMSG_ALL + ('filehistory', ) #---- End Misc Messages ----# #--------------------------------------------------------------------------# # Public Api _ThePublisher = Publisher() def PostMessage(msgtype, msgdata=None, context=None): """Post a message containing the msgdata to all listeners that are interested in the given msgtype from the given context. If context is None than default context is assumed. Message is always propagated to the default context. @param msgtype: Message Type EDMSG_* @keyword msgdata: Message data to pass to listener (can be anything) @keyword context: Context of the message. """ _ThePublisher.sendMessage(msgtype, msgdata, context=context)