Page 1 sur 1

CheckBoxGadget multi-ligne

Publié : sam. 18/juin/2011 23:18
par Le Soldat Inconnu
Salut,

J'avais un soucis avec un texte trop long dans une case à cocher et je cherchais donc à rendre le CheckBoxGadget multi-ligne
Après un essai sans succès via l'API, il m'est venu une idée toute bête, utiliser la constante Multi-ligne des ButtonGadget en option de mon CheckBoxGadget.

Et bien, vous savez quoi, ça marche :mrgreen:

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.50
;
; Explication du programme :
; CheckBoxGadget multi-ligne

; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 300, 200, "CheckBoxGadget multi-ligne", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) = 0
  End
EndIf

CheckBoxGadget(0, 4, 4, 300 - 8, 48, "Une case à cocher avec un texte bien trop long pour tenir sur une seule ligne", #PB_Button_MultiLine)

Repeat
  Event = WaitWindowEvent()
  
Until Event = #PB_Event_CloseWindow
Fred, pourquoi que c'est pas l'aide, ça ?

Re: CheckBoxGadget multi-ligne

Publié : mar. 05/juil./2011 10:06
par gnozal
Le Soldat Inconnu a écrit :Salut,

J'avais un soucis avec un texte trop long dans une case à cocher et je cherchais donc à rendre le CheckBoxGadget multi-ligne
Après un essai sans succès via l'API, il m'est venu une idée toute bête, utiliser la constante Multi-ligne des ButtonGadget en option de mon CheckBoxGadget.

Et bien, vous savez quoi, ça marche :mrgreen:
Sous Windows, la checkbox est de la classe "button" (comme l'OptionGadet).
Je soupçonne que ce n'est pas le cas sous Linux / MacOS.

Re: CheckBoxGadget multi-ligne

Publié : mar. 05/juil./2011 12:59
par Guimauve
gnozal a écrit :Sous Windows, la checkbox est de la classe "button" (comme l'OptionGadet).
Je soupçonne que ce n'est pas le cas sous Linux / MacOS.
Pour que ça fonctionne sous Linux, il faut faire comme suit :

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.50
;
; Explication du programme :
; CheckBoxGadget multi-ligne

; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 300, 200, "CheckBoxGadget multi-ligne", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) = 0
	End
EndIf

CheckBoxGadget(0, 4, 4, 300 - 8, 48, "Une case à cocher avec un bien trop" + Chr(13) + Chr(10) + "long pour tenir sur une seule ligne")

Repeat
	Event = WaitWindowEvent()
	
Until Event = #PB_Event_CloseWindow
Le texte apparaît sur deux lignes mais ce n'est pas automatique. Il faut peut-être ajouter une commande qui va compter le nombre de mot du texte a afficher et insérer les caractères 13 et 10 en plein milieu pour avoir approximativement la même longueur sur chacune des lignes. Ou encore mesurer la longueur graphique du texte par rapport à la largeur du gadget et couper le texte en insérant les caractères 13 et 10 là ou il le faut.

A+
Guimauve