Extending Events
Hans Harmon
hans_harmon at yahoo.com
Fri Aug 4 05:30:08 PDT 2006
Lee,
This is not complete, but should provide enough of a start to get things working.
/////////////////////////////
// Begin code
struct ScriptData
{
scriptValue ctrl;
scriptValue evt;
scriptValue func;
};
class MyEvtHandler : EvtHandler()
{
// Have script use something like this.
void MyClass ::EventBind( scriptValue ctrl, scriptValue evt, scriptValue func )
{
// Create some data to store, remember to delete this later.
ScriptData * newScriptData = new ScriptData();
newScriptData.ctrl = ctrl;
newScriptData.evt = evt;
newScriptData.fun = func;
// Select the type of event. To be used by the type of event
//...
// Get the event type and id information
wxEventType event_type = evt.event_type;
int event_id = evt.id;
// The this->OnEvent will need to be cast to the right type of event handler, see wx/event.h for a list of these macros.
this->Connect ( event_id, event_type, wxMenuEventHandler ( this->OnEvent ), newScriptData, this );
}
OnEvent ( wxEvent &event )
{
ScriptData * scriptEventData;
scriptEventData = event.GetEventObject();
// Process the event using the ctrl, evt, and func values stored.
}
};
// End Code
/////////////////////
Also note that wxEventType is just an int. And look in event.h for a list of macros for the event function conversion. I just used wxMenuEventHandler since your previous example showed a table that grabs all of the menu events.
Hans
Lee McColl-Sylvester <lee.mccoll at lyons-group.co.uk> wrote: v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} Hi Hans,
Can you at least give a tiny example how I would pass data to an event type before calling the EvtHandler::Connect function?
Thanks,
Lee
---------------------------------
From: Hans Harmon [mailto:hans_harmon at yahoo.com]
Sent: 04 August 2006 12:47
To: wx-users at lists.wxwidgets.org
Subject: Re: Extending Events
I would recommend looking at EvtHandler::Connect as this has solved some of my needs for dynamic events, without needing the macro table. You should be able to use the UserData pointer to pass whatever else you need for the event callback to work properly. Unfortunately I do not have any examples (that I can post), especially doing this with a scripting language.
Hans
Lee McColl-Sylvester <lee.mccoll at lyons-group.co.uk> wrote:
Hi List,
I'm intending on using wxWidgets to provide GUI support for a scripting
language, but I'm having trouble working out how best to support events.
I know that wxPython extends the event objects, but how do they then get
the widgets to send the events with the extended data?
For example, normally one would register an event and supply a function
pointer using the event table macros, but this won't be possible in my
cercumstance. I'm gonna need to register the event dynamically, passing
not only a function call but also various parameters that the function
will need to be able to proxy the event back to the scripting language.
Does anyone on this list have experience with this? Do you know of any
examples I can look at?
Regards,
Lee
---------------------------------------------------------------------
To unsubscribe, e-mail: wx-users-unsubscribe at lists.wxwidgets.org
For additional commands, e-mail: wx-users-help at lists.wxwidgets.org
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
---------------------------------
Talk is cheap. Use Yahoo! Messenger to make PC-to-Phone calls. Great rates starting at 1¢/min.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.wxwidgets.org/pipermail/wx-users/attachments/20060804/35b703c9/attachment.htm
More information about the wx-users
mailing list