World: r3wp
[!RebGUI] A lightweight alternative to VID
older newer | first last |
Ashley 4-Sep-2005 [1919] | Latest build available at: http://www.dobeash.com/files/RebGUI-036.zip Issue log: http://www.dobeash.com/it/rebgui/issues.html *** Unzip this file into your existing RebGUI 0.3.0 distribution. Requires View 1.3.1 *** Highlights include: - All widgets now support alt-action & dbl-action blocks - Table & Text-list widgets now have a selected function to access selected data directly - New clear-widget accessor function to handle setting values within iterated faces - Added a clear-text accessor function - Documentation updated to reflect above changes - Number of minor bug fixes In the works - revamped focus system - basic menu widget - context menu widget - stabilize existing code-base for 0.4.0 beta release |
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. |
older newer | first last |