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

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp4
r3wp398
total:402

results window for this page: [start: 1 end: 100]

world-name: r4wp

Group: Announce ... Announcements only - use Ann-reply to chat [web-public]
Robert:
5-May-2013
Cross-Post from Android group:


New release of Rebol3 with graphics on Android: http://development.saphirion.com/experimental/r3-droid.apk

Changes:
-enable CTO and OTC functions
-fix window offset
-fix image! / loaders pixelformat color order
-fixed close button action (RL_Init failed?)
-improved WAIT
-added clipping(slow atm but works)
-added RESIZE/ROTATE events
-improved JNI calls synchronization
-added native keyboard input
-updated built-in R3-GUI version



Note this release is very early alpha so expect unstable situations 
or even crashes. Feel free to report bugs or any other feedback.


This gets us again one step closer to be able to create Android apps 
with Rebol. Simple, small, fast. :-)
Group: Ann-Reply ... Reply to Announce group [web-public]
Arnold:
2-Jul-2012
@Rebolek Thanks, that wil be on the list together with line width 
and color and font-size preferences, a multilingual help function 
and a resize mechanism. ((:
Group: Rebol School ... REBOL School [web-public]
Henrik:
29-Jun-2012
You can do that, although that requires you to re-layout the pane. 
I don't know the code behind the panel, so that may or may not be 
the best way to do it. It's not the fastest way though. You can manually 
add a face object to the pane block, but you will then have to calculate 
its offset, initialize it by hand and resize the parent panel to 
fit the new face.
Henrik:
29-Jun-2012
Then you will of course need to resize the panel and the window.

world-name: r3wp

Group: Ann-Reply ... Reply to Announce group [web-public]
Pekr:
12-Jun-2005
I don't know if it is usefull to have sliders in there, but what 
happens if menu is larger than app window, or app window is near 
screen-face border? Will menu wrap to the other side then? What happens 
if you resize main window etc?
Ingo:
30-Aug-2005
REBOL [
	Title: "Local Index" 
	Type: 'index 
	dynamic: true 
	plugin-pane: 0.5
]

title "Local Files"
app 0.3

group "A" effect [multiply green] 
			 
group "B" icon %action.png

action "a\gitarre"    do [explore %/f/gitarre/]
action "a\view-root" do [explore view-root]
action "a\hamster"   do [call "H:\prog\Hamster\Hamster.exe"]

action "b\Internet" do [
	call "H:\Programme\offline-proxy-mm3\MM3-WebAssistant.bat"
	call "C:\Programme\discountsurfer\discountsurfer.exe"
	call "H:\Programme\Mozilla\Firefox\firefox.exe"
	call "C:\Programme\Opera75\Opera.exe"
] 


action "b\Firefox" do [	call "H:\Programme\Mozilla\Firefox\firefox.exe"] 
icon %web-surf-action.png

action "c\desktop"   do [editor view-root/desktop.r] 
action "c\imap"      do [editor %imap-handler.r] 

file "Info" %info.txt
file "T\Test" %test1.r 
file "T\Test2" %test2.r 
file "T\Test" %test3.r

; this is composed ----
file (form now/date) %dummy.r

action "Click me" #clickme do [
            alert "hi"

            [Text "This will be displayed within the desktop" [alert "ho"]]
          ]

action "Click me 2" #clickme2 do [
            alert "hi"
			; no return value, so nothing displayed in the desktop
          ]

action "PRINT" do [print "^/^/----------------------^/^/^/"]
action "prin somethin" do ["yea"]
file "t\Test" %dummy.r

; this will draw the plugin
app-draw [face /local cl-size][
   cl-size: to pair! reduce [face/size/x 50]
	face/pane: layout/offset[
		at 0x0 
	   text "00:00:00" cl-size center 255.155.40 with [
   		font: [size: 24]
	   	rate: 1
		   user-data: none
   		feel: make feel [
	   		engage: func [face action event i] [
		   		if user-data <> now/time [
			   		i: form user-data: now/time
				   	if 7 > length? i [append i ":00"]
					   face/text: i
   					show face
	   			]
		   	]
      	]
      ]
      text "TEST" 
		button "hi" [alert "you!"] 
   	button "CLOSE" [unview/all] 
	] 0x0 face/size 
]

; if you need to redraw after a resize, not yet used
app-resize [new-size][]
Oldes:
5-Aug-2009
I'm building it using REBOL (writing code in old but still my favourite 
Crimson editor). Which means I'm producing AS2 bytecode and also 
modify (resize, join...) various swf files with graphic ( on bit-level 
:) I'm using various caching so for example don't have to republish 
the graphic all the time when I just need to change simple logic 
in my code.
Graham:
29-Aug-2009
Initially it's centred in the panel .. but shrink it down to minimum 
and then resize it, it falls to the bottom
Graham:
29-Aug-2009
So, can't you specify a minimum resize value to stop this?
Henrik:
29-Aug-2009
It's much the same resize code as Brian and I showed two years ago.
Henrik:
27-Oct-2010
also when first showing the window, the view area is only in about 
the upper left quarter of the window. a resize solves this.
Maxim:
27-Oct-2010
wrt resize, yes that is on purpose.  it allows me to test events 
within and without the opengl.
Group: !AltME ... Discussion about AltME [web-public]
[unknown: 10]:
26-Feb-2006
Why is ALTME not messing up my screen when I manualy resize the screen? 
Where when a simple 'resize in /view Does!??? What does ALTME do 
differently? Is it a more dircet /view access ???
[unknown: 10]:
26-Feb-2006
Well i mean that when i start ALTME in i.e. 500x500 and then resize 
with mouse I dont see any screen stripes while resizing, but when 
I do this with a simple window under rebol I do see lots of screen-stripes 
during resize untill I loosen my finger from the mouse button...
Henrik:
26-Feb-2006
AltME probably ignores resize events until its ready to redraw
Anton:
26-Feb-2006
view/options center-face layout [area] 'resize
Anton:
26-Feb-2006
Maybe RT was trying to see if they could get continual resize events 
processed by rebol, so they disabled a default refresh. But then 
it was probably found that rebol refresh is not really fast enough 
to keep up ? Not sure.
Anton:
26-Feb-2006
I don't remember ever seeing an option to enable "all resize events".
Group: RAMBO ... The REBOL bug and enhancement database [web-public]
shadwolf:
18-May-2005
I noticed a crash with rebol 1.2.107.3.1 on win2k with the script 
logo.r (tet program for AGG)  when I resize the windows ...
[unknown: 10]:
10-Aug-2005
Linux 1.3 Beta -> Segmentation Fault occeured during resize of "DESKTOP"
[unknown: 10]:
10-Aug-2005
Linux 1.3 Beta -> The digital Clock example from Carl Stops working 
after a resize, it just disapears from the screen..Feature or Flaw?
Group: View ... discuss view related issues [web-public]
PhilB:
10-Feb-2005
I have a window that I want to make a dialog box .... so I do an 
inform on the layout.

Is it possible to make the resultant window resizable ... a la ... 
view/options layout [......] [resize]
Ammon:
10-Feb-2005
You should be able to set these options manually with something like...

lay: layout [text "testing"] 
lay/options: [resize]
view lay
PhilB:
10-Feb-2005
Another thing ..... running on WinXP under view from 1.2.5 & upwards 
....
view/options layout [btn "Test"] [resize]

.... gives me a window that is only partly filled in with the default 
background color?
DideC:
11-Feb-2005
lay: layout [btn "Test"]
print lay/size
view/new/options lay [resize]
print lay/size
do-events
shadwolf:
2-Mar-2005
actually when I resize a layout by clicking left mous button and 
pointing to one of it's borders I have an ugly thing
Vincent:
2-Mar-2005
you can do it at 'resize event, but i don't think you can do it during 
the resizing
shadwolf:
2-Mar-2005
Vincent I yet do it on resize event completion but it's during the 
completion of the resize event I need to have the refreshing to polish 
the UI eatch time the mouse pointeur is moved ..
Vincent:
2-Mar-2005
event system is stopped when you resize the window: try to do something 
at each clock tick (at 'rate speed,) and you'll see that no event 
is processed while resizing
shadwolf:
2-Mar-2005
I know that but there is no matter to plug a little refresh code 
during the resize completion ?
Vincent:
2-Mar-2005
sorry, even busy loop are stopped. no code execution while resizing: 
when you start resizing with mouse, all executed code stops, when 
you finish resizing, code resumes and an event 'resize in generated. 
So no refresh during window resize or movement (white background 
visible, truncated display, and others glitches), but only after.
shadwolf:
2-Mar-2005
well  there is no posibility to refresh within the resize event  
in VID but we can ask carl to add this kind of tricks into VID process
shadwolf:
2-Mar-2005
one of the first widget that I want to work on is a status bar that 
can encap text, progress and the resize logo
Ashley:
7-Mar-2005
Poking around a bit in the View executable (1.2.10.3.1) I "discovered" 
the following undocumented words (and have assumed they belong to 
the indicated facet based on the position of other known words). 
I've worked out what a few of them do, anyone care to comment on 
the others (or point to documentation if covered elsewhere).

Draw
--------
fill
font

Effect
--------
dither
alphamul
anti-alias
func
merge		; I know this was covered, just can't find where
chisel
	view layout [box 20x40 effect 'chisel box 40x20 effect 'chisel]
round
	view layout [box 20x40 effect 'round box 40x20 effect 'round]

Feel
--------
inactive
active

Options
--------
parent
	view/new a: layout [size 400x400]
	view/new/options layout [size 200x200] compose [parent (a)]
	do-events
min-size
	view/options layout [box blue 400x400] [resize min-size 200x200]
activate-on-show
Group: I'm new ... Ask any question, and a helpful person will try to answer. [web-public]
RobertS:
31-Aug-2007
; I did a dif between the functions in VIEW and those in CORE for 
a default install.  What I get is this ( I hope it is useful to have 
al 106  in one place )

 alert  brightness?  caret-to-offset  center-face  choose  clear-face 
  clear-fields  confine  crypt-strength?

 dbug  deflag-face  desktop  dh-compute-key  dh-generate-key  dh-make-key 
  do-events  do-face  do-face-alt  do-thru  

 draw  dsa-generate-key  dsa-make-key  dsa-make-signature  dsa-verify-signature 
  dump-face  dump-pane  edge-size?  

 editor  emailer  exists-thru?  find-key-face  find-window  flag-face 
  flag-face?  flash  focus  get-face  

 get-net-info  get-style  hide  hide-popup  hilight-all  hilight-text 
  hsv-to-rgb  in-window?  inform  

 insert-event-func  inside?  install  launch-thru  layout  link-relative-path 
  load-image  load-stock  

 load-stock-block  load-thru  local-request-file  make-face  notify 
  offset-to-caret  open-events  outside?  

 overlap?  path-thru  read-net  read-thru  remove-event-func  request 
  request-color  request-date  request-dir  

 request-download  request-file  request-list  request-pass  request-text 
  reset-face  resize-face  rgb-to-hsv  

 rsa-encrypt  rsa-generate-key  rsa-make-key  screen-offset?  scroll-drag 
  scroll-face  scroll-para  set-face  

 set-font  set-para  set-style  set-user  show  show-popup  size-text 
  span?  stylize  textinfo  unfocus  

 uninstall  unlight-text  unview  vbug  view  viewed?  win-offset? 
  within?
Anton:
18-Nov-2008
I split into separate lines because I often want to put stuff in 
between, eg. a window resize handler.
Group: Make-doc ... moving forward [web-public]
shadwolf:
31-May-2005
it handle the window resize too, Toc area is inserted into the same 
window and the entry clicking now scroll allways on the top the viewing 
area, MDP-Browser can produce HTML docs by just clicking one button 
the HTML  is stored localy and can be published back to the IOS server 
using the IOS REBOL/link client plublishing system. Editing of a 
document is possible existing on the IOS server or new we can store 
locally or publish it back (if the fileset yet exist on the IOS server).
Group: Linux ... [web-public] group for linux REBOL users
Louis:
5-Nov-2008
Anybody see what is wrong with this script? It is supposed to call 
ImageMagick to reduce the size of specific jpeg files in a directory. 
 It processes a few files, then locks up my computer.

rebol []
files: sort read %.
num: length? files
print ["Number of files in directory: " num newline]
count: 0
foreach file files [
	if all [find file ".JPG" not find file "Nain-"][
		newfile:  join "Nain-" file
		call/console reduce ["convert" file "-resize 25%" newfile]
		count: count + 1
		prin [count " "]
	]
]
print "DONE"
BudzinskiC:
26-Oct-2009
Yeah on Mac OS X there are a few problems too. The bottom of a scrollbar 
isn't shown for example (I guess the resize graphic in the lower 
right corner covers it). And the console is unusable when the view 
freezes. Whatever I type ends up as garbage and gets mixed up with 
the command history so the only option at that point is to restart 
REBOL. REBOL seems to work only good on Windows at this point. But 
cross platform is always a hard thing to achieve, I haven't found 
any solution other than Java & Swing that "just works". Well, maybe 
Adobe AiR but only on Windows and Mac OS X, on Linux you get into 
trouble as soon as you use something other than Ubuntu :)
Group: AGG ... to discus new Rebol/View with AGG [web-public]
shadwolf:
27-Jun-2005
scalling that is applyed to shapes coordinates is scale-x: size/x 
/ svg-size/x  scale-y: size/y / svg-size/y ( this allow resize handling)
Geomol:
25-Oct-2005
Huh!? I'm using DRAW to resize a brush in Canvas, if AA is on. Try 
paint a one pixel line with AA off, then turn AA on and hit 'h' to 
halve the size. Isn't it doing it, like you want?
Group: Announce ... Announcements only - use Ann-reply to chat [web-public]
Geomol:
2-Mar-2009
NicomDoc v. 2.2 released: http://www.fys.ku.dk/~niclasen/nicomdoc/

- Added output for TeX (LaTeX).
- New way to specify fonts by font family.
- New way to resize fonts relative -4 ... +5.
- Scaling of images.

- Math engine had big overhaul to not be focused on semantics, but 
on presentation (less errors in practise).
- Text in code examples will be wrapped at 77 chars per line.
- Added vertical space by simply doing more newlines in a row.
- Updated all documentation and examples.
Group: !RebGUI ... A lightweight alternative to VID [web-public]
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.
Vincent:
9-Mar-2005
To use it, just insert it between the faces you want to resize: 

text [text "Some text" 320x40] v-splitter [size 5x40] box [size 60x40 
color blue]
Pekr:
10-Mar-2005
If I imagine more complex style as e.g. grid, with Romano's system 
you had ability to create resize groups, to anchor something to different 
face etc. But then RebGUI seems to follow different target then I 
thought. I want full OS compliancy in behavior ...
Graham:
13-Mar-2005
When you resize the tabbed view to a smaller size, I notice that 
the window obscures tabs to the right.  Can you put an arrow widget 
to scroll the tabs across ?
shadwolf:
29-Mar-2005
very nice work as usual I have one little impprovement that I would 
like to add to my ctx-menu adaptation to RebGUI is the size calculation 
instead of passing to it staticly it would be better to calculate 
in relation with the parent-face and be able to use the resize on 
it
shadwolf:
29-Mar-2005
the span field is enought  but I need to redraw the ctx-menu when 
a resize is done
shadwolf:
29-Mar-2005
the ask is do we need to specify in hard coded way the resize of 
every image ...
shadwolf:
29-Mar-2005
G4C TUT_MCListview

// ===========================================================
// A Multi Column (or Database) Listview..
// ===========================================================

WINDOW 126 90 367 373 "Listview"
	winattr style resize

xOnLoad
	// add some records to the listview & open..
	gosub #this AddRecords
	guiopen #this

xOnClose
	guiquit #this

// ===========================================================
// The listview
// - This is a normal MULTISELECT listview (the default).
// For this type to be triggered, you must double-click it.
// ===========================================================

XLISTVIEW 0 0 0 0 'The Title' "" var

	attr ID mylv
	attr resize 0022
	attr frame sunk

	// Give it a grid and allow the user to drag, drop & re-arrange
	// the lines - You can add more styles here..
	attr style grid/arrange/drag/drop/arrange

	// Add some columns. The first one we state with a '#'
	// in front to indicate we mean the 1st column.
	attr LVCOLUMN '#Item/width/120/TITLE/Description'

 attr LVCOLUMN 'Units/width/60/TITLE/Units/TYPE/number/JUSTIFY/RIGHT'

 attr LVCOLUMN 'Amount/width/60/TITLE/Amount/TYPE/number/JUSTIFY/RIGHT'

 attr LVCOLUMN 'Total/width/60/TITLE/Total/TYPE/number/JUSTIFY/RIGHT'

	// show the line double clicked..

 SetWinTitle #this 'SUM: $%Units x $%Amount = $($%Units * $%Amount)'


// ===========================================================
// This is a routine to add 100 records with various
// meaningless values to the above listview. Note how
// the fields can be used as normal variables.
// ===========================================================

xRoutine AddRecords
	local c

	use lv #this mylv

	// before we start, we HIDE the listview. This will
	// stop Gui4Cli from visually refreshing it every time
	// we add a record and will GREATLY increase the speed.
	// This will have no effect if the window is closed.
	// After we finish, we show it again..
	setevent #this mylv HIDE

	for c 0 100
		// add an empty record..
		lv add ''

		// Fill the fields with various values..
		%Item   = "This is Item $c"
		%Units  = $($c * 3)
		%Amount = $(($%Units / 2)*1000)
		%Total  = $($%Units * $%Amount)

	endfor

	// Show the listview again, refreshing the display..
	setevent #this mylv SHOW

// ===========================================================
// Right mouse button handling - Some menu choices..
// ===========================================================

xOnRMB


 QuickMenu -1 -1 'Select All/Remove selected/Add 100 records/#sepa/cancel'
	use lv #this mylv
	docase $$choice
		case = 0			// Select All
			lv select all
			break
		case = 1			// Remove selected
			lv delete selected
			break
		case = 2			// Add some records..
			gosub #this AddRecords
	endcase
Brock:
2-Apr-2005
Ashley, simple question.  Is the display/min-size expected to always 
open atleast the size of min-size.  I noticed it does not, however, 
when you attempt to resize the window, it will not allow resize smaller 
than min-size.  See example 2.1.2 in your RebGui Display guide.
Ashley:
2-Apr-2005
Min-size limits the OS window size on resize only, the documentation 
will be updated to make this clearer (note that the OS window size 
includes an unknown number [to REBOL/View at least] of border / title 
pixels that varies by OS / Window style).
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.
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.
Volker:
26-Apr-2005
btw related dialects: how about using #xywh instead of that tuple? 
then it could be easier detected on the vid-side (issue! -< resize-options)
Robert:
30-Apr-2005
listview: Pretty cool :-)) Some ideas:

- add a line highligh feature for the selected line and the line 
the cursor is currently pointing to

- double clicking the column-resize bar resets the column width to 
the default value

- add an up/down arrow to the column which was used for sorting, 
to indicate sorting order
Graham:
30-Apr-2005
I just looked at Romano's ana-list.  When column resizing, he chooses 
to resize in real time only the adjacent column.  The other columns 
are not affected.
Brock:
30-Apr-2005
I like how your style doesn't require you to be in the header row 
inorder to resize a column, simply selecting the column border in 
any cell allows column resize.
Graham:
30-Apr-2005
If you resize the 1st column, then Romano's ana-list resizes the 
1st and 2nd columns only.  The other columns stay where they are.
Graham:
1-May-2005
but resize the column headers while mouse is down
Brock:
1-May-2005
I believe it looks strange because you are including the adjacent 
data in the resize... Excel only shows a faint line indicating where 
the cell will end.
Brock:
1-May-2005
Something I am seeing... while mouse is down and resizing, the header 
cell in the direction I am moving highlights as if I am selecting 
that cell.  When I change direction of the resize, the new column 
header cell highlights.
shadwolf:
1-May-2005
yes the resize mouve only the header buttons ;)
Brock:
1-May-2005
That's working as you state, only the headers are moving.  Now however, 
I can only drag the resize bar one column width.
Brock:
1-May-2005
I don't want to be limited in width of how far I can resize.
Brock:
1-May-2005
I'm not talking about when reducing the size of the column, I'm talking 
when enlarging the size of the column, I can't resize larger then 
the max width of the column to the right.
Graham:
1-May-2005
at this point I can only resize column 1 and not the others
shadwolf:
1-May-2005
after some playing with the spliters they jump  dans resize all anarchicaly 
... I don't know why this happens...
Brock:
1-May-2005
Also, when you reduce the sizes of the columns and can see the right 
edge of column 5, you can't resize column5 - no resize bar.
Graham:
1-May-2005
Can't see the above bugs anymore, but I can't resize the last column
Volker:
27-May-2005
mixing vid with rebgui has also some api-problems. some i found:

 /action: has in vid this args: [face value]. value is something usefull, 
 like area/text, slider/tdata, first text-list/picked etc. maybe its 
 not needed, "value" saves not much to "face/text". but supporting 
 that arg would be compatible

 /init: in vid this is a block and 'done. in rebgui it is a function. 
 vid has the advantage that init can be easily extended in substyles, 
 just add to it. rebgui has locals because it uses a function.
 /init2: not called by vid. 

resizing: not in vid, but one could write a /resize and plug it in 
the vid-face.

also there are some global changes which may break other things (removing 
event-func and changing global face IIRC).


If there is interest in making such small changes, i would help with 
making the rest compatible. adding #xh - parsing to 'layout and such. 
for "keep small" rebgui could have a "load-time-flag" to decide about 
using vid-stuff or all own.

What i would really like is rebgui for complex style-building (area 
with slider etc). this is closer to raw faces. and vid for quickly 
writing "pages", IMHO it has a rest of advantages there. (maybe not, 
i am a rebgui-beginner).
Ashley:
9-Jun-2005
Not yet. My priority is getting everything working with the mouse 
first before ensuring everything can be driven keyboard only (which 
for complex widgets / actions is nigh impossible anyway - how does 
one resize table columns with the keyboard?).
Pekr:
24-Aug-2005
Hi, just few notes .... 


1) why new versions are not released as complete ones? The download 
is small already. I tried to point out my friend to it, and he missed 
0.3 version or so, which is required ...


2) box definitely does not resize properly. Still, so far, Romano's 
system was the most complete and the least errorless version I saw. 
Try to move resizing window here or there and you will get even cases 
as three lines of color boxes, no spacing, mixed together ...


3) lists - are we ready to overcome rebol limitation here? It works 
better, but still not flawlessly and not in system friendly manner: 
a) when moving "too fast" with mouse, it stays open b) in above and 
and other cases, ESC shoudl close it c) I understand we have use 
some "excuses" and workaraound for now, but that is not the way to 
go in future d) when moving away, it should stay open, last hilited 
item should stay hilited, close on esc, close on click-away, should 
be foxusable, ability to be driven by keyboard  - that is the only 
system friendly way


4) text-list multi mode - ctrl works, shift too, ctrl A too, but 
not in a system friendly way once again. Maybe I should check first, 
but IIRC, it should work following way - ctrl selects particular 
items. BUT - it should also deselect them - try ctrl A and then, 
holding Ctrl, press some item - it does not deselects them - that 
is imo wrong. Also - shift should mark all items between point of 
last press and active mouse position, deselecting all the rest, even 
if previsously selected ...
Ashley:
25-Aug-2005
Certainly, and indeed that was how it was handled before I "discovered" 
min-size ... but handling this non-natively (i.e. not via min-size) 
looks and feels a bit crude as well as being inconsistent with how 
other [non-REBOL] apps handle resize.
Volker:
25-Aug-2005
i would use a combination, window with min-size, but if min-size 
is smaller than min-layout-size, dont shrink layout further. keeps 
at least layout intact and user can resize back.
Ashley:
25-Aug-2005
But this allows you to resize a window below an invisible threshold 
only to have your resize [partially] ignored when the layout jumps 
back to it's minimum size. I still maintain that setting a realistic 
min-size is not only subjective but the role of the GUI designer 
... if RebGUI tries to infer this setting it will invariably get 
it wrong ("why did it let my title field shrink to less than three 
characters ... everyone knows a one-char field is useless" type of 
issues).
Graham:
26-Aug-2005
display "" [ area 50x20 #WH slider 5x20 #H data [arrows]] do-events


This doesn't resize properly in that the slider keeps its absolute 
x position.
Graham:
26-Aug-2005
When items are placed at absolute positions, they don't resize.  

So, how about we do a 

at 50%x30%  ??
Ashley:
26-Aug-2005
Graham, best you can do is remove #Y directive from first 3 widgets. 
To make things even clearer, revert the span-resize function to its 
pre-0.3.4 definition (i.e. replace the following:

			;	protect against negative sizes
			if find face/span #"W" [
				...
			]
			if find face/span #"H" [
				...
			]

with:

			if find face/span #"W" [face/size/x: face/size/x + delta/x]
			if find face/span #"H" [face/size/y: face/size/y + delta/y]

in %rebgui.r (as has been done in the next build).
Group: SVG Renderer ... SVG rendering in Draw AGG [web-public]
shadwolf:
23-Jun-2005
REBOL [
	Title:		"SVG Demo"
	Owner:		"Ashley G. Trüter"
	Version:	0.0.1
	Date:		21-Jun-2005
	Purpose:	"Loads and displays a resizeable SVG file."
	History: {
		0.0.1	Initial release
	}
	Notes: {
		Tested on very simple SVG icons
		Only a few basic styles / attributes / commands supported

  Does not handle sizes in units other than pixels (e.g. pt, in, cm, 
  mm, etc)

  SVG path has an optional close command, "z" ... AGG shape equivalent 
  auto-closes

  load-svg function needs to be totally refactored / optimized ... 
  *sample only*
	}
]

;	The following commands are available for path data:
;
;		M = moveto
;		L = lineto
;		H = horizontal lineto
;		V = vertical lineto
;		C = curveto
;		S = smooth curveto
;		Q = quadratic Belzier curve
;		T = smooth quadratic Belzier curveto
;		A = elliptical Arc
;		Z = closepath

;print: none	; comment out this line to enable debug messages

load-svg: function [svg-file [file! string!] size [pair!]] [

 id defs x y to-color to-byte draw-blk append-style svg-size scale-x 
 scale-y
][
	xml: either string? svg-file [parse-xml svg-file] [

  unless %.svg = suffix? svg-file [to error! "File has an invalid suffix!"]
		parse-xml read svg-file
	]

 unless xml/3/1/1 = "svg" [to error! "Could not find SVG header!"]

 ;unless find ["id" "xmlns"] xml/3/1/2/1 [to error! "Could not find 
 ID header!"]

 ;unless xml/3/1/3/1/1 = "defs" [to error! "Could not find DEFS header!"]

	id: xml/3/1/2
	defs: xml/3/1/3


	;
	;	--- Parse SVG id
	;

	svg-size: either find ["32pt" "48pt" "72pt"] select id "width" [
		switch select id "width" [
			"72pt"	[120x120]
			"48pt"	[80x80]
			"32pt"	[60x60]
		]
	][

  as-pair to integer! any [select id "width" "100"] to integer! any 
  [select id "height" "100"]
	]

	x: to integer! any [select id "x" "0"]
	y: to integer! any [select id "y" "0"]

	scale-x: size/x / svg-size/x
	scale-y: size/y / svg-size/y

	;
	;	--- Helper functions
	;


 to-color: func [s [string!]] [	; converts a string in the form "#FFFFFF" 
 to a 4-byte tuple
		to tuple! load rejoin ["#{" next s "00}"]
	]


 to-byte: func [s [string!]] [	; converts a string with a value 0-1 
 to an inverted byte
		255 - to integer! 255 * to decimal! s
	]

	;
	;	--- Parse SVG defs
	;

	draw-blk: copy []

	append-style: function [
		command [string!] blk [block!]
	][
		x xy pen-color fill-color line-width mode size radius shape
		closed? matrix transf-command
	][
		xy: 0x0
		size: 0x0
		line-width: 1
		matrice: make block! []
		radius: none
		transf-command: none
		
		
		foreach [attr val] blk [
			switch attr [
				"transform" [print "tranform have been found" 
						;probe val halt 
						val: parse val "(),"
						transf-command: first val
						probe transf-command
						switch transf-command [
							"matrix" [ 
								foreach word val [
									if not find word "matrix"
									[ 
										insert tail matrice to-decimal word
									]
								]
							
							]
						]
				]
				"style" [
					foreach [attr val] parse val ":;" [
						switch/default attr [
						
							"font-size" [ ]
							"stroke" [
								switch/default first val [
									#"#" [pen-color: to-color val]
									#"n" [pen-color: none]
								][
									print ["Unknown stroke:" val]
								]
							]
							"stroke-width" [line-width: to decimal! val]
							"fill" [
								fill-color: switch/default first val [
									#"#" [to-color val]
									#"n" [none]
								][
									print ["Unknown fill value:" val]
									none
								]
							]
							"fill-rule" [
								mode: switch/default val [
									"evenodd"	['even-odd]
								][
									print ["Unknown fill-rule value:" val]
									none
								]
							]

       "stroke-opacity" [pen-color: any [pen-color 0.0.0.0] pen-color/4: 
       to-byte val]

       "fill-opacity" [fill-color: any [fill-color 0.0.0.0] fill-color/4: 
       to-byte val]
							"stroke-linejoin" [
								insert tail draw-blk switch/default val [
									"miter"		[compose [line-join miter]]
									"round"		[compose [line-join round]]
									"bevel"		[compose [line-join bevel]]
								][
									print ["Unknown stroke-linejoin value:" val]
									none
								]
							]
							"stroke-linecap" [
								insert tail draw-blk 'line-cap
								insert tail draw-blk to word! val
							]
						][
							print ["Unknown style:" attr]
						]
					]
				]
				"x"			[xy/x: scale-x * val]
				"y"			[xy/y: scale-y * val]
				"width"		[size/x: scale-x * val]
				"height"	[size/y: scale-y * val]
				"rx"		[print "rx"]
				"ry"		[radius: to decimal! val]
				"d"	[
					shape: copy []
					x: none
					closed?: false
					foreach token load val [
						switch/default token [
							M	[insert tail shape 'move]
							C	[insert tail shape 'curve]
							L	[insert tail shape 'line]
							z	[closed?: true]
						][

       unless number? token [print ["Unknown path command:" token]]

       either x [insert tail shape as-pair x scale-y * token x: none] [x: 
       scale-x * token]
						]
					]
				]
			]
		]
		insert tail draw-blk compose [
			pen (pen-color)
			fill-pen (fill-color)
			fill-rule (mode)
			line-width (line-width * min scale-x scale-y)
		]
		switch command [
			"rect" [
				insert tail draw-blk compose [box (xy) (xy + size)]
				if radius [insert tail draw-blk radius]
			]
			"path" [
				unless closed? [print "Path closed"]
				either transf-command <> none  [
					switch transf-command [

      "matrix" [insert tail draw-blk compose/only [ (to-word transf-command) 
      (matrice) shape (shape) reset-matrix]]
					]
				][
					insert tail draw-blk compose/only [shape (shape)]
			 	]
				]

   "g" [ print "Write here how to handle G insertion to Draw block" 

    insert tail draw-blk probe compose/only [reset-matrix (to-word transf-command) 
    (matrice)]
				
				]
			]
	]	
  
	probe defs
	foreach blk defs [
		switch first blk [
			"rect"	[append-style first blk second blk]
			"path"	[append-style first blk second blk]
			"g"		[
						print "key word" probe first blk  
						print "matrix and style in G" probe second blk  
						append-style first blk second blk 
						;print "what to draw in G" probe third blk
						foreach blk2 third blk [
							probe blk2
							switch first blk2[ 
								"path" [append-style first blk2 second blk2]
							]
						]
					]
		]
	]
	
	
probe draw-blk
	draw-blk
]

view make face [
	offset:	100x100
	size:	200x200
	action:	request-file/filter/only "*.svg"
	text:	rejoin ["SVG Demo [" last split-path action "]"]
	data:	read action
	color:	white
	effect:	compose/only [draw (load-svg data size)]
	edge: font: para: none
	feel: make feel [
		detect: func [face event] [
			if event/type = 'resize [
				insert clear face/effect/draw load-svg face/data face/size
				show face
			]
			if event/type = 'close [quit]
		]
	]
	options: [resize]
]
shadwolf:
23-Jun-2005
REBOL [
	Title:		"SVG Demo"
	Owner:		"Ashley G. Trüter"
	Version:	0.0.1
	Date:		21-Jun-2005
	Purpose:	"Loads and displays a resizeable SVG file."
	History: {
		0.0.1	Initial release
	}
	Notes: {
		Tested on very simple SVG icons
		Only a few basic styles / attributes / commands supported

  Does not handle sizes in units other than pixels (e.g. pt, in, cm, 
  mm, etc)

  SVG path has an optional close command, "z" ... AGG shape equivalent 
  auto-closes

  load-svg function needs to be totally refactored / optimized ... 
  *sample only*
	}
]

;	The following commands are available for path data:
;
;		M = moveto
;		L = lineto
;		H = horizontal lineto
;		V = vertical lineto
;		C = curveto
;		S = smooth curveto
;		Q = quadratic Belzier curve
;		T = smooth quadratic Belzier curveto
;		A = elliptical Arc
;		Z = closepath

;print: none	; comment out this line to enable debug messages

load-svg: function [svg-file [file! string!] size [pair!]] [

 id defs x y to-color to-byte draw-blk append-style svg-size scale-x 
 scale-y
][
	xml: either string? svg-file [parse-xml svg-file] [

  unless %.svg = suffix? svg-file [to error! "File has an invalid suffix!"]
		parse-xml read svg-file
	]

 unless xml/3/1/1 = "svg" [to error! "Could not find SVG header!"]

 ;unless find ["id" "xmlns"] xml/3/1/2/1 [to error! "Could not find 
 ID header!"]

 ;unless xml/3/1/3/1/1 = "defs" [to error! "Could not find DEFS header!"]

	id: xml/3/1/2
	defs: xml/3/1/3


	;
	;	--- Parse SVG id
	;

	svg-size: either find ["32pt" "48pt" "72pt"] select id "width" [
		switch select id "width" [
			"72pt"	[120x120]
			"48pt"	[80x80]
			"32pt"	[60x60]
		]
	][

  as-pair to integer! any [select id "width" "100"] to integer! any 
  [select id "height" "100"]
	]

	x: to integer! any [select id "x" "0"]
	y: to integer! any [select id "y" "0"]

	scale-x: size/x / svg-size/x
	scale-y: size/y / svg-size/y

	;
	;	--- Helper functions
	;


 to-color: func [s [string!]] [	; converts a string in the form "#FFFFFF" 
 to a 4-byte tuple
		to tuple! load rejoin ["#{" next s "00}"]
	]


 to-byte: func [s [string!]] [	; converts a string with a value 0-1 
 to an inverted byte
		255 - to integer! 255 * to decimal! s
	]

	;
	;	--- Parse SVG defs
	;

	draw-blk: copy []

	append-style: function [
		command [string!] blk [block!]
	][
		x xy pen-color fill-color line-width mode size radius shape
		closed? matrix transf-command
	][
		xy: 0x0
		size: 0x0
		line-width: 1
		matrice: make block! []
		radius: none
		transf-command: none
		
		
		foreach [attr val] blk [
			switch attr [
				"transform" [print "tranform have been found" 
						;probe val halt 
						val: parse val "(),"
						transf-command: first val
						probe transf-command
						switch transf-command [
							"matrix" [ 
								foreach word val [
									if not find word "matrix"
									[ 
										insert tail matrice to-decimal word
									]
								]
							
							]
						]
				]
				"style" [
					foreach [attr val] parse val ":;" [
						switch/default attr [
						
							"font-size" [ ]
							"stroke" [
								switch/default first val [
									#"#" [pen-color: to-color val]
									#"n" [pen-color: none]
								][
									print ["Unknown stroke:" val]
								]
							]
							"stroke-width" [line-width: to decimal! val]
							"fill" [
								fill-color: switch/default first val [
									#"#" [to-color val]
									#"n" [none]
								][
									print ["Unknown fill value:" val]
									none
								]
							]
							"fill-rule" [
								mode: switch/default val [
									"evenodd"	['even-odd]
								][
									print ["Unknown fill-rule value:" val]
									none
								]
							]

       "stroke-opacity" [pen-color: any [pen-color 0.0.0.0] pen-color/4: 
       to-byte val]

       "fill-opacity" [fill-color: any [fill-color 0.0.0.0] fill-color/4: 
       to-byte val]
							"stroke-linejoin" [
								insert tail draw-blk switch/default val [
									"miter"		[compose [line-join miter]]
									"round"		[compose [line-join round]]
									"bevel"		[compose [line-join bevel]]
								][
									print ["Unknown stroke-linejoin value:" val]
									none
								]
							]
							"stroke-linecap" [
								insert tail draw-blk 'line-cap
								insert tail draw-blk to word! val
							]
						][
							print ["Unknown style:" attr]
						]
					]
				]
				"x"			[xy/x: scale-x * val]
				"y"			[xy/y: scale-y * val]
				"width"		[size/x: scale-x * val]
				"height"	[size/y: scale-y * val]
				"rx"		[print "rx"]
				"ry"		[radius: to decimal! val]
				"d"	[
					shape: copy []
					x: none
					closed?: false
					foreach token load val [
						switch/default token [
							M	[insert tail shape 'move]
							C	[insert tail shape 'curve]
							S   [insert tail shape 'curv]
							L	[insert tail shape 'line]
							Q   [insert tail shape 'qcurve]
							T   [insert tail shape 'qcurv]
							z	[closed?: true]
							H   [insert tail shape 'hline]
							V   [insert tail shape 'vline]
							A   [insert tail shape 'arc]
						][

       unless number? token [print ["Unknown path command:" token]]

       either x [insert tail shape as-pair x scale-y * token x: none] [x: 
       scale-x * token]
						]
					]
				]
			]
		]
		insert tail draw-blk compose [
			pen (pen-color)
			fill-pen (fill-color)
			fill-rule (mode)
			line-width (line-width * min scale-x scale-y)
		]
		switch command [
			"rect" [
				insert tail draw-blk compose [box (xy) (xy + size)]
				if radius [insert tail draw-blk radius]
			]
			"path" [
				unless closed? [print "Path closed"]
				either transf-command <> none  [
					switch transf-command [

      "matrix" [insert tail draw-blk compose/only [ (to-word transf-command) 
      (matrice) shape (shape) reset-matrix]]
					]
				][
					insert tail draw-blk compose/only [shape (shape)]
			 	]
				]

   "g" [ print "Write here how to handle G insertion to Draw block" 

    insert tail draw-blk probe compose/only [reset-matrix (to-word transf-command) 
    (matrice)]
				
				]
			]
	]	
  
	probe defs
	foreach blk defs [
		switch first blk [
			"rect"	[append-style first blk second blk]
			"path"	[append-style first blk second blk]
			"g"		[
						print "key word" probe first blk  
						print "matrix and style in G" probe second blk  
						append-style first blk second blk 
						;print "what to draw in G" probe third blk
						foreach blk2 third blk [
							probe blk2
							switch first blk2[ 
								"path" [append-style first blk2 second blk2]
							]
						]
					]
		]
	]
	
	
probe draw-blk
	draw-blk
]

view make face [
	offset:	100x100
	size:	200x200
	action:	request-file/filter/only "*.svg"
	text:	rejoin ["SVG Demo [" last split-path action "]"]
	data:	read action
	color:	white
	effect:	compose/only [draw (load-svg data size)]
	edge: font: para: none
	feel: make feel [
		detect: func [face event] [
			if event/type = 'resize [
				insert clear face/effect/draw load-svg face/data face/size
				show face
			]
			if event/type = 'close [quit]
		]
	]
	options: [resize]
]
shadwolf:
23-Jun-2005
REBOL [
	Title:		"SVG Demo"
	Owner:		"Ashley G. Trüter"
	Version:	0.0.1
	Date:		21-Jun-2005
	Purpose:	"Loads and displays a resizeable SVG file."
	History: {
		0.0.1	Initial release
	}
	Notes: {
		Tested on very simple SVG icons
		Only a few basic styles / attributes / commands supported

  Does not handle sizes in units other than pixels (e.g. pt, in, cm, 
  mm, etc)

  SVG path has an optional close command, "z" ... AGG shape equivalent 
  auto-closes

  load-svg function needs to be totally refactored / optimized ... 
  *sample only*
	}
]

;	The following commands are available for path data:
;
;		M = moveto
;		L = lineto
;		H = horizontal lineto
;		V = vertical lineto
;		C = curveto
;		S = smooth curveto
;		Q = quadratic Belzier curve
;		T = smooth quadratic Belzier curveto
;		A = elliptical Arc
;		Z = closepath

;print: none	; comment out this line to enable debug messages

load-svg: function [svg-file [file! string!] size [pair!]] [

 id defs x y to-color to-byte draw-blk append-style svg-size scale-x 
 scale-y
][
	xml: either string? svg-file [parse-xml svg-file] [

  unless %.svg = suffix? svg-file [to error! "File has an invalid suffix!"]
		parse-xml read svg-file
	]

 unless xml/3/1/1 = "svg" [to error! "Could not find SVG header!"]

 ;unless find ["id" "xmlns"] xml/3/1/2/1 [to error! "Could not find 
 ID header!"]

 ;unless xml/3/1/3/1/1 = "defs" [to error! "Could not find DEFS header!"]

	id: xml/3/1/2
	defs: xml/3/1/3


	;
	;	--- Parse SVG id
	;

	svg-size: either find ["32pt" "48pt" "72pt"] select id "width" [
		switch select id "width" [
			"72pt"	[120x120]
			"48pt"	[80x80]
			"32pt"	[60x60]
		]
	][

  as-pair to integer! any [select id "width" "100"] to integer! any 
  [select id "height" "100"]
	]

	x: to integer! any [select id "x" "0"]
	y: to integer! any [select id "y" "0"]

	scale-x: size/x / svg-size/x
	scale-y: size/y / svg-size/y

	;
	;	--- Helper functions
	;


 to-color: func [s [string!]] [	; converts a string in the form "#FFFFFF" 
 to a 4-byte tuple
		to tuple! load rejoin ["#{" next s "00}"]
	]


 to-byte: func [s [string!]] [	; converts a string with a value 0-1 
 to an inverted byte
		255 - to integer! 255 * to decimal! s
	]

	;
	;	--- Parse SVG defs
	;

	draw-blk: copy []

	append-style: function [
		command [string!] blk [block!]
	][
		x xy pen-color fill-color line-width mode size radius shape
		closed? matrix transf-command
	][
		xy: 0x0
		size: 0x0
		line-width: 1
		matrice: make block! []
		radius: none
		transf-command: none
		
		
		foreach [attr val] blk [
			switch attr [
				"transform" [print "tranform have been found" 
						;probe val halt 
						val: parse val "(),"
						transf-command: first val
						probe transf-command
						switch transf-command [
							"matrix" [ 
								foreach word val [
									if not find word "matrix"
									[ 
										insert tail matrice to-decimal word
									]
								]
							
							]
						]
				]
				"style" [
					foreach [attr val] parse val ":;" [
						switch/default attr [
						
							"font-size" [ ]
							"stroke" [
								switch/default first val [
									#"#" [pen-color: to-color val]
									#"n" [pen-color: none]
								][
									print ["Unknown stroke:" val]
								]
							]
							"stroke-width" [line-width: to decimal! val]
							"fill" [
								fill-color: switch/default first val [
									#"#" [to-color val]
									#"n" [none]
								][
									print ["Unknown fill value:" val]
									none
								]
							]
							"fill-rule" [
								mode: switch/default val [
									"evenodd"	['even-odd]
								][
									print ["Unknown fill-rule value:" val]
									none
								]
							]

       "stroke-opacity" [pen-color: any [pen-color 0.0.0.0] pen-color/4: 
       to-byte val]

       "fill-opacity" [fill-color: any [fill-color 0.0.0.0] fill-color/4: 
       to-byte val]
							"stroke-linejoin" [
								insert tail draw-blk switch/default val [
									"miter"		[compose [line-join miter]]
									"round"		[compose [line-join round]]
									"bevel"		[compose [line-join bevel]]
								][
									print ["Unknown stroke-linejoin value:" val]
									none
								]
							]
							"stroke-linecap" [
								insert tail draw-blk 'line-cap
								insert tail draw-blk to word! val
							]
						][
							print ["Unknown style:" attr]
						]
					]
				]
				"x"			[xy/x: scale-x * val]
				"y"			[xy/y: scale-y * val]
				"width"		[size/x: scale-x * val]
				"height"	[size/y: scale-y * val]
				"rx"		[print "rx"]
				"ry"		[radius: to decimal! val]
				"d"	[
					shape: copy []
					x: none
					closed?: false
					if all [x not number? token] [

          insert tail shape x * either token = 'V [scale-y][scale-x]
  						    x: none
					]
					foreach token load val [
						switch/default token [
							M	[insert tail shape 'move]
							C	[insert tail shape 'curve]
							S   [insert tail shape 'curv]
							L	[insert tail shape 'line]
							Q   [insert tail shape 'qcurve]
							T   [insert tail shape 'qcurv]
							z	[closed?: true]
							H   [insert tail shape 'hline]
							V   [insert tail shape 'vline]
							A   [insert tail shape 'arc]
						][

       unless number? token [print ["Unknown path command:" token]]

       either x [insert tail shape as-pair x scale-y * token x: none] [x: 
       scale-x * token]
						]
					]
				]
			]
		]
		insert tail draw-blk compose [
			pen (pen-color)
			fill-pen (fill-color)
			fill-rule (mode)
			line-width (line-width * min scale-x scale-y)
		]
		switch command [
			"rect" [
				insert tail draw-blk compose [box (xy) (xy + size)]
				if radius [insert tail draw-blk radius]
			]
			"path" [
				unless closed? [print "Path closed"]
				either transf-command <> none  [
					switch transf-command [

      "matrix" [insert tail draw-blk compose/only [ (to-word transf-command) 
      (matrice) shape (shape) reset-matrix]]
					]
				][
					insert tail draw-blk compose/only [shape (shape)]
			 	]
				]

   "g" [ print "Write here how to handle G insertion to Draw block" 

    insert tail draw-blk probe compose/only [reset-matrix (to-word transf-command) 
    (matrice)]
				
				]
			]
	]	
  
	probe defs
	foreach blk defs [
		switch first blk [
			"rect"	[append-style first blk second blk]
			"path"	[append-style first blk second blk]
			"g"		[
						print "key word" probe first blk  
						print "matrix and style in G" probe second blk  
						append-style first blk second blk 
						;print "what to draw in G" probe third blk
						foreach blk2 third blk [
							probe blk2
							switch first blk2[ 
								"path" [append-style first blk2 second blk2]
							]
						]
					]
		]
	]
	
	
probe draw-blk
	draw-blk
]

view make face [
	offset:	100x100
	size:	200x200
	action:	request-file/filter/only "*.svg"
	text:	rejoin ["SVG Demo [" last split-path action "]"]
	data:	read action
	color:	white
	effect:	compose/only [draw (load-svg data size)]
	edge: font: para: none
	feel: make feel [
		detect: func [face event] [
			if event/type = 'resize [
				insert clear face/effect/draw load-svg face/data face/size
				show face
			]
			if event/type = 'close [quit]
		]
	]
	options: [resize]
]
Group: Rebol School ... Rebol School [web-public]
Oldes:
4-Oct-2007
insert-event-func is simply used for global events, you can use it 
to detect 'close, 'resize, 'active and 'inactive as well. Why you 
should have such a event handlers in feels?
Group: Rebol/Flash dialect ... content related to Rebol/Flash dialect [web-public]
Chris:
8-Jun-2007
I like the way the pictures rearrange when you resize the window...
Group: Plugin-2 ... Browser Plugins [web-public]
Anton:
5-May-2006
Well, that's a good question. I'd prefer the "wild web" version of 
the plugin to be restricted to the browser client area. (popups are 
evil). But the question is, is it possible to resize the client area 
in the browser ?
BrianH:
5-May-2006
For that matter, is it possible to specify the size of the client 
area relative to the page size, have it resize with the page, and 
have the REBOL layout inside handle the resize as if a View window 
had been resized by the user?
Anton:
5-May-2006
Google uses Flash and they use javascript's onresize to call the 
flash script's window resize function.
Maxim:
6-Feb-2007
do you know if we can properly resize the plugin size using javascript? 
or will in not refresh?
Group: !GLayout ... ask questions and now get answers about GLayout. [web-public]
Maxim:
3-Jan-2007
By default its easy to add  VID styles if you use the static-sizing 
extension by default.  This means you do not expect your face to 
resize, and is very easy to accomodate (obviously)
xavier:
3-Jan-2007
for the moment i just need to resize windows
xavier:
3-Jan-2007
most of the time i dont need to resize the styles on it
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
I sometimes add an elastic (an actual glayout style) within a group, 
or add the elasticity to a face, just to allow the gui to resize 
even though it has no real advantage in resizing.
xavier:
3-Jan-2007
yes but in general its always usefull to resize at least  the windows 
that contain the faces
xavier:
3-Jan-2007
column if i want to resize it in y
xavier:
3-Jan-2007
and row if i want to resize it in x ?
Group: Games ... talk about using REBOL for games [web-public]
ICarii:
3-Jun-2007
Mahjong Solitaire updated to do dynamic scaling on resize
Group: !CureCode ... web-based bugtracking tool [web-public]
Brock:
5-Jul-2007
Looks nice.  I noticed that on column sorting, depending on the sort, 
columns resize differently.
1 / 402[1] 2345