Comment faire un menu style office

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Lord Nelson
Messages : 355
Inscription : dim. 01/déc./2013 15:29

Comment faire un menu style office

Message par Lord Nelson »

Salut, savez vous comment je peux faire un jolie menu comme ça en PB svp ? :)
Image
Marc56
Messages : 2196
Inscription : sam. 08/févr./2014 15:19

Re: Comment faire un menu style office

Message par Marc56 »

Dans l'aide sur CreateMenuImage il y a un paramètre:

#PB_Menu_ModernLook: Active le nouveau look et affiche un dégradé.

Qui permet d'afficher (en partie) ce type d'effet.

Sinon, il existe un produit (payant) ProGui http://www.progui.co.uk/ (jamais essayé)
je ne sais pas s'il est encore maintenu.
Lord Nelson
Messages : 355
Inscription : dim. 01/déc./2013 15:29

Re: Comment faire un menu style office

Message par Lord Nelson »

Super, merci :D
Je vais surement l'acheter :)

Y à t-il d'autres chose comme ceci ?
Avatar de l’utilisateur
MetalOS
Messages : 1498
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Comment faire un menu style office

Message par MetalOS »

Attention avec ProGui le développeur attend une mise â jour de taillbit depuis un moment pour mettre à jour ProGui en version lib. Il et toujours possible d'utiliser la dll fourni. Autrement c'est un très bon produit que j'utilise depuis quelques années.
Lord Nelson
Messages : 355
Inscription : dim. 01/déc./2013 15:29

Re: Comment faire un menu style office

Message par Lord Nelson »

Salut, bon avec l'aide de Micoute ou j'ai repris un de ses code et j'ai modifier pour faire un truc style office
c'est du brouillon mais voilà à quoi ça ressemble, c'est un truc du genre que je voudrait faire:

Code : Tout sélectionner

; A base de Bouton Plat sans bordures de Micoute, modifier par Dieppedalle David pour bouton style office le 10/05/2015

EnableExplicit

Prototype prototypeplat(Pointeur, Evenement = 0)

Structure donnees_bordures_bouton_plat
  
  Gadget.i
  Dessin.prototypeplat
  Texte.s
  CouleurTexte.i
  CouleurInterieur.i
  CouleurBordures.i
  CouleurFond.i
  Police.i
  DonneesSupplementaires.i
  
EndStructure
;
Procedure DessinerBorduresBoutonPlat(*p.donnees_bordures_bouton_plat, Evenement = 0)
  
  Protected x, y, th
  
  If *p
    If IsGadget(*p\Gadget)
      If StartDrawing(CanvasOutput(*p\Gadget))
        Select Evenement
          Case 0
            DrawingMode(#PB_2DDrawing_Default)
            Box(0, 0, OutputWidth(), OutputHeight(), *p\CouleurFond)
            
          Case 1
            
            DrawingMode(#PB_2DDrawing_Gradient)
            
            LinearGradient(1, OutputHeight(), 1, 1) 
            GradientColor(1, RGB(255, 230, 150))
            
            LinearGradient(1, 0, 1, OutputHeight())
            GradientColor(0, RGB(255, 255, 255))
            
            Box(1, 1, OutputWidth() + 1, (OutputHeight() / 2), 0)
            
            LinearGradient(1, OutputHeight() / 2, 1, OutputHeight()) 
            GradientColor(1, RGB(255, 255, 255))
            
            LinearGradient(1, OutputHeight() / 2, 1, OutputHeight())
            GradientColor(0, RGB(255, 214, 57))
            
            Box(1, (OutputHeight() / 2) + 1, OutputWidth() - 2, OutputHeight(), 0)
            
            DrawingMode(#PB_2DDrawing_Outlined)
            
            Box(1, 1, OutputWidth() - 2, OutputHeight() - 2, RGB(255, 255, 255))
            
            DrawingMode(#PB_2DDrawing_Default)
            
            Line(1, 0, OutputWidth() - 2, 1, RGB(219, 206, 153))
            Line(OutputWidth() - 1, 1, 1, OutputHeight() - 2, RGB(219, 206, 153))
            Line(0, 1, 1, OutputHeight() - 2, RGB(219, 206, 153))
            Line(1, OutputHeight()-1, OutputWidth() - 2, 1, RGB(219, 206, 153))
            
        EndSelect
        
        If IsFont(*p\Police)
          DrawingFont(FontID(*p\Police))
        EndIf
        x = (OutputWidth() / 2) - (TextWidth(*p\Texte) / 2) 
        y = (OutputHeight() / 2) - (TextHeight(*p\Texte) / 2)
        DrawingMode(#PB_2DDrawing_Default|#PB_2DDrawing_Transparent)
        DrawText(x, y, *p\Texte, *p\CouleurTexte)
        
        StopDrawing()
        
      EndIf
    EndIf
  EndIf
  
EndProcedure
;
Procedure BorduresBoutonPlat(Gadget, x, y, Largeur, Hauteur, Texte.s, CouleurTexte, CouleurFond, CouleurInterieur, CouleurBordures, Police)
  
  Protected *p.donnees_bordures_bouton_plat = AllocateMemory(SizeOf(donnees_bordures_bouton_plat))
  Protected ID
  
  If Not *p : ProcedureReturn #False : EndIf
  InitializeStructure(*p, donnees_bordures_bouton_plat)
  
  ID = CanvasGadget(Gadget, x, y, Largeur, Hauteur)
  
  If Gadget = #PB_Any : Gadget = ID : EndIf
  
  SetGadgetData(Gadget, *p)
  
  *p\Gadget = Gadget
  *p\Texte   = Texte
  *p\CouleurBordures = CouleurBordures
  *p\CouleurFond = CouleurFond
  *p\CouleurInterieur = CouleurInterieur
  *p\Police = Police
  *p\Dessin = @DessinerBorduresBoutonPlat()
  
  *p\Dessin(*p, 0)
  ProcedureReturn ID
  
EndProcedure
;
Procedure EvenementsBorduresBoutonPlat(Gadget, Evenement, TypeEvenement)
  
  Protected *p.donnees_bordures_bouton_plat
  
  If IsGadget(Gadget)
    *p = GetGadgetData(Gadget)
    If *p
      If Evenement = #PB_Event_Gadget
        Select TypeEvenement
          Case #PB_EventType_MouseEnter, #PB_EventType_MouseMove, #PB_EventType_LeftButtonDown, #PB_EventType_RightButtonDown
            *p\Dessin(*p, 1)
          Default
            *p\Dessin(*p, 0)
        EndSelect            
      EndIf
    EndIf
  EndIf
  
EndProcedure
;
DisableExplicit

OpenWindow(0,200,300,150,127,"Fenêtre de test")

Police = LoadFont(#PB_Any, "Segoe UI", 9)

BorduresBoutonPlat(1, 1, 1, 148, 25, "Imprimante", 0, $F0F0F0, $FFE0C2, $FF9933, Police)
BorduresBoutonPlat(2, 1, 26, 148, 25, "Ordinateur", 0, $F0F0F0, $FFE0C2, $FF9933, Police)
BorduresBoutonPlat(3, 1, 51, 148, 25, "Souris", 0, $F0F0F0, $FFE0C2, $FF9933, Police)
BorduresBoutonPlat(4, 1, 76, 148, 25, "Clavier", 0, $F0F0F0, $FFE0C2, $FF9933, Police)
BorduresBoutonPlat(5, 1, 101, 148, 25, "Disque dur", 0, $F0F0F0, $FFE0C2, $FF9933, Police)

AddKeyboardShortcut(0,#PB_Shortcut_Escape, 9999)

Repeat
  Evenement = WaitWindowEvent()
  
  Select Evenement
    Case #PB_Event_Gadget
      EvenementsBorduresBoutonPlat(EventGadget(), Evenement, EventType())
      Select EventType()
        Case #PB_EventType_LeftClick
          Select EventGadget()
            Case 1
              Debug "Clic sur Imprimante"
            Case 2
              Debug "Clic sur Ordinateur"
            Case 3
              Debug "Clic sur Souris"
            Case 4
              Debug "Clic sur Clavier"
            Case 5
              Debug "Clic sur Disque dur"
          EndSelect         
      EndSelect
      
    Case #PB_Event_CloseWindow
      Quitter = 1
      
  EndSelect
  
Until Quitter > 0
Note: ya des choses inutile, j'ai fais comme j'ai pue.
Répondre