Bezüglich der abgeschnittenen Zeichen, wenn die Schriftgröße einen bestimmten Schwellwert überschreitet: Ich hab das Problem bei mir (allerdings vdr 1.6.0) gelöst, indem ich skins.c in den vdr sourcen gepatcht habe.
void cSkinDisplayMenu::SetTabs(int Tab1, int Tab2, int Tab3, int Tab4, int Tab5)
{
tabs[0] = 0;
tabs[1] = Tab1 ? tabs[0] + Tab1 : 0;
tabs[2] = Tab2 ? tabs[1] + Tab2 : 0;
tabs[3] = Tab3 ? tabs[2] + Tab3 : 0;
tabs[4] = Tab4 ? tabs[3] + Tab4 : 0;
tabs[5] = Tab5 ? tabs[4] + Tab5 : 0;
+ const cFont * font = this->GetTextAreaFont(false);
+ int fontFactor = (font)?font->Height()/2 + 1:12;
for (int i = 1; i < MaxTabs; i++)
- tabs[i] *= 12;//XXX average character width of font used for items - see also skincurses.c!!!
+ tabs[i] *= fontFactor;//XXX average character width of font used for items - see also skincurses.c!!!
}
Display More
Die Formel für den fontFactor ist nur eine grobe Heuristik, die mit meinem Skin und dem gewählten Font gut funktioniert. Ihr müsstet das eventuell anpassen; vielleicht findet ja auch jemand eine elegantere Methode, die durchschnittliche Schriftbreite zu berechnen...
Cya, Ed