r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[View] discuss view related issues

Maxim
21-May-2009
[8830x5]
can anyone confirm to me that the modal window system in view 2.7.6 
is broken?

view layout [button "inform" [inform layout [button "ok"]]]


closes the dialog whenever you touch it... even when clicking on 
background?
glayout has its own popup system, so I didn't notice this earlier, 
but i'm using VID for another project.... I've tried a lot of things, 
but nothing seems to work... I don't want to have to path VID internals 
again...
path=patch
show-popup is reacting even more violently... closing all my windows 
in my app... just by touching the popup  :-(
seems I can use my glayout version of show-popup hide-popup in VID 
directly , and that works flawlessly in a few tests.... even fixing 
the inform call indirectly.
Graham
21-May-2009
[8835x3]
try this

 view layout [button "inform" [inform layout [button "ok" [] ] ]]
Looks like a bug.
Unless you assume that any popup must have an active button.
Maxim
21-May-2009
[8838x4]
but my dialogs don't have a close button in the main pane of the 
layout (using faces with nested panes).  :-(
I've been looking into this and remembered the source of my fix... 
I don't use the VID popup-feels in glayout, cause its wake event 
is smart enough to handle things properly.
VID sets the window feel to one of many different feels... :-( so 
I've got to patch VID again )
arrgh.
Henrik
21-May-2009
[8842]
you must use hide-popup to close an inform.
Gabriele
21-May-2009
[8843]
Max, that's intentional. by default, there needs to be a way to get 
rid of the modal popup. if you don't provide any, the system will 
get rid of it on click. do you have an example where you want a modal 
popup (blocking your app) with no clickable face in it?
Maxim
21-May-2009
[8844x3]
I did a full analysis of the problem (again, since I had done so 
with glayout a looooonng time ago) and there is no simple ways to 
handle the issue with the current view setup.
part of the problem is that closing the window via the title bar 
doesn't propely call hide-popup.
so I built a new pair of funcs and do the event blocking for non 
pop ups in my event-handler.
Henrik
21-May-2009
[8847]
I don't have a PC keyboard, but does View support overwrite/insert 
switcing?
Maxim
21-May-2009
[8848]
not AFAIK, but using windows api, you surely can.
Henrik
21-May-2009
[8849]
hmm... I thought it was a matter of doing some changes in CTX-TEXT. 
but if I get this right, it won't matter.
RobertS
22-May-2009
[8850]
.
Gabriele
23-May-2009
[8851]
Max, how much time ago did you do your "analysis"? The modal system 
was rewritten almost from scratch in view 1.3. Did you post the bugs 
you had found?
Maxim
23-May-2009
[8852x2]
a long time ago. the problems where that it was missing some things 
like opt support in show-popup and some other thing.  and the show-popup 
selection of feels didn't make it very predictable.


with my custom wake-event/window-feel pair, it just went haywire. 
 so I rewrote both so that they would work better within glayout's 
revised management of view layer.


for example in glayout... the view function has a /modal   and a 
 /center  refinements... these make many things much simpler to use... 
I rarely use show-popup within the app, cause the glayout's view 
command supports it directly.
(modality that is.)
Graham
23-May-2009
[8854]
Is Cyphre's gui console source around anywhere?
Pekr
23-May-2009
[8855]
start a desktop, go to Sites/Cyphre ... there is vconsole script 
...
Graham
23-May-2009
[8856]
ahh.. simple
Maxim
23-May-2009
[8857]
anyone know a way to trigger event code at a rate faster than 15 
times a second within a view wait?... the view rate is REALLY imprecise 
and doesn't go above 15 ticks a second in my tests. 


strangely  this has nothing to do with possible refresh rate which 
can bo well beyond 15 frames a second.
Steeve
24-May-2009
[8858]
What do you try to do ? An animation ?
Maxim
24-May-2009
[8859x4]
that and / or better interactive feedback when the refresh can support 
it.
right now I'm testing a forever loop ...
but if there is something builtin that can precisely trigger precisely 
the rate we ask it, I'd prefer to go with that.
right now asking for a rate is always about 66-75% off, even using 
wait 1 / 30 or 1/100 will consistently be off by a window of 66% 
to 75%
Steeve
24-May-2009
[8863x2]
there is not to my mind.
i have this limit too in some scripts
Maxim
24-May-2009
[8865x2]
its funny cause if I do a timed wait 0, I go up to over 100000 iterations 
a second.
so clearly, the rebol event engine is capable of much higher throughput 
than its allowing.
Steeve
24-May-2009
[8867x2]
he can but it's a design limit.
the rate you enter on a face is not taken in account. 
Time events are always throwed at the same rate.

Then there is some internal counter for each face which have a rate 
value, to know when the time events must be dispatched to them.
I don't know if i'm clear...
Maxim
24-May-2009
[8869x3]
the rate is taken into account if you set it before opening the window, 
but cannot be changed after.
but beyond 5 / second, is progressively gets off by the above percentages. 
 up to a maximum of 15/s when you put it at 24
but I am now building a precise timed function which is taking 1% 
cpu and can go up to  60 frames/second consistently.
Steeve
24-May-2009
[8872]
wrong, it can be, but you must do a refresh on the face, after changing 
his rate
Maxim
24-May-2009
[8873]
beyond that and the wait goes into madness mode and consumes 100% 
(of one core)
Steeve
24-May-2009
[8874]
What i mean, is that, there is 2 rates.

One for the inner event handler which is always the same (the limit 
you pointed 15 ev/sec)
And the rate of the face, wich is basically a counter
Maxim
24-May-2009
[8875x2]
this might have been fixed in a later view, cause it didn't update 
before.
ah ok.
Steeve
24-May-2009
[8877x3]
So even if you fix a low rate 1 ev/minutes on a face, The time events 
continue to be send at a rate of 15 ev/sec in the inner event handler.
It can be the reason why it consumes so much time
i got the problem in area-tc
and there is another one problem, It consumes time and memory, you 
have to to do frequent recycles.