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

World: r3wp

[!REBOL3 GUI]

Pekr
19-Jan-2011
[5338]
OK, I'll redownload all stuff again from RMA ...
Ladislav
19-Jan-2011
[5339x3]
that may not help, I probably have a bit newer code
or, maybe I use a different system
But Cyphre might be able to reproduce your problem once he is back
Pekr
19-Jan-2011
[5342x2]
I redownloaded everything. Still the same ...
the culprit is set-panel-content -> insert-panel-content -> parse 
panel .... imo :-) I'll wait for newer code containing some fixes 
...
Robert
19-Jan-2011
[5344]
stackoverflow: We are taking care of this with Carl at the moment. 
We have a test-case where I can reproduce the problem.
Pekr
19-Jan-2011
[5345x2]
Carl? Nice. The culprit is the following code, which is simply wrong:

show-native: :show
show: funct [gob] [
    update-subgobs gob
    show-native gob
]
show-native calls show = itself ... strange indeed, as It does not 
crash with first viewing of the window, but at the second viewing. 
Do you think the problem is low level?
Ladislav
19-Jan-2011
[5347]
simply wrong
 - why do you think?
Robert
19-Jan-2011
[5348]
This is the code:

code: view [
    title "Opinion Survey"
    text "Do you want programs to be easy to build?"
    hpanel 2 [
        label "Answer:"
        hgroup [
            radio "Agree"
            radio "Disagree"
            radio "Not sure"
        ]
        pad
        check "I'm a programmer."
        pad
        check "I am also a REBOL expert."
        label "Name:"
        field
        label "Comment:"
        area
    ]
    hgroup [
        button "Submit" submit http://www.rebol.net/cgi/submit.r
        button "Reset"  reset
        button "Cancel" close
    ]
]

loop 10 [
	do code
]
print "all code passed - no crashes"
halt
Ladislav
19-Jan-2011
[5349x2]
all code passed - no crashes
regarding the above Show-native issue - that is a do-once-only-code, 
as I see it. If you run it only once in the console, you don't get 
any stack overflow
Pekr
19-Jan-2011
[5351]
aha, you see? my wrong understanding :-) I thought calling such a 
show causes infinite loop :-)
Ladislav
19-Jan-2011
[5352x5]
But, sure, that should be corrected to not cause any trouble if somebody 
inadvertently runs the code twice
as a temporary measure, you could replace the

show-native: :show

by

unless any-function? :show-native [show-native: :show]
...or

if command? :show [show-native: :show]
Robert, does that cure the problem for you?
How about you, Pekr?
Robert
19-Jan-2011
[5357]
Lad, sorry, what should I change where?
Ladislav
19-Jan-2011
[5358]
I posted the changed version of code to our SVN depository
Robert
19-Jan-2011
[5359]
Ah, ok.
Ladislav
19-Jan-2011
[5360]
(since I was unable to reproduce the problem, I bet it is exactly 
because I never ran the LOAD-GUI twice)
Robert
19-Jan-2011
[5361]
Works. Differently from handling but works.
Pekr
19-Jan-2011
[5362]
It works. But it was not enough to just change the view-show.r3 code, 
and call it after do %r3-gui.r3, as the initial redirection will 
remain. A bit tricky, as there is no script to build new r3-gui.r3 
from sources, and sources are collapsed, but I managed it to change 
:-)
Ladislav
19-Jan-2011
[5363x2]
well, the next update will cure this issue for everyone, this was 
just for checking
thanks
Pekr
19-Jan-2011
[5365]
Is it possible some styles are not adapted well to resizing? When 
I removed 'when style, the space at the top of the panel is not there 
anymore. Then I removed clicker too, upon your suggestion. But - 
when I lower the size of the window, the display is still corrupted 
...
Ladislav
19-Jan-2011
[5366x2]
Sure
(meant for the "not adapted")
Pekr
19-Jan-2011
[5368x2]
Aha ... and is there any list of "should work well" styles?
Resizing problem reduced down to button plus text: http://xidys.com/pekr/rebol/messy-resizing2.jpg
Ladislav
19-Jan-2011
[5370]
thanks
Pekr
19-Jan-2011
[5371]
To get that, you need to try xy times. Most of the time I am holding 
down the bottom-right corner, moving randomly the mouse (I remember 
REBOL in the past did not receive updated info about about size, 
unless mouse button is released), and it accidentally can end like 
that. Dunno if any such info is helpfull ...
Maxim
19-Jan-2011
[5372x2]
I really would like it if Carl could fix the event port so that it 
lets all resize events go to the even handlers.


right now, the graphics code has access to it, (because you can see 
the AGG gobs refresh when the window resizing) but the REBOL event 
handlers receive only the last resize event.  which means we cannot 
resize the view while its being dragged.
by resize the view, I mean refresh the layout iteslf.
Pekr
19-Jan-2011
[5374x2]
I really would like it if Carl could fix the event port so that it 
lets all resize events go to the even handlers.
 - that is long time problem, even for R2?
I am for the fix, as it really looks ugly as it is ....
Maxim
19-Jan-2011
[5376x2]
yep.  but in R3, I can actually see that the window resize events 
are being triggered while we drag the window size.. but for some 
reason they are not being pushed to the handler.
in R2 its pretty weird.   the event handler *accumulates* all resize 
events and then when you release the resize bar... it sends all of 
them to the handler in one stream.... just totally not at the right 
time  ;-)
Pekr
19-Jan-2011
[5378]
but for some reason they are not being pushed to the handler.

 - is that the mezzanine level, or low level? If the fix is easy, 
 I am all for it. I just think that it might not be the priority. 
 The question is, if the resizing is not confused by receiving wrong 
 info, when holding the mouse button down, resizing here and there, 
 and then releasing it :-)
Maxim
19-Jan-2011
[5379]
afaik, its within the port mechanism, when events are created, for 
some reason, the resize events don't end up at the port handler.


I remember trying to fix this in the host-kit and didn't find the 
solution.  I tried a few things but nothing worked... so I moved 
on but that's like 3 months ago already so the details are fuzzy 
in my mind.
Ladislav
20-Jan-2011
[5380]
Pekr, if you want to make e.g. a HPANEL with a given content, you 
can use the MAKE-FACE function anyway:

child: make-face 'hpanel [break-after: 1 content: [button "OK"]]
view child
Pekr
20-Jan-2011
[5381x2]
thanks ....
are there any accessor functions, how to easily list face, pane, 
style etc. structure? I mean without references? I would like to 
see (e.g. in docs, or by query) the ability to list face, gob, style 
structure ...
Ladislav
20-Jan-2011
[5383]
Pekr, regarding your

lay: [

		when [load] do [print "Load trigger!"]
		clicker
		button "Do" alert "Button pressed!"

  button "Big Quit Button" maroon options [max-size: 2000x50] quit
		bar
		text "Toggle button..."
		t1: toggle "Toggle" of 'tog
		button "Set False" set 't1 false
		button "Set True"  set 't1 true
		toggle "Mirror" attach 't1
		toggle "Mutex" of 'tog
		bar
		text "Radios and check boxes"
		radio "Set above toggle on"  set 't1 true
		radio "Set above toggle off" set 't1 false
		bar
		check "Checkbox attached to above toggle" attach 't1


]

child: make-face 'vpanel []
set-panel-content child lay
view child


example - it is incorrect, since you try to give VIEW a HPANEL instead 
of a WINDOW, I suppose, that it was just a test, how it would look?
Pekr
20-Jan-2011
[5384]
Yes, it was a test, to isolate the example form layout from the demo 
....
Cyphre
20-Jan-2011
[5385]
Pekr, since you are passing the FACE object as argument to VIEW, 
currently, it jsust shows what you pass.
Pekr
20-Jan-2011
[5386]
I thought that gob, panel, are directly "viewable"
Cyphre
20-Jan-2011
[5387]
So in your case the example should look like:

lay: [
	backdrop [
		<your layout here>
	]
]
okno: make-face 'window reduce/no-set [content: lay]
view okno