• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

World: r4wp

[!REBOL3] General discussion about REBOL 3

Is there an equivalent to Henrick's list-view in R3-gui?
I have a couple questions about how to deal with actors and I think 
an example will illustrate it best.
Trying to modify use click actions on a text-table to affect filtering 
on another text-table:

ind: [
	[1 "Jones" "Tom"]
	[2 "Smith"	"William"]
	[3 "Jones" "Stephen"]

eve: [
	[1 "Arrival"  "Wearing a red hat"]
	[1 "Departure" "No hat"]
	[2 "Lunch" "Salmon Sandwich"]
	[1 "Dinner" "Pasta"]
	[2 "Departure" "Red shirt"]

view [

 tt1: text-table 600x400 ["ID" #1 70 "Last Name" #2 200 "Given Name" 
 #3 200 ] ind on-focus [
		print face/name

 tt2: text-table 600x400 ["ID" #1 70 "Event" #2 150 "Description" 
 #3 300] eve
My goal is when i click on tt1 that the ID number on that row will 
set the filtering on tt2 to show only events with that ID #
Question 1:   on-focus only deals with the first click on that whole 
face, so it's the wrong actor.  Do i need to modify the actor of 
an individual row? or am I just using the wrong actor?
Question 2:  I'm unsure how to set the filter for tt2.  If I try 
(stole this code from probing the facet):

		tt2/facet/filter: make map! [
			1 [value = 1]

it says I cannot access the facet
Josh, there's an r3-gui group that might be a more appropriate place 
to ask.
whoops, yes, will move over
@BrianH, I searched CureCode, but couldn't find any notes from you 
on SPLIT, other than one that said you think it needs a rewrite.

v: 5
a: compose/deep [(v) q]
reduce a
nevermind, i understand
q is bound to quit
Cyphre wrote 2-Apr 2013 22:03:
For those interested in the 
alpha-channel change": ..."

It's a good change to get the alpha-channel 'right' or similar to 
most other standards. Have there been thoughts about including the 
alpha-channel with the RGB values, so it becomes RGBA, which we know 
from OpenGL and other places?

From my R3 console:

>> i: make image! [1x1 #{01020304}]
== make image! [1x1 #{

The alpha values seems to be left out. (It might have changed in 
newer versions.) Setting the pixel will include alpha values:

>> i/1:
>> i
== make image! [1x1 #{
} #{

But it seems, the alpha channel is separate from RGB values. Why 
not always have the alpha channel, and include it with the RGB values, 
so we have: [1x1 #{01020304}]
And related: have there been thoughts about setting origin of images 
in the lower left corner instead of upper left? When I use REBOL 
to draw graphs (of scientic values), I always find myself flipping 
the y-axis. Putting origin in lower left should make such code easier. 
Textures in OpenGL has origin in lower left.
Geomol, some notest regarding alpha channel:

The alpha values seems to be left out.

I'ts not left out..that's only the way "mold" of image! datatype 
works. So I the image have "fully transparent" alphachannel it is 
just not shown by mold to make the output more readable.

But it seems, the alpha channel is separate from RGB values.

The alphachannel is always present in the image! datatype (ie. internally 
it's always 4 components = 32bit bitmap). Again it's just the way 
"molding" of the datatype displays the content.

AFAIK You can construct the image! with alphachannel in various ways 
for example:

separated alpha:

>> i: make image! [2x2 #{0102030405060708009A0B0C} #{11121314}]
== make image! [2x2 #{
} #{

same example but the RGBA compoments together:

>> i: to image! #{0102031104050612070809130A0B0C14}
== make image! [4x1 #{
} #{

>> i/size: 2x2
== 2x2

>> i
== make image! [2x2 #{
} #{


Same way you can get the values in different form:

>> i/rgb
== #{0102030405060708090A0B0C}

>> i/alpha
== #{11121314}

>> to binary! i
== #{0102031104050612070809130A0B0C14}

For more I'd suggest you read the image! datatype docs here: http://www.rebol.com/docs/image.html

AFAIK The docs were written for R2 but should hold pretty much also 
for R3.
Regarding the "origin" of coordinates. IIRC this was discussed many 
times. In the end the decission was to have it the "non scientific" 
way. Also you can always apply transformation matrix in draw dialect 
to have your coordinates as needed.
Thanks, C.!
f: does [2]
;on R3
>> reduce/only [a f] none
== [1 make function! [[][2]]]
;On R2
>> reduce/only [a f] none
** Script Error: Invalid argument: f

Is it a bug on R2?
a: 1 ;for sure..
Looks like a bug in R2 to me.

It's interesting, that the word for the function is reduced to the 
function, but not evaluated. An alternative could be, that the word 
isn't touched, if it represents a function. I'm not familar with 
what practical challenges, that lead to this refinement for REDUCE. 
I've never used it myself.
An alternative could be, that the word isn't touched
You can do that like
>> reduce/only [a f] [ f ] ;this doesn't touch to F
== [1 f ]

But this is not only for functions of course.