AltME: R3-GUI

Messages

GrahamC
but using decode 'GIF read url works
yoffset
I misunderstood your original aim.  
You are correct.  Works with a regular nested view, but not with a nested view/modal.
yoffset
view is type gob!
but view/modal is type none
re-   but using decode 'GIF read url works
cool !  thanks !
Cyphre
GrahamC: the view/modal should work now...get the latest version either from github or use LOAD-GUI
Cyphre
regarding the GIF loading...this is a bug in LOAD...I suspect it parses the URL for the image suffix at the end only so:
;this is not recognized filetype
LOAD http://i.stack.imgur.com/XgLe7.gif?s=128&g=1&g&s=32
;but this will be recognized as GIF filetype
LOAD http://i.stack.imgur.com/XgLe7.gif?s=128&g=1&g&s=32&.gif
Someone needs to fix LOAD parser or even add file type signature recognition to LOAD...

yoffset
This code doesn't call the draw dialect, and works.
Bck: make image! 500x500    
View/no-wait [image Bck]
    Draw Bck to-draw [
line-width 1 fixed
pen white
fill-pen blue
box 120x20 220x120
skew 15x15
fill-pen red
box 120x125 220x225
reset-matrix
skew -15x-15
fill-pen yellow
box 120x230 220x330
    ]
    copy []
    
Do-events
This code does call the draw dialect, and doesn't work, for some unknown reason.
ar: [
line-width 1 fixed
pen white
fill-pen blue
box 120x20 220x120
;skew 15x15
skew .15
fill-pen red
box 120x125 220x225
reset-matrix
;skew -15x-15
skew -.15
fill-pen yellow
box 120x230 220x330
    ]
view/options [
    tight [
    drawing ar
    ]
] [
init-hint: 600x650
]

yoffset
So I'm trying to figure a way to activate a break in a loop, to stop, from an exterior button press.  Seems a bit trivial but I'm not getting it.  Any suggestions?
GrahamC
yoffset
The toggle suggests another approach I hadn't thought about.  Thanks.
However, it doesn't solve my original problem.
Here is some obvious pseudo-code that doesn't work.  Any ideas/
num: 3
view [
    when [enter] on-action [
        while [num = 3] [
        print num wait 1
        ]
    ]
    button on-action [ num: 2 ]
]
GrahamC
All action blocks in r3-gui are closures.  Set-words will access the local context  only.  But when searching for a the value of a word, the system/contexts/user is searched after a word is not found in the local context..  So, the enter action block accesses num from system/contexts/user but the button action block is setting a new local of num to 2.  
To fix the issue, change num: 2 to set 'num 2, or system/contexts/user/num: 2
Ie. when the closure is created, the action block searches for set-words and creates locals.  This is the same as what we used to call 'funct, and now 'function
yoffset
system/contexts/user/num: 2  works.
I knew it was a closure problem, but I don't recall seeing this path in any docs.
Thanks.
yoffset
Well, that's interesting.
enter   ? system/contexts/user     and it looks like a handle on most everything.

GrahamC
Carl had a habit of writing blogs instead of formal docs
GrahamC
@Cyphre, I have a suggestion on implementing externs in action blocks
https://github.com/saphirion/r3-gui/blob/master/source/layout-dialect.r3#L80
change to:
extend-face last-face 'actors reduce either block? body/1 [
    extern: take body [act funct/extern/closure [face arg] body extern]
][
    [act funct/closure [face arg] body]
]
If one wanted it more literate, you could make it
on-action [ extern: [  list of external words ] rest of action block ]
What do you think?

Cyphre
Graham, you mean more like:
on-action [[  list of external words ] rest of action block ]
at least that's what the change does.
I'm ok with that change as it shouldn't break older actors code. It should be very rare to start actor with a block definiton.
Anyone else here who is against that change?
Cyphre
yoffset: regarding "his code does call the draw dialect, and doesn't work, for some unknown reason." - yes, that's a bug. The SKEW command arg syntax changed (form decimal! to pair!) in the late aplhas but the parser definition remained old in one place.
I uploaded the fix to github and also made new build so LOAD-GUI should give you correct behaviour as well.

Bo
Back in the old days on Rebol2/View, it was possible to do something like this:
    save/png %myimage.png to-image layout [box 100x100 green text "Hello World!" image %flower.jpg]
I just tried something like that on Rebol3/View, and I get:
    >> to-image layout [text "Test"]
    ** Script error: object! type is not allowed here
    ** Where: to to-image
    ** Near: to image! :value
Is there a different way of doing this?
Cyphre
yes, you can do it like:
lay: layout [text "Test"]
write %layout.png encode 'png to-image lay/gob
Andreas
And instead of the `write %layout.png encode 'png ...` you should also be able to use just `save %layout.png ...`.
Cyphre
yes, using SAVE is shorter :)

Bo
Great!  This is going to help with the ability to display GUI elements and graphics on the ODROID-Show module (320x240x16 screen controlled through USB - retail price $25).  I've written a dialect to make using the screen easier via the text-based commands, and wanted to add a component to get the graphics to work as well.
amacleod
Bo, Thats a cool (and affordable) screen. Is there a touch solution that works with it that you know of?
Bo
No, I don't know of any touch ability.  However, there are companies that make overlays that use USB, although I don't know if you could find one that is 2.2 inches in size.

GrahamC
@cyphre, I was suggesting that we could look at different syntaxes eg.
on-action/extern [ action-block-here ] [ extern words here ]
on-action /extern [ action-block-here ] [ extern words here ]
on-actioin [ [ extern words here ] and rest of action block here ] <= this is the implementation I provided
on-action [ extern: [ extern words here ] rest of action block here ]
and was wondering what is most consistent with the r3-gui dialect as well as funct/extern

Cyphre
Graham, the implementation you provided looks like most convenient from the user's pov

GrahamC
I'm okay with that though it looks a little opaque

GrahamC
Demo of R3GUI with server, being driven by console clients generating tcp events to update the GUI
There's a task queue with tasks holding the jobs to be done by the console clients, and a callback when done.  In this case, the tasks are just downloading web pages.
not to be confused with task!
Bo
Nice demo!  I hope to get more into this type of thing soon.  Also, now I know what your voice sounds like. :-)
james_nak
Very cool Graham. I agree with Bo that it was nice to hear what you sound like after so many years,

Bo
Does anyone know of a graphing module written for R3-GUI?

Robert
I just fixed an annoying config screw up from Apple. So, the R3-GUI docs are back again. Sorry that it took that long.
GregP
Thanks a lot Robert, a lot more useful now !
Robert
It's still crap because the docs are taken from the SVN. I need to change the whole setup to sync it local to the server and create the docs from there.
That's why the load times take so long.

Davros
Good day, everyone. I am looking to improve the appearance and usability on my script on my Android phone. I added tabs to my script and now it does funky resizing things. The content of the GUi is now smaller than the screen and scrolls bas appear on the side. These scrollbnars are tiny and near impossible to use on a touchscreen. Even if one does manage to move them the contents start to draw on top of  one another. Is this just a fact of ithe interpreter being an alpha release and Android being an oddity or are there things I can do to improve the situation? Thanks.
yoffset
Rebol []
;   Do %r3-gui.r3
;   Do %requestors.r3
; gui-metric/set 'unit-size (gui-metric 'screen-dpi) / 72
This should help.

Davros
yoffset: Thank you. I saw references to gui-metric before but my use of it did nothing so I theorized that it was an outdated document and kind of forgot about it. I tried it just now and while it did not fix the issue it did help. The script still behaves oddly in terms of sizing, but no elements are on top of each other, etc. 72 did not work for me, but I found a number that did. The GUI still draws itself limited to an area in the middle of the screen, but turning the phone to landscape orientation and then back to portrait causes Rebol to redraw the GUI and it then comes close to filling the screen. I can swip to the left and see all of the GUI width wise. Scrollbars appear and I can with difficulty use them to scroll down to the bottom of the GUI.  Anyone know how to increase the size of the scrollbars? Also, my tabs are pretty small and not displaying their entire label. Any suggestions for these two small things?

Bo
I tried to run R3-GUI today on the most recent version of R3 from Atronix, and it errored out. Any idea why?
>> about
**************************************************************************
**                                                                      **
**  REBOL 3.0                                                           **
**                                                                      **
**    Copyright: 2012 REBOL Technologies                                **
**               All rights reserved.                                   **
**    Website:   www.REBOL.com                                          **
**                                                                      **
**    Version:   3.0.99.4.20                                            **
**    Platform:  Linux libc6-arm                                        **
**    Build:     9-Mar-2015/14:12:38                                    **
**                                                                      **
**    Language:  English                                                **
**    Locale:    United States                                          **
**    Home:      /var/www/                                              **
**                                                                      **
**************************************************************************
>> layout [title "Test"]
** Math error: math or number overflow
** Where: + either repeat do update-panel actor all foreach do-actor case repeat do update-panel actor all foreach do-actor either make-window-layout layout
** Near: + max-heights/:i
The same thing happens with 'view
Bo
OK. It was my fault. I was trying to run view from an SSH session expecting that the output would show up on the main desktop. It didn't and had the error instead.
Is there a way to attach the output of R3's View component to a different desktop on Ubuntu?
Bo
I'm trying to do some things with R3-GUI that were simple in R2 VID. For instance, how do I do a 'view/new where it returns control to the script after displaying the layout?
NickA
view/no-wait

Gabriele
Bo, you want "ssh -X"
or, "export DISPLAY=:0" if you want it to appear on the local display rather than your remote one
(the latter you type *after* logging in via SSH)

Bo
NickA and Gabriele: Thanks a lot! It's amazing how much knowledge you all have. :-)

Bo
Next thing I want to try is to resize an image in R3-GUI. I'm trying the following which isn't working:
view/no-wait/options [
    box 240x320 black
    y: image %img/eye1.gif 20x20 with [facets: [max-size: 20x20 min-size: 20x20]]
    z: image %img/eye1.gif 20x20
][offset: 0x0 flags: [no-title on-top]]
It is displaying the image in full size.
In VID, we used to be able to do this:
view/new layout/size [
    across
    background black
    y: image %img/eye1.gif 20x20 effect ['fit]
] 240x320
Things seem much harder in R3-GUI.

DocKimbel
I am doing some tests with Saphirion's R3-GUI (as I cannot figure out how to run Carl's GUI). What's wrong with this code:
>> view [b: button "hello"]
** Script error: layout word is not bound to a context
** Where: if view
** Near: if block? window [
Ok, got it:
>> load-gui
Fetching GUI...
>> view [button "hello"]
== make gob! [offset: 890x562 size: 140x34 alpha: 255 text: "REBOL: untitled"]
Where does `load-gui` store the loaded code? I can't find it in system/view and system/view/VID seems to be gone in R3...
Pekr
Carl's GUI is different. Not sure it will work with Saphir's code?
DocKimbel
If I say that I'm lost in the R3 GUIs ecosystem, I guess it would feel familiar to others. ;-)
Actually, I just wanted to have a look at how R3 implements a style, especially how actors are stored. In Carl's docs, they seemed to be stored in a block, I just wanted to check in the code if that was the case for real or not.
Pekr
>> source load-gui
load-gui: make function! [[
    "Download current GUI module from web. (Temporary)"
    /local data
][
    print "Fetching GUI..."
    either error? data: try [load http://www.rebol.com/r3/gui.r] [
        either data/id = 'protocol [print "Cannot load GUI from web."] [do err]
    ] [
        do data
    ]
    exit
]]
>>
ok, can feed you some docs ....
There are Carl's GUI docs, which implement actors, reactors, and then public Github repo of Saphir docs, which cancelled reactors ...
DocKimbel
I want to check the source code, not the docs.
Pekr
ah ...
DocKimbel
I decompressed the GUI sources from the rebol.com link, so at least I can have a look now. :-)
Pekr
I have somewhere even Gabriele's GUI :-)
What I like about the R3-GUI is on-* actions ...
You can look into Saphir's docs here .... (even that I know you prefer sources :-) http://development.saphirion.com/rebol/r3gui/
I like how facets, options are separated, as well as actors, and whole style is drawn using a draw dialect ...
Pekr
So, I hope we get nice code patterns like follows:
stylize [
    my-progress: [
        about: "Progress bar."
        facets: [
            size: 200x22
            max-size: 1000x22
            edge-color: 96.96.96
            area-color: 80.80.80.128
            area-fill: span-colors area-color [.3 .5 1]
        ]
        options: [
            bar-color: [tuple!]
            size: [pair!]
        ]
        faced: [
            bar-color: teal
            bar-size: 1x1 ; modified by the progress % value
            bar-fill: ; generated from bar-color option
        ]
        draw: [
            pen edge-color
            line-width 1.5
            grad-pen 1x1 0 20 90 area-fill
            box 1x1 area-size 3
            grad-pen 1x1 0 20 90 bar-fill
            box 1x1 bar-size 3
        ]
        actors: [
            on-make: [
                face/facets/bar-fill: span-colors
                get-facet face 'bar-color [1.0 1.5 .6]
            ]
            on-set: [ ; arg: event
                ; Update the bar size from the face value.
                face/state/value: arg/2
                v: clip-face-val face
                size: get-facet face 'area-size
                face/facets/bar-size: as-pair v * size/x size/y
            ]
        ]
    ]
]
view [
    prog: my-progress
    button "Set 50%" set 'prog 50%
]
Notice that facets are shared, whereas faced are private. Also notice the SET VID level reactor ...
Remember - Carl spent 3 months designing it and writing a prototype. That was time spent for good ... and Red gui should aim no less ...
Reichart
:)
DocKimbel
My method is iterative, I don't do tunnel-development. ;-)
Where is that code example coming from?
Henrik
"My method is iterative, I don't do tunnel-development." - which is how VID Junior is meant to be done. :-)
DocKimbel
Ok, found the source of the example:
http://www.rebol.com/r3/docs/gui/styles.html
Pekr
Well, not sure about the styles, if you want to map to native widgets ...
I still remember Cyphre's remark in Brno - how many usefull widgets are there in the OS anyway? How cross platform are they? So we have fields, areas, buttons, images, radio buttons, check boxes. What about more complex ones, as grids? Win32 API apps look uglier, than old 70ish unix clone. And - design sells. Let's hope, that this time, we are going to dress that :-)
DocKimbel
Red has different needs, like willing to _compile_ as much code as possible vs run it through interpreter. So the actors above need to be defined differently so that the compiler can effectively find and process them.
"Win32 API apps look uglier, than old 70ish unix clone" On each Windows platform, you will get the native OS look'n feel, I don't know what you are talking about.
Pekr
DocKimbel
I had a preview of that in Windows 10... that's what I would call "ugly". ;-)
Pekr
:-)
Robert
Doc, if you use our release on Windows:
>> source load-gui
load-gui: make function! [[
    {Download current Spahirion's R3-GUI module from web.}
    /local data
][
    print "Fetching GUI..."
    either error? data: try [load http://development.saphirion.com/resources/r3-gui.r3] [
        either data/id = 'protocol [print "Cannot load GUI from web."] [do err]
    ] [
        do data
    ]
    exit
]]
>>
DocKimbel
Robert, thanks, downloaded and decompressed it.
Robert
The few docs we have are on our development.saphirion.com web-site. And yes, R3-GUI targets something different then VID or Carl's idea. It's for long-maintenance, business applications. So, not for a quick & dirty approach.
I don't know how often I explained this... If you expect a VID on R3 don't use R3-GUI, it's for full-blown applications.
Pekr
I am not sure it differs much to what Carl prototyped? All R3 GUIs are light years ahead from VID, conceptually ....
I am just skimming thru the Windows 10 universal apps. They have even a Git repo for that. The world is still insane - tonnes of XMLs. If Red wants to link to that natively, not sure yet, how to do it. Most probably generate via some templates.
DocKimbel
"It's for long-maintenance, business applications" Can you elaborate more on that? What are the features that makes it more suitable for business applications?
Pekr
What Robert means is, that no all R3 GUI concepts are easy, but they are flexible to build "whatever" app you envision.
basic gui elements, plus events, chaining, updates, resizing ...
DocKimbel
I never had much trouble building any app I envisioned with R2/VID, it was flexible-enough to me.
Henrik
R3-GUI was developed in a purpose driven manner with some specific apps in mind. That's why for example the table widget is rather complex, because the app needed said features for the table.
also there's some support directly in layout to connect forms to databases.
DocKimbel
We had a few resizing libraries since more than a decade for R2, just not included by default in the View distro. I even wrote my own one and used it in many apps.
Pekr
I really liked Carl's demo - simple, elegant, juicy colors ... and I am still admiring, how VID code could look nice ... You can give it a try, just type - demo
http://2zone.cz/pekr/r3-a97-3-1.exe
DocKimbel
Thanks for the link.
Pekr
Saphirion's executables have demo too, IIRC?
DocKimbel
No resizing support in Carl's demo...
I played with Saphirion's demo earlier today.
Henrik
Resizing was changed from Carl's model.
Pekr
it resizes. But Carl marked it as needing an improvement. Resizing is one part, which was rewritten by Ladislav
He kind of put an academic precision into it, but also complicated it a bit - you have multiple containers to consider, called panels ...
DocKimbel
Why Saphirion chose to drop Carl's reactors? Couldn't they be improved to cover more business-oriented needs?
Pekr
They did not find them flexible enough ...
Robert
Doc, it's more a "philosophical" point what everyone understands by "maintainable" and "big business applications" overall I think it has more features, can be better extended, uses the same concepts over and over again, is much more explicit (which results in more to type).
Pekr
but then your VID code is ugly ridden with 'on-action keyword, or something like that ...
Henrik
R3-GUI also contains ways to easily test your GUI, which is very valuable.
DocKimbel
"it resizes." No widget resizing here when I resize the window (in Carl's version).
Pekr
I think that R3 GUI model is good, maybe we could "just" switch it to native instead than AGG, but AGG is just so much better than Win32 GDI, just not accelerated, but nor is typical Win32 app?
Robert
We could but for what? For B2B apps, no need.
Pekr
Well, the problem is (if it is a problem), that you don't use native OS metrics, skin, etc. So your app does not reflect that ...
All I want from my apps is - working fast enough, being pretty. What is and is not pretty differs pretty much between the users :-) E.g. I like flat design, Doc does not like it :-)
Robert
As said, we were never asked about this. I keep everything away from us, what we don't have to take into account. The less parts, libs, etc. we have the better.
DocKimbel
"GDI is hardware accelerated on Windows XP, and accelerated on Windows 7 when the Desktop Window Manager is running and a WDDM 1.1 driver is in use. Direct2D is hardware accelerated on almost any WDDM driver and regardless of whether DWM is in use. On Vista, GDI will always render on the CPU."
On Windows 7: " For example, text rendering, BitBlts, AlphaBlend, TransparentBlt, and StretchBlt are all accelerated in these cases."
amacleod
"Cyphre's remark in Brno - how many usefull widgets are there in the OS anyway?"
This is my concern too. Anyone have a link to a widget list on windows and mac.
How cross platform will/can Red view be?
Pekr
Well, the cross-platformness is not my worry in fact. Most probably I would prefer, if my Android app feels like being an android app. The same for Windows. But I would definitely like to have some nice draw-like engine, to allow for custom content.
amacleod
I want to write once deploy anywhere. I do not have time to rewrite sections of code for each platform. WebApp + phoneagap give me that...I just hate web dev....I want red dev.
amacleod
Something like http://kivy.org/ - an Open source python library
of course without the 192 meg down load size
DocKimbel
"How cross platform will/can Red view be?" We'll support more widgets than the default set Rebol/View gives you, though not in the first Red/View version. This is what we aim for desktop platforms (with a good part of them also available on mobile platforms):
http://www.eclipse.org/swt/widgets/
amacleod
SWT is hitting the native api widget set on windows and mac the same way you plan or is this an example list?
james_nak
A customizable requester system would really be nice as well, not just for obtaining new information but also for presenting existing info/states. As I have stated previously, Henrik's VEK was pretty good at this.
PeterWood
SWT uses the native API GUI.

DocKimbel
Alan: both. :-) Though, our list won't exactly match, but it should be very close.
DocKimbel
Face/edge seems to gone in R3 GUI, what happened to it? As the feature been moved elsewhere?
http://www.rebol.com/docs/view-face-content.html#section-15
As => Has
Rebolek
Edge is now part of draw block.
DocKimbel
Any links about how "draw blocks" work in R3 GUI?
DocKimbel
Has DO-COMMANDS been implemented in R3?
http://www.rebol.com/r3/docs/functions/do-commands.html
DocKimbel
Edge: so actually, it's really gone as I see in R3 GUI that you need to manually write code for drawing edges. Anyone knows the reason of this change from R2? I always found face/edge very convenient in R2.
Rebolek
R2's edge may be convenient but is too simplistic also. You have just few presets available. In R3 GOB system, you would need to implemented it using special GOB or special DRAW block which would be appened/inserted to main DRAW block (but taht is something that is possible with small effort with current implementation).
What do you want to know about draw blocks in R3 GUI? You can have one or more of them, each for different state (focused/non-focused state, etc.). Some variables are bound so you can change colors globally and the block is composed before use, so it's possible to use some math.
DocKimbel
You can pass a DRAW block to R2's edge when you need more complex layouts.
Rebolek
I think there was some talk to add something like EDGE to R3GUI, to simplify things like focus, but noone ever implemented it.
DocKimbel
Thanks for the info. I will most probably support EDGE facets in Red/View.
Gregg
I liked EDGE too, and images could be used for it too, though I never did more than play with that, I thought that was the original intended way to do more advanced edges, if not as eifficient as DRAW. I do remember Carl saying something about not like EDGE himself, so it went away.
I suppose using edge was somewhat redundant if you used an image with 'extend to make your shapes. Chris R-G often made very nice looking styles with R2, so worth getting his input as a designer as well.
Pekr
R3-GUI was supposed to be mostly a draw based, no bitmaps ....
Rebolek
EDGE is fine for some widgets. If you have for example circular radio button, EDGE won't help you very much.
Gregg
Vector is the way of the world for many things now, because of varying display densities and screen sizes, but EDGE can still get you a long way IMO. At least for squares like me. ;-)
Oldes
Actually rendering bitmaps is stil the most efficient way and so is used on mobile devices. You just must do it in the way how GPU likes it, for example use texture atlases, multiple assets per resolution, etc. Drawing gui using CPU is a no-go on mobiles and OSes too... no wonder that Vista was so bad OS, when it had only CPU gui rendering. Using pure vectors on GPU is also not that good, if you don't need just rectangles... because of expensive anti-aliasing.
If Vector was "the way of the world", Flash would not be banned from most mobiles.
And although browsers did big improvements since last years with SVG rendering, it still sucks a lot with performance.
Henrik
I have to agree on bitmaps. Also, I can't imagine designers ever spending more than a few moments on DRAW before they throw up their hands and go back to Photoshop, as it's just much easier to work out skins there.
Oldes
The most popular UI for Flash platform for Stage3D (GPU) is http://feathersui.com/ - you can see that it's using bitmaps too:
https://github.com/joshtynjala/feathers/blob/master/themes/MetalWorksDesktopTheme/assets/images/metalworks_desktop.png
Henrik
It doesn't mean you can't work out the UI in a vector illustrator app, if you so desire, and then export it to a bitmap.
Oldes
Right... you can even use slow but nice CPU randering into bitmap, which is than used as your assets on GPU.
Henrik
I enjoyed working out the old test artwork for the R3 GUI, but it isn't realistic to ask a designer to use DRAW to make new skins.
Pekr
Henrik - I don't believe, that doing styles in PS is faster than using Illustrator, unless you admit, that you don't know the Ilustrator.
Of course - if you then use it to generate bitmpas, why not, but doing arrows, buttons, etc. should be imo faster with the Vector SW ...
Henrik
Pekr, I never said that. I said that using DRAW to make skins is much more laborious than using an artwork application like Photoshop or Illustrator.
And these days, those two kinds of apps are merging.
Pekr
ah, by draw you mean - our rebol draw, not vector SW in general?
well, if Ilustrator or Inkscape can generate SVG, then maybe it is a pity draw is not an SVG container ....
Henrik
Yes, I meant using DRAW directly. Using SVG, I'm not a fan of either, as it doesn't work very well for pixel accuracy.

Bo
Having trouble using 'load-gui from the Atronix build. Seems http://atronixengineering.com/r3/r3-gui.r3 is not accessible. Anyone else having this problem? Do you know where I can get r3-gui.r3?
I've tried http://development.saphirion.com/resources/r3-gui.r3, but it doesn't seem to be compatible.
I've also tried downloading Atronix's latest Development release, but 'load-gui is also not working on that.
Any ideas?
WiseGenius
I'm having the same problem, and I don't know the solution either.
SWhite
That's funny.  I tried to download and run the Windows version of their REBOL, 32-bit and 64-bit, to try on my Windows 7 computer, and I got a message about it not being compatible with my computer.  I was going to try a different download option to see if it was a corruption issue.
Robert
Bo, what's happening with the Saphirion R3-GUI version? Does it crash?
Pekr
Not wanting necessarily to steal the thunder, but maybe, GUI wise, it is a time to start looking into the Red option ....
Bo
Robert: It seems to not be compatible with the Atronix R3-GUI, because my program runs fine when 'load-gui works. With Saphirion's, my program errors out with:
** Script error: / does not allow none! for its value2 argument
** Where: do resize-panel actor all foreach do-actor either -apply- apply case view do either either either -apply-
** Near: do bind bind/copy [
    size: viewport-box/bottom-right
    ...
ddharing
Sorry guys. We deployed a new website on Friday and a few files did not get transferred over. We'll have this fixed soon.

NickA
ddharing, wouldn't it be best to use something like 'load-thru for something as critically important as r3-gui.r3 ?
Bo
I was thinking about something similar as well. A small checksum file could be placed on the Atronix site along with r3-gui.r3, and 'load-gui on the client could compare the checksum of the local copy of r3-gui.r3 against the one on the site. If it was different, then it could download the new copy.
ddharing
That's a good suggestion. I'll pass it along to Shixin.

Bo
Do you know when 'load-gui will be working again?

ddharing
It should have already been fixed. Sorry. It will be working tomorrow even if I have to do it myself.
Bo
Thanks David!

ddharing
Bo, we have a temporary workaround for the load-gui issue ahead of a more permanent fix.
To give you a little background, we migrated our main website to Squarespace which doesn't allow direct access to the directory. This means that we can't host individual files from Squarespace. The only workaround for this is to create a URL mapping in Squarespace to point to our old 1&1 server. Unfortunately, Rebol3's HTTP protocol does not support redirects. So, because of a combination of Squarespace and Rebol3 limitations, we don't have a clean solution.
The temporary workaround is to download the Atronix version of r3-gui.r3 from this URL: http://s293761966.onlinehome.us/r3/r3-gui.r3. In your script, "do" this file instead of using load-gui.
We are in the process of creating a new sub domain (rebol.atronixengineering.com) and will release new builds of Rebol which will point there. Additionally, we plan to make the download optional -- if there is no local file.

Bo
OK. That seems to work. But I wonder if something changed. My script that used to work is now giving me the following error:
REBOL Host Failure:
Parent window can't be found
ddharing
That is strange. I just looked at the source for load-gui. I don't see how that could be happening.
BTW, the new subdomain is working. The new URL is http://rebol.atronixengineering.com/r3/r3-gui.r3.
Robert
Bo, are you sure you use the right R3 version?
Bo
I just downloaded it from Atronix.
ddharing
Bo, I just posted the new binaries with updated URLs. Please go to http://www.atronixengineering.com/downloads.

Bo
It works!

Pekr
Robert - R3 GUI docs on the saphirion domain are not displayed, some error is displayed: Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo. 0

Maarten
ddharing - the production releases are plain text, no links?
Gregg
I noticed that too, and pulled the dev release, but I also wanted to thank all the Redbol teams that are moving things forward. I hope to surface again before too long and contribute.
Robert
Pekr, thanks... that's such a damnd stupid thing Apple is doing. They update a CLI tool that needs me to press a key as SU... what the hell are they thinking?
Should work again...
Pekr
:-)

ddharing
Maarten / Gregg: Yes, just the dev links are active for now. It's the build that we're using internally. Please let us know if you have any issues.
Actually, we're using a slightly newer one because a few days ago we found a bug that prevented the use of a Mac as an X-terminal to Linux (i.e. X over SSH). That is fixed and the link will be updated soon. We tested using El Capitan and XQuartz 2.7.8 on the Mac.

GiuseppeC
Hi,
  finally I have managed to open my first GUI using R3-GUI from Saphirion.  It is "only" a view on my company database which returns open orders.
My first thanks go to Nick Antonaccio for his guide and Ashley for his fantastic munge.
Now My first question: where do I find a list of ALL styles in R3-GUI ? Is there a way to get it from REBOL3 itself  ?
GiuseppeC
Also, I need to clear the content of a table ROW hitting a button which should be located on the same row.
How could I do this ?
SWhite
Does the existence of R3-GUI on the Saphirion web site imply that people may download it and use it, as one might for example download and use Python from the official Python web site?  Or is there some "proprietariness" to the Saphirion version that makes that not allowed?  .

Henrik
SWhite, no there is nothing proprietary about it.
GiuseppeC
On each example of NickA there is a do%R3-GUI.r3 . I suppose it is the same of load-gui. Isn't it ?
Endo
Yes, but load-gui doesn't work as the URL is redirected but R3 HTTP protocol doesn't work with redirection, as I know. So it's better to download and use it locally as Nick does.

GiuseppeC
I need to interecept the event ON-CLICK on TEXT-TABLE. I need the ROW (multi column) content. How could I do this ? (Also,  where could I find some good documentation ?)
Also, could TEXT-TABLE have invisible fields ?
GiuseppeC
And a last question: is the Android Version of R3GUI updated to the same desktop version ?

GiuseppeC
Is it possble to have a table column which act as button and display a text inside ?

GiuseppeC
I have the following code:
REBOL [
]
load-gui
tabella: [["1" "2" "3"] ["a" "b" "c"]]
view [t: text-table ["prima" 60 "seconda" 60 "terza" 60] tabella
       on-action [
        probe get-face t
        probe arg
        probe get-facet face 'table-data
        probe get-face/field face 'table-data
        ]
      button "Quit" on-action [unview/all]
      ]
I obtain:
1x2
1x2
[["1" "2" "3"] ["a" "b" "c"]]
none
The last two:
probe get-facet face 'table-data
probe get-face/field face 'table-data
As in Nick Antonaccio Guides, should be equivalent
Instead the second one returns "none"

GiuseppeC
Where could I find good R3GUI example scripts / applications ?

Reichart
GiuseppeC
Reichart it is a starting point but not "the definitive guide",
  it seems there is some information spread on: the original R3 documentation, Saphirion's GitHub, the demo script, some forum and Q&A on StackOverflow, Nick Antonaccio Guide's (!!!)  and after you read everything you must consult the source code to understand which is the right statement.
  Also, it seems we lack of software which uses R3GUI to look at its source. So, apart from the demo script I was not able to find anything.
Pekr
GiuseppeC: my question is - whatever you try to develop - why would you choose R3? Original R3 GUI (Carl's version) is non-finished, hence gone. As for Saphirion, I might be mistaken, but - their tools are still mostly R2 (custom RebGUI based?). I wonder, development wise, when, for the last time, whoever touched R3 GUI at all? I don't want to provide wrong assumption here, it is just how I understand the situation, of course lacking any internal information. Henrik e.g. found GUI quite complicated and wanted to start new GUI effort. Does Cyphre work on R3-GUI? Not sure, but I doubt it.
Asfor other R3 efforts - Atronix guys have their own View version, it seems to be OpenGL accelerated. Not sure R3-GUI is going to work with their View version. HostilFork and his Ren-C - he's not much interested in GUI at all, but he kind of cooperates with Atronix and guys are considering switching to Ren-C R3 variant.
So - for me, GUI wise, I would consider 3 options - R2, Red, Ren-C - whatever guys come-up with ...
GiuseppeC
Pekr, I am concentrating on R3-GUI Saphirion version as it is an evolution/change from CARL R3-GUI.
So we Have R2, RED, R3-GUI Saphirion.
Also I don't know where to find ANY info about atronix accellerated opengl version, or  ANY R3-GUI Saphirion chances since 2013-4 as they are no published anywhere.
*chances *changes
Pekr
As for Atronix - their GUI might not be VID anymore. As for their View engine, I think, that in the end, they might release it, dunno though. You would have to ask them ....
As for Saphirion, it is on Github, IIRC: https://github.com/saphirion/r3-gui , inlcuding the link to their docs on Github too ...
GiuseppeC
I already have this link but I don't know if the GUI system has been advanced internally and not updated on GitHub.

GiuseppeC
If anyone from Sapphirion is listening they could clear any doubt to the community.
Robert
I'm listing... and I will repeat what I have said a couple of times.
R3 is not used by us for anything serious at the moment.
R3-GUI was a test and prototype to see how far we can get with Carl's R3 base and some small changes.
The main reason is, as correctly stated, our main product is still R2 based.
So, a technology migration is necessary at some point.
I'm not very confidenet that we will choose R3.
On the other hand, the work we did with R3-GUI is pretty general and the concepts, internals etc. can be used with other technologies like Lua etc. Hence, for us it wasn't a sunk investment.
So, the best you can do with R3-GUI is: Use it and develop it further, read the source and examples.
You have to work your way through it, but there should be enough information available to make it.
It's far from finished and building a good, tested, documented and feature rich GUI framework is something you should expect to take between 6 - 18 months of work. After 6 it's useable (that's what R3-GUI is now), after 12 you can start building apps on it and after 18 around 80% if it will be matured.
GiuseppeC
Hi Robert,
  thank you for the answer.
  I supposed R3-GUI was a complete product.
  Personally, I'll do what you suggest: I'll use it, read the code an the examples.
   It seems a good work and I don't see any reason for not adoping it.
Are you and your team available to help me/us navigate throught code/structures not so easy to understand to us ?
Robert
I can't promise, but just give it a try here.
GiuseppeC
Thanks. Here my first question:
On Github you have
https://github.com/saphirion/documentation and
https://github.com/saphirion/r3-gui
They have been updated on 2015 and 2016.
Who has the most updated content, Saphirion Site or Saphrion repository on GitHub ?

Robert
Good question. IMO it should be the same. But make a x-check by some samples and you will find out.
I'm not managing the GitHub part. It's Lad / Andreas.
saphirion.com uses the stuff from our SVN repository. It uses live access to it. So every change we do there you will see.
GiuseppeC
So,  https://github.com/saphirion/r3-gui could be LESS up to date than the R3View version we download from your site ?
I'll test all the other parts with x-change
Also, just for curiosity: is the REBGUI you use for your software more updated than thr one we could access on your site ?
Robert
Yes
GiuseppeC
So, any work I would like to do for documenting your version of REBGUI would be outdated and potentially lost....
Any chance you will publish it or is it a private/closed project ?

Robert
I can upload a newer version.
Robert
GiuseppeC
Thanks Robert, I see from the log there as been a LOT of work on your version.
I have downloaded rebogui.r from your site but there are no CR/LF.
My goal is to write some documentation either for your REBGUI and R3GUI but without being able to read the source code of the first it woul be a nightmare.
However, from the small parts I have already read, it seem you use windows fuctions directly and support multiple monitors too.

Gregg
What are you viewing with Giuseppe? If may be just LFs, rather than CRLF.
GiuseppeC
DideC
Probably the longest one-line script in the rebol world actually ;-)
Usefull, but pretty unreadable
GiuseppeC
There should have been a problem during generation/upload of the script. Lets wait for Robert
Robert
you should download rebgui.zip
The script rebgui.r is generated and not to work with directly. RebGUI is assembled from multiple source files.
Robert
And here is the source: rebgui-src.zip
GiuseppeC
Hi Robert, if you click "download page" on the first link above the changelog.
You receive:
http://development.saphirion.com/(null)/(null)
GiuseppeC
Ok, I admit I have not found neither rebgui.zip nor rebgui-src.zip
Could you give me direct links please ?

Robert
.../downloads/files/...
GiuseppeC
Forbidden
You don't have permission to access /downloads/files/ on this server.
Gabriele
http://development.saphirion.com/downloads/files/rebgui-src.zip
GiuseppeC
Thanks Q

GiuseppeC
During the past days I have found a lot of pages and documentation which traces work from many developers on R3GUI and on REBGUI too.
It will take some time for me to became familiar with the subject and undestand what is there, what has been removed, changed.
It will be a very difficult task... but I want to face it.

GiuseppeC
Where the latter came from ? Which of two is the better one to use ?
GiuseppeC
Also the FACE chapter:
http://development.saphirion.com/rebol/r3gui/faces/index.shtml
In saphirion documentation I read:
do-face Evaluate the standard action code sequence of a face
While on R3GUI:
http://www.r3gui.com/docs/developer/faces/faces.html
do-face Execute the standard action code sequence of a face
Code also differ:
Saphirion code:
verify: func [
    data [string!]
][
    ;just a placeholder code
    print "verifying face"
    random true
]
view [
    name:  field
    email: field
    button "Submit" on-action [
        unless verify get-face name [alert "invalid name"]
        unless verify get-face email [alert "invalid email address"]
    ]
]
R3GUI.COM code
name: field
email: field
button "Submit" do [
        unless verify get-face name [warn "invalid name"]
        unless verify get-face email [warn "invalid email address"]
]
This time Saphirion site seems more complete.
GiuseppeC
Misses all low level documentation
https://github.com/saphirion/documentation/tree/master/r3/r3-gui/developer/resizing
We find it split in another document
http://www.r3gui.com/docs/developer/resizing/resizing-ll.html
GiuseppeC
GiuseppeC
Lets summarize what I have discoverd so far:
Graham Chiu branch is the only one to have this updated document:
http://www.r3gui.com/docs/developer/layouts/layouts.html
This branch has been created on 1st Jun 2013.
Then he added this file:
https://github.com/gchiu/Rebol3/blob/master/r3-gui/gui.r3
Which is Carl's original GUI
Ladislav polished Saphirion repository the repository and modified some files After 1st of june:
Also he added the EXAMPLES DIR
https://github.com/saphirion/documentation/tree/master/r3/r3-gui
Graham actors files reports may 31st may 2013 as modification date inside the file
https://github.com/gchiu/Rebol3/blob/master/r3-gui/developer/actors/actors.mdp
https://github.com/saphirion/documentation/blob/master/r3/r3-gui/developer/actors/actors.mdp
Saphirion version has no modification date (Discover why)
Graham Faces article is 10 lines longer,investigate why.
https://github.com/saphirion/documentation/blob/master/r3/r3-gui/developer/faces/faces.mdp
https://github.com/gchiu/Rebol3/blob/master/r3-gui/developer/faces/faces.mdp
Reactors come directly from here:
http://www.r3gui.com/docs/developer/reactors/reactors.html
http://www.rebol.com/r3/docs/gui/reactors.html
Resizing is 1line longer
https://github.com/saphirion/documentation/blob/master/r3/r3-gui/developer/resizing/resizing.mdp
https://github.com/gchiu/Rebol3/blob/master/r3-gui/developer/resizing/resizing.mdp
The "Resizing Dir" under  https://github.com/gchiu/Rebol3/tree/master/r3-gui/specs/resizing
is only in Graham repository as Ladislav deleted them because "obsolescence":
https://github.com/gchiu/Rebol3/tree/master/r3-gui/specs/resizing
shortctus-notes.mdp file was inside this directory.
Saphrion version on their site
http://development.saphirion.com/rebol/r3gui/
Is updated to their repository version but lacks the layout file graham has.
R3GUI Log is only present here:
https://github.com/saphirion/r3-gui/blob/master/release/r3-gui-changes.mdp
Hope we now have a correct picture of repositories.

Robert
Pretty simple: For our code our documentation is relevant. And, we changed some concepts from the original R3 gui.
I don't know what the others did.
GiuseppeC
Robert, is it possible you are publishing an old file ?
Please look at this code from LAYOUT secotion from Graham Repository
    view [
        text "Example window."
        button "Close" on-action [ close-window face ]
]
Or .....
    view [
        vpanel [
            text "Show website"
            button "Show" on-action [ browse http://www.rebol.com ]
        ] options [border-color: black border-size: [1x1 1x1]]
        vpanel [
            text "Example window."
            button "Close" on-action [ close-window face ]
        ] options [border-color: black border-size: [1x1 1x1]]
]
....
From your site we have:
view [
    text "Example window."
    button "Close" close
]
and...
view [
    vpanel [
        text "Show website"
        button "Show" browse http://www.rebol.com
    ]
    vpanel [
        text "Example window."
        button "Close" close
    ]
]
I suppose the latter code (from your site) has "reactors" that have been removed. Graham version is May 2013, your site version Jan 2013. Graham version has Copiright Saphirion too...
Robert
These are now the latest versions from our SVN repository.
Jan-2015
Hope this helps
GiuseppeC
GiuseppeC
And I don't find examples too and a lot more.
They seems build in the wong way. Could you please verify ? You need only to compare against:
https://github.com/saphirion/documentation/tree/master/r3/r3-gui ?

Robert
You have all we have... as said, it's totally unmaintained by us for quite some time.

GiuseppeC
Robert, I apolgize for the delay.
Which is the source of the file you have uploaded ? I suspect your repository on GIITHUB https://github.com/saphirion/documentation/tree/master/r3/r3-gui
But if you take a look, they are VERY different in number of files. The ZIP misses about  50% of the files.
Again, could you please check ?

Robert
What should I check?
GiuseppeC
In the archive:
The directory:
\r3-gui\docs\
Is not correct as it should have the content of this one:
https://github.com/saphirion/documentation/tree/master/r3/r3-gui/developer
Instead you can find onli /resizing/
Also:
\r3-gui\docs\specs
Is different from:
r3-gui\docs\specs
GiuseppeC
Also /examples
and /user
Are missing from your archives.
In other words:
your source for the /documentation directory in R3.GUI-SRC.ZIP
is not in sync with
https://github.com/saphirion/documentation/tree/master/r3/r3-gui/developer/
Robert
Yes, that might be the case. As I said, this stuff is AS-IS.
You got everything we have in the state we have. So there is nothing missing, but most likely not in sync.
GiuseppeC
Thanks for the answer Robert, In the next week I'll try to build a repository with the correct file after performing an 1 by 1 check.
*files

GiuseppeC
@Robert @GrahamChiu et all
I have just ended the reconstruction of the correct r3 documentation repository from all the sources around.
It is the first time I use GitHub, so I am open to any note, suggestion, warning...
Repository is located here:
github.com/GiuseppeChillemi/…
Just note that saphirion repository had some old documentation which uses reactors (actors.mdp; layout.mdp) so I have exchanged them with the correct version.
File faces.mdp is for me uncertain which is the correct version. You will find one in:
https://github.com/GiuseppeChillemi/documentation/blob/master/r3/r3-gui/developer/faces/faces.mdp
and another in
https://github.com/GiuseppeChillemi/documentation/blob/master/r3/r3-gui/spare/to-check/faces.mdp
Please poin to me which is the correct one
Also I have created a "Spare" directory where old, historical and uncertain things belongs.
A last note: other than the "examples" directory I have added a "tests" directory from Robert Archives
After your check, I kindly ask @GrahamChiu and Robert to update their respective sites and repositories.
It took me some months and 2 full weeks to undestand I was not reading the correct documentation, that it was not complete and that was the reason I was not able to undestand anything and not because of my stupidity !

GiuseppeC
Is there a way to RESIZE a picture in R3GUI to a specific X Y dimension ?

GiuseppeC
I need as many examples writte for text-table you can. Could you help ?

GrahamC
@Giuseppe I have an example of using the text-table here https://github.com/gchiu/RSOChat/blob/master/rsochat.r3
As for resizing, you can just drag to resize but I don't know how to resize programmatically.

Ladislav
Pekr: "As for Saphirion, I might be mistaken, but - their tools are still mostly R2 (custom RebGUI based?)." - Yes, we do use RebGUI, but that is irrelevant for R3GUI.
GrahamC
R3GUI is not likely to run again on the current active r3 branch without some work.
Some testing has some gobs up and working again but delect is no longer there and that's used in r3gui
Atronixengineering's ZOE or zoomable interface is built entirely on Gobs and custom widgets without r3gui, and the long term aim is to move it to openGl.
GiuseppeC
Was DELECT so harmful we had to remove it without any replacement ?

Pekr
IIRC, DELECT was brought to the table, to speed-up some simple dialects/bridges, mainly for the command interface of R3 extensions? With later changes, some claimed, it is not needed anymore. Not sure though. One thing is clear - later on, R3 got FFI, and as for REN-C fork, IIRC, the plan is to remove R3 extensions altogether?
GrahamC
The original mechanism of extensions was a result of RT's closed source.  Now that's open source we are able to use a more workablel solution.  And with that, non-core elements such as encryption, FFI, image handling etc are being moved into extensions.
GrahamC
And that's delaying the release of the ODBC extension as it's being decided how to best move this stuff out of the core.

GiuseppeC
Next time I hope something is totally removed after another solution is already in place

Last message posted 25 weeks ago.