WidgetSetClass

Syntax

Success = WidgetSetClass(Widget, ClassName$)

Description

Assigns a class name to the specified widget. The class name is used by the skinning engine to select and apply appropriate styles from the active skin file(s).

Parameters

Widget
The handle of the ProGUI widget whose class name is to be set.

ClassName$
The class name string to assign. Class names typically follow CSS conventions (e.g., "button", "text-input", "error-message").

Return Value

Returns #True if the class name was successfully set, or #False if the widget handle was invalid.

Remarks

Setting or changing a widget's class name triggers an internal update of its "class path" (which includes the classes of its parent widgets in the layout hierarchy) and invalidates the widget's skin cache, potentially causing it to redraw with new styles if the active skin defines rules for the new class or class path.

Example

IncludeFile "ProGUI_PB.pbi"

StartProGUI()

; Assume skin file defines styles for ".my-button" and ".my-label"

MyWindow = CreateWindow(0, 0, 300, 200, "Widget Class Example")
RootLayout = WindowGetLayout(MyWindow)
LayoutSetType(RootLayout, #PG_Layout_Type_Flex)
LayoutFlexSetDirection(RootLayout, #PG_Flex_Direction_Column)
LayoutSetPadding(RootLayout, 10)

If MyWindow
  Widget1 = CreateWidget(0, 0, 100, 30)
  WidgetSetClass(Widget1, "my-button") ; Assign button class
  WidgetSetMargin(Widget1, 5)
  ; Add drawing handler if needed, or rely on skin

  Widget2 = CreateWidget(0, 0, 150, 25)
  WidgetSetClass(Widget2, "my-label") ; Assign label class
  WidgetSetMargin(Widget2, 5)
  ; Add drawing handler if needed, or rely on skin

  WindowShow(MyWindow, #True, #PG_Window_ScreenCentered)

  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow
EndIf

StopProGUI()

See Also

WidgetGetClass, WidgetSetName, WidgetGetName, SkinSetValue

Supported OS

Windows, Linux