L'exemple qui suit propose le choix du PopUpMenu à l'aide d'options, mais c'est très facile d'agir suivant une action, un mode spécial ou autre. On peut ainsi activer ou désactiver des protections, ajouter ou retirer des fonctions (par exemple en fonction d'un niveau d'acréditation) ou pour plein d'autres raisons. Je n'y avais pas encore songé mais maintenant je trouve ça cool, je vous en fais donc profiter.
Code : Tout sélectionner
Enumeration
#Windo
#PopUpSysExplorer1
#Menu1_Open
#Menu1_Properties
#PopUpSysExplorer2
#Menu2_Open
#Menu2_Properties
#Option1
#Option2
#Option3
#Explorer
EndEnumeration
Procedure SelectPopUpMenu()
Option1 = GetGadgetState(#Option1)
Option2 = GetGadgetState(#Option2)
Option3 = GetGadgetState(#Option3)
If Option1 = 1
DisplayPopupMenu(#PopUpSysExplorer1,WindowID(#Windo))
ElseIf Option2 = 1
DisplayPopupMenu(#PopUpSysExplorer2,WindowID(#Windo))
ElseIf Option3 = 1
MessageRequester("PopUpMenu","Les Menus PopUp ont été désactivés",#MB_ICONINFORMATION)
EndIf
EndProcedure
Global MainTitle$,Rep$
MainTitle$ = "Fenêtre de test"
Rep$ = "c:\"
Hwnd = OpenWindow(#Windo,0,0, 790, 550, MainTitle$, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_TitleBar)
If Hwnd = 0 Or CreateGadgetList(WindowID(#Windo))=0
End
EndIf
;-Menus PopUp
;{-PopUp Explorer 1
HPopUpSysExplorer1 = CreatePopupMenu(#PopUpSysExplorer1)
If HPopUpSysExplorer1
MenuTitle("PopUp Menu 1 activé")
MenuItem(#Menu1_Open, "Ouvrir ce fichier")
MenuBar()
MenuItem(#Menu1_Properties, "Propriétés")
EndIf
;}
;{-PopUp Explorer 2
HPopUpSysExplorer2 = CreatePopupImageMenu(#PopUpSysExplorer2, #PB_Menu_ModernLook)
If HPopUpSysExplorer2
MenuTitle("PopUp Menu 2 activé")
MenuItem(#Menu2_Open, "Ouvrir ce fichier")
MenuBar()
MenuItem(#Menu2_Properties, "Propriétés")
EndIf
;}
OptionGadget(#Option1,10,10,150,20,"Activer PopUp Menu 1")
OptionGadget(#Option2,10,35,150,20,"Activer PopUp Menu 2")
OptionGadget(#Option3,10,60,150,20,"Pas de PopUp Menu")
SetGadgetState(#Option1, 1)
ExplorerListGadget(#Explorer,200,5,585,540, Rep$,#PB_Explorer_AlwaysShowSelection)
ChangeListIconGadgetDisplay(#Explorer, #PB_ListIcon_LargeIcon)
SetGadgetColor(#Explorer, #PB_Gadget_FrontColor, RGB(255, 255, 255))
SetGadgetColor(#Explorer, #PB_Gadget_BackColor, RGB(153, 179, 234))
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #Explorer
Select EventType()
Case #PB_EventType_RightClick
PosPopup = GetGadgetState(#Explorer)
If PosPopup >= 0
Resultat = GetGadgetItemState(#Explorer, PosPopup)
SelectPopUpMenu()
EndIf
EndSelect
EndSelect
;-MENUS
Case #PB_Event_Menu
Select EventMenu()
Case #Menu1_Open : MessageRequester("PopUpMenu","Ouvrir depuis menu 1",#MB_ICONINFORMATION)
Case #Menu1_Properties : MessageRequester("PopUpMenu","Propriétés depuis menu 1",#MB_ICONINFORMATION)
Case #Menu2_Open : MessageRequester("PopUpMenu","Ouvrir depuis menu 2",#MB_ICONINFORMATION)
Case #Menu2_Properties : MessageRequester("PopUpMenu","Propriétés depuis menu 2",#MB_ICONINFORMATION)
EndSelect
;-Fermeture
Case #PB_Event_CloseWindow :Quitter = 1
EndSelect
Until Quitter
End
