2013-03-19 3 views
4

В Pharo и Squeak, если он установлен, вы можете ввести CommandShell open., и он откроет окно команд, которое в основном похоже на «оболочку bash» или «терминальное окно», но использует шрифт по умолчанию, размер которого составляет почти микроскопический размер. Я не могу понять, как это изменить.Как изменить шрифт в окне CommandShell в pharo или squeak?

Я понял, что общий подход в smalltalk состоит в том, чтобы просмотреть реализацию класса и посмотреть, можете ли вы узнать что-то, что вы могли бы сказать классу, рассказать ему, что вы хотите, или каким-то образом вы можете изменить класс поэтому он отвечает на что-то другое для какого-то другого класса, вызывая желаемый эффект. Что-то вроде anInstanceOfCommandShell someViewOrControllerThingy setDefaultFont:blahblahblah или что-то в этом роде.

Кажется, CommandShell использует ShellWindowMorph и принимает сообщение setFont. Я довольно новичок в Smalltalk и Squeak, и понятия не имею, что делать дальше.

Я использую Pharo 2.0, но если кто-то знает, как это сделать в Squeak, я уверен, что это будет примерно то же самое.

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

enter image description here

код я использую, чтобы изменить остальные шрифты программно был этот ответ от another question., который говорит, что сделать это:

|font codeFont| 

font := LogicalFont familyName: 'Consolas' pointSize: 10. 
codeFont := LogicalFont familyName: 'Consolas' pointSize: 9. 
StandardFonts listFont: codeFont. 
... 
+0

BTW в окне оболочки вы можете оценить Smalltalk выражения, как размер ProtoObject withAllSubclasses и ударил как в IDLE Python, например. –

+0

Это отличный гибридный подход. –

ответ

5

Вы можете переопределить #textStyle ShellWindowMorph по умолчанию следующим один:

textStyle 
    " Answer a font for the text morph" 

    ^TextStyle default 

Окно должно быть способ установить шрифт непосредственно из меню оболочки (верхний правый ar строка) или из браузера параметров. Вы можете изменить любое свойство морфинга, переместив меню «Halo» над интересующим вас морфом (Alt + Shift + Left Click в MS Windows) и выберите красный значок. Затем выберите Debug -> Explore морфа и установить стиль текста непосредственно из Проводника:

self textMorph setTextStyle: TextStyle default 
+0

Это работает и чувствует себя хорошо для меня, потому что кажется, что текст по умолчанию textStyle, на который ответил этот объект, был чем-то, что было из старого мира (Squeak), который не отображается в настройках «font/appearance» в любом месте Pharo. –

2

ShellWindowMorph использует общесистемный DefaultFixedTextStyle.

В Писк, вы можете изменить его, как это:

TextConstants 
    at: #DefaultFixedTextStyle 
    put: (TextStyle fontArray: {StrikeFont fromUser}). 
+0

Стилистически это, вероятно, лучше, чем изменение кода, чтобы удалить ссылку на DefaultFixedTextStyle, я думаю? –

 Смежные вопросы

  • Нет связанных вопросов^_^