C'est quoi, ce binz
C'est un petit navigateur internet dédié à un seul site : celui des programmes télé. (http://www.programme-tv.net)

J'aime bien ce site, parce qu'il est rapide, clair, et complet.
Comment ça marche?
Au lancement, le "truc" se connecte à la page d'accueil du site.
Vous cliquez sur le logo d'une chaine pour afficher le programme. L'adresse s'affiche dans la barre d'adresse.
Si vous cliquez sur le bouton "Ajouter", vous avez une petite fenêtre qui s'ouvre avec l'adresse de la page, vous tapez le nom de la chaine, vous cliquez sur "Ajouter", et ça vous crée un nouveau bouton avec le nom de la chaine.
Si vous cliquez sur ce bouton, ça vous ouvre directement la page de la chaine.
Le bouton "Nouvelle" sert à mettre une autre adresse avec un nom. Ce que vous voulez, en fait. (Je vois pas trop l'intérêt, mais bon...)
Ben... A quoi ça sert?
Euhhh!... A part à avoir le programme, à rien!

Bon! V'la le code de la bête. Je sais, c'est pas terrible comme prog, mais ça m'a fait passer le temps. C'était le but.
Pour le WebGadget, j'ai pas mis le flag #PB_Web_Mozilla parce que chez moi, il ne fonctionne pas bien. (Pas de barres de défilement sur les pages).
Code : Tout sélectionner
Enumeration
#Win_Channel
#Window_0
EndEnumeration
Enumeration
;/ Fenêtre principale
#Web_1
#Adresse
#Btn_Add_Button
#Btn_Add_Current
;/ Ajout
#Cont
#Btn_Add_Channel
#Frm_0
#Str_Add_Url
#Str_Add_Channel
#Txt_0
#Txt_1
EndEnumeration
Enumeration
#Pop_Menu
EndEnumeration
Structure BOUTON
IdBouton.l
xBouton.l
yBouton.l
wBouton.l
hBouton.l
txtBouton.s
UrlBouton.s
EndStructure
Global NewList Boutons.BOUTON()
Procedure OpenWindow_Win_Main()
If OpenWindow(#Window_0, 431, 152, 815, 520, "Programmes TV", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
WebGadget(#Web_1, 115, 35, 695, 480, "http://www.programme-tv.net")
StringGadget(#Adresse, 220, 5, 590, 20, "")
ButtonGadget(#Btn_Add_Current, 115, 5, 100, 20, "Ajouter")
ContainerGadget(#Cont, 0, 0, 110, 520, #PB_Container_Raised)
ButtonGadget(#Btn_Add_Button, 5, 5, 95, 20, "Nouvelle")
CloseGadgetList()
EndIf
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Left, 0)
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Right, 1)
AddKeyboardShortcut(#Window_0, #PB_Shortcut_F5, 2)
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Control|#PB_Shortcut_Add, #Btn_Add_Current)
EndIf
EndProcedure
Procedure Open_Win_Channels()
If OpenWindow(#Win_Channel, 45, 45, 395, 105, "Ajouter / Supprimer une chaine", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Win_Channel))
Frame3DGadget(#Frm_0, 5, 5, 385, 70, "Ajouter une chaine")
TextGadget(#Txt_0, 10, 30, 35, 15, "Nom") : StringGadget(#Str_Add_Channel, 45, 25, 340, 20, "", #PB_String_UpperCase)
TextGadget(#Txt_1, 10, 55, 35, 15, "Url") : StringGadget(#Str_Add_Url, 45, 50, 340, 20, "")
ButtonGadget(#Btn_Add_Channel, 230, 80, 100, 20, "Ajouter")
EndIf
EndIf
AddKeyboardShortcut(#Win_Channel, #PB_Shortcut_Return, #Btn_Add_Channel)
EndProcedure
Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
Select uMsg
Case #WM_TIMER
Select idEvent
Case 1
SetGadgetText(#Adresse, GetGadgetText(#Web_1))
EndSelect
EndSelect
EndProcedure
Procedure Main_Callback(WindowID, message, wParam, lParam)
Resultat = #PB_ProcessPureBasicEvents
Select message
Case #WM_SIZE
ResizeGadget(#Web_1, 115, 35, WindowWidth(#Window_0)-120, WindowHeight(#Window_0)-40)
ResizeGadget(#Adresse, 220, 5, WindowWidth(#Window_0)-225, 20)
ResizeGadget(#Cont, 0, 0, 110, WindowHeight(#Window_0))
EndSelect
ProcedureReturn Resultat
EndProcedure
Procedure LoadList()
ClearList(Boutons())
If OpenPreferences("ChannelList.cfg")
If ExaminePreferenceGroups()
While NextPreferenceGroup()
If Left(PreferenceGroupName(), 8) = "Channel_"
AddElement(Boutons())
If ExaminePreferenceKeys()
While NextPreferenceKey()
If PreferenceKeyName() = "Id" : Boutons()\IdBouton = Val(PreferenceKeyValue()) : EndIf
If PreferenceKeyName() = "x" : Boutons()\xBouton = Val(PreferenceKeyValue()) : EndIf
If PreferenceKeyName() = "y" : Boutons()\yBouton = Val(PreferenceKeyValue()) : EndIf
If PreferenceKeyName() = "w" : Boutons()\wBouton = Val(PreferenceKeyValue()) : EndIf
If PreferenceKeyName() = "h" : Boutons()\hBouton = Val(PreferenceKeyValue()) : EndIf
If PreferenceKeyName() = "Txt" : Boutons()\txtBouton = PreferenceKeyValue() : EndIf
If PreferenceKeyName() = "Url" : Boutons()\UrlBouton = PreferenceKeyValue() : EndIf
Wend
EndIf
EndIf
Wend
EndIf
EndIf
ClosePreferences()
EndProcedure
Procedure SaveList()
If CreatePreferences("ChannelList.cfg")
ForEach Boutons()
PreferenceGroup("Channel_"+Str(Boutons()\IdBouton -10))
WritePreferenceLong("Id", Boutons()\IdBouton)
WritePreferenceLong("x", Boutons()\xBouton)
WritePreferenceLong("y", Boutons()\yBouton)
WritePreferenceLong("w", Boutons()\wBouton)
WritePreferenceLong("h", Boutons()\hBouton)
WritePreferenceString("Txt", Boutons()\txtBouton)
WritePreferenceString("Url", Boutons()\UrlBouton)
Next
ClosePreferences()
EndIf
EndProcedure
Procedure UpdateButtons()
OpenGadgetList(#Cont)
ForEach Boutons()
ButtonGadget(Boutons()\IdBouton, Boutons()\xBouton, Boutons()\yBouton, Boutons()\wBouton, Boutons()\hBouton, Boutons()\txtBouton)
Next
CloseGadgetList()
RedrawWindow_(WindowID(#Window_0), 0, 0,#RDW_INTERNALPAINT|#RDW_INVALIDATE|#RDW_ALLCHILDREN )
EndProcedure
Procedure AddCurrent()
Channel$ = GetGadgetText(#Adresse)
DisableWindow(#Window_0, 1)
Open_Win_Channels()
SetGadgetText(#Str_Add_Url, Channel$)
SetActiveGadget(#Str_Add_Channel)
EndProcedure
Procedure AddChannel()
Titre$ = GetGadgetText(#Str_Add_Channel)
Url$ = GetGadgetText(#Str_Add_Url)
If Titre$ <> "" And Url$ <> ""
If CountList(Boutons()) > 0
LastElement(Boutons())
id = Boutons()\IdBouton +1
y = Boutons()\yBouton +25
Else
id = 10
y = 35
EndIf
AddElement(Boutons())
Boutons()\IdBouton = id
Boutons()\xBouton = 5
Boutons()\yBouton = y
Boutons()\wBouton = 95
Boutons()\hBouton = 20
Boutons()\txtBouton = Titre$
Boutons()\UrlBouton = Url$
UpdateButtons()
EndIf
SaveList()
CloseWindow(#Win_Channel)
DisableWindow(#Window_0, 0)
SetActiveWindow(#Window_0)
EndProcedure
LoadList()
OpenWindow_Win_Main() : SetWindowCallback(@Main_Callback())
SetTimer_(WindowID(#Window_0), 1, 200, @TimerProc())
UpdateButtons()
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case 0 : SetGadgetState(#Web_1, #PB_Web_Back)
Case 1 : SetGadgetState(#Web_1, #PB_Web_Forward)
Case 2 : SetGadgetState(#Web_1, #PB_Web_Refresh)
Case #Btn_Add_Channel : AddChannel()
Case #Btn_Add_Current : AddCurrent()
EndSelect
Case #PB_Event_Gadget
If EventGadget() >= 10
If CountList(Boutons()) > 0
SelectElement(Boutons(), EventGadget()-10)
SetGadgetText(#Web_1, Boutons()\UrlBouton)
EndIf
EndIf
Select EventGadget()
Case #Btn_Add_Button
DisableWindow(#Window_0, 1)
Open_Win_Channels()
Case #Btn_Add_Channel
AddChannel()
Case #Btn_Add_Current
AddCurrent()
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Win_Channel
CloseWindow(#Win_Channel)
DisableWindow(#Window_0, 0)
SetActiveWindow(#Window_0)
Case #Window_0 : SaveList() : Quit = #True
EndSelect
EndSelect
Until Quit
End
;