Am 11.11.2015 um 11:58 schrieb Richard Frith-Macdonald 
<[email protected]>:

> 
>> On 10 Nov 2015, at 18:16, Fred Kiefer <[email protected]> wrote:
>> 
>> Am 10.11.2015 um 15:21 schrieb Riccardo Mottola:
>>> Hi,
>>> 
>>> Richard coded a fine extension to our themeing: given the Bundle
>>> Identifier, one can supply alternatives icon, in specific the
>>> Application Icon itself can be changed.
>>> I tried and it works fine inside an App: the "alternative" icon gets
>>> shown both in the Info panel as well as in the Dock Tile for windowmaker.
>>> 
>>> However, GWorkspace doesn't pick up the "themed" icon. I want to change
>>> that.
>>> 
>>> I am actually trying to understand where the App icon gets found.
>>> 
>>> in FSNodeRepIcon we have - (NSImage *)iconOfSize:(int)size
>>> forNode:(FSNode *)nod
>>> 
>>> and this will call
>>> 
>>> baseIcon = [ws iconForFile: nodepath]
>>> 
>>> ws is
>>> 
>>> ws = [NSWorkspace sharedWorkspace];
>>> 
>>> 
>>> I wonder if NSWorkspace should become in this case theme aware or if I
>>> should change GWorkspace (how?). I think the former is better.
>> 
>> What you need to make theme aware is the NSBundle method
>> pathForImageResource:, which is what NSWorkspace uses internally.
> 
> I dislike extending GUI theming to gnustep-base methods … adding a dependency 
> on gui in base.
> Particularly theming of a method which is already used inside the theming 
> engine (a recipe for confusion I think).
> 
> How about moving more of the NSImage logic for handling themed images into 
> GSTheme, and having NSWorkspace be theme-aware by calling a new GSTheme 
> methods rather than the NSBundle methods?

Sorry for the confusion, this is a gui method, even though it is defined on a 
base class. It is located in NSImage.m. You other argument is valid, we need to 
make sure to have basic methods that don't call back into theming to avoid 
recursion.


_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to