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

World: r3wp

[!RebGUI] A lightweight alternative to VID

shadwolf
4-May-2005
[934x2]
I need to work the modification code
there is  2 kinds of modification 1) internal made by action capable 
widget 2) allowing external insert of new lines of data then build 
the table
Ashley
5-May-2005
[936]
Latest build available at: http://www.dobeash.com/files/RebGUI-022.zip

Highlights include:

	- Added drop-list, edit-list and auto-fill widgets
	- New splash function added (run %tour.r to see it in action)

 - Window management logic improved (disallows duplicate windows and 
 "sticks" child windows to first)
	- Couple of minor fixes and cosmetic improvements
	- %tour.r has an additional "List" tab

 - Prototype table widget added (run %table-002.r to see it in action)

Known issues

	- spinner and auto-fill widgets need more work
	- edit-feel needs to handle highlight, cut & paste
	- scroller needs more work (resizeable dragger)
	- table needs row selection logic added
	- edit-list needs auto-fill logic added

In progress

	- Improved tab-panel
	- Menu
	- tabbing
	- field input validation (field input masks, etc)
	- list-view (shadwolf)


With regards to "lists", I envision 5 types we need. They are (in 
ascending order of complexity):


 drop-list	- non-editable, single sorted column with single value 
 selection [optimized for < 100 values]

 edit-list	- derived from drop-list but editable with an auto-fill 
 field

 table		- multi-column representation of a DB table; used to create 
 something like a GUI SQL client with single-row selection [< 100,000 
 rows]

 list-view	- multi-column multi-media content (supports images, URL's, 
 etc); used to create something like a file explorer with single perhaps 
 multi-row selection [<10,000 rows]

 grid		- cell-level addressing and editing supporting simple spreadsheet 
 formulas and formatting [< 1,000 rows]
shadwolf
5-May-2005
[937]
Every time the quality of RebGUI increase. Every new version is a 
must one.  Good job every one ;)
Robert
6-May-2005
[938]
What about a single column text-list? IMO this one is needed too.
Volker
6-May-2005
[939]
could be usefull to make only single column lists, but make them 
share the same scroll
Robert
6-May-2005
[940]
Yes, this would allow to build simple tables that move in sync.
Volker
6-May-2005
[941x2]
another trick is to focus on the headers, and let the list-part be 
build by the user. where the header keeps some info for the list, 
like the column-width/resizing.
third, keep a user-reference in the row, where user can refer back 
to the real data.
Louis
6-May-2005
[943]
RebGUI is looking nicer with every build.
Luisc
6-May-2005
[944]
Could you make the drop-list - with the auto-fill too? even if it's 
not editable.  Would make easier to find a value.
shadwolf
6-May-2005
[945]
if it's not editable how dare you want to input text ?
Ashley
6-May-2005
[946]
Luisc: It's on the ToDo list. From the release notes above:

	Known issues
		...
		- edit-list needs auto-fill logic added
shadwolf
6-May-2005
[947]
Could you make the drop-list - with the auto-fill too? even if it's 
not editable.  Would make easier to find a value.
 I think he is really talking about drop-list not edit-list ...
Pekr
8-May-2005
[948x5]
Hi. Back after one week spent in Buddhistic ashram :-)
I just tried RebGui 022 and would like to report something: Lists 
- once you open selection menu, you can't close it by clicking outside 
of it. ESC works, which is good, but clicking outside the menu should 
close it imo ...
requestors are nice!
What hits my eye a bit though is LED design - too boxy/narrow in 
comparison to check-boxes, radio-buttons etc. The color is a bit 
obtrusive and maybe not all their area needs to be filled with particular 
color? But that is just very cosmetic detail ...
What bothers me more (although with older View 1.2.46 - the memory 
consumption starts growing, even if I do nothing. Anyone noticed 
anything like that?
Vincent
8-May-2005
[953x2]
the event system does that - after a while, some megs, it should 
be garbage collected
A 'recycle was done by RebGUI in earlier versions (patched 'show 
function)
Pekr
8-May-2005
[955]
thanks ...
shadwolf
8-May-2005
[956x8]
the problem of a recycle into show is tha it's performance consumer 
...
maybe we need to talk to carl about this point in order for him to 
make a more efficient way to garbage collect ...
and ofcourse conserving a good process speed :)
maybe it could be preferable to desalocate a content automatically 
when the content change ....
but this is an improvement internal to Core functionnalities ;)
when you do a: 123 then a: "fdsbfsdjbh" it would be interresting 
to detect if the a word yet exist and then trash the interger (123) 
content of this word and then allocate to the word a the string! 
new content.. this will be an internal  totally transparent way to 
handle memory allocation /deallocation
and this will influence every var content (I think that's better 
than having memory leak when event are used ....
new GC is inserted into 102 version but I francly don't see any différence 
in tour.r with RebGUI 0.22  we start a 6800 Ko and the memory is 
cleaned when 8500 Ko is reached and cleaned  to 7400 Ko ...
Vincent
8-May-2005
[964x2]
(regarding de/allocation) I don't know if it would change something 
in our case: in /View, event objects are generated by user/system. 
The event object carrying mouse 'move information may not be used, 
but one can only know and discard it at the end of the event processing 
chain (a global event-func or a face feel) - could be tricky to do
new GC: it must be various corrections to crashes and speedups. I 
don't know if anything has changed on conditions for garbage collection 
triggering.
shadwolf
8-May-2005
[966x3]
I think the memory leak problem with VID  is closely related with 
way data are alocated in general
for example the mouse pointer event is stored into the same var but 
betwin two allocations you have no memory clear so glob vars are 
the same the content is not the same and the only thing that change 
is the memory adress related to the new data allocated
this make increase the memory use until it reach a certain level 
then it's trash maybe it could be bettre to make on new data allocation 
the systematical deallocation of the previous content instead of 
having them surviving into the memory ...
Vincent
8-May-2005
[969x3]
each event is a new object, you can't reuse the same memory place. 
example:
t: copy [] a: insert-event-func [append t event event]
view layout [button "unview" [unview]]
remove-event-func :a
print length? t
foreach e t [probe e/1]
shadwolf
8-May-2005
[972x2]
in this case why the previous obj is not trashed those object have 
a short life time this muts be taked in count I think
In all cases we can solve this by patching the show but this force 
the intensive use a recycle witch was  not designed to do ths ...
Anton
8-May-2005
[974]
Maybe recycle could take an argument, which specifies a word to take 
particular note of.
shadwolf
8-May-2005
[975x4]
yes this would be a first step  ;) instead of scanning comparing 
the whole memory
but the point is that we don't know exactly how recycle works
does it scan the entire memory ? does it make the comparaso betwin 
the whole memory content table and the actual rebol word content 
?
If rebol keeps track of all previous existing data doesn't it simpliest 
to trash those datas when a next allocation is done ?
Ashley
8-May-2005
[979]
Can we move this discussion to the View or Performance group? ;)
shadwolf
8-May-2005
[980]
sure :)
Luisc
9-May-2005
[981x3]
Hi Ashley and Shadwolf  sorry if i didn't answer before i was out 
of town ( mother's day =P ) let me explained to you why the auto-fill 
on a drop-list ...
If you have a big drop-list ( non editable ) with 60 salesman ( big 
store ) and you shadwolf because of your name are close to the 50th. 
position the way to select your name frome that drop list would be 
with the mouse
wouldn't be easier if you typed sh on the drop-list to select your 
name instead ?