проблема с ребол vid панелью и смещением 0x0 - PullRequest
0 голосов
/ 16 августа 2010

Это не работает

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]

Я просто хотел получить эквивалент этого:

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
]

Кроме того, почему у меня есть граница, тогда как я спросил смещение 0x0, смотрите уродливую серую границу ниже: альтернативный текст http://askuml.com/files/2010/07/uml-online-tool.gif

Обновление: теперь у меня есть это уродливое окно альтернативный текст http://askuml.com/files/2010/07/vid-ugly.gif

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

Я обновил код, теперь не вижу кнопок (даже ваших :)):

alt text

Ответы [ 4 ]

2 голосов
/ 18 августа 2010

Я бы сказал, что ваш первый инстинкт был верным, но изменил бы его так:

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
]

Если вам действительно нужно разбить панели, позвольте «стилю панели» выполнять тяжелую работу:

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
]
2 голосов
/ 16 августа 2010

Вам нужно:

layout [
    origin 0x0
    ...
]

У вас также есть space 0x0 и backcolor 238.234.221, чтобы обойтись без серого.Я неравнодушен к изменению края области - area edge [size: 1x1 effect: none]

Некоторые другие опции: layout/tight [...] (пробел и начало координат 0), layout/origin [...] 0x0.

view/options [no-border] относится кокно ОС.Любой set-word! в диалекте макета конкретно относится к присвоению слова последующему стилю.

1 голос
/ 23 августа 2010

Панель - это просто макет, больше ничего.Вы можете создавать макеты и добавлять их на панель другого макета или просто использовать стиль панели.

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
...
1 голос
/ 18 августа 2010

попробуйте это,

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

или используйте вставку вместо дополнения, чтобы поставить лицо позади других:

insert w/pane v
...