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

World: r3wp

[!RebGUI] A lightweight alternative to VID

Volker
30-Jun-2006
[4269]
Note to http://home.wilddsl.net.au/anton/rebol/doc/create-a-rebgui-widget.html#section-3
needs also append to 'words
 
ctx-rebgui/widgets: make ctx-rebgui/widgets [
    append ctx-rebgui/words 'my-rebgui-widget ;!!
    my-rebgui-widget: make ctx-rebgui/rebface [

    ]
]
Ashley
30-Jun-2006
[4270x3]
create-distribution.r - workaround at the moment is to create two 
empty 'place-holder' scripts in widgets dir named %number-field.r 
and %drop-tree.r. This should resolve itself once Cyphre publishes 
his remaining changes ... otherwise I'll add them to SVN the next 
time I commit any [other real] changes.
Normand, sounds like you want to use the hilight-on-focus block: 
http://www.dobeash.com/RebGUI/edit.html#section-2.3
Volker, doc changes noted. Thanks.
Graham
30-Jun-2006
[4273x2]
suggest that in the date requestor, either change result: copy "" 
or have a refinement to return an empty string if the requester is 
cancelled.
so we can do  show-text field form request-date, instead of
 
show-text field form either none? d: request-date [ "" ][ d ]
Volker
30-Jun-2006
[4275]
any[ request-date copy"" ]
Graham
30-Jun-2006
[4276]
ahh... so easy !
Anton
1-Jul-2006
[4277]
(I would have disagreed with that anyway.)
Graham
1-Jul-2006
[4278]
Any way to filter the display of a table based on row criteria ?
Volker
1-Jul-2006
[4279x2]
Here is a litle demo how to access the caret even if on-unfocus is 
called. eg a buton is pressed. or user edits in a find-area and wants 
to search in the edit-area. works by overriding on-unfocus and  saving 
caret in face. unfortunally i was not able to do it the other way 
around. i can restore the face-caret on on-focus, but something unfocusses 
later when i do that by a button. http://polly.rebol.it/test/test/rebgui/../../test/rebgui/edit-area.r.
demo: if you set the caret and click copycar, the text on the caret 
is shown on field above.
Normand
1-Jul-2006
[4281]
I want to add some commands to the top window red "close" square 
button, so that I commit changes to the database and save some data 
before the close.  I can add a quit button on the interface, but 
it is still important that the top window close button do the same 
thing.  I dont see any instructions about that, neither in the RebGui 
display guide, nor the vid spec.  Can someone provide the code to 
do that, or where to find it explicitly?
Volker
1-Jul-2006
[4282]
quit-wenn-close: func [face event] [
    if 'close = event/type [quit] 
    event
] 
insert-event-func :quit-wenn-close
Henrik
1-Jul-2006
[4283x2]
remember that insert-event-func inserts the event in a block of events 
so if you run the same program multiple times from console, the event 
will be added again the next time you run it and therefore run twice.
block of events should be block of functions
Graham
1-Jul-2006
[4285]
there's an option in display to capture the close event.
Normand
4-Jul-2006
[4286x2]
A so smart pill marketer created false defect on the timeline http://trac.geekisp.com/rebgui/timeline.
I am unable to refresh a textlist.  My text list is defined as

Fall-ids: text-list 80x60 #HW data (db-select uniqueid contactDB) 
[
			new-cursor: rowid-of-identifier? face/selected
			valid-set: validate-cursor new-cursor
			if valid-set [show-values-of-current-cursor]
			]
And my function to refresh it is :
refresh-ids-list: does [
	Fall-ids/data: (db-select uniqueid contactDB)
	Fall-ids/redraw
]

Calling this, the data gets changed, but the textlist does not redraws 
itself?  I did try with set in Fall-dis 'data and show Fall-ids, 
without effect either. 3 hours later I am still in neverland.  Any 
Ideas?.
Graham
4-Jul-2006
[4288x2]
this won't work
try


refresh-ids-list: does [ insert clear head fall-ids/data db-select 
uniqueid contact db fall-ids/redraw ]
Normand
4-Jul-2006
[4290]
Thank-you, it works.  It is not clear in my head, as to why 'insert 
clear' is better than 'TheObject/Data: "NewListOfValues"', but Ill 
try to remember it by hart.  I am nearing completion of a small example 
of RebGui+RebDB app.  Last glitches are show-focus and display/close.

As for the option in display to capture the close event, how do I 
state it?  As this does not work.
Contact: compose/deep/only [
; Gui definition
]
do show-contact: does [
	display/min-size "ContactDB" Contact 680x650
	do[show-first-rowid]
	display/close [] [shutdown] ; <-- Culprit
	]
do-events
Graham
5-Jul-2006
[4291]
I presume that the internal functions already have referenced the 
/data so, when you reset it using data: ( .. ), they can't find the 
data anymore.
[unknown: 10]
5-Jul-2006
[4292x2]
Funny to see the Memory Usage in Rebgui, Under linux it eats almost 
2 MB during startup under WinXP its 1 MB less...
Never the less, a very nice result guys !!! Ill use it ;-)
Graham
6-Jul-2006
[4294x2]
How do tabs work in area fields?
this doesn't work { area with [flags: [field]] }
There is very odd behaviour of tab in in tour.r in the area
Ashley
6-Jul-2006
[4296]
Tab (and shift-tab) changes focus. 'with is a VID construct, not 
RebGUI (unless Cyphre's changes are more far reaching than I'm aware 
of ;) )


The area in tour.r is the only tabable widget so it re-tabs to end 
of text. Try:

	display "" [area area area]


to see how it works when more than one tabable widget is/are present.
Graham
6-Jul-2006
[4297x2]
how to tab inside an area??
Seems this is an enhancement that needs to be done.
Robert
6-Jul-2006
[4299]
Just tab through all fields. Area will be entered as well.
Graham
6-Jul-2006
[4300]
Robert, I want to stay inside the area
Ashley
6-Jul-2006
[4301]
No reason why it can't be supported as the following shows:

display "" [
	a: area
	button [insert tail a/text tab]
]

but which widgets should support it? area? text? others?


If Tab is redefined for these widgets then how does one navigate 
to other widgets apart from mouse clicks? Or should we have a special 
key combination for "hard-tabs"?
Graham
6-Jul-2006
[4302x2]
Just area I think.
or have an option like it is done in VID
Robert
7-Jul-2006
[4304]
Maybe it's best to support SHIFT-TAB as TAB inside an area. Using 
TAB to navigate between fields is very common to a lot of users. 
And in other programs (like Excel) you have to use ALT-RETURN to 
insert a hard line break in a cell. Just RETURN leaves the cell.
Ashley
7-Jul-2006
[4305]
Shift-Tab is already mapped to Backtab. How about Ctrl-Tab instead?
Robert
7-Jul-2006
[4306]
Ok
Anton
7-Jul-2006
[4307]
I don't think you can trap ctrl-tab.
Robert
7-Jul-2006
[4308]
ALT-TAB?
Graham
7-Jul-2006
[4309x2]
make it optional...
I spend most of my time inside area fields ...
Ashley
7-Jul-2006
[4311x2]
Graham, that caret insert question you had before can be easily solved 
with something like:

display "" [
	a: area "12345"
	button [
		all [
			system/view/caret
			insert at a/text index? system/view/caret "-"
			show a
		]
	]
]


More complex variations (to handle keyboard focus change, multiple 
area targets etc) can be built with code like:

	...
	area on-unfocus [i: index? system/view/caret true]
	...


but the first example handles simple "click within area, click on 
button" type scenarios pretty well as is.
Also committed rev#26 with support for Ctrl-Enter hard tabs, and 
removed references to drop-tree/number-field so create-distribution 
works correctly.
Graham
8-Jul-2006
[4313x2]
Thanks Ashley, I'll give that a go.
Hmm. Your demo works, but in my program, it always inserts at the 
head of the area field ie. index? system/view/caret is 1
Anton
8-Jul-2006
[4315x2]
You should check if the caret is in your area/text :
button [all [
	same? head system/view/caret head a/text
	insert ...
Oh no, sorry I misunderstood. Once the caret has left the area and 
moved to another widget the index it was at is completely lost. You 
would need to store the index on each key press, or trap the loss 
of focus and store the index then. Pressing the button would refer 
to that stored index.
Volker
8-Jul-2006
[4317]
as in http://polly.rebol.it/test/test/rebgui/../../test/rebgui/edit-area.r
Graham
9-Jul-2006
[4318]
** Internal Error: Stack overflow
** Where: into-widget
** Near: unless find [object! block!] type?/word get
** Press enter to quit...

Got this error again on tabbing out of a field :(