Page 1 sur 1

#BP_Eventtype_Focus #BP_Eventtype_LostFocus pour spingadget

Publié : ven. 22/janv./2016 20:51
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 +

Re: #BP_Eventtype_Focus #BP_Eventtype_LostFocus pour spingad

Publié : lun. 25/janv./2016 15:11
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

Re: #BP_Eventtype_Focus #BP_Eventtype_LostFocus pour spingad

Publié : lun. 25/janv./2016 15:42
par Ulix
Merci Shardik ! :P

Je vais regardé ça.

A+