Как встроить редактор кода Smalltalk в свое приложение? - PullRequest
5 голосов
/ 28 февраля 2011

Я создаю приложение просмотра и редактирования записей блога в своем изображении Pharo, и содержимое записи форматируется как код Smalltalk (API разметки Seaside действительно хорош). Я довольно новичок в Smalltalk, поэтому я использовал это сообщение в блоге в качестве примера.

В настоящее время у меня есть это для моего BlogEditor>>open метода:

open
| builder content |

builder := UITheme builder.
content := builder newColumn: {
    builder newRow: {
        builder newListFor: self
        list: #entries 
        selected: #entrySelectedIndex
        changeSelected: #entrySelectedIndex:
        help: 'Blog entries'.
    }.
    builder newRow: {
        editor := builder
            newTextEditorFor: self
            getText: #readSelectedEntry
            setText: #changeSelectedEntry:.
        editor minHeight: 400 } }.

(content openInWindowLabeled: 'Entries') extent: 800@700

Я не знаю, что поставить вместо editor := builder newTextEditorFor:. Я видел класс SmalltalkEditor, но я не знаю, как добавить его в свой интерфейс.

Ответы [ 2 ]

1 голос
/ 13 марта 2013

То, что можно использовать, это PluggableTextMorph, который ссылается на TextMorphForEditView, который, в свою очередь, дает вам SmalltalkEditor.

PluggableTextMorph является панелью прокрутки

Вы также можете посмотреть в TextMorph, который может пригодиться.

Строитель UITheme скрывает все неприятные детали внутри, но возвращает вас к классам, упомянутым выше.

Удачи.

1 голос
/ 01 марта 2011

поставить строку

self halt.

ниже

builder := UITheme builder.

Запустите код. Когда он остановится, отладьте и выберите строитель. Просмотрите его, чтобы увидеть, что еще можно добавить.

Вы знаете, что текст на Pharo имеет форматирование? Просто просмотрите текст.

...