Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] How to crahed your palmpilot (joke)

From: philb:upnaway at: 16-Nov-2001 21:57

Hi Arnaud, I beleive Jeff posted a program to scroll around a large face, it automatically added scroll bars if the image was too big to fit in the window(?). It did however not show the extreme edges of the image though. I posted an update to the a image scroller started by Bo This one does show the edges of the image as it increaces the face size to add the scroll bars. REBOL [ Title: "Automated scrolling" Date: 22-Dec-2000 Author: "Bohdan Lechnowsky" Email: [bo--rebol--com] File: %scroll-face.r Version: 1.2.0 Purpose: { Demonstrates a way to write a scrollable face. } Comments: { This is a generalized function with 100% environmentally-friendly local variables. It can operate on any number of scrollable windows in the same main face--even scrollable windows nested inside other scrollable windows--as the example shows. } History: [ 0.9.0 ["Initial concept explored" "Bohdan Lechnowsky"] 0.9.1 ["Tweaks" "Bohdan Lechnowsky"] 1.0.0 ["Fully working version" "Bohdan Lechnowsky"] 1.1.0 ["Added arrows and size option plus minor mods" "Bohdan Lechnowsky"] 1.1.1 ["Bug fix with local variable" "Bohdan Lechnowsky"] 1.1.2 ["Another bug fix with local variable" "Bohdan Lechnowsky"] 1.2.0 ["Add horizontal Scroll Bar & Arrows" "Phil Bevan"] ] ] scroll-face: func [ {Returns vertically & horizontally scrollable version of input face.} at {Face to attach scroll-face bar to} v {Visible size of the attach-to face} /arrows {Include arrows} /size {Change size of scroll bar/arrows} s {New size for scroll bar/arrows} /local l a f ][ if not size [s: 16] l: layout/offset [ backdrop 0.0.0 across space 0 size (v + (s * 1x1)) origin 0x0 at 0x0 box (v) slider (v * 0x1 + (s * 1x0)) [] return at (v * 0x1) slider (v * 1x0 + (s * 0x1)) [] at (v * 1x1) box gray (s * 1x1) ] 0x0 if arrows [ l/pane/3/size/y: l/pane/3/size/y - (s * 2) l/pane/4/size/x: l/pane/4/size/x - (s * 2) arrow: layout/offset [ arrow up (s * 1x1) [ f: face/parent-face/pane f/2/offset/y: min 0 f/2/offset/y + 15 f/3/data: negate f/2/offset/y / (f/2/size/y - v/y) show face/parent-face ] arrow down (s * 1x1) [ f: face/parent-face/pane f/2/offset/y: max v/y - f/2/size/y f/2/offset/y - 15 f/3/data: negate f/2/offset/y / (f/2/size/y - v/y) show face/parent-face ] ] 0x0 arrow-lr: layout/offset [ arrow left (s * 1x1) [ f: face/parent-face/pane f/2/offset/x: min 0 f/2/offset/x + 15 f/4/data: negate f/2/offset/x / (f/2/size/x - v/x) show face/parent-face ] arrow right (s * 1x1) [ f: face/parent-face/pane f/2/offset/x: max v/x - f/2/size/x f/2/offset/x - 15 f/4/data: negate f/2/offset/x / (f/2/size/x - v/x) show face/parent-face ] ] 0x0 arrow/pane/1/offset: l/pane/3/offset * 1x0 + (l/pane/3/size * 0x1) arrow/pane/2/offset: l/pane/3/offset * 1x0 + (l/pane/3/size * 0x1 + (s * 0x1)) arrow-lr/pane/1/offset: l/pane/4/offset * 0x1 + (l/pane/4/size * 1x0) arrow-lr/pane/2/offset: l/pane/4/offset * 0x1 + (l/pane/4/size * 1x0 + (s * 1x0)) append l/pane arrow/pane append l/pane arrow-lr/pane ] l/pane/2: at l/pane/3/action: func [f a] compose [ f/parent-face/pane/2/offset/y: (negate at/size/y - v/y) * f/data show f/parent-face ] l/pane/3/redrag v/y / at/size/y l/pane/4/action: func [f a] compose [ f/parent-face/pane/2/offset/x: (negate at/size/x - v/x) * f/data show f/parent-face ] l/pane/4/redrag v/x / at/size/x l ] siz: 400x400 ;-- A simple example f: layout [ backdrop 0.100.0 t: box (siz + 16x16) ; button "Quit" [quit] ] f-im: scroll-face/arrows layout/offset [ backdrop 0.70.0 origin 0x0 space 0 at 0x0 image %large.jpg ; your image here ] 0x0 siz t/pane: f-im view/offset f 140x130 Cheers Phil === Original Message === Try this boring script (big view of WTC, NY..) REBOL [ Title: "Remake of view-image.r ;-)" Date: 15-November-2001 Author: "Arnaud Danassiť <[bigdan--migazone--com]> - Badger Dev" File: %wtc.r Purpose: {Wonderful 14 Mo JPG of WTC, upload on aminet by [pairio--cs--joensuu--fi]} Category: [view VID 1] ] view layout [image] Not enought memory (9372x9372 pixels... arghhhh)? try instead (for example) More seriously, i am working on a reduction of this jpg in more decent size with a system like map in html to display portion of this jpg (no scrolling view yet ;-( Any ideas welcome, thanks. Arnaud aka bigdan Badger Dev