Page 1 sur 1
Obtenir l'état (activé ou désactivé) d'un gadget
Publié : mar. 17/févr./2009 22:46
par Progi1984
Code : Tout sélectionner
ProcedureDLL GetDisableGadget(Gadget.l)
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Linux;{
Protected *Widget.GtkWidget = GadgetID(Gadget)
Protected *Object.GtkObject = *Widget\object
If *Object\flags & #GTK_SENSITIVE <> 0
ProcedureReturn #False
Else
ProcedureReturn #True
EndIf
;}
CompilerCase #PB_OS_Windows;{
ProcedureReturn #True-IsWindowEnabled_(GadgetID(gadget))
;}
CompilerEndSelect
EndProcedure
If OpenWindow(0, 0, 0, 250, 105, "DisableGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 10, 15, 230, 30, "Bouton désactivé") : DisableGadget(0, 1)
ButtonGadget(1, 10, 60, 230, 30, "Bouton activé") : DisableGadget(1, 0)
Debug GetDisableGadget(0)
Debug GetDisableGadget(1)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Manque plus que MacOS

Publié : mar. 17/févr./2009 22:53
par Ar-S
C'est quoi la différence avec un getgadgetstate ?
Publié : mar. 17/févr./2009 23:42
par Progi1984
Pour MacOS, Possibilité de tester avec ca ?
Code : Tout sélectionner
CompilerCase #PB_OS_MacOs;{
ProcedureReturn #True-IsControlEnabled_(GadgetID(gadget))
;}
La différence avec un getgadgetstate est que l'on saura si le gadget est ou non désactivé. Par exemple, dans le cadre d'un bouton, cela renvoie ces ifnormations :
Code : Tout sélectionner
- ButtonGadget(): renvoie l'état d'un bouton poussoir (#PB_Button_Toggle): 1 = pressé, 0 = normal.
Publié : ven. 20/févr./2009 18:54
par Kwai chang caine
Merci Progi1984
Autrement j'avais le meme style de code de FLYPE, mais avec des macros, si ça peut compléter ce POST
http://www.purebasic.fr/french/viewtopi ... 7535#47535
Code : Tout sélectionner
Macro GetDisableGadget(gadget)
(#True-IsWindowEnabled_(GadgetID(gadget)))
EndMacro
If OpenWindow(0, 0, 0, 250, 105, "DisableGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 10, 15, 230, 30, "Bouton désactivé") : DisableGadget(0, 1)
ButtonGadget(1, 10, 60, 230, 30, "Bouton activé") : DisableGadget(1, 0)
Debug GetDisableGadget(0)
Debug GetDisableGadget(1)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf