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

World: r3wp

[!RebGUI] A lightweight alternative to VID

Graham
4-Sep-2005
[1920x7]
display "" [ group-box 60x20 "Test" data [ a: field 40 [ show-focus 
f]] return group-box 60x20 "Test2" data
[ f: field 40 ]] do-events


type abcd in the top field, hit enter.  Type abc in the bottom field, 
and hit enter.  Then hilite all the chars in the top field, enter 
a single character, and hit enter.  

** Script Error: Cannot use path on none! value
** Where: edit-text

** Near: if all [tmp/x < 0 tmp2/x < 0] [face/para/scroll/x: tmp2/x 
- tmp/x]
tmp3:
>>

This is version 3.6
What we need is a key logger to record all the keystrokes so we can 
easily duplicate these errrors.  Took me  a few mins to duplicate 
it.
In tour.r, the simple led example, I see nothing happening when I 
try the three buttons ( true, false, and none ).
In the led-group, the "random 1" button only seems to affect the 
Item 1 in the horizontal group ( only turns it off ).
clear-text doesn't reset the line-list for an area widget.
Can clear-widget also be made to take a block of faces
should clear-text be generalised to also clear the rows of a text-list 
and table ?
Ashley
5-Sep-2005
[1927]
Focus question. Given that CR and Tab should fire a field's action; 
should loss of focus due to mouse click do the same (i.e. should 
clicking in field1 then field2 cause field1's action to fire)?
Kaj
5-Sep-2005
[1928]
I suppose
Volker
5-Sep-2005
[1929]
Me too. Suppose the clicked face is a "save". That would expect all 
the fields to be entered, means fired.
Robert
5-Sep-2005
[1930]
Yes, same semtantics to the program just an other user action to 
activate it.
Graham
5-Sep-2005
[1931x4]
I think it should too.
Otherwise field level validation becomes trickier to do.
should have the option for area widgets though as in VID.
Compare these two:

display/dialog "" [ f: field return p: password  ] do-events

and 


display/dialog "" [ f: field return password do [ show-focus f] ] 
do-events


Adding the show-focus adds a cursor to the password field as well.
Graham
6-Sep-2005
[1935]
Ashley, what do you think of adding in some way of assisting with 
field level validation.  I was thinking of perhaps an optional dialected 
block that specifies if the field is of date type, not null, character 
length min/max, and for passwords, sufficiently complex.  That way 
when building database applications, you can specify the table constraints 
at the field, and let rebgui automatically enforce that.
Kaj
6-Sep-2005
[1936x2]
Hm, those were my first programs in 6502 machine code: validating 
field input routines to call from Atari BASIC. :-)
The problems is how to do the feedback on input errors. This may 
have to be customized for a given program. I kept it simple and just 
made it beep :-)
Ashley
6-Sep-2005
[1938]
My tentative design concept for field level validation at the moment 
is to allow a block of REBOL data types to be specified, such as:

	field options [integer! decimal! none!]


with invalid input changing the field color and not allowing focus 
to leave. Successful validation would restore field color and place 
the loaded face/text contents in face/data. Haven't thought about 
min / max lengths, although an empty field would be treated as none! 
so null / not null is handled by default.


The password suggestion is a good idea, perhaps a min/max length 
option and a 'dict option that ensures the password contains no spaces 
and does not appear in the currently loaded dictionary?
Graham
6-Sep-2005
[1939x2]
yep, or we could enforce an optional complexity rule such as contains 
mixed upper/lower case digits and punctuation marks
ie. the rule can be defined by the user, and the gui allows us to 
specify a rule.
Kaj
6-Sep-2005
[1941]
If you make the rules that complex, I think there should be a way 
to give custom feedback, like displaying an error message
Graham
6-Sep-2005
[1942]
Ok, perhaps use the action block for that.
Pekr
7-Sep-2005
[1943]
Ashley - pressed for time, more on that later, but basing field values 
upon datatypes is not imo good way to go ...
Ashley
7-Sep-2005
[1944]
And the alternative is?
Kaj
7-Sep-2005
[1945x4]
I'm willing to bet Petr wants an evaluation function, like in Lotus 
Notes ;-)
Which is indeed very flexible, but data types would be a good default
There's a problem with money, though, because the REBOL 1'000 syntax 
is not the human 1.000/1,000 way
(Not that there isn't always a problem with money ;-)
Chris
7-Sep-2005
[1949x2]
My thought is to have two parse rules -- one evaluated on keypress, 
the other on exit (of field).  The exit parse rule would be strict, 
the keypress one would allow for partially completed entry, but denies 
a keypress that fails the rule.  The two parse rules could be passed 
as arguments or created from a dialect?
For example, the dialect may be:
#XXX-XX
and produces:
[0 3 numeric 0 1 #"-" 0 2 numeric][3 numeric #"-" 2 numeric]
Graham
13-Sep-2005
[1951]
Any updates here?
Ashley
14-Sep-2005
[1952]
Working on a number of 'layout fixes and adding support for a "return-after 
n" type keyword that should reduce the number of 'return's used in 
certain types of displays.
Graham
14-Sep-2005
[1953]
Great.
Pekr
14-Sep-2005
[1954x2]
one question - will there be better list/grid support? My rebol friend 
would use rebgui immediatelly, but is smiling and saying - those 
ppl don't design db releated apps? Wow can they live without multi-column 
text list or proper grid? :-)
I told him those more complex styles will come later ....
Graham
14-Sep-2005
[1956]
there is multicolumn list now.
Pekr
14-Sep-2005
[1957]
pretty weak though :-)
Ashley
14-Sep-2005
[1958]
I'm using code like the following quite often now:

	display join settings/file " Summary" compose/only [
		...

  records: table 90x25 #W options ["Date" right .4 "User" left .2 "Description" 
  left .4] data (

   sql compose [select [date user description] from sys_records where 
   (id) order by date desc]
		) [
			;	set record path
			record-path: dirize join file-path first face/selected
			...
		]
	...
	]


The table widget is now very DB friendly. I haven't had a need for 
a grid widget, but then again my apps don't require spreadsheet type 
functionality.
Pekr
14-Sep-2005
[1959x2]
Does it handle column resizing already?
that was broken ..
Ashley
14-Sep-2005
[1961]
Column resizing and sorting now work correctly. In addition a number 
of useful accessor functions exist to more easily manage the data. 
From the online doco:

5.24 Table


Columns and rows of values formatted according to a header definition 
block.

Specification
 	action	block to execute when an item is selected. 	
 	data 	block of values. 	

  options 	Optional multi word followed by column header entries in 
  the form: 	
		string specifying column title
		word specifying column alignment
		decimal specifying column width as a percentage

Runtime
 	data 	block of values to display. 	
 	picked 	block of currently selected row number(s). 	
 	selected 	block of currently selected data. 	
 	redraw 	function to redraw widget after data changes.
Pekr
14-Sep-2005
[1962]
is there a multicolumn text list? Btw - why Carl did not check-in 
his updated and better list style as from VID 1.3 older IOS initiative 
for 1.3?
Ashley
14-Sep-2005
[1963]
Plus the latest build lets you assign alt-click and dbl-click actions.
Pekr
14-Sep-2005
[1964]
hmm, still the same issues - how they will be adressed? I know that 
event/focus system is not all that easy to change - but drop lists 
still work in non-system friendly manner - can't close it clicking 
away or pressing escape .... text-list does not allow multirow sellection 
(or it is part of its options?) I will better look into docs to stop 
asking what is maybe obvious :-)
Ashley
14-Sep-2005
[1965]
Table and multi-column text-list are one and the same. Not involved 
in the VID 1.3 work so can't answer that.
Pekr
14-Sep-2005
[1966x2]
table still needs a lot of work imo .... when you select record, 
move down by arrow down - when hilighted-row reaches the bottom, 
it does not cause srolling and row hilighting vanishes ...
nice work on request-dir!
Ashley
14-Sep-2005
[1968]
Thanks, that and table still need a few minor aesthetic improvements 
but the base functionality is pretty solid.
Pekr
14-Sep-2005
[1969]
can I have visual cell dividers? I mean - some styling istead of 
flat white design? It is list after all, so I will have to play with 
it ...