Есть ли способ сосредоточить gui кнопки и области в Rebol?

Проведенные часы, пытаясь понять это и все еще иметь не его. Ни одна из документации ничего не упоминает об этом. Это - что-то, что rebol просто не может обойтись без ручной необходимости перестроить все с происхождением?

Возможно, я просто ожидаю слишком много?

править: хорошо я обнаружил хакерское проникновение: цифра заявки, затем заявка - цифра на следующей строке. Из всех захватывающих особенностей этого языка, почему они, возможно, не просто добавили простую команду как центр?

3
nl ja de

4 ответы

Есть функция ЛИЦА ЦЕНТРА, которую можно снова использовать, чтобы выровнять лица, но к сожалению она не работает очень хорошо на основе моего опыта. Вот более простая версия замены, которая должна добиться цели:

center-face: func [face [object!] parent [object!]][
    face/offset: parent/size - face/size/2 
]

Вот пример использования:

lay: layout [
    size 300x300
    b: button "Hello World"
]
center-face b lay
view lay
5
добавлено
Кодекс, зафиксированный, чтобы избежать неопределенный , кладет ошибка.
добавлено автор DocKimbel, источник
вышеупомянутое на самом деле даст вам ошибки... ' ПОЛОЖИТЕ doesn' у t есть стоимость из блока макета.
добавлено автор moliad, источник

Прежде всего VID не Rebol, но демонстрационный диалект, написанный автором, Карлом Сэссенрэтом, чтобы продемонстрировать, как интерфейсы могли быть dialected в Rebol. Есть другие включая RebGUI ( http://www.dobeash.com/rebgui.html ) хотя я подозреваю, что нет пути к центральным кнопкам там ни одного, поскольку никакой автор не считал его важным.

Можно также использовать ПОДУШКУ, чтобы выровнять курсор близко к центру расположения.

3
добавлено
Директивы промежутка в RebGUI могут использоваться, чтобы выровнять виджеты в расположениях. dobeash.com/RebGUI/user-guide.html#21
добавлено автор Brian Tiffin, источник
Но не сосредоточение.
добавлено автор Graham Chiu, источник

Мы не можем сосредоточить или выровнять материал на основе самого окна, потому что у средств управления нет способа относиться к их родительскому лицу, пока у родителя не было 'ШОУ, обратился к нему.

face/parent-face isn't set until the parent has been shown. So in normal VID you need to tweak the gui just after the initial layout & view has been done.

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

представление/новый используется, чтобы задержать обработку событий, чтобы изменить расположение.

rebol []

center: func [face][
    face/offset/x: (face/parent-face/size/x/2) - (face/size/x/2)
    show face
]

view/new layout [
    across
    t: h1  "This is a centered title!" 
    return
    button "1"
    button "2"
    button "3"
    button "4"
]

center t

do-events
3
добавлено

Мы не можем сосредоточить или выровнять материал на основе самого окна, потому что у средств управления нет способа относиться к их родительскому лицу, пока у родителя не было 'ШОУ, обратился к нему.

face/parent-face isn't set until the parent has been shown. So in normal VID you need to tweak the gui just after the initial layout & view has been done.

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

представление/новый используется, чтобы задержать обработку событий, чтобы изменить расположение.

rebol []

center: func [face][
    face/offset/x: (face/parent-face/size/x/2) - (face/size/x/2)
    show face
]

view/new layout [
    across
    t: h1  "This is a centered title!" 
    return
    button "1"
    button "2"
    button "3"
    button "4"
]

center t

do-events
3
добавлено