diff --git a/examples/Todo.php b/examples/Todo.php index 23c959c..f109bbe 100644 --- a/examples/Todo.php +++ b/examples/Todo.php @@ -1,5 +1,7 @@ addComponent($label); $container->addComponent($containerMenu); $app->setRoot($container); $app->run(); diff --git a/src/Renderer/Widget/Container.php b/src/Renderer/Widget/Container.php index f610bf8..3121ed4 100644 --- a/src/Renderer/Widget/Container.php +++ b/src/Renderer/Widget/Container.php @@ -8,7 +8,6 @@ class Container { public static function layout(Viewport $viewport, \PHPNative\UI\Widget\Container $view, int $index = 0): Viewport { - var_dump('test'); return $viewport; } } diff --git a/src/Ui/Component.php b/src/Ui/Component.php index 11eddf9..8049c63 100644 --- a/src/Ui/Component.php +++ b/src/Ui/Component.php @@ -22,7 +22,7 @@ abstract class Component protected Viewport $viewport; protected array $computedStyles = []; - private Viewport $contentViewport; + protected Viewport $contentViewport; public function setViewport(Viewport $viewport): void { diff --git a/src/Ui/Widget/Label.php b/src/Ui/Widget/Label.php new file mode 100644 index 0000000..16908bf --- /dev/null +++ b/src/Ui/Widget/Label.php @@ -0,0 +1,44 @@ +text = $text; + } + + public function renderContent(null|TextRenderer $textRenderer = null): void + { + if (!$this->visible || $textRenderer === null || !$textRenderer->isInitialized()) { + return; + } + + // Get text style from computed styles + $textStyle = $this->computedStyles[Text::class] ?? new Text(); + + // Set text color + $color = $textStyle->color; + $textRenderer->setColor($color->red / 255, $color->green / 255, $color->blue / 255, $color->alpha / 255); + + // Calculate text position based on alignment + $x = $this->contentViewport->x; + $y = $this->contentViewport->y; + + // Draw the text + $textRenderer->drawText($this->text, (int) $x, (int) $y, $textStyle->size); + + // Call parent to render children if any + parent::renderContent($textRenderer); + } +}