Syntax
Success = WidgetSetWidth(Widget, Width.d)
Description
Sets the ideal width for the specified widget in device-independent pixels (DIPs). This value is used by the parent layout engine as a suggestion for the widget's width.
Parameters
Widget
The handle of the ProGUI widget.
Width.d
The desired ideal width in DIPs. Use #PG_Widget_FitContent
(-1) to indicate that the width should be determined by the widget's content (e.g., the overflow
width of a child layout). Set to 0 to allow the layout engine (e.g., Flexbox stretch) to determine
the width fully, subject to minimum width constraints.
Return Value
Returns #True if the width was successfully set, or #False if the widget
handle was invalid.
Remarks
This function updates the `idealWidth` property of the widget's associated layout item. The actual rendered width might differ based on the layout type (Flex, Grid, Basic), available space, and the widget's minimum/maximum width settings (WidgetSetMinWidth()). Setting the width triggers a layout update. Setting width to 0 removes the explicit ideal width, often allowing flex items to stretch.
Example
IncludeFile "ProGUI_PB.pbi"
StartProGUI()
MyWindow = CreateWindow(0, 0, 400, 200, "WidgetSetWidth Example")
RootLayout = WindowGetLayout(MyWindow)
LayoutSetType(RootLayout, #PG_Layout_Type_Flex) ; Use Flex Row layout
LayoutSetPadding(RootLayout, 10)
If MyWindow
Widget1 = CreateWidget(0, 0, 100, 50) ; Initial width 100
WidgetSetClass(Widget1, "widget1")
WidgetSetMargin(Widget1, 5)
Widget2 = CreateWidget(0, 0, 100, 50)
WidgetSetClass(Widget2, "widget2")
WidgetSetMargin(Widget2, 5)
WindowShow(MyWindow, #True, #PG_Window_ScreenCentered)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_LeftClick
Debug "Setting Widget2 width to 150 DIPs"
WidgetSetWidth(Widget2, 150) ; Make Widget2 wider
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
StopProGUI()
See Also
WidgetGetWidth, WidgetSetHeight, WidgetSetMinWidth, WidgetSetMinHeight, CreateWidget
Supported OS
Windows, Linux