On Fri, Feb 5, 2016 at 5:21 AM, stepharo <[email protected]> wrote:
> Hi guys
>
> I do not have the answer but I hate such patterns
>
>     Smalltalk ui icons iconNamed: #protocolExtension.
>
> To me a tools using an icon should declare the icons as a ***local***
> ressources.

+100.  At a minimum this should probably be...
    self iconNamed: #protocolExtension.

maybe supplied by a trait.
Initially this might be...
    TGlobalIcons>>iconNamed: symbol
           ^ Smalltalk ui icons iconNamed: symbol

but later be replaced by...
   TClassIcons>>iconNamed: symbol
        ^ IconContainer at: symbol

and the tools would know how to work with those traits, e.g. in
GTExplorer, a tab displaying the icons for a class.   But IIUC traits
can't add variables, but did I hear any object can be annotated?  So
could TClassIcons store a dictionary holding the icons as an
annotation on the class? But we would need some way to store such
resources with the package, in Monticello or otherwise.

cheers -ben

> We could imagine that there is a IconContainer and that as a tool I declare
> that I want an icons and I install it on myself.
>
>    | t |
>    t := Tool new.
>    ic := IconContainer for: #darkTheme.
>    t askAninnstallIcon: ic iconFor: #button.
>
> Then if the IconContainer changes, then it can notify its users to ask for a
> new version of the icon.
>
>     ic broadcastNewIcon: #button
>
> This way
>
>     t does not have to use a plain bad global variable and does not care
> about the global namespace.
>     t should only use local resources held in classVar for example.
>
>
> Such Smalltalk ui icons is a dynamic global variable!
>
> Stef
>
>
>
>
>
> Le 4/2/16 17:00, Esteban Lorenzano a écrit :
>
> Smalltalk ui icons iconNamed: #protocolExtension.
>
> Still ugly, but I’m not happy with the idea of a selector-per-icon… they
> will never be enough and well… is like a monolithic vision.
> Not that what we have is much better, but you can consider it an iteration
> :)
>
> Esteban
>
> On 04 Feb 2016, at 16:19, Aliaksei Syrel <[email protected]> wrote:
>
> Hi
>
> For ages to access an icon we used:
>>
>> Smalltalk ui icons protocolPrivateIcon
>
>
> Smalltalk ui icons returns an instance of ThemeIcons.
> After refactoring (case https://pharo.fogbugz.com/f/cases/16651) all methods
> to access icon (for example protocolPrivateIcon) were removed.
>
> ThemeIcons>>#doesNotUnderstand: aMessage converts message sent to iconNamed:
> aMessage selector which works.
>
> BUT we have this all over the image:
> <Screen Shot 2016-02-04 at 16.13.03.png>
>
> So, what is the best practice to access icons to use in application?
>
> Cheers,
> Alex
>
>
>

Reply via email to