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

World: r3wp

[!RebGUI] A lightweight alternative to VID

Robert
21-May-2006
[3701]
So just give us some days to see if it really works.
Pekr
21-May-2006
[3702]
Robert - would it be problematic to "port" Cyphre's grid? It contains 
nicely abstracted engine too, is rather small. IIRC you contracted 
Cyphre for that earlier and even I did, to add horizontal scrolling 
...
Robert
21-May-2006
[3703x4]
Yes, that's an option as well.
Ashley, how about adding some screenshots to paragraph 3.3 of the 
docs? Would make it much easier to understand what's going on.
So, how can I create a column based layout? I need first to draw 
several buttons downward and than right of them several fields downward. 
I can't layout out them by line because I need the focus to cycle 
through all fields and not to jump from button to field to button 
etc.
Better: Is there a way to remove a widget from the focus cycle?
Volker
21-May-2006
[3707x2]
Do you have a short example? Maybe i find some interesting lines 
in the source.
of rebgui
Robert
21-May-2006
[3709x3]
Example: At the moment I use
	button "a" field "a" return
	button "b" field "b" return
and I need
	below
	button "a"
	button "b"
	return ; return right of button "a" positon
	field "a"
	field "b"
So something like GUIDE in VID but more convinient to use. The VID 
GUIDE isn't very logical to use IMO.
Maybe a LINE or COLUMN keyword would be good. And the COLUMN width 
is derived from the widest widgets placed in one line.
Volker
21-May-2006
[3712]
removing focus would save your problem too?
Robert
21-May-2006
[3713]
Yes, if I could specify for each widget in the OPTIONS block if the 
focus can be set to the widget via keyboard or not, that would solve 
the problem as well. Pressing TAB should search so long until an 
"open" widget is found.
Volker
21-May-2006
[3714]
Would preprocesing help for now? something like
below[
	. button "a" 
	. button "b"
	return ; return right of button "a" positon
	. field "a"
	. field "b"
 
]
Robert
21-May-2006
[3715x2]
What do you mean with pre-processing?
how to add this than to a bigger layout?
Volker
21-May-2006
[3717x3]
giving it a layout like the above and turning it into 
    button "a" field "a" return
	button "b" field "b" return
compose?
i hope rebgui has sub-panels.
Robert
21-May-2006
[3720]
Adding a new keyword like BELOW would be OK.
Volker
21-May-2006
[3721x2]
But i dont  know the internals for now. If you can wait for Ashley 
ok, just playing around.
No, i made a thinking-error. preprocessing would not work.
Robert
21-May-2006
[3723]
table: Can I set the selected row at run-time? I would like to pre-select 
the first entry.
Volker
21-May-2006
[3724x4]
display "Example" compose [
    button "a" [face/type: 'untabbed-button] field "a" return 
    button "b" field "b" return
]
in rebgui-edit
	tabbed: [area field edit-list password button]

    tabbed?: make function! [face [object!]] [all [find tabbed face/type 
    face]] ; [che] Returns TRUE if a face itself (not one of it's pane's 
    subfaces) is tabbable (NONE otherwise).
how to do that type-change on creation?
my demo: after pressing button "a" its no longer tabbable.
Anton
21-May-2006
[3728]
Yes, rebgui asserts that certain widget types are tabbable. It is 
not an attribute of a widget instance that can be changed, except 
by a trick such as Volker's, above. Changing the type is not recommended 
because it is bound to break other rebgui behaviour.
Volker
21-May-2006
[3729]
But as a hack on button?
Anton
21-May-2006
[3730x3]
So this means Rebgui's behaviour must change or you must accept the 
current behaviour.
I wouldn't be very happy with this hack in my code.
But I thought of a better hack. Put the non-tabbing widget into a 
group of its own. Looks like rebgui doesn't recurse into subfaces 
when tabbing.
Volker
21-May-2006
[3733]
Can widgets be derived from each other? If i make a lookalike of 
button and change only the name, it would be the same?
Anton
21-May-2006
[3734x3]
But rebgui would not know about your new style, and so it may miss 
out on other facilities of rebgui.
In VID, there is face/flags, which can contain the 'tabbed flag.
Thus the VID style is independant of the tabbability of an instance. 
Rebgui strongly ties tabbability to the rebgui type.
Volker
21-May-2006
[3737x2]
;hack but  tab works:
display "Example" compose [
    button "a" field "a" return 
    button "b" field "b" return 
    do [
        foreach [but fie] face/pane [but/type: 'untabbed-button]
    ]
]
what else is the /type used for?
Anton
21-May-2006
[3739x3]
Well, it's referred to a few times in rebgui-edit.r
Ahh, it doesn't work!  Rebgui also tabs into the group-box...
display "" [field group-box "" data [field] field]
Volker
21-May-2006
[3742]
What does not work?
Ashley
21-May-2006
[3743]
Robert

 Docs: the 'Widgets' section of the 'RebGUI Display User's Guide' 
 is already in the Repository (the WidgetList Wiki entry) ... I'll 
 be removing that section from the guide once all the widget details 
 have been copied across. Feel free to update the Wiki with any widget 
 specific usage notes / instructions. Forward any other doc changes 
 to me and I'll put them in. I plan to eventually move all the docs 
 across to the Wiki, just haven't got around to doing it yet.

 "do you first want to take a look at the changes or should I just 
 check them in?" ... Just check them in thanks.
	screenshots: added to the ToDo list

 widget placement: I'm coming around to the idea that BELOW may be 
 unavoidable, even if undesirable from a design / complexity POV
	tabbing: Anton about summed it up

Volker
	Type: also used by accessor functions
Volker
21-May-2006
[3744]
seems "/type = button" is used for something with 'over too. but 
i note no difference in some short tests. Still better ask ashley.
Anton
21-May-2006
[3745]
Volker, I wanted to "hide" the second field from tabbing by putting 
it in the group-box. But it didn't work.
Volker
21-May-2006
[3746x2]
Ah! No, tabbing in rebgui seems to be very smart. For now does not 
work with iterated faces, say the comments.
Some good choices for the general case in rebgui, from my starter-POV.
Anton
21-May-2006
[3748]
That's understandable.
Volker
21-May-2006
[3749x2]
;is this ok? vertical tab
display "Example" compose [
    button "a" [alert "hi"] field "a" return 
    button "b" field "b" return 
    do [
        out: copy [] 
        append out extract face/pane 2 
        append out extract next face/pane 2 
        insert clear face/pane out
    ]
]
Is there  interest in an editor-field which supports find/replace 
etc?