Avant pour faire un BoxGadget (ailleurs on trouve aussi "shape control") il fallait passer par un ImageGadget et une image de la taille du gadget pour le faire sans api...
Et avant pour faire une ligne horizontale je mettais une barre d'outils dans un container de hauteur "2" (par exemple dans WinDestroyer)... Ce genre de gadget serait le bienvenu ^^
Code : Tout sélectionner
#PB_Box_Border = #PB_Text_Border
Enumeration
#PB_Line_Horz
#PB_Line_Vert
EndEnumeration
Procedure.l BoxGadget(Gadget.l, x.l, y.l, Width.l, Height.l, Color.l, Flags.l = #Null)
Protected Box.l
Box = TextGadget(Gadget, x, y, Width, Height, #NULL$, Flags)
If Box
If Gadget = #PB_Any
Gadget = Box
EndIf
SetGadgetColor(Gadget, #PB_Gadget_BackColor, Color)
EndIf
ProcedureReturn Box
EndProcedure
Procedure.l LineGadget(Gadget.l, x.l, y.l, Width.l, Height.l, Type.l = #PB_Line_Horz)
Type & (#PB_Line_Horz | #PB_Line_Vert)
ProcedureReturn TextGadget(Gadget, x, y, Width, Height, #NULL$, Type + #SS_ETCHEDHORZ)
EndProcedure
If OpenWindow(0, 0, 0, 270, 200, "BoxGadget LineGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
BoxGadget(0, 10, 10, 100, 140, #White, #PB_Box_Border)
LineGadget(1, 10, 160, 250, 2)
LineGadget(2, 120, 10, 2, 140, #PB_Line_Vert)
BoxGadget(3, 130, 10, 130, 20, #Red)
BoxGadget(4, 130, 40, 130, 20, #Blue, #PB_Box_Border)
BoxGadget(5, 130, 70, 130, 20, #Black)
BoxGadget(6, 130, 100, 130, 20, #Magenta, #PB_Box_Border)
BoxGadget(7, 130, 130, 130, 20, #Green, #PB_Box_Border)
ButtonGadget(8, 210, 170, 50, 20, "&Quitter")
AddKeyboardShortcut(0, #PB_Shortcut_Alt|#PB_Shortcut_Q, #SC_CLOSE)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow Or Event = #PB_Event_Gadget
EndIf