Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: Modal behaviour for a face (or modal face)

From: g:santilli:tiscalinet:it at: 13-Mar-2002 11:27

Hi Etienne, On Tuesday, March 12, 2002, 7:12:15 PM, you wrote: EA> What I want is : a modal behaviour for a face; all events in this face EA> are grabbed by itself and dispatched toward its sub-faces. All events EA> outside this face are ignored. It should be sufficient to modify:
>> print mold get in system/view 'wake-event
func [port /local event no-btn][ event: pick port 1 if none? event [ if debug [print "Event port awoke, but no event was present."] return false ] either not pop-face [ do event empty? screen-face/pane ] [ either any [pop-face = event/face within? event/offset win-offset? pop-face pop-face/size] [ no-btn: false if block? get in pop-face 'pane [ no-btn: foreach item pop-face/pane [if get in item 'action [break/return false] true] ] if any [all [event/type = 'up no-btn] event/type = 'close] [hide-popup] do event ] [ if pop-face/action [ if not find [move time] event/type [hide-popup] do event ] ] none? find pop-list pop-face ] ] (Notice that if you create a new one instead of patching it, you should install it in system/ports/wait-list/1/awake.) Regards, Gabriele. -- Gabriele Santilli <[g--santilli--tiscalinet--it]> -- REBOL Programmer Amigan -- AGI L'Aquila -- REB: http://web.tiscali.it/rebol/index.r