#BP_Eventtype_Focus #BP_Eventtype_LostFocus pour spingadget

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

#BP_Eventtype_Focus #BP_Eventtype_LostFocus pour spingadget

Message par Ulix »

Salut a tous ! :P

J'ai une demande pour Fred !

Sur le SpinGadget, serait-il possible d'avoir 2 événements supplémentaire, a savoir :

#BP_Eventtype_Focus
#BP_Eventtype_LostFocus

De plus, il ne semble pas possible de passé le focus a un SpinGadget.
Par exemple faire un : SetActiveGadget(#SpinGadget) ne fonctionne pas !
Impossible de mettre le focus dans la zone de saisie :twisted:
Pourtant pour faire un formulaire de saisie avec une dizaine gadgets de
saisie ( string, combo et spin ) c'est bien utile. (gestion de la touche entrée en raccourci clavier )


Enfin une dernière remarque : je me suis aperçu que les largeurs des TextGadget, ComboBoxGadget,
StringGadget, SpinGadget... ne correspondait pas a ce qui été demandé lors de la création du gadget.
Est-ce normal ? :oops:

Je précise que je suis sous Linux : Ubuntu 12.04 - 32 bits.
J'ai cru comprendre que le problème venait de Linux, est-ce que quelqu'un peut le confirmé ?
Le problème n'est-il que temporaire ?

Merci par avance à Fred de me répondre !

A +
Shardik
Messages : 4
Inscription : sam. 16/nov./2013 20:52
Localisation : Allemagne

Re: #BP_Eventtype_Focus #BP_Eventtype_LostFocus pour spingad

Message par Shardik »

Ulix a écrit :De plus, il ne semble pas possible de passé le focus a un SpinGadget.
Par exemple faire un : SetActiveGadget(#SpinGadget) ne fonctionne pas !
Impossible de mettre le focus dans la zone de saisie :twisted:
Passé le focus à le SpinGadget (tester avec Ubuntu 12.04 x86 avec PB 5.41 x86):

Code : Tout sélectionner

Procedure.I GetChildContainer(Widget.I, ContainerName.S)
  Protected Child.I
  Protected ChildrenList.I
  Protected i.I
  Protected *Name
 
  ChildrenList = gtk_container_get_children_(Widget)
 
  If ChildrenList
    For i = 0 To g_list_length_(ChildrenList)
      Child = g_list_nth_data_(ChildrenList, i)
     
      If Child
        *Name = gtk_widget_get_name_(Child)
       
        If PeekS(*Name, -1, #PB_UTF8) = ContainerName
          Widget = Child
          Break
        EndIf
      EndIf
    Next i
  EndIf

  ProcedureReturn Child
EndProcedure

OpenWindow(0, 100, 100, 240, 70, "SpinGadget avec focus")
SpinGadget(0, 80, 20, 80, 25, 0, 10, #PB_Spin_Numeric)
gtk_widget_grab_focus_(GetChildContainer(GadgetID(0), "GtkEntry"))
SetGadgetState(0, 5)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Re: #BP_Eventtype_Focus #BP_Eventtype_LostFocus pour spingad

Message par Ulix »

Merci Shardik ! :P

Je vais regardé ça.

A+
Répondre