Start · Sprachen · PHP · Referenz · UI\Draw\Text\Layout

UI\Draw\Text\Layout

Klasse

Repräsentiert das Layout von Text, der durch <code>UI\Draw\Pen</code> auf eine Zeichenfläche gerendert wird.

seit PHP 0.9.9 Kategorie: misc

Signatur

class UI\Draw\Text\Layout

Beschreibung

UI\Draw\Text\Layout ist Teil der PHP-UI-Erweiterung (ui) und kapselt das fertige Text-Layout-Objekt, das aus einem UI\Draw\Text\Span und einer maximalen Breite erzeugt wird. Es beschreibt, wie ein Text innerhalb eines bestimmten Bereichs umgebrochen und angeordnet wird, bevor er mit dem UI\Draw\Pen tatsächlich auf die Zeichenfläche gerendert wird.

Ein Layout-Objekt wird typischerweise in Zeichenroutinen innerhalb von UI\Draw\Path-Callbacks verwendet. Dabei wird zunächst ein UI\Draw\Text\Span mit dem gewünschten Text und Schriftart vorbereitet, anschließend ein Layout daraus erzeugt und schließlich über UI\Draw\Pen::text() an eine bestimmte Position gezeichnet.

Über die Methode setWidth() lässt sich die maximale Breite des Layouts nachträglich anpassen, was z. B. für responsive Layouts innerhalb von UI-Fenstern nützlich ist. Mit getWidth() kann die aktuell eingestellte Breite abgefragt werden.

Diese Klasse gehört zur ui-Erweiterung, die auf libui aufsetzt und nativer GUI-Entwicklung in PHP dient. Sie ist nicht in der PHP-Standarddistribution enthalten und muss separat über PECL installiert werden.

Parameter

Name Typ Default Beschreibung
$span Pflicht UI\Draw\Text\Span Der UI\Draw\Text\Span, der den zu layoutenden Text sowie Schriftart und -größe enthält.
$width Pflicht float Die maximale Breite des Textlayouts in Pixeln. Text, der breiter ist, wird automatisch umgebrochen.

Rückgabewert

Typ

Beispiele

Einfaches Text-Layout erstellen und zeichnen

<?php
use UI\Draw\Text\Font\Descriptor;
use UI\Draw\Text\Span;
use UI\Draw\Text\Layout;
use UI\Draw\Pen;
use UI\Draw\Point;

// Schriftart definieren
$fontDescriptor = new Descriptor('Arial', 14);

// Span mit Text und Schriftart erzeugen
$span = new Span('Hallo, PHP-UI!', $fontDescriptor);

// Layout mit max. 200px Breite erstellen
$layout = new Layout($span, 200);

// Im Zeichenkontext (z.B. innerhalb eines Draw-Handlers):
// $pen->text(new Point(10, 10), $layout);

echo 'Layout-Breite: ' . $layout->getWidth();
Layout-Breite: 200

Breite eines bestehenden Layouts anpassen

<?php
use UI\Draw\Text\Font\Descriptor;
use UI\Draw\Text\Span;
use UI\Draw\Text\Layout;

$fontDescriptor = new Descriptor('Times New Roman', 12);
$span = new Span('Dies ist ein längerer Beispieltext für das Layout.', $fontDescriptor);

$layout = new Layout($span, 300);
echo 'Alte Breite: ' . $layout->getWidth() . PHP_EOL;

// Breite nachträglich anpassen
$layout->setWidth(500);
echo 'Neue Breite: ' . $layout->getWidth() . PHP_EOL;
Alte Breite: 300 Neue Breite: 500

// Wichtig · Fallstricke

Achtung: Die ui-Erweiterung ist nicht Teil der PHP-Kerninstallation. Sie muss über PECL installiert werden (pecl install ui) und setzt die native Bibliothek libui voraus. Die API gilt derzeit noch als experimentell und kann sich zwischen Versionen ändern.

Ein Layout-Objekt ist nur innerhalb von Zeichenoperationen (Draw-Callbacks) sinnvoll nutzbar. Das direkte Verwenden außerhalb eines UI-Kontexts hat keinen sichtbaren Effekt.