-
Notifications
You must be signed in to change notification settings - Fork 7
Button
Refaltor77 edited this page Mar 29, 2026
·
3 revisions
Interactive button element using Bedrock's factory system.
Buttons require the button factory to be enabled on the parent panel:
$panel->enableFactoryButton($root); // REQUIRED before adding buttonsuse refaltor\ui\elements\Button;
$button = Button::create("my_button", $root);// Text displayed on the button
$button->setButtonText("Click Me");
// Visibility condition (matches against #form_button_text)
$button->setVisibleIfTitle("Click Me");
// Custom textures for each state
$button->setDefaultButtonTexture("textures/ui/btn_default");
$button->setHoverButtonTexture("textures/ui/btn_hover");
$button->setPressedButtonTexture("textures/ui/btn_pressed");
$button->setLockedButtonTexture("textures/ui/btn_locked");$root = Root::create();
$panel = Panel::create("button_container")
->setSizePercentage(100, 100);
// Enable factory (required!)
$panel->enableFactoryButton($root);
// Create buttons
$playBtn = Button::create("play", $root)
->setButtonText("Play")
->setVisibleIfTitle("Play")
->setSize(200, 30)
->setAnchorFrom(Element::ANCHOR_CENTER)
->setAnchorTo(Element::ANCHOR_CENTER);
$panel->addChild($playBtn);
$root->addElement($panel);$stack = StackPanel::create("btn_stack")
->setOrientation(OrientationHelper::VERTICAL)
->setSize(200, 120)
->setAnchorFrom(Element::ANCHOR_CENTER)
->setAnchorTo(Element::ANCHOR_CENTER);
$stack->enableFactoryButton($root);
$stack->addChild(
Button::create("btn_play", $root)
->setButtonText("Play")->setVisibleIfTitle("Play")->setSize(200, 30)
);
$stack->addChild(
Button::create("btn_settings", $root)
->setButtonText("Settings")->setVisibleIfTitle("Settings")->setSize(200, 30)
);
$stack->addChild(
Button::create("btn_quit", $root)
->setButtonText("Quit")->setVisibleIfTitle("Quit")->setSize(200, 30)
);
$root->addElement($stack);The factory system generates:
- A
template_button_easy_ui_builderextendingcommon_buttons.light_text_button - A
template_button_easy_ui_builder_stack_panelwith collection bindings - Each button references these templates and uses
$conditionfor visibility
- Element — Base class
-
Panel — Required parent with
enableFactoryButton() - Stack Panel — Common layout for button lists