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
18-Jun-2006
[3885x5]
Let's shift dicussion to view group.
Ok, I finally made it to publish all our RebGUI changes. I hope this 
helps the rest of the community. We did change a lot:
ATTENTION: rebgui-edit.r was not yet merged. Latest revision doesn't 
include older changes. We will do this ASAP. But rebgui-edit.r is 
required in this version otherwise all other changes done by us might 
not work.



FIXED *rebgui/pad: Now only works for horizontal padding. Padding 
should happen depending on the layout direction left-to-right or 
top-to-down.
	Cyphre: now PAD works according to the AFTER settigns. Example:
	display "Test" [
		after 3
	    field
		pad 5
	    field
	    pad 5
	    field
	    pad 5
	    field
	    pad 5
	    field
	    pad 5
	    field
	]
	Robert,let me know if it works like you wanted.

FIXED *group-box: When setting a new title group-box/text: "new-title" 
the surounding frame needs to be adjusted to the new text-width.

FIXED *drop-tree: When selecting different quick-access buttons directly 
one after the other, the drop-tree shouldn't close

FIXED *drop-tree: Highlighting the pressed quick-access button with 
green, the hovered one as is in orange. To give user visial feedback.

FIXED *general: a way to sepcify "align ['left]" for all further 
widgets to avoide repeation. Idea: Add disaply keywords: left, right, 
center
	Cyphre: added keyword TEXT-ALIGN left/right/center. Example:
	display "Test" [
		text-align right
		after 3
	    t: text 20 "test 1"
	    field "test 2"
	    field "test 3"
	    text-align left
	    field "test 4"
	    field "test 5"
	    field "test 6"
	]

FIXED *drop-list: an option that will show the list layered above 
everything (like the tree list of drop-tree).
	Cyphre: added drop-list/popup-mode: 'inside(default) or 'outside
	note: the same works for drop-tree

FIXED *drop-tree: changing state of the drop-tree (a new entry was 
selected) should only be done if the ACTION code returns TRUE. Otherwise 
the old state is kept, the drop-tree is closed and nothing happens. 
This allows the code to check for some pre-conditions before changing 
the state, and give some feedback to the user. Much like the on-unfocus 
functionality of RebGUI.

FIXED *drop-tree: pressing the quick-access numbers doesn't work 
any more as the drop-tree closes now if the mouse is clicked outside 
the drop-tree

FIXED *table: table/selected returns NONE if the table is empty and 
no record is selected. If there was one recrod selected at any time, 
than table/selected returns [none none <repeated for number of columns>]. 
If not row is selected at any time, table/selected should just return 
NONE.

FIXED *table: If a table is re-used in that the table is reused with 
code like:
	insert clear table/data [...]
	people/redraw

and there was a row selected before, than the internal state is still 
in "row selected" but the new row isn't highlighted. Here internal 
state and GUI don't match.

FIXED *drop-tree: clicking a "+/-" in the tree only open/closes the 
tree without calling the action for the node

FIXED *drop-tree: Re-add whole line selection and hovering functionality 
(so that mouse does not have to be over text)

FIXED *drop-tree: Add an option to get big fast-selction keys aligned 
left-to-right
	Cyphre: added drop-tree/expander-mode: 'big(default) or 'small

FIXED *button: Add an option to disable a button my-button/active: 
true/false, if disabled the button is drawn greyed-out
	Cyphre: usage is my-button/active: true/false show my-button

FIXED *field: Support number datatypes for TEXT so that things like 
field-a/text + field-b/text can be used

 Cyphre: you need to set field/edit-mode: 'numbers to activate this 
 behaviour for field(othervise it works like a normal field)
	2nd implementation uses own styel: number-field

FIXED *radio-group: Add an API that allows to provide a new DATA 
specification block at runtime or a way to alter the text of the 
radio fields at runtime.

 Cyphre: now you can just change the data content and do show on the 
 radio-group like:
		my-radio-group/data: ["item1" "item2" "item3" "item4"]
		show my-radio-group

 Note that it won't react on change of number of items. Just change 
 of texts.

FIXED *radio-group: Add a way to select one radio field at run-time
	added accesor select-item item [integer!] usage:
		my-radio-group/select-item 2
		show my-radio-group

 note: you can get the selected item using my-radio-group/picked, 
 you can get the text of selected item using my-radio-group/selected

FIXED *drop-tree/grey-out: Can it be done in that we only show the 
text in a light grey instead of black? Like Windows does it.
	Cyphre: now the masked text is light grey

FIXED *on-focus / on-unfocus: If FALSE is return from the ACTION 
and the user clicked somewhere on the screen, the focus is still 
in the "field" but no cursor bar is visible

FIXED *drop-list: IIRC in your widgets it was possible to start typing 
and the selection list was filtered. A mandatory feature for the 
drop-list :-))

 Cyphre: added drop-list/editable? flag to enable/disable editing 
 of the drop-list field

 also added drop-list/auto-fill? flag which enables automatic text 
 filterin from the selection list

FIXED *general: add hover tooltip help option to every widget (global 
patch)

 Cyphre: added TOOL-TIP facet to rebface object. If TOOL-TIP is set 
 to string! value a tooltip is shown when mouseover such widget.
	example:
		display "test" [
			button "press me" tool-tip "press this button to continue"
		]

FIXED*drop-list: proivde a much better selection-list opening algorithm 
especially for long lists. Open upward, downward, middle like so 
that as much entries are shown for the given screen space. And an 
option that will show the list layered above everything (like the 
tree list of drop-tree).
	Cyphre:

 -added droplist/lines - can be 'auto (default) or integer! to force 
 number of shown lines in droplist

 -added droplist/droplist-mode - can be 'auto (default) 'upward, 'downward 
 or 'middle to force way how the list is popped up
	you can use various combination of those settings.
FIXED*table: Add an API that allows to select a row at run-time.
	Cyphre: Usage is for example:
		my-table/select-row 5
		show my-table

FIXED*table: Add an API to table that allows to change the columns 
layout at runtime: my-table/reset ["Column 1" left 0.25 "Column2" 
center 0.75]

 Cyphre: I added the functionality byt the API call is my-table/set-columns 
 ["Column 1" left 0.25 "Column2" center 0.75]

FIXED*drop-list: fire action only if selection was made/changed, 
at the moment action fires if clicked on field too

FIXED*general: on-un/focus should be fired if user clicks an other 
widget, not only if carets leaves the widget when TAB is pressed

FIXED*table: moving bar up/down with keyboard should fire click-action, 
alternativ: pressing RETURN can fire click action

FIXED*table: align header text like data (left, center, right) at 
the moment always left
FIXED*table: TRAC #21

FiXED*TRAC #5 Cyphre: should be fixed but please test it and let 
me know.
FIXED*TRAC #6
Please give all changes a try, and help to enhance RebGUI even more.
Docs not updated yet, feel free to pick up this task :-) and I didn't 
checked against the TRAC database.
Graham
18-Jun-2006
[3890]
if table/selected returns none, does table/selected/1 now give an 
error?
Robert
18-Jun-2006
[3891]
I think yes.
Pekr
18-Jun-2006
[3892]
is it possible to obtain rebgui.r with proper white-space?
Volker
18-Jun-2006
[3893x2]
from the cvs
(if you mean propper formated source)
Pekr
18-Jun-2006
[3895]
yes, thanks ...
Robert
18-Jun-2006
[3896]
You have all the single files, so why you need it?
Pekr
18-Jun-2006
[3897x2]
that was question of one of my friends ...
you know, ppl get distracted sometimes by simple things, which complicate 
it a bit ..... - what is the point of new install scheme? what is 
the point of packing it? Those are not my words (althoug I do agree 
with him)
Volker
18-Jun-2006
[3899]
did he know full source is available?
Pekr
18-Jun-2006
[3900]
probably not ... I now write longer letter to him, as he thought 
that it is a kind of protecting source code :-)
Volker
18-Jun-2006
[3901]
performance. Once you are used to it, you optimize everything.. a 
single file for installation is good, and while we areat it, why 
not kill all this whitespaces? source is available anyway. (thinking 
loudwith Ashleys voice ;)
Pekr
18-Jun-2006
[3902x2]
as for get-rebgui - problem is with path ... could it be extended 
so that it would save get-rebgui itself into HOME directory, so that 
next-time I simply get-rebgui, instead of going to Dobeash.com and 
looking-up for url?
whitespace? what not to compress it? :-)
Volker
18-Jun-2006
[3904x3]
i guess he does that too, no? have not looked.
or maybe he really tried a new obfuscation-scheme?
where do you get get-rebgui currently? (messed up my bookmarks)
Robert
18-Jun-2006
[3907x2]
get-rebgui.r and create-distribution.r are two different things. 
The later creates the rebgui.r file. And yes, whitespaces can be 
stripped and even the whole thing than be compressed.
The former get's the latest stable release with images etc.
Pekr
18-Jun-2006
[3909]
how do you guys use get-rebgui? do you download it to your rebol 
directory? Because - in other case, I still struggle with not remembering 
the url to run it ....
Volker
18-Jun-2006
[3910]
I use the cvs..
Pekr
18-Jun-2006
[3911x2]
CVS means external sw usage .... that is for RebGUI devolopers, should 
not be needed for RebGUI users ...
imo it is typical example, how we made simple thing a bit more complicated, 
or I would not met with such reaction ...
Volker
18-Jun-2006
[3913x2]
http://www.dobeash.com/RebGUI/get-rebgui.rthis could be easily changed 
to store in your own dir.
a trick i started to use is to set view-root to the current directory. 
theni have a %public/ there with all the downloaded stuff nicely 
sorted by server, by using *-thru
Robert
18-Jun-2006
[3915x2]
Petr, I agree, that get-rebgui.r should download the current directory.
I can't remember the location as well.
Pekr
18-Jun-2006
[3917x2]
hmm, I found varous paths are mentioned in - probe system/options 
.... maybe view-root could be exposed there too? That way rebol developer 
could be sure, where the hell all his files are spreaded around :-)
So please, could I ask for get-rebgui change, to place itself in 
rebol home dir, simply to allow ">> do %get-rebgui.r" with next usage? 
Thanks eventually ...
Robert
18-Jun-2006
[3919x2]
Petr, go for it and change it.
And show up a requester to let the user choose.
Pekr
18-Jun-2006
[3921]
I can, and probably will do so tomorrow, just got back from 3 days 
trip, tired, so just relaxing today ... just dunno if other would 
not object. As for me, I can miss the requester ...
Robert
18-Jun-2006
[3922]
Than add the feature, with command line options or something like 
this. Just provide both ways and let the user choose. There is no 
wrong/right here.
Volker
18-Jun-2006
[3923]
wouldnt download to current directory be sufficient?
Pekr
18-Jun-2006
[3924x3]
yes, it should be ...
maybe I will even download it as-is now, and change also target location 
.... using cache directory does not work for me, I organise "library 
packages" a bit different way ...
maybe then it should check first, if new get-rebgui.r is not awailable? 
Not sure it is needed though ...
Ashley
18-Jun-2006
[3927]
Great work guys, just going through all the changes now.
Graham
20-Jun-2006
[3928]
How to change the label font colour?
Graham
21-Jun-2006
[3929x2]
How to get the label from a selected radio-group ?
radio-group/pane/n/text ...
Ashley
21-Jun-2006
[3931]
display "" [
	l: label "Test" font [color: red]
	button "Change" [l/font/color: random 255.255.255 show l]
]
Graham
22-Jun-2006
[3932x3]
Thanks .. is there going to be a formal syntax description for the 
rebgui dialect ?
This looks useful ...
Cyphre: now you can just change the data content and do show on the 
radio-group like:
my-radio-group/data: ["item1" "item2" "item3" "item4"]
show my-radio-group

Note that it won't react on change of number of items. Just change 
of texts.

FIXED *radio-group: Add a way to select one radio field at run-time
added accesor select-item item [integer!] usage:
my-radio-group/select-item 2
show my-radio-group

note: you can get the selected item using my-radio-group/picked, 
you can get the text of selected item using my-radio-group/selected