discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNUstep themeing and MacOS HITheme APIs...


From: Adrian Robert
Subject: Re: GNUstep themeing and MacOS HITheme APIs...
Date: Fri, 5 Nov 2004 16:51:01 -0500

On Nov 5, 2004, at 4:20 PM, Michael Hanni wrote:

Hi,

Just one point...

--- "M. Uli Kusterer" <witness@t-online.de> wrote:

If you want to allow that people create custom controls that match any theme, you may still want to make sure you have a complete set of high-
and low-level theme-drawing APIs. Both a call to draw a full NSTabView
as well as a call to draw just a tab or just the body area of a tab
view, etc. Having a look at Apple's stuff (both in HITheme.h and
Appearance.h) is a good way to make sure nothing is overlooked.

The latest NSTabView code
(http://www.cc.utah.edu/~msh3/gnustep/NSTabView-NG-0.02.tgz) has methods to draw the whole tab and for each side of the tab. In theory you could override
easily any of these methods to completely change the look of the tab.

I'd like to insert a general plea here that people working on theming support take performance into account. From the sound of the discussion it seems easy to add many layers of method calls, pixmap composits, etc. that must be executed for every exposure and update operation on each widget. An example of a bad result is Java Swing, which has extensive theming support but results in interfaces that even on fast machines can feel like molasses. (Not all of this is the fault of theme support, but some is.) I hope this does not happen for GNUstep, or at least can be short-circuited if you want a simple (but fast) GUI.

I don't know that much about this, but I imagine that the same approaches that work well in GTK, a pure-C library, for example, might not be as suitable in Objective-C with method call overhead.

(Please ignore this message if performance is already being attended to, but I just thought I would throw the issue out now. ;)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]