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

World: r3wp

[!RebGUI] A lightweight alternative to VID

Ashley
25-May-2006
[3799]
Change has no effect on current display code and does not impact 
the use of compose/deep. It merely *allows* you to write:

	display "" compose/deep [date: field (date-width) ]

as:

	display "" [date: field date-width]
Anton
25-May-2006
[3800]
Ashley, I think it is a bad idea to use reduce/only in this context. 
It was basically designed for the draw dialect, so it disallows function 
and expression evaluations. I would recommend just processing the 
layout dialect similar to the way VID layout does it.
Ashley
25-May-2006
[3801]
Why? The main dialect parser of RebGUI can now be expressed in one 
simple parse construct:

parse reduce/only spec words [
	any [
		opt [... evaluate () to return a REBOL value...]
		[
			parse rules to handle REBOL values
			...
		]
	]
]


compared to the relatively complex parsing logic in VID (which, to 
be fair, has to handle styles amongst other things).


The main functional difference between what this allows in VID and 
RebGUI is that you don't need to parenthesize your expressions in 
VID (and I kind of like the idea of having to parenthesize them anyway, 
it makes expressions stand out just like they do in compose).


Having said that, if someone can show me a RebGUI parser built along 
the lines of VID that is clean and lean I'll willing to be convinced 
otherwise. ;)
Anton
25-May-2006
[3802]
Mmm.. ok. Let's see how it goes.
Ashley
25-May-2006
[3803]
Latest SVN change (Rev#17) now evaluates parenthesis without the 
need for compose. This allows code like:

display "" [
	text (my-width + 50) (form now/date)
]


and the following widgets now reduce their data block: anim, check-group, 
led-group, radio-group ... which allows:

display "" [
	anim data [image-1 image-2]
	radio-group data [idx "One" "Two"]
]


These changes shouldn't impact existing RebGUI apps (i.e. they are 
backwardly compatible).
Anton
25-May-2006
[3804]
That's probably more comfortable.
Thør
26-May-2006
[3805]
.
Ashley
27-May-2006
[3806]
Couple of minor administrative fixes:


 - Examples added for every widget in http://trac.geekisp.com/rebgui/wiki/WidgetList
  

 - http://www.dobeash.com/RebGUI/display.htmlupdated to reflect latest 
 changes (and have information duplicated in WidgetList removed)

 - Updated site with latest build and corrected path to: "do http://www.dobeash.com/RebGUI/get-rebgui.r"
Robert
28-May-2006
[3807x2]
Tree: The code for the tree is mostly complete. Even an API to change 
the tree at runtime exists. The code isn't splitted out into a standalone 
tree-widget yet. It's included in the drop-tree widget.
As we have made several, IMO useful changes to RebGUI, now to submit 
them? Is there something like a development branch in SVN? Or should 
I diff the changes and post here or mail Ashley?
Anton
28-May-2006
[3809]
I think just commit the changes, and we'll examine the differences.
Graham
28-May-2006
[3810]
A development branch sounds good .. so we can test before it gets 
committed to main branch.
Ashley
28-May-2006
[3811]
The project isn't big enough to justify multiple source trees at 
present, so as long as what gets committed works and is functionally 
complete we should be fine (and get-rebgui.r is based on stable snapshots 
so we can handle temporary breakages). Just make sure the committed 
changes include those made in rev#16 and rev#17, and a point form 
summary of changes posted here. Thanks.
Robert
29-May-2006
[3812x2]
Question: If you create several data-forms that can loaded with different 
records, I always need a way to reset those fields/drop-lists etc. 
that are not loaded to default values or empty values.
I think something like a /reset function would be nice. Either the 
reset value is set by using the TEXT/DATA values present at the time 
the layout is created or I can specify a value within the OPTIONS 
block. What do you think?
Ashley
29-May-2006
[3814]
How about adding a refinement to the display function that does something 
similar to the load-form-data function we discussed a while back. 
We could then populate forms at creation with:

	display/load-data "" [..] block-of-values

and reset them with:

	load-form-data my-form block-of-values


I think it's a lot cleaner to do this on a form basis than trying 
to do it at the widget level.
Robert
29-May-2006
[3815x3]
It must be dynamic, so not only at creation time. And, I only store 
values wehre the user did enter something. Hence it's necessary to 
iterate over every form element and either set a value if available 
or reset to a default value.
show-data: Why does this function doesn't have a /no-show refinement?
How about a clear-data function? For example: I'm using fields in 
that TEXT contains the visual representation of the DATA field. As 
both might be different (1000s seperators etc.)
Ashley
29-May-2006
[3818]
Why does this function doesn't have a /no-show refinement?
 same could be said for show-color and show-text.

How about a clear-data function?
 Could be useful.


I'm thinking one function could handle all these permutations: a 
set-attribute function like:

	set-attribute: make function! [
		face [object!]
		attribute [word!]
		value [any-type!]
		/no-show
		/focus
	] [
		...
	]


where a value of none! meant clear (which is the case anyway for 
widgets where none! is a legal value).
Robert
29-May-2006
[3819]
Sometimes the clear value is 0 or 0.0 for numeric input fields.
Ashley
31-May-2006
[3820]
First cut attempt at set- functions to replace various show- functions:

set-attribute: make function! [
	face [object!] "Window dialog face"
	attribute [word!] "Attribute to set"
	value [any-type!]
	/no-show "Don't show"
	/focus
] [
	face/:attribute: case [
		string? value		[
			face/line-list: none

   all [face/type = 'area face/para face/para/scroll: 0x0 face/pane/data: 
   0]
			form value
		]
		series? value		[copy value]
		attribute = 'color	[either word? value [get value] [value]]
		true				[value]
	]
	unless no-show [
		either focus [ctx-rebgui/edit/focus face] [show face]
	]
]

set-attributes: make function! [
	face [object!] "Window dialog face"
	attributes [block!] "Block of attribute/value pairs to set"
	/no-show "Don't show"
] [
	foreach [attribute value] attributes [
		set-attribute/no-show face attribute value
	]
	any [no-show show face]
]

Used like this:

	display "" [
		b: box
		button "A" [set-attribute b 'color red]
		button "B" [set-attributes b [color blue effect arrow]]
		button "Clear" [set-attributes b [color none effect none]]
	]
Robert
2-Jun-2006
[3821]
Just to inform you, we are going to publish all our RebGUI changes 
today. Those will fixe and enhance quite a lot of things. Further 
a new widget "drop-tree" will be published as well.
Pekr
2-Jun-2006
[3822]
nice and cool. So the table widget is the last stopper ....
Graham
2-Jun-2006
[3823]
Robert, are  you going to update tour.r with your changes?
\
Ashley
2-Jun-2006
[3824]
And the WidgetList Wiki too please. ;)
Robert
3-Jun-2006
[3825x4]
tour: not yet planned.

wiki: Yes, that should be done as we have enhanced existing widgets 
as well.
tour: Not in my focus but others can do it.
wiki: Yep, how to edit wiki pages? Didn't find any way to switch 
to edit mode.
Without doc update, no repository update.
Graham
3-Jun-2006
[3829]
Ashely needs to give you access to the wiki
Ashley
3-Jun-2006
[3830]
How to edit Wiki pages?

 If you have source access you automatically have Wiki edit access. 
 Follow these steps:

	1) http://trac.geekisp.com/rebgui
	2) login
	3) Click WidgetList
	4) Scroll to end of page and click "Edit this page"
	5) Make changes then click "Submit changes"
Robert
4-Jun-2006
[3831]
I have source access but I don't see the "Edit this page" link. The 
last I see is "Download in other formats:"
Ashley
4-Jun-2006
[3832]
Hmm, I just logged on as "robert" and I see four buttons above that 
link titled:

	Edit this page
	Attach file
	Delete this version
	Delete page

What OS / Browser are you using?
Robert
5-Jun-2006
[3833x2]
XP with Opera.
I'll try IE.
Graham
6-Jun-2006
[3835]
How does the 'multi option work with tables?

I get an error if I write "table options multi [ ... ] data []"
Ashley
6-Jun-2006
[3836]
options expects a block, so "options [multi]" should work fine.
Pekr
6-Jun-2006
[3837]
were new widgets plus fixes already uploaded? I can't seem them on 
my hd, when I download via get-rebgui ....
Graham
6-Jun-2006
[3838]
you need to check them out using svn
Pekr
6-Jun-2006
[3839]
ah,never used that tool before ... so get-rebgui will not download 
them?
Anton
6-Jun-2006
[3840]
Not yet.
Pekr
6-Jun-2006
[3841x3]
then I have to ask, if such project, being dependant upon other external 
tools, gives you so much advantage from the maintanance pov, that 
it is worth it? :-)
hmm, probably so, makes it independent from Ashley's maintanance 
....
ok, so I'll wait till the changes are brought to official distro 
...
Volker
6-Jun-2006
[3844x3]
it helps with merging. if i change something in rebgui and somebody 
else to, we want to merge that, not throwing somebodies work away. 
svn helps there.
if you dont want to work on rebgui itself, use get-rebgui. thats 
the stable one.
but not so cutting edge.
Pekr
6-Jun-2006
[3847]
ok, thanks .... how long do you think it will last till some testing 
stuff is being made an official version?
Volker
6-Jun-2006
[3848]
Ask Ashley :)