Syntax
Success = WidgetSetBorder(Widget, Border)
Description
Assigns a pre-created border object (created with CreateBorder() or CreateBorderImg()) to the specified widget. This border will be drawn around the widget's content area during rendering.
Parameters
Widget
The handle of the ProGUI widget to which the border will be applied.
Border
The handle of the border object to assign. Set to #Null or 0
to remove any existing border.
Return Value
Returns #True if the border was successfully assigned, or #False if the widget
handle was invalid.
Remarks
Setting a border programmatically overrides any border defined for the widget in the skin. The border is drawn between the widget's padding and its content/background. Setting a new border automatically triggers a redraw of the widget. The border object itself should be managed (created and potentially freed using FreeBorder()) separately by the application if it's not part of the skin system.
Example
IncludeFile "ProGUI_PB.pbi"
StartProGUI()
; Custom draw procedure
Procedure DrawBorderedWidget(Widget, EventType, *EventData.PG_EventDraw, *UserData)
DrawBox(0, 0, *EventData\width, *EventData\height, RGB(220, 220, 240))
EndProcedure
MyWindow = CreateWindow(0, 0, 300, 200, "WidgetSetBorder Example")
RootLayout = WindowGetLayout(MyWindow)
LayoutSetPadding(RootLayout, 10)
If MyWindow
; Create a generated border
MyGeneratedBorder = CreateBorder(#PG_Border_Groove, 5, 10, RGB(100, 100, 150))
; Create an image border (assuming images exist)
; BorderImg = LoadImg("border_image.png")
; BorderMask = LoadImg("border_mask.png")
; MyImageBorder = CreateBorderImg(BorderImg, BorderMask, 15, 15, 15, 15)
Widget1 = CreateWidget(0, 0, 150, 60)
WidgetSetMargin(Widget1, 5)
WidgetSetBorder(Widget1, MyGeneratedBorder) ; Assign the generated border
AddEventHandler(Widget1, #PG_Event_Draw, @DrawBorderedWidget())
; Widget2 = CreateWidget(0, 0, 150, 60)
; WidgetSetMargin(Widget2, 5)
; WidgetSetBorder(Widget2, MyImageBorder) ; Assign the image border
; AddEventHandler(Widget2, #PG_Event_Draw, @DrawBorderedWidget())
WindowShow(MyWindow, #True, #PG_Window_ScreenCentered)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
; Clean up the borders we created
FreeBorder(MyGeneratedBorder)
; FreeBorder(MyImageBorder)
; FreeImg(BorderImg)
; FreeImg(BorderMask)
EndIf
StopProGUI()
See Also
CreateBorder, CreateBorderImg, FreeBorder, DrawBorder, WidgetGetSkinBorder (for using skin-defined borders)
Supported OS
Windows, Linux