World: r3wp
[View] discuss view related issues
older newer | first last |
Anton 4-May-2008 [7716x4] | (so to get text in a window you always need at least one subface.) |
Yes, you can :) but it's using Draw dialect text. | |
view/new window: make face [ size: 800x150 font: make face/font [size: 40] effect: compose/deep [draw [font (font) text 100x50 "Hello there"]] rate: 50 ] window/feel: make window/feel [ engage: func [face action event][ if action = 'time [ window/effect/draw/text/x: window/effect/draw/text/x - 1 show window ] ] ] do-events i | |
Anyway, it doesn't fix the basic problem. | |
Brock 4-May-2008 [7720] | Is it possible that 'jitter' that occures in Pekrs nice example sharing the same root cause as the 'heart-beat' that Geomol mentioned in a previous post? |
Pekr 4-May-2008 [7721x2] | not sure. HeartBeat might be TCP related. On my Core 2 duo I am not observing jitter, just not smooth animation. Now remember that Amiga with 7MHz CPU was able to provide us with absolutly smooth scrolling. But Win32API lacks vertical blanking period synchronisation, so I wonder if without DirectX or OpenGL we are able to actually make our situation better ... |
Some time ago Carl told us, that View uses double buffering, but apparently it is not enough .... | |
TimW 8-May-2008 [7723] | Is there a way to have a face receive mouse input that is recieved via layouts in the faces pane? This sounds weird, but when building components, if there is a generic face object that they all share, then on top of that face you add a layout with certain styles. Is there a way(without adding a handler in the layout) to have the face receive the message as well? |
Gregg 8-May-2008 [7724x2] | Have you tried DETECT? http://www.rebol.com/how-to/feel.html#sect6. |
I rarely use detect, but use insert-event-func quite often. | |
TimW 11-May-2008 [7726x4] | That might be what I need. Messing with it seemed to overwrite some other handlers. Suppose you have this: my-face: make face [ offset: offs size: sz color: 0.0.0 text: win-title ;rejoin[window-counter ":" name] ;should this be copy name? plugid: plug-id id: window-counter pane: copy []] |
sorry about the comments....but just take it as a basic face. then you want to append my-face/pane layout[ txt: area button "blah" [txt/text: "something"]] | |
Where can I put the handler such that when the layout is clicked 'my-face also receives a notification. I was hoping I could put the feel in the face declaration, but that doesn't do anything. Also, more than one layout is usually getting added to the pane. I just want to the parent face to receive a message whenever one of them are clicked without having to add the handler in each of the layouts. | |
Nevermind. I got detect to work for me by declaring my-pane/feel. I had not been returning the events correctly. Thanks for pointing me in the right direction. | |
Gregg 12-May-2008 [7730] | Glad you got it working! |
james_nak 13-May-2008 [7731] | Graham, your 'grahamchat.r" code is just what I've been looking for. Thanks. |
Graham 13-May-2008 [7732] | hehe .... I don't even know what that is any more! |
james_nak 13-May-2008 [7733] | It has the illusive text layout like what we are looking at now in Altme; that is, text boxes with different heights. It's so simple when you see someone else do it. |
Graham 13-May-2008 [7734] | oh .. I'm sure i copied it off someone else :) |
amacleod 15-May-2008 [7735] | Where did you find grahamchat.r. Its not in the library. |
Rebolek 21-May-2008 [7736] | The difference between random and random/secure: img: make image! 512x512 repeat i 512 [ repeat j 512 [ either i < 256 [ if 2 = random 2 [ img/(as-pair i - 1 j - 1): 255.255.255 ] ][ if 2 = random/secure 2 [ img/(as-pair i - 1 j - 1): 255.255.255 ] ] ] ] view layout [image img across text "RANDOM" tab tab tab text "RANDOM/SECURE"] |
Gregg 21-May-2008 [7737] | Awesome Rebolek! You always come up with great visualizations. |
Rebolek 21-May-2008 [7738] | Thanks Gregg, actually it's not my idea, it's based on this article - http://www.boallen.com/random-numbers.html, I was just curious if there's some pattern in REBOL 'random too. |
Gregg 21-May-2008 [7739] | randomize: func [ "Reseed the random number generator." /with seed "date, time, and integer values are used directly; others are converted." ][ random/seed either find [date! time! integer!] type?/word seed [seed] [ to-integer checksum/secure form any [seed now/precise] ] ] img: make image! 512x512 repeat i 512 [ randomize wait .001 repeat j 512 [ either i < 256 [ if 2 = random 2 [ img/(as-pair i - 1 j - 1): 255.255.255 ] ][ if 2 = random/secure 2 [ img/(as-pair i - 1 j - 1): 255.255.255 ] ] ] ] view layout [image img across text "RANDOM" tab tab tab text "RANDOM/SECURE"] |
Rebolek 21-May-2008 [7740] | great! |
Geomol 22-May-2008 [7741] | Nice view, Rebolek!!! :-) |
Anton 22-May-2008 [7742x2] | Nice! By the way, here's the fastest optimization I could come up with (about 30% faster): |
t0: now/precise img: make image! 512x512 i: 0 loop 512 [ loop 256 [i: i + 1 if 2 = random 2 [poke img i 255.255.255]] loop 256 [i: i + 1 if 2 = random/secure 2 [poke img i 255.255.255]] ] print difference now/precise t0 | |
Graham 22-May-2008 [7744] | amacleod - I don't know where grahamchat.r is either .. but they same should be in synapsechat in the contest entries on viewtop |
Graham 25-May-2008 [7745] | How does one determine how many lines there are of text in an area filled with text? |
Rebolek 25-May-2008 [7746] | height-of-area / height-of-font ? |
Graham 25-May-2008 [7747] | but if the text only partially fills the area? |
Henrik 25-May-2008 [7748x3] | hmm.. can't you do something with setting the caret to a large position and read the position that way? |
with offset-to-caret | |
unless it returns the index of the string and not a pair. | |
Graham 25-May-2008 [7751] | I'll try that ... wonder why the area just doesn't track the number of lines |
Henrik 25-May-2008 [7752] | can't remember if the way it formats text is native. it probably is. |
Graham 25-May-2008 [7753] | What I am trying to do as in the video i posted on the rebgui channel is to open the area just enough to show all the text .. no less, and no more. |
Henrik 25-May-2008 [7754x2] | if you have fixed width or height, you could make a face of that fixed with or height with the text in it with the same font as for the area. then you can with SIZE-TEXT get the size back of the required size of the area. BTN does this. |
the face you are using should be of quite large height or width, depending on what you want to size the area on. SIZE-TEXT bases the size of the text on the visible amount of text in the face, so if the face is too small, it will use the face size and not the text size. | |
Graham 25-May-2008 [7756] | I fetch the text asynchronously ie. I don't have the text at the time I construct the layout .. oh well... |
Chris 25-May-2008 [7757] | ; You could make the text face dynamically each time: make-textbox: func [width [integer!] text [string!] /local textbox][ textbox: make-face/size 'text (width * 1x0) textbox/text: :text textbox/size/y: second size-text textbox textbox ] |
Gregg 25-May-2008 [7758] | Does the line-list facet hold it? |
Gabriele 26-May-2008 [7759] | open the area just enough to show all the text - size-text ? |
james_nak 27-May-2008 [7760x2] | Amacleod and Graham, my apologies for the two week delay. I don't know where I got it either now though it was written by Didec with Notes: "Code abstracted from altme offline reader by Graham Chiu and used for this chat client". I just saw the Graham part when I first saw it so I thought he had written it. Of course the cool thing is the scrollable boxes work great. |
Nope, can't find where I got it from. : ( | |
amacleod 28-May-2008 [7762] | Can you post it again. I would like to have a look. |
Rebolek 11-Jun-2008 [7763x2] | I recently found this on my HD and as I'm not sure I've ever posted it somewhere, I'm posting it here. Do what you want with it. do http://bolek.techno.cz/reb/request-color.r |
Also check this small GUI experiment: do http://bolek.techno.cz/reb/efflist-complete.r rearange the effects using drag'n'drop, duplicate effect whit green "o", remove them with red "x" (that's not good idea, as you cannot add removed effects back) and set their values with knobs, check box and color-picker. | |
Henrik 11-Jun-2008 [7765] | nice. could it be simplified? |
older newer | first last |