Squeak/Smalltalk: Создание нового SystemWindow |
Начать работать с Squeak/Smalltalk очень просто. Вы можете использовать Workspace
и Transcript
для основных задач программирования. Но вскоре вам понадобится собственный пользовательский интерфейс, и хорошо бы начать работу с SystemWindow
объект в данном случае.
Вот некоторый код Smalltalk, который может помочь вам создать и отобразить SystemWindow
.
Код
window := SystemWindow new.
window setLabel:'New Window'.
pasteUpMorph := PasteUpMorph new.
pasteUpMorph extent: 640@480.
window addMorph: pasteUpMorph frame: (0@0 corner: 1@1).
window openInWorld.
Скриншот
Вот еще один пример кода с scrollPane.
window := SystemWindow new.
scrollPane := ScrollPane new.
pasteUpMorph := PasteUpMorph new.
pasteUpMorph extent: 1000@1000.
scrollPane scroller addMorph: pasteUpMorph.
window addMorph: scrollPane frame: (0@0 corner: 1@1).
window openInWorld.
Скриншот
Определения
Панель прокрутки
scroller
(преобразование) scrollPane
управляется scrollBar
. Значения прокрутки варьируются от 0,0что означает нулевое смещение к 1,0 означает достаточное смещение, чтобы нижняя часть прокручиваемого материала отображалась 3/4 вниз по стеклу. Общее расстояние, необходимое для достижения этой дальности, называется totalScrollRange
.
ВставитьВверхМорф
Морф, чьи подморфы представляют собой набор прямоугольных частей, которые «просвечивают». Все, что называется «игровым полем», является PasteUpMorph
.
Предоставляются (или будут) средства, обычно необходимые на страницах графических презентаций и на игровых полях моделирования, такие как рисование новых объектов, следы черепах, градиентные заливки, рисование фона, поведение корзины деталей, обнаружение столкновений и т. д.
Мир, весь экран Smalltalk — это PasteUpMorph
. Мир отвечает true
к isWorld
. Morph
подклассы, которые имеют специализированные меню (BookMorph
) встроить их в сообщение addBookMenuItemsTo:hand:
. А PasteUpMorph
это мир, строит свое меню в HandMorph buildWorldMenu
.
Системное окно
SystemWindow
является морфическим эквивалентом StandardSystemView
— помеченный контейнер для прямоугольных представлений с пиктограммами для закрытия, свертывания/развертывания и изменения размера.
Атрибут onlyActiveOnTop
, если установлено значение true (и любой вызов для активации установит это значение), определяет, что активным должен быть только верхний член набора таких окон на экране. Быть неактивным означает, что щелчок мышью в любой области приведет только к перемещению окна наверх, а затем сделает его активным.
Заключение
Я надеюсь, что это полезно. Этот оконный объект открывает множество возможностей для создания элементов пользовательского интерфейса и рисования. Я с нетерпением жду дальнейших статей, в которых показано, как рисовать в окне.
Ждем ваших отзывов и вопросов.