2010-08-16 6 views
0

Cela ne fonctionne pasavec panneau rebol vid et 0x0 décalage

panel1.layout: layout [ 
    offset: 0x0 
    yuml-image: image img 
] 

panel2.layout: layout [ 
    offset: 0x0 
    area (yuml-command0) yellow 
] 

panelbuttons.layout: layout [ 

    button "Save" [request-save] 
    button "Refresh" [request-refresh] 
    button "Quit" [quit] 

] 

Main: layout [ 
    panel1: box 640x300 white 
    return 
    panelbuttons: box 640x20 
    return 
    panel2: box 640x180 yellow 
] 

panel1/pane: panel1.layout 
panel2/pane: panel2.layout 
panelbuttons/pane: panelbuttons.layout 

view/title/options center-face Main "askuml.com" [no-border] 

Je voulais juste l'équivalent de ceci:

Main: layout [ 
    offset: 0x0 
    yuml-image: image img 
    return 
    across 
    button "Save" [request-save] 
    button "Refresh" [request-refresh] 
    button "Quit" [quit] 
    return 
    area (yuml-command0) yellow 
] 

Aussi pourquoi dois-je une frontière alors que je demandai 0x0 OFFSET voir la bordure grise laid ci-dessous: alt text http://askuml.com/files/2010/07/uml-online-tool.gif

Mise à jour: maintenant j'ai cette fenêtre laide alt text http://askuml.com/files/2010/07/vid-ugly.gif

voir http://askuml.com/blog/yuml-use-case-desktop-client/

Je mis à jour le code maintenant je ne peux pas voir le (même votre :)) boutons:

alt text

+0

Je risque la fenêtre laide est de faire avec le flux directionnel. Les choses se déroulent par défaut, donc votre mise en page principale devrait être '[origine 0 ]' (avec court pour votre panel defs).Pour vos boutons, ils traversent, donc '[origine 5x10 espace 5 à travers ]' (en utilisant 'btn' au lieu de' button' vous obtenez * mes images de bouton * :) – rgchris

+0

Bien sûr, si vous vouliez le faire tout dans un, ce serait quelque chose comme ceci: '[origine 0 espace 6 à travers pad 6 ci-dessous ]' - flux directionnel dans VID est une bête inconstante, mais il vous y arrivera. Juste ne pensez même pas à redimensionner (enregistrez-le pour un autre jour). – rgchris

Répondre

2

Je dirais que votre premier instinct était correct, mais je le modifier ainsi:

Main: layout [ 
    origin 0 space 6 
    yuml-image: image img 600x400 
    across pad 6 
    btn "Save" [request-save] 
    btn "Refresh" [request-refresh] 
    btn "Quit" [quit] 
    below 
    area (yuml-command0) yellow 600x200 
] 

Si vous avez vraiment besoin de briser les panneaux, laissez le « style de panneau faire le levage de charges lourdes:

image-panel: [ 
    yuml-image: image 600x400 img 
] 

btn-panel: [ 
    across origin 6 space 6 
    btn "Save" [request-save] 
    btn "Refresh" [request-refresh] 
    btn "Quit" [quit] 
] 

area-panel: [ 
    area yellow 600x200 
] 

main: layout [ 
    origin 0 space 0 
    panel image-panel 
    panel btn-panel 
    panel area-panel 
] 
+0

merci, cela fonctionne mais je ne comprends pas ce qui est panneau: où est-il dans le document officiel: je ne vois que le volet? –

+0

Vous ne savez pas où il est référencé dans les documents (il est ignoré). Il y a cependant ceci: http://en.wikibooks.org/wiki/REBOL_Programming/Language_Features/VID#Panels – rgchris

+0

OK merci de le lire. Je ne peux pas le voir dans le document ici http://www.rebol.com/docs/view-face-content.html ou est-ce que je me trompe? Il est très déroutant qu'une telle chose importante ne soit pas mentionnée dans le document officiel. –

2

Vous avez besoin:

layout [ 
    origin 0x0 
    ... 
] 

Vous aussi avoir space 0x0 et backcolor 238.234.221 pour se passer du gris. Je suis parti de changer le bord de la zone aussi bien - area edge [size: 1x1 effect: none]

D'autres options: layout/tight [...] (espace et origine 0), layout/origin [...] 0x0.

view/options [no-border] fait référence à la fenêtre OS. Tout set-word! dans le dialecte de mise en page se réfère spécifiquement à l'attribution d'un mot au style suivant.

+0

Merci pour toutes les options vont essayer tout. Mais actuellement je ne peux même pas faire l'origine du travail 0x0: il dit 0x0 mal placé. Et le retour ne fonctionne pas non plus voir http://askuml.com/blog/yuml-use-case-desktop-client/ –

+0

Cela ne semble pas correct - utilisez-vous View 2.7.x? – rgchris

+0

On dirait qu'il y a toujours un 'offset: 0x0' dans votre code ... – rgchris

1

essayer,

w: layout/size [backcolor red btn "test"] 300x300 
v: layout/tight [box blue 100x100] 
append w/pane v 
view w 

ou utiliser insert au lieu de append pour mettre le visage derrière des autres:

insert w/pane v 
+0

Désolé si je suis stupide Je ne comprends pas comment appliquer votre code à mon cas d'utilisation :) –

+0

peut-être que je suis stupide et mal compris votre question :) J'ai essayé de vous montrer pour ajouter une mise en page dans un autre avec décalage 0x0. Vous pouvez donc l'appliquer à votre cas. Notez que la deuxième mise en page (qui est 'v) est serrée. – endo64

1

Le panneau est juste une disposition, rien d'autre. Vous pouvez créer des mises en page et les ajouter au volet d'une autre mise en page, ou simplement utiliser le style de panneau.

http://www.rebol.com/how-to/subpanels.html

view layout [backcolor yellow size 200x200 origin 0x0 space 0x0 b: panel red [btn "test" lbl "Test"] return panel blue [btn "x" lbl "rest" lbl "x"]] 
>> ? b 
== B is an object of value: 
type   word!  face  ;<--- just a face 
offset   pair!  0x0 
size   pair!  36x49 
span   none!  none 
pane   block! length: 2 ;<--- btn & lbl 
... 
+0

Je pensais que je l'ai fait à la 1ère place, mais je vais regarder à nouveau le panneau. –