Whatever your solution, you will have to modify the Ccontrols library, because the font is hardcoded in all of its text drawing functions.

In the case of text buttons, the function you are looking for is <b>Cdb()</b>, in <b>Ccontrols1.c</b>. The "simple" way of getting what you want is to cut and paste this function, and rename it, eg: CdbSymbol(). Change the textattr() in this new function to be textattr(3,1,0), for symbol, and call CdbSymbol( handle ) instead of Cdraw() in your code. You would need one function for each font you use, in this case.

Another way to go about it, is to delve a little deeper into Ccontrols, and modify the Cbutton() function, to define another parameter which would specify the font, then modify Cdb() to use that parameter as a variable in the textattr() call.

For a one shot deal, I think the first solution is quick and easy. If you want to modify your library for general re-use in later projects, try the second.

Here's yet another way, that will be compatible with existing code because no extra parameters are added. What I've done is code the Cdb() function so that it looks for an "escape" sequence of "/f<i>n</i>" at the beginning of a string. This will tell Ccontrols to use font <i>n</i> when printing text for the text and switch buttons. Note that I had to fudge a bit for the LED font, and if you do use that font, the minimum height of the button should be 19 pixels. 'Nuff said, here's the code, "pretty" format from the PDE, cut it down if you're coding on the handheld.

Ok I compiled it, but I am having trouble getting it to display the proper character.

I have called Csetcontent with "/f4002" & "/f42" (4 being the Symbol11 font and 002 or 2 being the left arrow character as listed from the kisfonts program.
But on the display I just get the "empty box" character.

Yes, you can use: "/f4"+(char)002);
You can also do it this way: "/f4\x02" using the hex character value.

As to the symbol text not being centered, I suspect that you mean it is not centered vertically, although horizontally it is fine. I believe this is because of the font not being a "standard" text font size, much the same case as the LED font. So what needs to be done, if this is the case, is to add more conditions along the lines of the 'if (n==6) etc..' in my original code, where you need to calculate a different vertical offset depending on the font you're dealing with.

I'm trying to streamline this routine a bit, adding the changes mentionned above, but it may be a few days before I can post any code.