Code : Tout sélectionner
Module ToolsBar
EndModule
Code : Tout sélectionner
DeclareModule ToolsBar
Declare Init(Id,IdWindow,X,Y,Width=-1,Heidht=100)Init(Id,IdWindow,X,Y,Width=-1,Heidht=100)
Declare AddOnglet(IdTools,Id,Title$,Selected.b=#False)
Declare AddGroupe(IdTools,IdOnglet,Widht,Title$,BorderOn.b=#True,TitleBox.b=#True,TitlePosUp.b=#False)
Declare AddImageButton(IdTools,IdOnglet,Ngroupe,Id,Image,X,Y,W,H,Toogle.b=#False)
Declare AddSpin(IdTools,IdOnglet,Ngroupe,Id,X,Y,Width,Height,Min,Max,Value=0)
Declare AddLabel(IdTools,IdOnglet,Ngroupe,X,Y,Width,height,Value$,Justification=#Left)
EndDeclareModule
Code : Tout sélectionner
;Cette procédure va ajouter un onglet en mémoire
Procedure AddOnglet(IdTools,Id,Title$,Selected.b=#False)
;Vérifie si le menu onglet existe
If FindMapElement(myTools(),Str(IdTools))=0
MessageRequester("Error ToolsBar AddOnglet","This Tolls Id not exist...")
ProcedureReturn 0
EndIf
;Si pb any on autoincrémente
If Id=#PB_Any
AddMapElement(myTools()\MyOnglet(),Str(MapSize(myTools()\MyOnglet())+1))
Else
;Vérifie si l'onglet n'existe poas déjà
If FindMapElement(myTools()\MyOnglet(),Str(Id))<>0
MessageRequester("Error ToolsBar AddOnglet","This Onglet Id already exist...")
ProcedureReturn 0
EndIf
AddMapElement(myTools()\MyOnglet(),Str(Id))
EndIf
myTools()\MyOnglet()\Title$=Title$
myTools()\MyOnglet()\Number=MapSize(myTools()\MyOnglet())-1
myTools()\MyOnglet()\Selected=Selected
;Retourner l'id de l'onglet
ProcedureReturn Val(MapKey(myTools()\MyOnglet()))
EndProcedure
Code : Tout sélectionner
;Procédure pour ajouter les groupes
Procedure AddGroupe(IdTools,IdOnglet,Widht,Title$,BorderOn.b=#True,TitleBox.b=#True,TitlePosUp.b=#False)
;Vérifie si le menu onglet existe
If FindMapElement(myTools(),Str(IdTools))=0
MessageRequester("Error ToolsBar AddGroupe","This Tolls Id not exist...")
ProcedureReturn 0
EndIf
;Vérifie si l'onglet existe
If FindMapElement(myTools()\MyOnglet(),Str(IdOnglet))=0
MessageRequester("Error ToolsBar AddGroupe","This Onglet Id not exist...")
ProcedureReturn 0
EndIf
;Se positionne à la fin de la liste
LastElement(myTools()\MyOnglet()\myGroupe())
AddElement(myTools()\MyOnglet()\myGroupe())
myTools()\MyOnglet()\myGroupe()\Widht=Widht
myTools()\MyOnglet()\myGroupe()\Title$=Title$
myTools()\MyOnglet()\myGroupe()\TitleBox=TitleBox
myTools()\MyOnglet()\myGroupe()\BordreOn=BorderOn
myTools()\MyOnglet()\myGroupe()\TilePosUp=TitlePosUp
EndProcedure
Code : Tout sélectionner
;Procédure pour ajouter les boutons
Procedure AddImageButton(IdTools,IdOnglet,Ngroupe,Id,Image,X,Y,W,H,Toogle.b=#False)
Protected GroupeExist.b=#False,IdUse
;Vérifie si le menu onglet existe
If FindMapElement(myTools(),Str(IdTools))=0
MessageRequester("Error ToolsBar AddImageButton","This Id Tools not exist...")
ProcedureReturn -1
EndIf
;Vérifie si l'onglet existe
If FindMapElement(myTools()\MyOnglet(),Str(IdOnglet))=0
MessageRequester("Error ToolsBar AddImageButton","This Id Onglet not exist...")
ProcedureReturn -1
EndIf
;Recheche du groupe dans la liste
ForEach myTools()\MyOnglet()\myGroupe()
If ListIndex(myTools()\MyOnglet()\myGroupe())=Ngroupe
GroupeExist=#True ;Le groupe est trouvé
Break ;Pour rester pointer sur le bon record
EndIf
Next
;Si le groupe n'a pas été trouvé, renvoyer un message d'erreur
If GroupeExist=#False
MessageRequester("Error ToolsBar AddImageButton","This Number groupe not exist...")
ProcedureReturn -1
EndIf
If Id=#PB_Any
IdUse=MapSize(myTools()\MyOnglet()\myGroupe()\myImgButton())
Else
IdUse=Id
;Vérifie que l'id du bouton n'existe pas déjà
If FindMapElement(myTools()\MyOnglet()\myGroupe()\myImgButton(),Str(IdUse))<>0
MessageRequester("Error ToolsBar AddImageButton","This Id button already exist...")
ProcedureReturn -1
EndIf
AddMapElement(myTools()\MyOnglet()\myGroupe()\myImgButton(),Str(IdUse))
EndIf
myTools()\MyOnglet()\myGroupe()\myImgButton()\H=H
myTools()\MyOnglet()\myGroupe()\myImgButton()\W=W
myTools()\MyOnglet()\myGroupe()\myImgButton()\X=X
myTools()\MyOnglet()\myGroupe()\myImgButton()\Y=Y
myTools()\MyOnglet()\myGroupe()\myImgButton()\IdImage=Image
myTools()\MyOnglet()\myGroupe()\myImgButton()\Toogle=Toogle
myTools()\MyOnglet()\myGroupe()\myImgButton()\State=#False
myTools()\MyOnglet()\myGroupe()\myImgButton()\Disabled=#False
myTools()\MyOnglet()\myGroupe()\myImgButton()\ProcedureCallback=-1
;Renvoyer l'id du bouton
ProcedureReturn IdUse
EndProcedure
Code : Tout sélectionner
;Procédure pour ajouter un spin
Procedure AddSpin(IdTools,IdOnglet,Ngroupe,Id,X,Y,Width,Height,Min,Max,Value=0)
Protected GroupeExist.b=#False,IdUse
;Vérifie si le menu onglet existe
If FindMapElement(myTools(),Str(IdTools))=0
MessageRequester("Error ToolsBar AddSpin","This Id Tools not exist...")
ProcedureReturn -1
EndIf
;Vérifie si l'onglet existe
If FindMapElement(myTools()\MyOnglet(),Str(IdOnglet))=0
MessageRequester("Error ToolsBar AddSpin","This Id Onglet not exist...")
ProcedureReturn -1
EndIf
ForEach myTools()\MyOnglet()\myGroupe()
If ListIndex(myTools()\MyOnglet()\myGroupe())=Ngroupe
GroupeExist=#True ;Le groupe est trouvé
Break ;pour rester pointer sur le bon record
EndIf
Next
;Si le groupe n'est pas trouvé afficher message d'erreur
If GroupeExist=#False
MessageRequester("Error ToolsBar AddSpin","This Number groupe not exist...")
ProcedureReturn -1
EndIf
If Id=#PB_Any
IdUse=MapSize(myTools()\MyOnglet()\myGroupe()\mySpin())
Else
If FindMapElement(myTools()\MyOnglet()\myGroupe()\mySpin(),Str(IdUse))<>0
MessageRequester("Error ToolsBar AddSpin","This Id spin already exist...")
ProcedureReturn -1
EndIf
IdUse=Id
EndIf
AddMapElement(myTools()\MyOnglet()\myGroupe()\mySpin(),Str(IdUse))
myTools()\MyOnglet()\myGroupe()\mySpin()\Disabled=#False
myTools()\MyOnglet()\myGroupe()\mySpin()\Min=Min
myTools()\MyOnglet()\myGroupe()\mySpin()\Max=Max
myTools()\MyOnglet()\myGroupe()\mySpin()\Value=Value
;Si la valeur demandé est plus petite que le minimum, changer le minimum
If Value<Min
myTools()\MyOnglet()\myGroupe()\mySpin()\Value=Min
EndIf
;Si la valeur demandé est plus grande que le maximum changer le maximum
If Value>Max
myTools()\MyOnglet()\myGroupe()\mySpin()\Value=Max
EndIf
;Les paramètre par defaut seront modifiable
myTools()\MyOnglet()\myGroupe()\mySpin()\ColorBox=$FFFFFF
myTools()\MyOnglet()\myGroupe()\mySpin()\ColorFont=$000000
myTools()\MyOnglet()\myGroupe()\mySpin()\Font=LoadFont(#PB_Any,"Tme new roman",11,#PB_Font_HighQuality|#PB_Font_Bold)
myTools()\MyOnglet()\myGroupe()\mySpin()\ColorLine=$808000
myTools()\MyOnglet()\myGroupe()\mySpin()\HelpImage=-1
myTools()\MyOnglet()\myGroupe()\mySpin()\X=X
myTools()\MyOnglet()\myGroupe()\mySpin()\Y=Y
myTools()\MyOnglet()\myGroupe()\mySpin()\W=Width
myTools()\MyOnglet()\myGroupe()\mySpin()\H=Height
myTools()\MyOnglet()\myGroupe()\mySpin()\ProcedureCallback=-1
EndProcedure
Code : Tout sélectionner
;Procédure pour ajouter un texte
Procedure AddLabel(IdTools,IdOnglet,Ngroupe,X,Y,Width,height,Value$,Justification=#Left)
Protected GroupeExist.b=#False,IdUse
;Vérifie si le menu onglet existe
If FindMapElement(myTools(),Str(IdTools))=0
MessageRequester("Error ToolsBar AddLabel","This Id Tools not exist...")
ProcedureReturn -1
EndIf
;Vérifie si l'onglet existe
If FindMapElement(myTools()\MyOnglet(),Str(IdOnglet))=0
MessageRequester("Error ToolsBar AddLabe","This Id Onglet not exist...")
ProcedureReturn -1
EndIf
ForEach myTools()\MyOnglet()\myGroupe()
If ListIndex(myTools()\MyOnglet()\myGroupe())=Ngroupe
GroupeExist=#True ;Le groupe à été trouvé
Break
EndIf
Next
;Le le groupe n'a pas été trouvé envoyer message d'erreur
If GroupeExist=#False
MessageRequester("Error ToolsBar AddLabel","This Number groupe not exist...")
ProcedureReturn -1
EndIf
AddElement(myTools()\MyOnglet()\myGroupe()\myLabel())
myTools()\MyOnglet()\myGroupe()\myLabel()\X=X
myTools()\MyOnglet()\myGroupe()\myLabel()\Y=Y
myTools()\MyOnglet()\myGroupe()\myLabel()\W=Width
myTools()\MyOnglet()\myGroupe()\myLabel()\H=height
myTools()\MyOnglet()\myGroupe()\myLabel()\Value$=Value$
myTools()\MyOnglet()\myGroupe()\myLabel()\Font=LoadFont(#PB_Any,"Arial",12,#PB_Font_HighQuality)
myTools()\MyOnglet()\myGroupe()\myLabel()\BackColor=0
myTools()\MyOnglet()\myGroupe()\myLabel()\FrontColor=$FF0000
;L'ajoute à bien été fait renvoyer 1
ProcedureReturn 1
EndProcedure
Code : Tout sélectionner
ToolsBar::Init(#Id_Menu_Onglet,#ID_Form,X,Y,W,H)
;True à la fin si l'onglet doit être selectionner par défaut
ToolsBar::AddOnglet(#Id_Menu_Onglet,#Id_onglet,"Titre",#True)
;Le premier true/false pour avoir ou ne pas avoir une bordure autour du groupe
;Le second true/false pour avoir ou ne pas avoir une bordure autour du titre
;Le troisième true/false pour avoir le titre en haut si true en bas si false
ToolsBar::AddGroupe(#Id_Menu_Onglet,#Id_onglet,#Largeur,"Titre",#True,#True,#False)
;Il faut une image à 4 états ,#ToogleTrue True si bouton toogle false si bouton normal
ToolsBar::AddImageButton(#Id_Menu_Onglet,#Id_onglet,#Ngroupe,#IdBouton,#Id_Image,X,Y,W,H,#ToogleTrue)
;Pour la justification on ajoute les constante suivante dans la décalration du module
; Enumeration Alignement
; #Middle
; #Left
; #Right
; EndEnumeration
ToolsBar::AddLabel(#Id_Menu_Onglet,#Id_onglet,#Ngroupe,X,Y,Largeur,Hauteur,Texte$,Justification)
http://www.purebasic.fr/french/viewtopi ... 21&t=14733
Editer le 27/08/2014 à 12h39 pour une petite correction