Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 4.50
;
; Explication du programme :
; Mémoriser le contenu du presse papier
#Element_NombreMaxi = 10
Enumeration ; On énumère les fenêtres
#Fenetre
EndEnumeration
Enumeration ; On énumère les gadgets
#Liste
#Copier
EndEnumeration
; Création de la fenêtre et de la GadgetList
If OpenWindow(#Fenetre, 0, 0, 300, 300, "Presse-Papier", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
End
EndIf
AddWindowTimer(#Fenetre, 1, 50) ; On ajoute un timer qui déclenche toute les 50ms
ListViewGadget(#Liste, 0, 0, 300, 270)
ButtonGadget(#Copier, 0, 270, 300, 30, "Copier")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Timer
Select EventTimer() ; Timer
Case 1
Texte.s = GetClipboardText()
If Texte <> ""
; On regarde si le texte existe déjà
NombreElement = CountGadgetItems(#Liste)
TexteExistant = 0
For i = 0 To NombreElement - 1
If GetGadgetItemText(#Liste, i) = Texte
TexteExistant = 1
EndIf
Next
; Si il n'existe pas, on l'ajoute
If TexteExistant = 0
If NombreElement = #Element_NombreMaxi
; On retire le dernier élément
RemoveGadgetItem(#Liste, NombreElement - 1)
EndIf
; On ajoute au début, donc position 0
AddGadgetItem(#Liste, 0, Texte)
EndIf
EndIf
EndSelect
Case #PB_Event_Gadget
Select EventGadget() ; Gadgets
Case #Copier
Selection = GetGadgetState(#Liste)
If Selection >= 0 ; Si on a sélectionné qlq chose
SetClipboardText(GetGadgetItemText(#Liste, Selection))
EndIf
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow