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
5-Dec-2005
[2578x2]
I also have a common set of buttons that are shared by all tabs. 
 I detect which tab is visible, and perform the relevant action
I originally had only one action for a common button, and the action 
for that button was revectored on clicking the tab .. but that got 
too complicated too quickly
Robert
5-Dec-2005
[2580]
So the buttons are displayed outside the tab and have a context sensitive 
action block?
Graham
5-Dec-2005
[2581]
yes
Robert
5-Dec-2005
[2582x2]
Ok, good idea.
Is there a way to specify an input-pattern that is only allowed for 
fields? Like number etc.?
Pekr
5-Dec-2005
[2584]
Robert - IIRC not. We just help one longer talk about field masking 
etc., but dunno if anything was implemented ...
Robert
5-Dec-2005
[2585x4]
Ok, next one: I need to start an action as soon as a field looses 
the focus. Is this possible? I need to trigger a re-calculation.
Hmm... no luck.
field (size) action [...] doesn't work
field (size) [...] doesn't work
field (size) data [ action [...]] doesn't work
How adding this is a generic pattern of function calls? IMO very 
useful:
	inbound-action
	widget-action
	outbound-action
Graham
5-Dec-2005
[2589x2]
at present actions only fire on enter .. not on tab or any other 
event
I think this should be changed to allow tabs etc.
Volker
5-Dec-2005
[2591]
BTW is this edit-bug with downkey fixed by Ashley?
Ashley
5-Dec-2005
[2592]
That plus a lot of other problems with area have been fixed in 0.3.8.
Volker
5-Dec-2005
[2593]
ANd now you release it, sdk is out? :)
Ashley
5-Dec-2005
[2594]
I'm just running some last minute tests to see what issues have been 
corrected now that View supports the parent option [again].
Volker
5-Dec-2005
[2595]
The license was gpl-compatible, so that it runs with beer?
Ashley
5-Dec-2005
[2596]
Better than GPL:


RebGUI is a community project that is free for both commercial and 
non-commercial use. Dobeash Investments Pty Ltd retains copyright 
on the name RebGUI and the concepts embodied in the display function 
as well as all associated documentation other than that which covers 
REBOL/View Facets.

Code submissions, in particular widgets, will 
be accepted and credited to the author under the condition that they 
carry these same licence conditions.
Volker
5-Dec-2005
[2597]
SOunds like i can "link" with gpl.
Ashley
5-Dec-2005
[2598x2]
Yes, no problems. You can also change and modify without any requirement 
to contribute back. Also, there is no requirement for attributions 
/ acknowledgements.
With regards to actions, I was contemplating adding pre and post 
action triggers that were fired on focus and unfocus respectively. 
I think the existing action / alt-action / dbl-action triggers cover 
the widget-action class sufficiently. Comments?
Volker
5-Dec-2005
[2600x2]
Would enable better editors. saving caret in face itself, for later 
find, replace etc.
WOuld like a textface which does that automatically.
shadwolf
5-Dec-2005
[2602x2]
edges problems hihihih this kind of bug i absolutly don't have on 
my computer and  i don't know why ...
i will merge it  ...
Graham
5-Dec-2005
[2604]
Ashley, how would you decide whether you only wanted the unfocus 
trigger?
Ashley
5-Dec-2005
[2605]
focus would look for a face/focus function while unfocus would look 
for a face/unfocus function. So the code might look like:

	...
	field unfocus-action [do-validation face/text]


the validation, if it failed, might shift focus back into the field 
the user tried to leave. Something like that I guess.
Graham
5-Dec-2005
[2606x2]
Would there be a way so that the default action is triggered by an 
unfocus event ?
Rather than having to specify 'unfocus-action ...
shadwolf
5-Dec-2005
[2608x9]
okay i see the edge bug now when i merge the listview code in the 
regui-wiget.r file ^^
it's seems like i have to insert edge: default-edge in all my dyn 
rebfaces ....
rebface is supose to yet include it and be an empty box lol
how i understand this bug ashley RebGUI widget compositor expect 
to find a edge field in this object and as it doesn't it crash
i'm adding edge:	default-edge on all rebfaces this  doesn't work 
neither  ...
odd problem i don't see a solution ...
maybe that have somthing to do with the way  widget is updated
i use event show to restart the rendering and display then the changed 
content  (colum-countainer ) this all auto table rebuild when script 
simply call show listview-widget
ffrom his application code
Ashley
5-Dec-2005
[2617]
Given that it worked stand-alone, my guess is that one of the make's 
was referring to "something" in the global context (face, feel, pane, 
etc) which enabled it to work. Regardless, it's a very obscure error.
shadwolf
6-Dec-2005
[2618]
in this case the  error would be i can find this world or something 
like that...
Robert
6-Dec-2005
[2619x3]
events: IMO a very, very important thing to add to RebGUI. Think 
about your apps. I always need this feature and most frameworks etc. 
don't support it well. The problem is, that if you have to add it 
yourself, the code becomes hughe and complicated for maintenance.

Adding a focus / unfocus action sounds like a good way to do it.
A way to set default focus / unfocus action would help keeping the 
code clean. With this I could change the default action on the fly 
and all new widgets would than use the new version. Makes building 
up forms a lot simpler.
Anyway, so how to solve my problem at the moment? I'm stucked without 
a solution to this.
Graham
6-Dec-2005
[2622]
I suspect that Ashley will release once he has tested against the 
new sdk
Ashley
6-Dec-2005
[2623]
While I'm waiting on listview52 I'll see if I can slip some prototype 
focus / unfous trigger code and bubble-menu in for you Robert. ;)
Graham
6-Dec-2005
[2624]
After reverse, pad pads to the right and not the left as expected 
...( by me that is ! )
Ashley
6-Dec-2005
[2625]
How's this for focus / unfocus trigger logic?

1. Add two user-definable action handlers to ctx-rebgui

	app-focus-action: func [face] [true]
	app-unfocus-action: func [face] [true]

2.Modify the ctx-rebgui/edit focus and unfocus functions:

	unfocus: has [face][
		if face: view*/focal-face [
			unless face/unfocus-action face [return false]
		] 
	...

	focus: func [
		"Focuses key events on a specific face."
		face [object!]
	][
		unless unfocus [return]
		if face/show? [
			unless face/focus-action face [return false]
	...

3. Extend the standard rebface definition

4. Add the following to the layout function:


 focus-action: either attribute-focus-action [make function! [face 
 /local var] attribute-focus-action] [:app-focus-action]

 unfocus-action: either attribute-unfocus-action [make function! [face 
 /local var] attribute-unfocus-action] [:app-unfocus-action]

which would then let us write code like:


 ctx-rebgui/app-focus-action: func [face] [face/text: form random 
 1000]

	display "" [
		field
		field focus [face/text: form now/time/precise]
		field
	]


The logic is simple: "Execute the default focus / unfocus functions 
(which in turn default to true) *unless* a focus / unfocus function 
has been provided for the face. When a focus / unfocus event is called 
execute the assigned handler function *first* and only proceed if 
it returns true."

Does this meet the design requirement?
Chris
7-Dec-2005
[2626]
ctx-rebgui/app-focus-action: func [face] [face/text: form random 
1000]
; would this line change every face that receives focus?
Ashley
7-Dec-2005
[2627]
Yes ... unless overridden by a local definition (e.g. field focus 
[true]])