[squeak-dev] Inspector Custom Value Panes & Related

Tobias Pape Das.Linux at gmx.de
Thu Sep 3 13:53:26 UTC 2020


Hi
> On 03.09.2020, at 15:04, Thiede, Christoph <Christoph.Thiede at student.hpi.uni-potsdam.de> 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 <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Tobias Pape <Das.Linux at gmx.de>
> 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 <Christoph.Thiede at student.hpi.uni-potsdam.de> 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 <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Tobias Pape <Das.Linux at gmx.de>
> > 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 <Christoph.Thiede at student.hpi.uni-potsdam.de> 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 <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Eric Gade <eric.gade at gmail.com>
> > > 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 <christoph.thiede at student.hpi.uni-potsdam.de> 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