如何在pharo或squeak中更改CommandShell窗口中的字体?

时间:2013-03-19 01:23:25

标签: smalltalk pharo squeak

在Pharo和Squeak中,如果安装了它,你可以输入CommandShell open.,它将打开一个命令窗口,它基本上就像一个" bash shell"或"终端窗口",但它使用的是近似微观尺寸的默认字体。我似乎无法弄清楚如何改变它。

我发现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.
...

2 个答案:

答案 0 :(得分:5)

您可以通过以下方法覆盖ShellWindowMorph默认#textStyle:

textStyle
    " Answer a font for the text morph"

    ^ TextStyle default

窗口应该可以直接从shell菜单(右上角的箭头)或设置浏览器中设置字体。您可以通过将“Halo”菜单置于您感兴趣的变形上(Alt + Shift +左键单击MS Windows下)并选择红色图标来修改任何变形属性。然后选择Debug - >探索变形并直接从资源管理器中设置文本样式:

self textMorph setTextStyle: TextStyle default

答案 1 :(得分:2)

ShellWindowMorph使用系统范围的DefaultFixedTextStyle。

在Squeak,你可以改变它:

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