GtkTooltips and markup...




This may all be redundant if I'm simply using an old version of the library, but if not...  I'm trying to 
figure something out;

GtkTooltips use GtkLabel, which uses Pango.  Pango allows markup, which means GtkLabel allows markup (and in 
fact, supports it), which means GtkTooltips should be able to provide this functionality fairly easily.

Now, as I understand it, the markup parser accepts optional <markup> </markup> tags to surround the text.  
They don't have to be there, but they do have to be balanced if they are.

I cloned the standard GtkTooltips widget code into my own home-grown tool kit, incorporating a very simple 
patch.  If the text starts with the <markup> tag, it sets the label as a markup instead of as plain text.  
This isn't a perfect solution, but it works remarkably well.

To improve this situation, I'm looking at two options;

1) Adding a flag to the tooltip data to indicate whether the tooltip was set through the standard function, 
or a companion set_tooltip_markup function, and set the GtkLabel text appropriately.

2) Converting non-markup text into a form compatible with the markup parser (is there an easy way to do 
this?), and storing this text in the tooltip data structure instead, then providing the set_tooltip_markup 
function that simply stores the text unmodified just like the standard set_tooltip function does presently.

Option 2 is my current favorite, though I still need to track down the official way to protect text not 
intended to be marked up, from the Pango markup parser.  However, aside from that, I'm wondering if there are 
any real issues that make method #1 prefered over #2, or even a new option that's better still?


Finally, I don't like having to have a 99.9% clone of the official GtkTooltips widget kicking around my 
otherwise home-grown tool kit.  Not the least of which is because it's a terrible duplication of code.  But, 
I can't see any other way to implement the change, since the GtkTooltips widget doesn't seem to use any 
virtual methods anywhere that's terribly useful (although I do notice there are four reserved vm's, so 
perhaps they're intending to make way for things like this?).  Can anyone think of a better way than copying 
the entire code just so I can rename the existing set_tooltip function to set_tooltip_markup, then clone and 
modify the function (which will probably only need two or three lines added/changed) to provide backward 
compatibility, and insert a _markup in the line that sets the GtkLabel's text?  All in all, modifications 
that affect only a tiny fraction of the total GtkTooltips code.


Suggestions, anyone?  Or should I just continue as I am (and monitor the official code for changes) until the 
powers that be decide to fix this themselves?


fredderic

_______________________________________________
Join Excite! - http://www.excite.com
The most personalized portal on the Web!



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