如何为此徽标创建向导创建动态面板布局?

时间:2010-05-26 20:26:36

标签: rebol

我想使用3个参数为下面的徽标徽章创建一个向导。我可以使标题动态,但对于图像和渐变,它是硬编码的,因为我无法看到如何使它们动态化。图片后面是代码:

alt text http://reboltutorial.com/bugs/wizard1.png

alt text http://reboltutorial.com/bugs/wizard2.png

custom-styles: stylize [
  lab: label  60x20 right bold middle font-size 11
  btn: button 64x20 font-size 11 edge [size: 1x1]
  fld: field  200x20 font-size 11 middle edge [size: 1x1]
  inf: info   font-size 11 middle edge [size: 1x1]
  ari: field wrap font-size 11 edge [size: 1x1] with [flags: [field tabbed]]
]

panel1: layout/size [

    origin 0 space 2x2 across
        styles custom-styles
    h3 "Parameters" font-size 14 return 
    lab "Title" fld_title: fld "EXPERIMENT" return 
    lab "Logo" fld_logo: fld "http://www.rebol.com/graphics/reb-logo.gif" return 
    lab "Gradient" fld_gradient: fld "5 55 5 10 10 71.0.6 30.10.10 71.0.6"
] 278x170

panel2: layout/size [
    ;layout (window client area) size is 278x170 at the end of the spec block
    at 0x0 ;put the banner on the top left corner
    box 278x170 effect [ ; default box face size is 100x100
      draw [
        anti-alias on
        line-width 2.5 ; number of pixels in width of the border
        pen black      ; color of the edge of the next draw element

        fill-pen radial 100x50 5 55 5 10 10 71.0.6 30.10.10 71.0.6

        ; the draw element
        box     ; another box drawn as an effect
          15     ; size of rounding in pixels
          0x0 ; upper left corner
          278x170 ; lower right corner
      ]
    ]
    pad 30x-150
    Text fld_title/text font [name: "Impact" size: 24 color: white]
    image http://www.rebol.com/graphics/reb-logo.gif
] 278x170

main: layout [
    vh2 "Logo Badge Wizard"
    guide
    pad 20
    button "Parameters" [panels/pane: panel1  show panels ]
    button "Rendering" [show panel2 panels/pane: panel2  show panels]
    button "Quit" [Unview]
    return
    box 2x170 maroon
    return
    panels: box 278x170
]

panel1/offset: 0x0
panel2/offset: 0x0

panels/pane: panel1

view main

1 个答案:

答案 0 :(得分:1)

将第二个布局的块设为模板。

将您想要的变量放在那里并用()

包围

渲染时,执行copy / deep进行模板复制,然后编写/ deep以替换从参数屏幕获取的变量,从模板副本创建布局并将窗格设置为新布局。