Modified by me
It's to late for V4.00 but I think this very cool gadget should be add to the standard PB gadget in V4.10.
Fred or Freak ????
Regards
Guimauve
Code: Select all
;-Constantes Fenêtres
Enumeration
#Window_0
EndEnumeration
;-Constantes Gadgets
Enumeration
#Rebar
#RebarItem01
#Btn_1
#List_1
#Cmb_1
#RebarItem02
#Explorer
#Btn_Clear
#RebarItem03
#Calendar
#Btn_Clear2
#DbgEdit
#Btn_Quit
EndEnumeration
;- Constantes Diverses
#CCS_VERT = $00000080
;- Variables
; Global hwnRb, g_hinst
Text1.s = "Liste et Combos"
Text2.s = "Explorateur"
Text3.s = "Calendrier"
;- Procedures
Procedure InsertReBarItem(hWndRebar.l, RebarItemID.l, Text.s, BarWidth.l, Index.l, BkColor.l, FgColor)
hItemCont = ContainerGadget(RebarItemID, 0, 0, 0, 0)
rbBand.REBARBANDINFO
rbBand\cbSize = SizeOf(REBARBANDINFO)
rbBand\fMask = #RBBIM_STYLE | #RBBIM_CHILD | #RBBIM_CHILDSIZE | #RBBIM_TEXT | #RBBIM_HEADERSIZE | #RBBIM_COLORS
rbBand\fStyle = #RBBS_CHILDEDGE
rbBand\clrBack = BkColor
rbBand\clrFore = FgColor
rbBand\lpText = @Text
rbBand\hwndChild = hItemCont
rbBand\cyMinChild = BarWidth
rbBand\cxHeader = 30
rbBand\cx = BarWidth
SendMessage_(hWndRebar, #RB_INSERTBAND, Index, @rbBand)
EndProcedure
Procedure RebarGadget(GadgetID, x, y, Width, Height)
hMainCont = ContainerGadget(GadgetID, x, y, Width, Height, #PB_Container_Raised)
rbi.REBARINFO
icex.INITCOMMONCONTROLSEX
icex\dwSize = SizeOf(INITCOMMONCONTROLSEX);
icex\dwICC = #ICC_COOL_CLASSES|#ICC_BAR_CLASSES
InitCommonControlsEx_(@icex);
hwndRB = CreateWindowEx_(#WS_EX_TOOLWINDOW, "ReBarWindow32", #Null, #WS_CHILD|#WS_VISIBLE|#WS_CLIPSIBLINGS|#CCS_VERT , 0,0,0,0, hMainCont, GadgetID, 0, #Null);
;/ Sous Windows XP, téléchargez la lib uxtheme. (Lien en bas du message)
;/ Pour les autres Windows, (98,ME, etc), désactivez cette ligne
; SetWindowTheme_(hwndRB, " ", " ")
;/
ProcedureReturn hwndRB;
EndProcedure
;- Boucle principale
hwnd = OpenWindow(#Window_0, 300, 300, 800, 600, #PB_Window_SystemMenu|#PB_Window_ScreenCentered, "RebarTest",0)
; g_hinst = GetModuleHandle_(#Null)
If CreateGadgetList(hwnd)
RebarHandle = RebarGadget(#Rebar, 5, 5, 200, 400);>
;- Rebar 1
InsertReBarItem(RebarHandle, #RebarItem01, Text1, 185, 0, GetSysColor_(#COLOR_BTNFACE), 0);>
ButtonGadget(#Btn_1, 45, 10, 100, 25, "Bouton 1")
ListIconGadget(#List_1, 5, 40, 180, 350, "Liste 1", 125)
AddGadgetColumn(#List_1, 1, "Valeur", 50)
ComboBoxGadget(#Cmb_1, 5, 410, 180, 200)
CloseGadgetList();<
;- Rebar 2
InsertReBarItem(RebarHandle, #RebarItem02, Text2, 185, 1, GetSysColor_(#COLOR_BTNFACE), 0);>
ExplorerTreeGadget(#Explorer, 5, 5, 180, 200, "C:\*.txt;*.pb")
ButtonGadget(#Btn_Clear, 5, 210, 180, 20, "Effacer l'éditeur")
CloseGadgetList();<
;- Rebar 3
InsertReBarItem(RebarHandle, #RebarItem03, Text3, 185, 2, GetSysColor_(#COLOR_BTNFACE), 0);>
CalendarGadget(#Calendar, 5, 5, 180, 200)
ButtonGadget(#Btn_Clear2, 5, 210, 180, 20, "Effacer l'éditeur")
CloseGadgetList();<
CloseGadgetList();<
;- Retour à la liste de gadgets
EditorGadget(#DbgEdit, 210, 5, 585, 560)
ButtonGadget(#Btn_Quit, 450, 570, 100, 25, "Quitter")
;- Remplissage de la liste et du combo
For i = 0 To 20
AddGadgetItem(#Cmb_1, -1, "Elément du combo " + Str(i))
AddGadgetItem(#List_1, -1, "Elément de la liste " + Str(i) + Chr(10) + Str(i))
Next
SetGadgetState(#Cmb_1, 0)
EndIf
;- Boucle
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
;- Evènements dans la bande 1
Case #Btn_1
AddGadgetItem(#DbgEdit, -1, GetGadgetText(EventGadget()))
Case #List_1
AddGadgetItem(#DbgEdit, -1, GetGadgetText(EventGadget()))
Case #Cmb_1
If EventType() = #PB_EventType_RightClick
AddGadgetItem(#DbgEdit, -1, GetGadgetText(EventGadget()))
EndIf
;- Evènements dans la bande 2
Case #Btn_Clear
ClearGadgetItemList(#DbgEdit)
Case #Explorer
If EventType() = #PB_EventType_LeftDoubleClick And GetGadgetState(#Explorer) = #PB_Explorer_File
ClearGadgetItemList(#DbgEdit)
If FileSize(GetGadgetText(#Explorer)) < 64900
If ReadFile(0, GetGadgetText(#Explorer))
Repeat
AddGadgetItem(#DbgEdit, -1, ReadString(0))
Until Eof(0)
CloseFile(0)
EndIf
EndIf
EndIf
;- Evènements dans la bande 3
Case #Calendar
AddGadgetItem(#DbgEdit, -1, "La date choisie est le "+FormatDate("%dd %mm %yyyy", GetGadgetState(#Calendar)))
Case #Btn_Clear2
ClearGadgetItemList(#DbgEdit)
;- Retour à la fenêtre
Case #Btn_Quit
quit = 1
EndSelect
Case #PB_Event_CloseWindow
quit = 1
EndSelect
Until quit = 1
End