Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <ListViewConstants.au3>
;#include <GIFAnimation.au3>
Local Const $Title = 'FireFox Manager'
Local Const $nTitle = $Title & ' Version 1.0.1'
Global $hGuiView, $LstV, $i, $nMsg
Global Const $TransparentColor = 0xABCDEF
Global $hChild, $hGUI, $hID = -1, $hOldID = -1
Global Const $TabItemText[9] = ["Navigateur", "Prefs.js", "SQlite", "Profiles", "About:Config", _
"Surveillance", "Fichiers", "Dossiers", "Registre"]
Global $Pic[9], $Lab[9], $Item = -1, $Over = -1
Global Const $TabsPath = @TempDir & '\include\'
Global $LstvShow = False
#include <TopFireFoxTabsItems.Au3> ;=> Gestion barre d'onglets personnalisée
#include <TopFireFoxFunc.au3> ;=> Divers fonctions ... (_FileInstall / _InstallFont ...)
;==================================================================================================
; Mon manager FireFox
;==================================================================================================
_FilesInstall()
_GuiPrepare()
While 1
_GetCursorPosition() ; Sélection de l'onglet lors du survol de la souris
$nMsg = GUIGetMsg()
If $Item = -1 Then ; Posit / 1er onglet par défaut au démarrage
$nMsg = $Pic[0]
$Item = 1
EndIf
Switch $nMsg
Case $GUI_EVENT_CLOSE ; on sort bye bye
Exit
Case $Pic[0] To $Pic[UBound($Pic)-1] ; Clic sur un onglet
_ClicOnButton($nMsg)
_GuiAction($nMsg)
Case Else
If $nMsg > 0 Then ConsoleWrite('$nMsg=' & $nMsg & @CRLF)
EndSwitch
WEnd
;==================================================================================================
; Gestion du clic sur un des onglets proposés
;==================================================================================================
Func _GuiAction($nMsg)
If $nMsg = $hOldID Then Return ; Clic sur le même onglet [on ne fait rien]
$hID = $nMsg
ConsoleWrite('Clic sur onglet ID = ' & $nMsg & @CRLF)
_InitGuiOnglets()
Switch $hID
Case $Pic[4]
_GUICtrlCreateTransparentListView()
_LoadTreeview()
EndSwitch
$hOldID = $hID
EndFunc
;==================================================================================================
; Suppression des controls créés lors du clic précédent sur un onglet
;==================================================================================================
Func _InitGuiOnglets()
If $hOldID = -1 Then Return
Switch $hOldID
Case $Pic[4]
GUIDelete($hGuiView)
EndSwitch
GUISetState(@SW_SHOW, $hGUI)
GUICtrlSetState($GUI_FOCUS, $hID)
EndFunc
;==================================================================================================
; Création de la GUI
;==================================================================================================
Func _GuiPrepare()
Global $hGUI = GUICreate($nTitle, 977, 664, 192, 124)
Global $hFond = GUICtrlCreatePic($TabsPath & 'Banner.jpg', 0, 0, 977, 643)
GUICtrlSetState($hFond, $GUI_DISABLE)
Global $hTitle = GUICtrlCreateLabel($Title, 248, 0, 484, 86, $SS_CENTER)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont(-1, 62, 400, 0, "PhoenixTwo")
GUICtrlSetColor(-1, 0x174B6E)
_SetTabItems()
GUISetState(@SW_SHOW)
; Global $hGIF = _GUICtrlCreateGIF($TabsPath & 'FireFoxAnim.gif', "", 1, 1)
; AdlibRegister("_StopAnim", 9000)
EndFunc
;==================================================================================================
; Création de la ListView transparente
;==================================================================================================
Func _GUICtrlCreateTransparentListView()
$hGuiView = GUICreate("", 957, 490, 0, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOOLWINDOW, $WS_EX_MDICHILD), $hGUI)
GUISetBkColor($TransparentColor, $hGuiView)
Global $LstV = GUICtrlCreateListView("Nom de l'option|Statut|Type|Valeur", 10, 122, 957, 400, $LVS_REPORT, _
BitOR($LVS_EX_DOUBLEBUFFER, $LVS_EX_FULLROWSELECT))
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 477)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 60)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 60)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 360)
GUICtrlSetBkColor($LstV, $TransparentColor)
_WinAPI_SetLayeredWindowAttributes($hGuiView, $TransparentColor, 255)
GUISetState(@SW_SHOW, $hGuiView)
GUISetState(@SW_SHOW, $hGUI)
; GUISwitch($hGUI)
GUICtrlSetState($hID, $GUI_FOCUS)
EndFunc
;==================================================================================================
; Chargement de la ListView
;==================================================================================================
Func _LoadTreeview()
Local $hItem
For $i = 0 To 4
$hItem = GUICtrlCreateListViewItem("taratata " & $i & "|default|String|valeur de la données" & $i, $LstV)
Next
EndFunc
;==================================================================================================
; Autres fonctions qui n'ont pas d'intérêt avec la problème de ColumnHeader
;==================================================================================================
;Func _StopAnim()
; AdlibUnRegister("_StopAnim")
; _GIF_PauseAnimation($hGIF)
; GUICtrlSetState($hGIF, $GUI_HIDE)
;EndFunc