Syntax
ScrollBarWidget = CreateScrollBar(x, y, Width, Height, Minimum, Maximum, PageSize, Flags=#Null)Description
Creates a ProGUI scroll bar widget. This is a standard ProGUI widget (not an OS control wrapper) rendered using ProGUI's drawing and skinning system. It's typically used internally by layouts when content overflows but can be created manually.
Parameters
x, y, Width, Height
Initial position and ideal size hints (in DIPs), similar to CreateWidget(). The layout engine will
determine the final size and position.
Minimum
The minimum scroll position value (Integer).
Maximum
The maximum scroll position value (Integer). The actual scrollable range
is `Maximum - PageSize`.
PageSize
The amount the scroll position changes during a page up/down operation
(e.g., clicking the track background). Also affects the size of the
scroll thumb.
Flags (optional)
Flags to control the scroll bar's orientation and behavior. Default is 0
(horizontal).
#PG_ScrollBar_Vertical : Creates a vertical scroll bar instead of the default horizontal one.
; Plus standard widget flags like #PG_Widget_Hide, etc.
Return Value
Returns a handle to the newly created scroll bar widget object if
successful, or #Null if creation failed.
Remarks
The scroll bar widget generates #PG_Event_Action events
when its position changes. The event data (`*EventData`) will contain
the new scroll position (as an integer). Use ScrollBarSetValues() to
programmatically change the scroll bar's position, range, or page size
after creation. The appearance is controlled by the skin assigned via WidgetSetClass() (typically class
"scrollbar") and its various components ("thumb1", "thumb2",
"trackbar").
Example
IncludeFile "ProGUI_PB.pbi"
StartProGUI()
; Event handler for scroll bar action
Procedure ScrollBarHandler(Widget, EventType, *EventData, *UserData)
If EventType = #PG_Event_Action
NewPosition = *EventData ; EventData directly holds the new position for scrollbar action
Debug "Scroll Bar Position: " + Str(NewPosition)
EndIf
EndProcedure
MyWindow = CreateWindow(0, 0, 400, 400, "Scroll Bar Example")
LayoutSetPadding(#Null, 20) ; Set current layout padding
If MyWindow
; Create a horizontal scroll bar
HScrollBar = CreateScrollBar(0, 0, 200, 0, 0, 100, 20) ; height = 0 auto (uses the OS default scrollbar height)
AddEventHandler(HScrollBar, #PG_Event_Action, @ScrollBarHandler())
Debug "Horizontal ScrollBar created."
; Create a vertical scroll bar
VScrollBar = CreateScrollBar(0, 20, 0, 200, 0, 200, 50, #PG_ScrollBar_Vertical) ; width = 0 auto (uses the OS default scrollbar width)
AddEventHandler(VScrollBar, #PG_Event_Action, @ScrollBarHandler())
Debug "Vertical ScrollBar created."
WindowShow(MyWindow, #True, #PG_WindowShow_ScreenCentered)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
StopProGUI()See Also
ScrollBarSetValues, CreateWidget, AddEventHandler, #PG_Event_Action
Supported OS
Windows, Linux