Hi, and welcome
There are a couple of approaches you can take with this - one is indeed to subclass the Tooltip window class, another alternative is to provide a custom window renderer class, a third alternative would be to do it all in the skin, although here you lose the ability to parse the existing window text.
A brief little discussion of how things are architected...
Windows are created by associated WindowFactory objects that are registered with the WindowFactoryManager, and enable the WindowManager to create the various classes of Window based objects.
A Window generally does its rendering by storing rendering operations to be performed in a RenderCache that each window has. The RenderCache can be filled by the Window itself, via the Window::populateRenderCache member, or alternatively, a Window can have an assigned WindowRenderer based object that will perform this step instead.
A WindowRenderer generally makes use of the Falagard skinning information assigned to it's associated Window - extracting the various parts it may require and stuffing the details into the RenderCache. A WindowRenderer has an associated WindowRendererFactory that is registered with the WindowRendererManager.
All these parts are tied together via a "Falagard mapping" - this created a mapping for a new window type from some base Window type, a WindowRenderer, and the name of a WidgetLook / LookNFeel (skin definition). Usually this mapping is specified in a scheme XML file, although it is also possible to do that in code.
How far along this road you need to go is up to you; you can definitely get what you need without the extra work of the WindowRenderer approach.
Anyway, to create a subclass of a Window and it's associated factory, you might refer to this post in which I describe how to do that in detail:
http://www.cegui.org.uk/phpBB2/viewtopi ... 4730#14730
Other things to be aware of are, that you can't override the setText member - it's not virtual. You should override the onTextChanged member and do stuff in there instead.
With regards to looknfeel and layouts - the way to think about this is that layouts are more like 'objects', they represent a concrete definition of a set of windows. Whereas a looknfeel is more like a 'class', in that it defines general aspects that can be used many times over.
Generally speaking the looknfeel system is vastly more powerful that the layout system. You can actually have as many TextComponent definitions as you want. You could also, for instance, define separate properties for the tooltip title and main text, then get the rest of the skin to render it (the caveat here is that the rest of the system would not know about those new properties if defined solely in XML).
Personally, I think a subclass of Tooltip, an overridden onTextChanged, and an implementation of populateRenderCache is the way to go (one you have that you can branch out into WindowRenderers if the need arises).
CE.