[squeak-dev] Inspector Custom Value Panes & Related

Tobias Pape Das.Linux at gmx.de
Wed Sep 9 06:19:03 UTC 2020


Hi

> On 08.09.2020, at 08:09, Thiede, Christoph <Christoph.Thiede at student.hpi.uni-potsdam.de> wrote:
> 
> Hi all, Hi Tobias,
> 
> does the attached changeset match your expectations? :-)

Looks promising.
I'd like some input from others wether the #be*-API on Text works, as it currently lives on TextMorph.

Other than that, go ahead.

Best regards
	-Tobias

> 
> Best,
> Christoph
> Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel
> Gesendet: Donnerstag, 3. September 2020 15:56:49
> An: squeak-dev
> Betreff: Re: [squeak-dev] Inspector Custom Value Panes & Related
>  
> Plus, TextFontReference is a rather fixed pointer to a specific font and size, which breaks when using Squeak's notion of High-DPI with bigger fonts in general. TextFontChange works better with its index. And so does TextEmphasis for italic.
> 
> Best,
> Marcel
>> Am 03.09.2020 15:53:35 schrieb Tobias Pape <das.linux at gmx.de>:
>> Hi
>> > On 03.09.2020, at 15:04, Thiede, Christoph wrote:
>> > 
>> > Hi Tobias,
>> > 
>> > > Also, I don't see how two font refs can ever be stacked, it makes not much sense, no?
>> > 
>> > That was exactly my point. 'foo' asText beAllFont: font1; beAllFont: font2 does not make any sense, of course, but when a text is passed from somewhere else, you may not know which formatting has already been applied to it ...
>> 
>> That is true. But if you want to change the font, there's only so much you can do.
>> If you want just change an upright font to an italic one, the FontReference will not work in any case.
>> The TextFontChange attribute is seemingly intended for that, but it only understands "Font array indices" which is most unhelpful :D
>> 
>> Best regards
>> -Tobias
>> 
>> 
>> > 
>> > Best,
>> > Christoph
>> > 
>> > Von: Squeak-dev im Auftrag von Tobias Pape 
>> > Gesendet: Donnerstag, 3. September 2020 00:13:24
>> > An: The general-purpose Squeak developers list
>> > Betreff: Re: [squeak-dev] Inspector Custom Value Panes & Related
>> > 
>> > 
>> > > On 02.09.2020, at 23:29, Thiede, Christoph wrote:
>> > > 
>> > > Hi Tobias, thanks for the tips! :-)
>> > > 
>> > > > I think the "TextFontReference toFont:" and explicit "addAttribute:" are a bit involved; maybe something akin to Text>>#makeBoldFrom:to:/Text>>#allBold would be nice.
>> > > 
>> > > Would you expect such a Text>>#setFont:from:to: only to add a TextFontReference or also to remove all existing TextFontReferences from the interval?
>> > > 
>> > 
>> > I'd be wary of using #set... because exactly that expectation happens.
>> > Vocabulary is cumbersome, tho.
>> > see TextMorph's _be_AllFont, Text's _make_Bold and the attributes only ever add.
>> > 
>> > Also, I don't see how two font refs can ever be stacked, it makes not much sense, no?
>> > Coalescing the runs would probably take care of chopping up the different font runs, but that's beneath the cover.
>> > 
>> > That said, I liked the Seaside/Magritte-wording with beSomething on their brushes or models respectively…
>> > 
>> > Best regards
>> > -Tobias
>> > 
>> > > Best,
>> > > Christoph
>> > > Von: Squeak-dev im Auftrag von Tobias Pape 
>> > > Gesendet: Mittwoch, 2. September 2020 22:04:38
>> > > An: The general-purpose Squeak developers list
>> > > Betreff: Re: [squeak-dev] Inspector Custom Value Panes & Related
>> > > 
>> > > Hi
>> > > 
>> > > > On 02.09.2020, at 21:14, Thiede, Christoph wrote:
>> > > > 
>> > > > Hi Eric,
>> > > > 
>> > > > > I can't seem to find MorphInspector in a current (5.3 here) image. Is this a separate package?
>> > > > 
>> > > > MorphInspector, FormInspector, and a bunch of other small new improvements to the inspector framework have arrived in the Squeak Trunk just a few months ago! Seehttp://forum.world.st/Please-try-out-Inspector-Refactoring-td5114974.html andhttps://squeak.org/downloads/#current-trunk-image-2:~:text=Current-,Trunk,-Image :-)
>> > > > 
>> > > > > I find the whole relationship between a Text and TextStyle a bit confusing, especially where it comes to setting Fonts. It appears that there are lots of different "kinds" of Fonts, and there's a good amount of indirection so it's difficult to determine which kind of fonts (StrikeFont? TTFont?) "live" and how to see what's available and pick programmatically. Is there a good primer somewhere on Text/TextStyle?
>> > > > 
>> > > > These are good questions others can probably answer better than I could do.
>> > > > This is all I can tell you:
>> > > > • Font rendering in Squeak is difficult and the default font (DejaVu Sans) appears to be the only one that looks kind of nice in all sizes. I almost never choose a different font.
>> > > > • To change the font in a Text, use something like:
>> > > > 'foo' asText
>> > > > addAttribute: (TextFontReference toFont: (StrikeFont
>> > > > familyName: 'Darkmap DejaVu Sans'
>> > > > pointSize: 20));
>> > > > openAsMorph
>> > > 
>> > > I'd suggest to use the TextStyle indirection, so you don't have to guess wether the font is a Strike font or a TTFont or whatever:
>> > > 
>> > > 'foo' asText
>> > > addAttribute: (TextFontReference toFont: ((TextStyle named: 'Darkmap DejaVu Sans') fontOfSize: 20));
>> > > openAsMorph
>> > > 
>> > > 
>> > > If you are just after changing the font used in a TextMorph (not the text itself), I'd use
>> > > 
>> > > 'foo' asTextMorph 
>> > > beAllFont: ((TextStyle named: 'Darkmap DejaVu Sans') fontOfSize: 20); 
>> > > openInHand
>> > > 
>> > > 
>> > > That way, the name string can be easily exchanged, such as 'BitstreamVeraSans', or anything imported with the FontImporterTool
>> > > 
>> > > I think the "TextFontReference toFont:" and explicit "addAttribute:" are a bit involved; maybe something akin to Text>>#makeBoldFrom:to:/Text>>#allBold would be nice.
>> > > 
>> > > 
>> > > Best regards
>> > > -Tobias
>> > > 
>> > > 
>> > > > 
>> > > > > Also -- how can I disable editing of a TextMorph?
>> > > > 
>> > > > See TextMorph >> #readOnly: or also Morph >> #lock to disable any interaction.
>> > > > 
>> > > > Best,
>> > > > Christoph
>> > > > Von: Squeak-dev im Auftrag von Eric Gade 
>> > > > Gesendet: Mittwoch, 2. September 2020 17:01:45
>> > > > An: The general-purpose Squeak developers list
>> > > > Betreff: Re: [squeak-dev] Inspector Custom Value Panes & Related
>> > > > 
>> > > > Hi Christoph,
>> > > > 
>> > > > On Tue, Sep 1, 2020 at 7:32 PM Christoph Thiede wrote:
>> > > > 
>> > > > for displaying graphics in an inspector, have a look at MorphInspector (screenshot) or FormInspector (pixels). Custom interactive fields are not (yet?) supported, but in theory, you could subclass Inspector and override the relevant toolbuilder methods. 
>> > > > 
>> > > > I can't seem to find MorphInspector in a current (5.3 here) image. Is this a separate package?
>> > > > 
>> > > > 
>> > > > Regarding to your second question - why don't you use a TextMorphs? The composition of different formatting styles applied to a string is just what makes up a Text
>> > > > 
>> > > > Aha, yes, I think I've looked into this before. I find the whole relationship between a Text and TextStyle a bit confusing, especially where it comes to setting Fonts. It appears that there are lots of different "kinds" of Fonts, and there's a good amount of indirection so it's difficult to determine which kind of fonts (StrikeFont? TTFont?) "live" and how to see what's available and pick programmatically. Is there a good primer somewhere on Text/TextStyle? Also -- how can I disable editing of a TextMorph? 
>> > > > 
>> > > > Thanks again
>> 
>> 
>> 
> 




More information about the Squeak-dev mailing list