Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1806 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [GTK] Positionnement précis de texte dans une DrawBox [Auto Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[GTK] Positionnement précis de texte dans une DrawBox [Auto Résolu]

n°1352342
darkoli
Le Petit Dinosaure Bleu
Posté le 23-04-2006 à 20:22:24  profilanswer
 

Je dois placer du texte dans une gtk_drawing_area mais je n'arrive pas à être précis.
 
J'ai dessiné un carré et je dois réussir à placer un chiffre à l'intérieur. Le chiffre doit être le plus grand possible mais sans sortir de la case. Il doit aussi être centré.
 
Comme je n'ai pas trouvé, une fonction permettant de spécifier directement la hauteur en pixel du chiffre que je souhaite écrire, je détermine au démarrage du programme la hauteur obtenue en pixels pour les tailles de 1 à 100 !

 calque=gtk_widget_create_pango_layout(donnees->zone_de_dessin, "9" );
 description_police=pango_font_description_new();
 pango_font_description_set_weight(description_police,PANGO_WEIGHT_BOLD);
 for (i=0;i<NB_TAILLES_MAX;i++)
  {
   pango_font_description_set_size(description_police,i*PANGO_SCALE);
   pango_layout_set_font_description(calque, description_police);  
   pango_layout_get_pixel_size(calque, &largeur, &hauteur);
   if (largeur > hauteur) donnees->tailles_en_pixel[i]=largeur;
    else donnees->tailles_en_pixel[i]=hauteur;
  }
 pango_font_description_free(description_police);
 g_object_unref(calque);


Ensuite en fonction de la taille en pixels que j'obtiens et aussi en fonction de la taille de ma case je choisi la bonne taille à utiliser lors de l'appel de la fonction pango_font_description_set_size.
 
Enfin pour centrer le chiffre, je fais appel à la fonction pango_layout_get_pixel_size pour obtenir les dimensions réelles de mon chiffre afin de le centrer parfaitement. Je constate qu'il y a malgré tout un décalage de 20% environ en hauteur et de 10% en largeur.
 
Il est indiqué, qu'il faut utiliser une matrice de transfomation pour placer correctement les chiffres mais ça ne fonctionne pas non plus. J'ai simplement utilisé la matrice de base sans en modifier le contenu.
 
Est-ce qu'il existe une méthode plus simple pour faire ce genre de chose parce que c'est quand même bien chiant et en plus ça ne mache pas ! :D


Message édité par darkoli le 24-04-2006 à 19:17:37

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
mood
Publicité
Posté le 23-04-2006 à 20:22:24  profilanswer
 

n°1353025
darkoli
Le Petit Dinosaure Bleu
Posté le 24-04-2006 à 19:17:12  profilanswer
 

J'ai trouvé !!!
Pour positionner le chiffre je faisais :

gdk_draw_layout( donnees->zone_de_dessin->window
               , donnees->zone_de_dessin->style->fg_gc[GTK_WIDGET_STATE(donnees->zone_de_dessin)]
               , position_largeur + ((donnees->taille_cellule-largeur) > 1)
               , position_hauteur + ((donnees->taille_cellule-hauteur) > 1)
               , calque
               );

J'avais oublié de doubler mes > ! :D


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [GTK] Positionnement précis de texte dans une DrawBox [Auto Résolu]

 

Sujets relatifs
[resolu]Recherche sensible ET insensible à la casse[Java]Modification de code[Résolu]
javascript et fichier texte en local[Résolu]Instanciation d'une classe differente selon les arguments
[Résolu] Changement de couleur au passage de la souris[RÉSOLU]Utilisier les 'in' dans une requéte sql
Socket, envoyer autre chose que du texte?[résolu] Probleme de popup sur mon site
[Résolu] probleme de syntaxe *&Pb de caractère spéciaux \ [RESOLU]
Plus de sujets relatifs à : [GTK] Positionnement précis de texte dans une DrawBox [Auto Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR