comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: setting widget " EVENT_PRO='myClass::myCallback' " ???? Is it possible?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: setting widget " EVENT_PRO='myClass::myCallback' " ???? Is it possible? [message #83979 is a reply to message #83978] Mon, 15 April 2013 11:00 Go to previous message
Lajos Foldy is currently offline  Lajos Foldy
Messages: 176
Registered: December 2011
Senior Member
Hi,

IDL calls the event handler with one positional parameter, event.

PRO jkcm_window_level_widget_wwEventHandler, event

one positional parameter: event

PRO jkcm_window_level_widget::wwEventHandler, event

two positional parameters: this (implicit) and event

regards,
Lajos


On Monday, April 15, 2013 7:39:55 PM UTC+2, Justin wrote:
> Hi all,
>
>
>
> I have been unable to set EVENT_PRO to a class method. My current work around is to create a dummy 'global' standalone function at the top of the *__DEFINE.pro file that pulls the object data and then calls the method on the object.
>
>
>
> I was curious if it is even possible to set a widget event handler to a class method. What is the rationale behind not letting an event handler be a class method? Perhaps it doesn't make sense to do it...
>
>
>
>
>
> For example,
>
> below is a window/level class that ends up modifying the window/level on a display object that I create. I've been using it for medical imaging.
>
>
>
> ------------------------------------------------------------ --------
>
> PRO jkcm_window_level_widget_wwEventHandler, event
>
> widget_control, event.top, get_uvalue=obj
>
> obj->wwEventHandler, event
>
> END
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;
>
> PRO jkcm_window_level_widget_wlEventHandler, event
>
> widget_control, event.top, get_uvalue=obj
>
> obj->wlEventHandler, event
>
> END
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;
>
> PRO jkcm_window_level_widget::CREATE_WIDGETS, PARENT_WIDGET = inp_PARENT_WIDGET
>
>
>
>
>
> self.parent_widget = (N_ELEMENTS(inp_PARENT_WIDGET) NE 0) ? inp_PARENT_WIDGET : WIDGET_BASE(COLUMN=2, YSIZE=512, TLB_FRAME_ATTR=2)
>
>
>
> ;I would like to be able to say:
>
> ; EVENT_PRO='jkcm_window_level_widget::wwEventHandler'
>
> self.wwSlider = WIDGET_SLIDER(self.parent_widget, UNAME='WW_widget', YSIZE=512,$
>
> TITLE='WW', /VERTICAL, EVENT_PRO='jkcm_window_level_widget_wwEventHandler', $
>
> MINIMUM=0, MAXIMUM=4095, /DRAG)
>
>
>
> self.wlSlider = WIDGET_SLIDER(self.parent_widget, UNAME='WL_widget',YSIZE=512,$
>
> TITLE='WL', /VERTICAL, EVENT_PRO='jkcm_window_level_widget_wlEventHandler', $
>
> MINIMUM=-1024, MAXIMUM=4095, /DRAG)
>
>
>
> END ;jkcm_window_level_widget::CREATE_WIDGETS
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;
>
> ...
>
>
>
> PRO jkcm_window_level_widget::wwEventHandler, event
>
>
>
> val=''
>
> widget_control, self.wwSlider, GET_VALUE=val
>
> self.svo->SET_WINDOW_LEVEL, WIDTH=val
>
>
>
> END ;jkcm_window_level_widget::wwEventHandler
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;
>
>
>
> PRO jkcm_window_level_widget::wlEventHandler, event
>
>
>
> val=''
>
> widget_control, self.wlSlider, GET_VALUE=val
>
> self.svo->SET_WINDOW_LEVEL, LEVEL=val
>
>
>
> END ;jkcm_window_level_widget::wlEventHandler
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;
>
> FUNCTION jkcm_window_level_widget::INIT, SVO=inp_SVO
>
>
>
> self.svo = (N_ELEMENTS(inp_svo) NE 0) ? inp_svo : !NULL
>
>
>
> self->CREATE_WIDGETS
>
> RETURN, 1
>
> END
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;
>
> PRO jkcm_window_level_widget::CLEANUP
>
>
>
> widget_control, self.parent_widget, /destroy
>
>
>
> END
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;
>
> PRO jkcm_window_level_widget__DEFINE
>
>
>
>
>
> struct = { jkcm_window_level_widget , $
>
> parent_widget:0L,$ ;'top' level widget
>
> wwSlider:0L, $; widget slider for window width
>
> wlSlider:0L, $; widget slider for window level
>
>
>
> svo:OBJ_NEW(), $;reference to single_view_obj_graphics object (dont delete)
>
>
>
> ww: double(1), $ ;window width
>
> wl: double(1) $ ;window length
>
> }
>
> END ;END jkcm_window_level_widget__DEFINE
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: setting widget " EVENT_PRO='myClass::myCallback' " ???? Is it possible?
Next Topic: Re: How to Zip cross-platform from IDL?

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 13:46:37 PDT 2025

Total time taken to generate the page: 1.04043 seconds