Page 1 sur 1

Changer image de Menu de POPUP MENU

Publié : mar. 11/févr./2020 14:29
par Ar-S
Salut

Je coince sur un truc sûrement tout con.
Je souhaite pouvoir changer l'image d'un menu de popupmenu..
On a bien SetMenuItemState pour l'état, du SetMenuItemText pour le texte mais j'ai rien trouvé pour l'image. SetGadgetItemImage ne marche pas pour le menupopup

Merci

Code : Tout sélectionner

If OpenWindow(0, 200, 200, 220, 120, "Exemple de menu contextuel")
  If CreateImage(0,16,16,32)     
    StartDrawing(ImageOutput(0)) ; carré rouge
    Box(0,0,15,15,RGB(255,0,0))
    StopDrawing()
    
    If CreateImage(1,16,16,32)     
      StartDrawing(ImageOutput(1)) ; Carré vert
      Box(0,0,15,15,RGB(0,255,0))
      StopDrawing()
      
    EndIf
    
    If CreatePopupImageMenu(0, #PB_Menu_ModernLook) ; Le moderne look est dégueulasse ^^
      MenuItem(1, "menu1",ImageID(0))               ; Rouge
      MenuItem(2, "quitter",ImageID(1))             ; Vert
      
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
      Select Event                        ; Examine quel type d'évènement est survenu sur la fenêtre
        Case #PB_Event_RightClick,#PB_Event_LeftClick         
          DisplayPopupMenu(0,WindowID(0))                
          
        Case #PB_Event_Menu    
          Select EventMenu()    
            Case 1 : Debug "en cliquant sur ce menu ou un autre bouton quelconque, Je veux passer l'image du MenuItem(1) à ImageID(1) au lieu de ImageID(0)"
            Case 2 : End
          EndSelect
          
      EndSelect
    Until Event = #PB_Event_CloseWindow
  EndIf
EndIf

Re: Changer image de Menu de POPUP MENU

Publié : mar. 11/févr./2020 15:11
par GallyHC
Bonjour,

La seule solution que j'avais trouver été de re-générer le menu, le plus simple étant donc dans faire une méthode.

Code : Tout sélectionner

If OpenWindow(0, 200, 200, 220, 120, "Exemple de menu contextuel")
  If CreateImage(0,16,16,32)     
    StartDrawing(ImageOutput(0)) ; carré rouge
    Box(0,0,15,15,RGB(255,0,0))
    StopDrawing()
   
    If CreateImage(1,16,16,32)     
      StartDrawing(ImageOutput(1)) ; Carré vert
      Box(0,0,15,15,RGB(0,255,0))
      StopDrawing()
     
    EndIf
   
    If CreatePopupImageMenu(0, #PB_Menu_ModernLook) ; Le moderne look est dégueulasse ^^
      MenuItem(1, "menu1",ImageID(0))               ; Rouge
      MenuItem(2, "quitter",ImageID(1))             ; Vert
    EndIf
   
    Repeat
      Event = WaitWindowEvent()
      Select Event                        ; Examine quel type d'évènement est survenu sur la fenêtre
        Case #PB_Event_RightClick,#PB_Event_LeftClick         
          DisplayPopupMenu(0,WindowID(0))               
         
        Case #PB_Event_Menu   
          Select EventMenu()   
            Case 1 :  Debug "en cliquant sur ce menu ou un autre bouton quelconque, Je veux passer l'image du MenuItem(1) à ImageID(1) au lieu de ImageID(0)"
                      If IsMenu(0)            ; < PAS FORCEMENT UTILE?
                        FreeMenu(0)           ; < PAS FORCEMENT UTILE?
                      EndIf
                      If CreatePopupImageMenu(0, #PB_Menu_ModernLook)
                        MenuItem(1, "menu1",ImageID(1)) 
                        MenuItem(2, "quitter",ImageID(1))
                      EndIf
            Case 2 : End
          EndSelect
         
      EndSelect
    Until Event = #PB_Event_CloseWindow
  EndIf
EndIf
Cordialement,
GallyHC

Re: Changer image de Menu de POPUP MENU

Publié : mar. 11/févr./2020 15:36
par Ar-S
Ouch..
J'avais envisagé cette approche mais je trouve ça tout de même bien lourd pour changer une seule image. (surtout que mon menu en contiendra plusieurs).
Voilà une idée de ToDolist que je vais poster sur le fofo US.
Un SetMenuItemImage(#Menu, Element, ImageID(image)) serait le bienvenue.
Merci en tout cas GallyHC