AltME groups: search
Help · search scripts · search articles · search mailing listresults summary
world | hits |
r4wp | 64 |
r3wp | 1992 |
total: | 2056 |
results window for this page: [start: 101 end: 200]
world-name: r3wp
Group: RAMBO ... The REBOL bug and enhancement database [web-public] | ||
Anton: 21-Mar-2005 | lay: layout [btn "start" [lay/rate: 1 show lay] btn "stop" [lay/rate: none show lay]] lay/feel: make lay/feel [detect: func [face event][if event/type = 'time [print ['tick now/precise lay/rate]] event]] view lay p: open http://www.rebol.com close p view lay | |
Anton: 14-Apr-2005 | Just noticed: HIDE stopped minimizing a window face some time after 1.2.5.3.1, eg: view lay: layout [button [hide lay]] Is that a bug, or intended? (I'll check this out more later.) | |
Volker: 13-May-2005 | i have a wish: integrating 'comment in some more dialects. parse, layout come to mind. could then be used for embedded documentation. what do you think? | |
Vincent: 17-May-2005 | With 1.2.106.3.1 and 1.2.107.3.1 : bug with pen color setting in draw block: view layout [box white effect [draw [ pen none box 10x10 70x20 ; invisible box pen black ; pen to black pen none box 10x30 70x50 ; invisible box ]]] is ok, but not view layout [box white effect [draw [ pen none box 10x10 70x20 ; invisible box pen black text 12x32 "hello" ; pen to black, some text pen none box 10x30 70x50 ; without AGG (->1.2.48), invisible box, with AGG (alpha & 1.2.106+), visible box ]]] Drawing something with a visible pen breaks invisible pen usage. | |
DideC: 17-May-2005 | view layout [text "Après noël en forêt" box 150x20 effect [draw [text 0x0 "Après noël en forêt"]]] | |
DideC: 17-May-2005 | base: [text (c) 40x20 effect [draw [text 20x0 (c)]]] lay: [origin 0 space 1 across] for i 16 31 1 [ for j 0 7 1 [ c: copy to-string to-char 8 * i + j append lay compose/deep base ] append lay 'return ] view layout lay | |
DideC: 18-May-2005 | Here is what I get with 1.2.48 (standard draw) and 1.2.107 (AGG draw) : http://membres.lycos.fr/didec/images/draw-text-48.jpg http://membres.lycos.fr/didec/images/draw-text-107.jpg I have tested on Win2k and WinXP with French Regional settings : "French (France)" with "French (France)" keyboard layout. I don't know the exact code page, 1252 or 850 ? Where can I get it ? | |
Gabriele: 20-May-2005 | we have changed LAYOUT as suggested in #3341. Please let us know if this may create problems. | |
Anton: 24-May-2005 | view layout [btn "hide" [hide f] btn "show" [show f] f: box red 0:0:1 feel [engage: func [face action event][if action = 'time [print now/time]]]] | |
ChristianE: 28-May-2005 | view center-face layout [ f: box 100x100 white edge [size: 10x10 color: none effect: none] with [ pane: make face [edge: none offset: 50x50 size: 50x50 color: yellow] ] ] | |
Henrik: 2-Jun-2005 | >> layout [b: field hide] >> set-face b "123" >> get-face b == "123" >> view layout [b: field hide] (enter "123" in the field, tab away and close window) >> get-face b == "***" Is this intentional? | |
BrianH: 9-Jun-2005 | To whom it may concern, on ticket -304 (currently) I misunderstood the purpose of the Fix field and filled it with prose with no line breaks. Could somebody fix this, perhaps by moving the prose to the Description section? The Fix section doesn't wordwrap, my entry messes up the layout of the Rambo web site. | |
Carlos: 29-Jun-2005 | while I am posting this I notice the foreign characters under Linux is not yet solved. Using Debian Ubuntu with brazilian ABNT2 keyboard layout I am not able to input some usual characters in Portuguese such as ´a ´e ´i ´o `u `a ^o ~a . | |
Group: Script Library ... REBOL.org: Script library and Mailing list archive [web-public] | ||
Sunanda: 26-Aug-2009 | Good news -- no absolutely positiioned DIVs, so it is a fairly fluid layout, will flow easily into most window size. Bad news -- main frame of site is a table. Originally, it was nested DIVs but that caused some layout problems when displaying <pre> sections of code. Going to a table was a quick fix that has never been looked at again. | |
Group: View ... discuss view related issues [web-public] | ||
Chris: 2-Jan-2005 | enable-fields: func [pane][ foreach face pane [if face/style = 'field [face/feel: ctx-text/edit]] ] disable-fields: func [pane][ unfocus foreach face pane [if face/style = 'field [face/feel: none]] ] view lay: layout [ field field field guide btn "Enable" [enable-fields lay/pane] return btn "Disable" [disable-fields lay/pane] ] | |
Graham: 5-Jan-2005 | rebol [] newtimer: does [ inform layout [ timer2: info "00:00:00" 60 font [] rate 1 feel [ engage: func [face action event] [ if action = 'time [ timer2/text: now/time show timer2 ] ] ] ] ] view layout [ timer1: info "00:00:00" 60 font [] rate 1 feel [ engage: func [face action event] [ if action = 'time [ timer1/text: now/time show timer1 ] ] ] button "New timer" [newtimer] ] | |
Graham: 5-Jan-2005 | Both timers freeze when I inform the new layout. | |
Graham: 5-Jan-2005 | when I close the new layout, the original timer restarts | |
Anton: 5-Jan-2005 | s timer inside a layout problem, above ? | |
Gabriele: 7-Jan-2005 | view layout [box 400x400 white effect [draw [translate 2x2 pen gray line-width 1.7 line 10x300 100x200 390x10] blur blur blur blur blur blur draw [pen red line-width 1.2 line 10x300 100x200 390x10]]] | |
Geomol: 7-Jan-2005 | I also made an example with the draw dialect. Try: view layout [image http://home9.inet.tele.dk/johnn/draw.png] | |
Geomol: 12-Jan-2005 | Maybe a box like this: >> l: layout [b: box white font [size: 12 style: none shadow: none color: black] "text text text text text text text text"] >> b/size/y: second (size-text b) + 4x4 == 34 >> view l | |
Ryan: 14-Jan-2005 | num: 1 view layout [cnt: label (form num) timer 1 [cnt/text: form num: num + 1 show cnt]] | |
Ryan: 14-Jan-2005 | Or is there an easy layout way without a timer style? | |
Ryan: 14-Jan-2005 | I usually do this: num: 1 win: view/new layout [cnt: label (form num)] while [viewed? win] [cnt/text: form num: num + 1 show cnt] | |
Ryan: 14-Jan-2005 | Err, actually with a wait like: num: 1 win: view/new layout [cnt: label (form num)] while [viewed? win] [cnt/text: form num: num + 1 show cnt wait 1] | |
Geomol: 14-Jan-2005 | num: 1 view layout [cnt: label (form num) rate 1 feel [engage: [cnt/text: form num show cnt num: num + 1]]] | |
Ryan: 14-Jan-2005 | num: 1 view layout [cnt: label (form num) rate 1 feel [engage: [cnt/text: form num: num + 1 show cnt]]] | |
Geomol: 14-Jan-2005 | To prevent ui events and have counter start with 1 using your short form: num: 0 view layout [cnt: label (form num) rate 1 feel [engage: func [face action event] [if action = 'time [cnt/text: form num: num + 1 show cnt]]]] | |
Ryan: 15-Jan-2005 | cant replicate the skinny caret. view layout [area] | |
Terry: 16-Jan-2005 | Is there someway to do this.. X: [btn: "test" [print "test"]] view layout [ X ] | |
Sunanda: 16-Jan-2005 | View layout X should work (You probably don't want the colon on btn) | |
Terry: 16-Jan-2005 | >> x: [btn "quit"[]] == [btn "quit" []] >> view layout [x] Unknown word or style: x >> | |
Sunanda: 16-Jan-2005 | view layout x -- x is already a block/.....No need to put in in another one. | |
Group: Linux ... [web-public] group for linux REBOL users | ||
[unknown: 10]: 2-Mar-2006 | people who startout using Ubuntu, Fedora or Redhat find themselfs In an Linux world that not even default with i.e. Disk-Structures on Tru64 or Solaris or HPUX.. while using other Linux distributions from around 1995 they stick with the UNIX system (IV|V) layout..But when it comes to development I can emagine to make a choice between "package handling" and "environment handling"... Then I would stick with debian..just has a better package manager...where slackware is a little more the "do it yourself package manager.." still 'tar does wonderful things.. for the user... | |
Cyphre: 22-Mar-2006 | fnt1: make face/font [ name: "/usr/share/fonts/truetype/freefont/FreeSans.ttf" size: 32 ] fnt2: make face/font [ name: "/usr/share/fonts/truetype/freefont/FreeSansBoldOblique.ttf" size: 64 ] view layout [ origin 0 box snow 400x100 effect [ draw [ pen black font fnt1 text anti-aliased 0x0 "Rebol Rulez!" pen blue yellow fill-pen red line-pattern 10 10 line-width 2 font fnt2 text vectorial 0x30 "Rebol Rulez!" ] ] ] | |
Volker: 17-Dec-2006 | request-file has a premade layout somewhere. Use that. You have the source for request-file in the sdk-sources. Needs some binding-tricks if you dont use the real source. | |
Anton: 18-Dec-2006 | replace/all select req-file/start-out [out: layout] 'slider 'scroller | |
Geomol: 18-Feb-2008 | James, I guess, you're interested in the keys in View. This will tell you the actual key in view: view layout [b: box red feel [engage: func [face action event] [probe reduce ["box" action event/key]]] do [focus b]] Run the code, activate the view window and press the keys. You can see the key values in the terminal. | |
Geomol: 18-Feb-2008 | Here under OS X, <Home> returns #"^A", so I can do this to use it: view layout [key with [keycode: #"^A"] [alert "Home was pressed"]] | |
Group: !Readmail ... a Rebol mail client [web-public] | ||
PhilB: 31-Dec-2004 | For the next release I will be changing the way in which the locale works. (For security reasons) The locale.r file will no longer be evaluated ... i.e. the program will no longer do %locale.r. The program will expect a pipe seperated file something like ; menu items gm_about|About gm_Accounts|"Accounts" gm_Contacts|"Contacts" gm_Folders|"Folders" gm_Help|"Help" gm_New|"New" gm_Preferences|"Preferences" gm_Send|"Send" gm_Unread|"Unread" gm_Layout|"Layout" ; gui items gt_Add|"Add" gt_Add-to-cont|"Add to Contacts" gt_Attach|"Attach" | |
Graham: 31-Dec-2004 | i guess that should be 'layout | |
Group: SDK ... [web-public] | ||
Volker: 11-Apr-2005 | view lay: layout[ button "title-time" 300[ lay/text: form now lay/changes: 'text show lay ] ] | |
Group: !RebGUI ... A lightweight alternative to VID [web-public] | ||
shadwolf: 3-Mar-2005 | We can't make layout transparent but we can make inside window transparenc level maybe this coud be a good thing to dig on | |
Anton: 4-Mar-2005 | Why would you need to differenciate them ? The same words can be interpreted differently by LAYOUT or DISPLAY. | |
DideC: 4-Mar-2005 | view layout [box edge [size: 10x10 image: logo.gif]] | |
DideC: 4-Mar-2005 | view layout [box edge [size: 12x12 image: logo.gif effect: [tile gradcol 1x1 255.0.0 0.0.2 55]]] | |
DideC: 4-Mar-2005 | view/options lay: layout [ box "Bouncing window !!" 300x200 rate 1 feel [ engage: func [f a e] [ if a = 'time [lay/changes: 'restore show lay] ] ] text "Minimize me (if you can ;-)" ] 'resize | |
Vincent: 4-Mar-2005 | just a detail: in facets document, /span datatype is pair! . you could use it to store other data, but if you set a pair! to /span, /view will use it as virtual size for face (it still works in later betas, so one should be careful to not use it to store coordinates) ie: f: layout [ banner "Testing /span" guide box 400x400 effect [gradient 1x1 0.0.0 255.255.255] button "Hello!" return text-list data ["just" "a" "list"] image logo.gif logo.gif/size * 2 ] f/span: f/size ; here we tells /view to use virtual coordinates for all subfaces view/options f 'resize ; will give a fully resizable window (widgets included), but it only works for reducing window's size. | |
Gregg: 5-Mar-2005 | As long as there is a glossary that let's you translate from familiar terms, I think you're OK using REBOL's native terms, though they were foreign to me when I started. Window or dialog? Or Screen or Form or Layout. A Dialog is usually something other than the main screen in an app. You sometimes need to use all those terms if you're speaking in the domain of an application, so use wha'ts appropriate in each context. Face or graphical object? Or Control or Widget. Tough call on this one. I was used to Control from VB, and Face confused me as it could be a layout as well. I like distringuishing between layouts and controls. Hmmm Maybe a hierarchical tree. Facet, attribute, property or descriptor? I like either Attribute or Property. I can live with Facet in REBOL, it's shorter, and it makes sennse if you think in terms like "let's discuss this facet of the business". Style, widget or template? Style, definitely. | |
Vincent: 5-Mar-2005 | bug: the last widget in a rebgui layout determine the width of the face - if the last widget is narrow, the window is narrow. fix: in %display.r, you have to keep track of the maximum x value: - near "xy: origin-size" you can initialize a 'max-width: "max-width: origin-size/x" - in parse loop, just after xy update "xy/x: xy/x + last-face/size/x", you can update the 'max-width: "max-width: max max-width xy/x" - after (outside) the parse, near where the y size is last updated "xy/y: xy/y + last-face/size/y", you can set the x size to be the 'max-width: "xy/x: max-width" | |
Vincent: 9-Mar-2005 | In http://www.dobeash.com/it/rebgui/widgets.html, in Feel function templates, there's missing the 'move event in engage. It's used for dragging actions in a layout. Here a vertical splitter widget using it : | |
Ashley: 9-Mar-2005 | Following documents updated to reflect latest changes / feedback: RebGUI Display User's Guide - new layout refinement plus widget descriptions added RebGUI Widget Designer's Guide - init attribute added REBOL/View Facet Summary - various | |
shadwolf: 25-Mar-2005 | yep layout | |
Ashley: 26-Mar-2005 | Vincent: 'list behavior & features - less is more at this stage, once we have something to look at we can refine it. shadwolf: 'text+ removal. While a useful widget for certain domains (like WYSIWYG editors / browsers) it's not a basic building block widget. There were also some unresolved implementation issues with it at this stage - I'll add it back in at a later date as an optional or advanced widget. shadwolf: multi-column list. An implementation model I liked was that adopted by Gui4Cli ( http://users.hol.gr/~dck/g4c/) which allows simple "table" representations (including column type and alignment definitions). Can't say I've come across that many UI's that use anything other than text / numbers in a standard list (thumbnails and scrolling check-box options are usually implemented in an app specific manner). Ammon: 'display/popup. If it's sufficiently different from 'display/layout then I'm all for it. Ammon: Wizard style. A wizard widget, if simple enough, would be a good addition. Like 'group-box and 'tab-panel it is a meta-widget that groups / uses other widgets. I'll make this distinction clearer in the next version of the docs. On a side note, my install example has convinced me of the need for an 'indent option (and the fact that use of 'offset should reset the line-height calculation). Ammon: "Unless otherwise specified, text size reverts to 200x9999 if the string contains a newline." I probably need to rephrase this, but what I was trying to say was that by default 'text is 9999x20 which let's you write a string without having to know it's width in advance (9999 will auto-size it), *but* if the string contains a newline then it is the height that is the more important variable so it'll use 200x9999 instead. Of course it'll only do this if you don't provide an explicit size yourself (the "unless otherwise specified" bit). Hope that makes a bit more sense. | |
Ammon: 26-Mar-2005 | Display/Popup is significantly different from /Layout. /Display appends the face that is generated to System/View/Screen-face. This makes it so that a popup can extend beyond the window of your application. | |
Robert: 31-Mar-2005 | splitter: adding a richt-click to reset splitter to original position. If users have screwed up their layout ;-)) | |
Carl: 31-Mar-2005 | Personally, I think it would be very cool to have a non-RT GUI dialect that was better than VID, but just as flexible. I wrote VID in very short period of time, and it was disigned for more than what it is typically used for. For example, VID is written in such a way that it makes it easy to write something like the Layout script -- because you can return to the original VID source code from the face itself. | |
shadwolf: 5-Apr-2005 | so things like view layout [ btn "EXIT" [quit]] would be writed in more than a sigle line in REBGUI ;) | |
Robert: 10-Apr-2005 | WRT my question about extending/customizing layout. Would it be possible to add something to RebGUI so that this is possible: if my-var > 5 [optional: button red 100] | |
shadwolf: 11-Apr-2005 | tab-panel: make face [ color: none pane: [] l-arw: none r-arw: none dir-buttons: false feel: make default-feel [ redraw: function [face act pos] [test-size test-wid] [ if act = 'show [face/pane/1/size: face/size - 0x20 ; ; test-wid: face/pane/1 ; test-size: test-wid/size/x ; if greater? test-size face/size/x [ ; either not dir-buttons [ ; dir-buttons: true ; insert tail face/pane face/l-arw: make arrow [ ; size: 20x20 ; offset: as-pair (face/size/x - 40) 0 ; data: 'left ; action: [print "you clicked left" ] ; ] do face/l-arw/init ; insert tail face/pane face/r-arw: make arrow [ ; size: 20x20 ; offset: as-pair (face/size/x - 20) 0 ; action: [print "you clicked right" ] ; data: 'right ; ] do face/r-arw/init ; ][ ; face/r-arw/offset: as-pair (face/size/x - 20) 0 ; face/l-arw/offset: as-pair (face/size/x - 40) 0 ; ] ; ] ; print "la liste des bouttn est plus grande que ce que l'on voit!!!" ] ] ] init: has [tab-offset last-tab] [ ; create main display area insert pane make face [ offset: 0x20 edge: default-edge] ; add tabs tab-offset: 0x0 insert tail pane make face [ offset: 0x0 pane: [] color: none ] container: last pane insert container/pane make face [ offset: 0x0 pane: [] color: none] foreach [title spec] data [ insert tail container/pane/1/pane make face [ offset: tab-offset size: 1x20 pane: [] text: title effect: reduce ['round edge-color 5 'draw copy []] resize: none font: make default-font [align: 'center valign: 'bottom] para: default-para feel: make default-feel [ over: func [face act pos] [ either act [ insert face/effect/draw compose [ ; compose required for AGG betas pen over-color line 3x1 (as-pair face/size/x - 4 1) line 2x2 (as-pair face/size/x - 3 2) line 1x3 (as-pair face/size/x - 2 3) ] show face ][ if face/parent-face/parent-face/parent-face/pane/1/pane <> face/data [ ; clear unless selected clear face/effect/draw show face ] ] ] engage: function [face act event] [pf old-face] [ if event/type = 'down [ pf: face/parent-face pf3: pf/parent-face/parent-face if pf3/pane/1/pane = face/data [return] ; has a new tab been selected? clear face/effect/draw old-face: pick pf/pane pf3/data ; find previous tab old-face/resize: pf3/size ; remember last size old-face/size: old-face/size - 0x1 ; deflag old clear old-face/effect/draw face/size: face/size + 0x1 ; flag new face/feel/over face true 0x0 pf3/data: index? find pf/pane face ; set new pane# pf3/pane/1/pane: face/data ; init tab panel if pf3/size <> face/resize [ ; recursive resize span-resize pf3/pane/1 pf3/size - face/resize face/resize: pf3/size ] show pf3 ] ] ] ] last-tab: last container/pane/1/pane last-tab/size/x: 10 + first size-text last-tab ; set tab title width display/layout "" spec last-tab ; generate tab spec into tab pane last-tab/data: last-tab/pane ; swap pane into data last-tab/pane: none ; clear pane last-tab/resize: size ; original panel size tab-offset/x: tab-offset/x + last-tab/size/x ; set offset for next tab title ] print "size et countainer a la con !!" probe size/x container/size: as-pair size/x 20 probe container/size/x container/pane/1/size: container/size container/pane/1/pane/1/size: container/pane/1/pane/1/size + 0x1 ; flag 1st tab data: 1 ; set pane# pane/1/pane: container/pane/1/pane/1/data ; init tab panel container/pane/1/pane/1/feel/over container/pane/1/pane/1 true 0x0 ; flag first as active ] ] | |
Robert: 24-Apr-2005 | resizing system: How about a method that will store the layout if altered by the user and reload the GUI in the same layout? It always drives me nuts if I have to resize application splitter bars, panes etc. when starting again. | |
Vincent: 26-Apr-2005 | a simple way could be 1) VID -> RebGUI : a 'face widget for RebGUI, to put any prebuilded face (ie made by 'layout) in a display, 2) RebGUI -> VID : a 'make-face -like function to build a reusable RebGUI face | |
Volker: 26-Apr-2005 | i hope. after all, both create faces. thee are a few differences in your api (action has 2 arguments, init is function). and you have a resize-system. will look what i can do. at least something like vid[ vid-stuff ] ; symply calls 'layout should be doable. | |
[unknown: 5]: 27-Apr-2005 | Yes Anton. I'm looking for a brief example - a small layout that shows the capability. | |
[unknown: 5]: 27-Apr-2005 | I remember when /view first came out it seemed there was someone that made a gui that was eliptical using only faces and no layout. | |
Vincent: 27-Apr-2005 | Usage: my-face: layout [field "just a field" [print face/text]] display "A RebGUI display" [ ... x-face [data 'my-face action [print "Hi!"]] ... ] | |
Brock: 30-Apr-2005 | I was also thinking about the feature that was being discussed that allows for more tabs than the width of the layout. How about an option to allow the tabs to wrap when larger than the layout? Take the number of tabs, divide the total by two and auto-size the tabs to the full width of the layout, just now there is two rows. I think this would be a nice alternative behaviour for when the user interface benefits from being able to see all possible tabs. | |
Group: !Uniserve ... Creating Uniserve processes [web-public] | ||
MichaelB: 25-Jan-2006 | Why does the following not work ? Anamonitor shows that the engage got into place, but the rate doesn't work. I seam to forget something, with rebgui: do %rebgui.r display "test" [ text "hello" do [ face/rate: 5 face/feel: context [ engage: func [f a e][ print 'bla ] redraw: detect: over: none ] ] ] do-events with vid: x: layout [button "hallo"] x/rate: 5 x/feel: context [ engage: func [f a e][ print 'bla ] redraw: detect: over: none ] view x do-events ???any help :-) | |
Group: XML ... xml related conversations [web-public] | ||
ScottT: 27-Apr-2006 | well, if you can write a stylesheet that outputs a layout. Not at all impossible, <xsl:output method="text" /> | |
Graham: 22-Jun-2009 | format-xml: func [ xml /local out space prev ][ out: copy "" spacer: copy "" prev: copy </tag> foreach tag load/markup xml [ either tag = find tag "/" [ ; we have a close tag ; reduce the spacer by a tab unless the previous was an open tag either not tag? prev [ ; not a tag remove/part spacer 4 ][ ; is a tag if prev = find prev "/" [ ; last was a closing tag remove/part spacer 4 ] ] ][ either tag? tag [ ; current is tag ; indent only if the prev is not a closing tag if not prev = find prev "/" [ insert/dup spacer " " 4 ] ][ ; is data insert/dup spacer " " 4 ] ] repend out rejoin [ spacer tag newline ] prev: copy tag ] view layout compose [ area (out) 400x400 ] ] obj2xml: func [ obj [object!] out [string!] /local o ][ foreach element next first obj [ repend out [ to-tag element ] either object? o: get in obj element [ obj2xml o out ][ repend out any [ o copy "" ] ] repend out [ to-tag join "/" element ] ] ] | |
Group: Hardware ... Computer Hardware Issues [web-public] | ||
[unknown: 9]: 23-May-2006 | You should, we can talk to you about how to configure your drive in the first place. I have some simple tricks I do for my laptops (I only use laptops, and live on them). Quick list: Put everything in PGP folders. Install XP to a small partition, and have a ghosted version on the same drive (seperate partition). Basic layout is C: = Boot and XP, D: = Data (your personal Data, E: = Extra applications, Z: = Archive og Ghost of C:. Keep the custom Ghost CD for your laptop with you. With this, if somoene steals your computer they don't get your data. If C gets corrupted, you can recover. And, it is REALLY easy to back up just your data fast. | |
Group: Sound ... discussion about sound and audio implementation in REBOL [web-public] | ||
Rebolek: 27-Jun-2005 | snd: load http://krutek.info/rebol/sound.r view layout [ button "play" [ wav: make sound [rate: 22050 data: snd] print "make wav" ? wav sndport: open sound:// insert sndport wav print "insert sound" ? wav close sndport ] ] | |
Group: Rebol School ... Rebol School [web-public] | ||
BrianH: 4-Apr-2006 | denismx, when I've taught REBOL to people, even people who are already familiar with other programming languages, it has been helpful to make the distinction between the REBOL language and the dialect engines. REBOL is really a data model and related syntax, and a bundle of library functions that manipulate data in this model. A dialect is really a semantic model for interpreting this data, like what people think of as a language in real life. A dialect engine is a set of library functions that think of the data in the same way - I know this sounds anthropomorphic, but it makes it easier to explain REBOL if you think of the different dialect engines as entities that are acting on a set of commands you are giving them. You can even use role playing to demonstrate this, having one of your students act out the part. It also helps to name each of these models after the main function that implements them - otherwise people might not get the distinction between them and REBOL as a whole. There are some functions that only deal with the REBOL data model and don't really do anything with the data other than translate it from or to some concrete syntax. It is best to group these functions by the syntax they implement - the group that implements what people normally think of as the REBOL syntax is LOAD, SAVE and MOLD. When teaching REBOL dialects I usually start with what I call the DO engine, what people normally think of as the REBOL language. DO is a stack machine like Forth, but it uses a prefix syntax to make it easier to use (by making DO dialect code more resemble that in other programming languages). DO also does a simple swapping hack to implement inline operators, which you will have to demonstrate so that your students will understand DO's operator precedence or lack thereof. DO always works on REBOL data: If you pass it a string or file that contains REBOL syntax code, DO will call LOAD to convert it to REBOL data - this is an important distinction to make so that your students can distinguish between the data and the processor of that data. There are many functions that depend on DO to interpret their blocks of "code", such as IF, WHILE, FOR, etc. It is important to note that these are just functions, not "syntax". DO's only syntax is the predefined operators that DO swaps (these are effectively keywords because of how the swap is implemented), the word/set-word/get-word difference, the interpretation of paths and the precedence of parens. Everything else is a function. There is also the PARSE engine, a rule-based recursive-decent parser with limited backtracking, that implements three dialects (simple parse, string parse and block parse). These dialects actually have keywords, as well as an entirely different execution model. Also, there is the View engine, which implements the LAYOUT and DRAW dialects. Refering to these engines as state machines isn't helpful, because the distinctions between their execution models, or whether they even have execution models, is important for distinguishing between them. You need to use the higher-level terms like stack machine, composition engine and such. I hope this helps! | |
Anton: 22-Apr-2006 | Well, I've just manually extracted the rebol functions from my latest script demo-virtual-face.r (as posted in the View group), so I'm looking at those. I've excluded layout and draw dialect keywords. The order in which the functions appear is interesting. I have some duplicates. So now I'm analysing.. | |
Anton: 22-Apr-2006 | Ok, so here's my frequency table: 6 compose 5 as-pair 5 func 4 do 3 show 2 all 2 copy 2 find 2 form 2 get 2 in 2 pick 2 print 2 to-image 2 use 1 * 1 + 1 - 1 <> 1 = 1 append 1 bind 1 center-face 1 change 1 clear 1 context 1 do-events 1 either 1 first 1 foreach 1 if 1 join 1 layout 1 load-thru 1 make 1 mold 1 object? 1 reduce 1 remold 1 remove-each 1 repeat 1 second 1 select 1 to-pair 1 to-path 1 view | |
Group: AJAX ... Web Development Using AJAX [web-public] | ||
Pekr: 11-Apr-2006 | don't you think we need new windowing system for browsers? I think that view layout is not good model anymore ... it opens new OS window ... but that will be regarded being a popup .... we imo definitely need rebol own windowing system ... | |
Maxim: 16-May-2006 | standard Windows user type designing, bad layout, bad looks, cramped, and very inconsistent with itself in the first look! an example to be site in courses about how NOT to design a UI. | |
Group: SQLite ... C library embeddable DB [web-public]. | ||
Ashley: 17-Feb-2006 | 1) why did you name somehow not traditionally functions as connect and disconnect? open and close are already taken and I wanted to avoid pathing (sqlite/open) or prefixes (sqlite-open) as the number of words added to the global context is relatively few and I wanted them to be meaningful words in their own right (same reason why VID doesn't have vid-layout, vid-center-face, etc). Connect and disconnect are the commands used to login/logout of another user in many databases; so while the context is not strictly correct, they are recognisable DB words. 2) why can't we support multiple name-spaces? You can via the connect/attach refinement (and this lets you transparently reference tables across multiple "databases"). Why would you want to concurrently access multiple databases that are *not* related to each other in any way? 3) can we have opened only one db at a time? Yes, bar /attach as above. The benefit of this approach is that you minimise the number of file locks a single process obtains, and you don't have to track state information (i.e. you don't need to tell 'sql which DB you are referring to). 4) Would it also be possible to extend e.g. 'headings to return non-string values? No, as it may contain strings like "count(*)" 5) don't agree with exposing functions as you did I tend to write CONNECT, SQL, etc in upper-case so db references embedded in my code stand out. Come up with a better naming scheme that everyone likes though and I'll adopt it. ;) | |
Group: Plugin-2 ... Browser Plugins [web-public] | ||
james_nak: 23-Jun-2006 | In FF, that is. And a blank box (outline of layout container) in IE. | |
Janeks: 28-Sep-2006 | I reinstall plugin but it is the same - here some more explanation: I can not to get to run the new version of script in rebol plugin - always getting old version, despite I changed version values in both files (web page and script) Yestrday I solved it so that I saved script with new name - than it worked - I could by changing version values run new version of script in plugin. But today with the same file can not. I have web page for plugin: >>>>>>snip<<<<<<<<<<<<< <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-10"> <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="PRIVATE"> </head> <body bgcolor="#FFFFFF"> <OBJECT ID="RPluginIE" CLASSID="CLSID:9DDFB297-9ED8-421d-B2AC-372A0F36E6C5" CODEBASE="http://www.rebol.com/plugin/rebolb7.cab#Version=1,0,0,0" WIDTH="240" HEIGHT="85" BORDER="1" ALT="REBOL/Plugin"></center> <PARAM NAME="LaunchURL" value="rmapsconsole03.r"> <PARAM NAME="Version" VALUE="1.5.0"> </OBJECT> </body> </html> >>>>>>>>>>>>>>snap<<<<<<<<<<<<<<<< and script in the same directory >>>>>>>>>>>>>>snip<<<<<<<<<<<<<<< REBOL [ Title: "Rebol Web Kartes" Version: 1.5.0 Author: "Janeks Kamerovskis" ] mapsize: 400x300 imgType: "JPEG" mainWin: layout [ t1: text "AAA" button 200x20 "Atvçrt" [ do smoething ] do [ t1/text: "Text changed" show t1 ] ] view mainWin >>>>>>>>>>>>>>snap<<<<<<<<<<<<<< | |
Maxim: 18-Jun-2007 | a ha... just figured it out... simply put the variable as the last thing in the script: rebol [] view layout [ button "test" [view/new layout compose [vtext (do-browser {var url = document.location.href; url})]]] | |
Group: !GLayout ... ask questions and now get answers about GLayout. [web-public] | ||
Maxim: 1-Nov-2006 | some usefull tidbits are pre and post layout hooks... which allow a style to add faces to its spec BEFORE layout is called (usually much easier than trying to create faces directly). | |
Maxim: 1-Nov-2006 | this is how the scroll pane works. it adds its scrollbars to the layout, dynamically and then lets the layout take care of everything. | |
Maxim: 1-Nov-2006 | the post layout hook, allows you to react to the layout, just after its done, but before moving on to other gadgets. | |
Maxim: 3-Jan-2007 | which is handled in the gl-layout function. | |
Maxim: 3-Jan-2007 | this means that if no face in a layout can stretch or is elastic, the window will never allow resizing in that direction... trying to resize it beyon, will effetively resize the window back to its nominal size, allowing the other axis to resize freely. | |
Maxim: 3-Jan-2007 | this layout for example: column [ header "enter text" field ] will popup a window which stretches only in x by default | |
Maxim: 3-Jan-2007 | if you ever change something interactively and wish to recompute the layout (cause the sizing needs have changed for any reason) then call refresh on any face or group. | |
Group: !Liquid ... any questions about liquid dataflow core. [web-public] | ||
Ingo: 18-Nov-2006 | Hi Maxim, are there liquid pumps? As an example, imagine a layout with 2 input values, and 2 outputvalues, which depend on both inputs, e.g. input 2 numbers, and get product and sum. Now if I change the value of 1 input field, the new value would flow to both output fields. As far as I understood liquid so far, I now need another way to notify those 2 output fields, that there are new values waiting. And they have to actively get the new data. Now add a pump, which pumps the data into the system, so that dependent !plugs automatically are recalculated. Is this possible now? What do you think about adding this? | |
Maxim: 3-Mar-2007 | applying this to a gui driven with liquid nodes, you could freeze the the whole layout on a modal window... and let your inputs continue to process in the background... updating animation, and reacting to async reads... for exacmple. when you unfreeze the gui and call a refresh of the gui plug, all the data which was being processed in the background, is now automatically available ,as if nothing had been frozen and a simple update of the node, will refresh you gui with nothing to manage. | |
Maxim: 18-May-2007 | is the gui an actual picture of the school's layout. | |
Mario: 18-May-2007 | The gui has the rooms names as buttons. When you press the room name its layout (made of buttons) is shown along with a standard feedback layout (a form to send requests via CGI POST) | |
Maxim: 7-Mar-2009 | I have a newer version which has the "ability modifiers" added as extra labels to the right of the abilites... it took me 5 minutes to do, and it only needs one new simple !plug derivative: ;- !ability-mod !ability-mod: make !plug [ valve: make valve [ type: 'ability-mod ;----------------- ;- process() ;----------------- process: func [ plug data ][ vin [{!ability-mod/process()}] plug/liquid: 0 vprobe data if integer? data: pick data 1 [ plug/liquid: to-integer (data - 11 / 2) ] vout ] ] ] and necessary linkage within the !character setup, and appropriate faces in the window layout. | |
Maxim: 13-Mar-2009 | As you know, I just totaly reviewed how liquid-vid will handle its layout (now a live prodecural network in its own), so I am hard at work building that, but I will definitely put some time on integrated unit testing, when I rebuild the visual graph editor. its such a great idea, as we have discussed, the I/O aspect of plugs cannot be ignored in dataflow, so this would be a great way to profile, document and verify expected node behaviour. | |
Maxim: 13-Mar-2009 | btw, the work being done for liquid-vid's layout, is now the official prototype for the inital layout engine for GLASS | |
Maxim: 13-Mar-2009 | for the layout algorythm, I actualy did a complete flow analysis of a row/column resizing liquid graph. its actually rather simple, when you force yourself to follow what data goes where. note that I was able to build this without creating a processing cycle... which is neat, since some values are going to the parent face and coming back to its pane elements. | |
Group: DevCon2008 (post-chatter) ... DevCon2008 [web-public] | ||
Henrik: 18-Sep-2007 | I'd say we need a presentation tool that relays layout data to a number of people along with streaming audio. That's my biggest issue with the experiences we've had with devcon videos. | |
NickA: 19-Dec-2008 | Reichart, I'll be happy to put up a page about devcon 2008, and afterward host any recordings that get made. My design skills are terrible, though, so if anyone wants to prepare a nice looking layout, it'll surely look better than anything I come up with... | |
Group: reblets ... working reblets (50-100 lines or less) [web-public] | ||
Maxim: 19-Mar-2009 | rebol [ title: "explore.r" version 1.0 date: 2009-03-19 author: "Maxim Olivier-Adlhoch" copyright: "2009(c)Maxim Olivier-Adlhoch" tested: "win xp" notes: "Add any dir to the dirs block. options are self explanatory" ] dirs: [ %/C/ [] %"/C/program files/" [expand] "%tmp%" [label "temp dir"] "" [ label "my documents"] ] blk: [] explore-dir: func [path expand? /local cmd][ call/shell rejoin [" explorer " either expand? ["/n,/e,"]["/n,"] path ] ] ctr: 1 foreach [item opts] dirs [ ctr: ctr + 1 expand?: found? find opts 'expand label: any [select opts 'label to-local-file item] append blk compose/deep [ pad 20 (to-set-word setw: rejoin ["dir" ctr]) check (expand?) pad 20 btn 200 left (label) [ explore-dir to-local-file item get in (to-word setw) 'data ] ] append blk 'return ] view layout compose [across vtext right "expand?" vtext "folder" return (blk)] |
101 / 2056 | 1 | [2] | 3 | 4 | 5 | ... | 17 | 18 | 19 | 20 | 21 |