2010-05-26 3 views
0

Je veux créer un assistant pour le badge de logo ci-dessous avec 3 paramètres. Je peux rendre le titre dynamique mais pour l'image et le dégradé c'est codé en dur car je ne vois pas comment les rendre dynamiques. Code suit après les images:Comment créer une disposition de panneau dynamique pour cet assistant de création de logo?

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 
+0

Je n'ai pas utilisé le dialecte des dessins, donc je suis un peu perplexe sur ce que l'on ferait ici moi-même. Il existe des exemples d'utilisation de * composer * avec le dialecte de dessin pour construire la spécification mais aucune qui change après qu'elle a été établie. Peut-être une question à poser sur AltME. – HostileFork

Répondre

1

Faire bloc pour la 2e mise en page d'un modèle.

Mettez les variables que vous voulez là et entourer()

Lors du rendu, faire une copie/profonde pour faire une copie de modèle, puis composez/profond pour remplacer les variables comme prises à partir de l'écran des paramètres, créez mise en page à partir de votre copie du modèle et définissez le volet sur la nouvelle mise en page.

Questions connexes