2010-10-31 5 views
0

Je fais un jeu gui api et je me demande comment implémenter les onglets. J'utilise freetype pour le texte. Quand j'essaie de rendre '\ t' Cela ressemble à un carré. Je me demande comment les onglets sont mis en œuvre parce qu'ils ne sont pas une largeur fixe.Comment fonctionnent les onglets pour les zones de texte?

Merci

Répondre

2

Pour une police à largeur fixe, vous pouvez calculer le nombre d'espaces à la prochaine tabulation, mais la solution générale est d'arrêter le rendu lorsque vous cliquez sur un onglet, déplacez au tabstop suivant, puis restituez le texte qui suit le caractère de tabulation à partir de là. Où les tabstops sont à vous, mais un bon défaut est probablement quelque chose comme tous les 8 ems.

0

La stratégie la plus simple consiste à échanger un onglet pour un un certain nombre de places. C'est à dire. Lorsque l'utilisateur appuie sur la tabulation, faites comme si l'onglet était poussé quatre fois. (Ou imprimez juste quatre espaces, tout ce qui fonctionne pour vous)

+0

Mais quand ils pressent retour arrière, comment puis-je savoir combien à supprimer? – jmasterx

+0

Si le dernier caractère est '\ t', supprimez les 4 derniers caractères (si les 3 premiers \ t ne peuvent pas être sélectionnés) – irrelephant

+0

bien merci. – jmasterx

Questions connexes