Page 2 sur 2

Re: Changer le curseur de la souris au survol d'un Gadget

Publié : mer. 22/mars/2017 17:38
par ChrisR
Merci :)
Et une autre version, sans API avec un Canva Container

Code : Tout sélectionner

Global Window_1
Global Canvas_0, Button_0

Window_1 = OpenWindow(#PB_Any, 0, 0, 200, 70, "", #PB_Window_SystemMenu)
Canvas_0 = CanvasGadget(#PB_Any, 50, 20, 100, 25, #PB_Canvas_Container)
SetGadgetAttribute(Canvas_0, #PB_Canvas_Cursor, #PB_Cursor_Hand)
Button_0 = ButtonGadget(#PB_Any, 0, 0, 100, 25, "MonBouton")
CloseGadgetList()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      End
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case Button_0
          If GetGadgetAttribute(Canvas_0, #PB_Canvas_Cursor) = #PB_Cursor_Hand
            SetGadgetAttribute(Canvas_0, #PB_Canvas_Cursor, #PB_Cursor_Busy)
          Else
            SetGadgetAttribute(Canvas_0, #PB_Canvas_Cursor, #PB_Cursor_Hand)
          EndIf
          
    EndSelect
  EndSelect
ForEver
Edit: et pour le curseur invisible au dessus d'un gadget, remplacer #PB_Cursor_Hand par #PB_Cursor_Invisible

Re: Changer le curseur de la souris au survol d'un Gadget

Publié : mer. 22/mars/2017 17:43
par Shadow
Merci mais non, bien que ce code soit simple et court, il change le curseur
de toute une famille de même gadget et pas juste le gadget voulue :)

Si tu utilise ce code pour par exemple un bouton, tous les boutons
auront le même curseur, moi je ne veux pas :)

Maintenant ya surement une astuce.
Merci pour tous.

Re: Changer le curseur de la souris au survol d'un Gadget

Publié : mer. 22/mars/2017 18:14
par Ar-S
Sans API ce n'est pas possible. Donc ce sera forcément un code compliqué (comme l'exemple du Soldat Inconnu) et il ne sera pas cross plateform.
Mais celui que ChrisR te propose pourra te servir dans le cas ou tu crées une interface entière dans un canvas.. En créant tes gadgets..

Re: Changer le curseur de la souris au survol d'un Gadget

Publié : jeu. 23/mars/2017 8:32
par Mesa
Shadow a écrit :Merci mais non, bien que ce code soit simple et court, il change le curseur
de toute une famille de même gadget et pas juste le gadget voulue :)

Si tu utilise ce code pour par exemple un bouton, tous les boutons
auront le même curseur, moi je ne veux pas :)

Maintenant ya surement une astuce.
Merci pour tous.
C'est bizarre, le code de ChrisR est pourtant indépendant du type de gadget et du gadget aussi.

Code : Tout sélectionner

Global Window_1
Global Canvas_0, Button_0

Window_1 = OpenWindow(#PB_Any, 0, 0, 200, 270, "", #PB_Window_SystemMenu)
Canvas_0 = CanvasGadget(#PB_Any, 50, 20, 100, 25, #PB_Canvas_Container)
SetGadgetAttribute(Canvas_0, #PB_Canvas_Cursor, #PB_Cursor_Hand)
Button_0 = ButtonGadget(#PB_Any, 0, 0, 100, 25, "MonBouton1")
CloseGadgetList()

Canvas_1 = CanvasGadget(#PB_Any, 50, 60, 100, 25, #PB_Canvas_Container)
SetGadgetAttribute(Canvas_1, #PB_Canvas_Cursor, #PB_Cursor_Cross     )
Button_1 = ButtonGadget(#PB_Any, 0, 0, 100, 25, "MonBouton2")
CloseGadgetList()

Canvas_2 = CanvasGadget(#PB_Any, 50, 100, 100, 25, #PB_Canvas_Container)
SetGadgetAttribute(Canvas_2, #PB_Canvas_Cursor, #PB_Cursor_IBeam    )
String_0 = StringGadget(#PB_Any, 0, 0, 100, 25, "azerty")
CloseGadgetList()
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      End
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case Button_0
          If GetGadgetAttribute(Canvas_0, #PB_Canvas_Cursor) = #PB_Cursor_Hand
            SetGadgetAttribute(Canvas_0, #PB_Canvas_Cursor, #PB_Cursor_Busy)
          Else
            SetGadgetAttribute(Canvas_0, #PB_Canvas_Cursor, #PB_Cursor_Hand)
          EndIf
          
        Case Button_1
          If GetGadgetAttribute(Canvas_1, #PB_Canvas_Cursor) = #PB_Cursor_Cross
            SetGadgetAttribute(Canvas_1, #PB_Canvas_Cursor, #PB_Cursor_Denied)
          Else
            SetGadgetAttribute(Canvas_1, #PB_Canvas_Cursor, #PB_Cursor_Cross)
          EndIf
          
          ;Case string_0
          
          
      EndSelect
  EndSelect
ForEver

Re: Changer le curseur de la souris au survol d'un Gadget

Publié : jeu. 23/mars/2017 11:39
par Shadow
Punaise, c'est sacrément malin comme méthode ChrisR :o
J'avais pas testé :oops:
Merci :D