27.01.2014, 20:17
Da der CustomView wirklich "custom" sein soll, unterstützt er per Default erstmal gar nichts.
Das musst du selbst implementieren, indem du deinen eigenen Event Dispatcher schreibst. Dann hast du vollen Zugriff auf alles, was im CustomView passiert.
Das ist einfacher als es sich anhört:
[ab3]myDispatchEvent:
Function.l myDispatchEvent{*customView.tuiCustomView,*ev.tuiEvent}
done.l = False
Select *ev\id
Case #TUIEV_MOUSEDOWN : ...
Case #TUIEV_MOUSEUP : ...
Case #TUIEV_MOUSEMOVE : ...
Case #TUIEV_KEYDOWN : ...
Case #TUIEV_KEYUP : ...
Case #TUIEV_TICK : done=True ; this event is done!
End Select
; call the super-class function if not done
If done=False Then done = _ntui_DispatchCustomViewEvent{*customView,*ev}
Function Return done
End Function
!_MakeGlobalFuncPointer{myDispatchEvent,{Null,Null}}
...
ntui_SetAttr{*myCustomView,#TUIA_MD_DISPATCHEVENT,*myDispatchEvent}[/ab3]
Das musst du selbst implementieren, indem du deinen eigenen Event Dispatcher schreibst. Dann hast du vollen Zugriff auf alles, was im CustomView passiert.
Das ist einfacher als es sich anhört:
[ab3]myDispatchEvent:
Function.l myDispatchEvent{*customView.tuiCustomView,*ev.tuiEvent}
done.l = False
Select *ev\id
Case #TUIEV_MOUSEDOWN : ...
Case #TUIEV_MOUSEUP : ...
Case #TUIEV_MOUSEMOVE : ...
Case #TUIEV_KEYDOWN : ...
Case #TUIEV_KEYUP : ...
Case #TUIEV_TICK : done=True ; this event is done!
End Select
; call the super-class function if not done
If done=False Then done = _ntui_DispatchCustomViewEvent{*customView,*ev}
Function Return done
End Function
!_MakeGlobalFuncPointer{myDispatchEvent,{Null,Null}}
...
ntui_SetAttr{*myCustomView,#TUIA_MD_DISPATCHEVENT,*myDispatchEvent}[/ab3]