blockly > blockRendering > RenderInfo

Klasse blockRendering.RenderInfo

Ein Objekt, das alle Größeninformationen enthält, die zum Zeichnen dieses Blocks erforderlich sind.

Diese Messungsfreigabe überträgt keine Änderungen an den Block (obwohl Felder möglicherweise neu gerendert werden, wenn getSize() aufgerufen wird). Wiederholtes Aufrufen kann jedoch teuer werden.

Unterschrift:

export declare class RenderInfo 

Konstruktoren

Konstruktor Modifikatoren Beschreibung
(Konstruktor)(Renderer, Block) Erstellt eine neue Instanz der RenderInfo-Klasse

Attribute

Attribut Modifikatoren Typ Beschreibung
block_ BlockSvg
bottomRow BottomRow
constants_ protected ConstantProvider
Höhe Zahl Die Höhe des gerenderten Blocks, einschließlich untergeordneter Blöcke.
inputRows InputRow[] Ein Array von Eingabezeilen im Block.
isCollapsed boolean
isInline boolean
isInsertionMarker boolean
outputConnection OutputConnection | null
renderer_

protected

readonly

Renderer Der verwendete Block-Renderer.
Zeilen Zeile[] Ein Array von Row-Objekten mit Größeninformationen.
RTL boolean
startX Zahl
startY Zahl
statementEdge Zahl
topRow TopRow
Breite Zahl Die Breite des gerenderten Blocks ohne untergeordnete Blöcke. Bei der LTR-Darstellung ist dies der rechte Rand des Blocks.
widthWithChildren Zahl Die Breite des gerenderten Blocks, einschließlich untergeordneter Blöcke.

Methoden

Methode Modifikatoren Beschreibung
addAlignmentPadding_(row, missingSpace): protected Ändern Sie die angegebene Zeile so, dass die vorgegebenen Padding-Werte um die Felder herum eingefügt werden. Die genaue Position des Innenrands hängt von der Ausrichtungseigenschaft der letzten Eingabe im Feld ab.
addElemSpacing_() protected Fügen Sie den horizontalen Abstand zwischen den Elementen in jeder Zeile und um sie herum hinzu.
addInput_(input, ActiveRow) protected Fügen Sie der aktiven Zeile bei Bedarf ein Eingabeelement hinzu und notieren Sie sich den Typ der Eingabe für die Zeile.
addRowSpacing_() protected Fügen Sie Abstandshalter zwischen Zeilen ein und legen Sie deren Größe fest.
alignRowElements_() protected Eventuell sind zusätzliche Abstände erforderlich, damit die rechten Seiten aller Zeilen aufeinander ausgerichtet sind. Sie kann erst nach einer ersten Karte berechnet werden, um die Größen aller Zeilen zu berechnen.
alignStatementRow_(row) protected Richtet die Elemente einer Anweisungszeile anhand der berechneten Grenzen aus. Im Gegensatz zu anderen Zeilentypen fügen Anweisungszeilen an mehreren Stellen Platz hinzu.
computeBounds_() protected Finden Sie heraus, wo der rechte Rand des Blocks und der rechte Rand der Anweisungseingaben platziert werden sollen.
createRows_() protected Erstellen Sie Zeilen mit messbaren Objekten, die alle renderbaren Teile des Blocks darstellen.
finalize_() protected Nehmen Sie letzte Änderungen am Rendering-Informationsobjekt vor. Speichern Sie insbesondere die Y-Position jeder Zeile und notieren Sie die Höhe des vollen Blocks.
getDesiredRowWidth_(_row) protected Berechnen Sie die gewünschte Breite einer Eingabezeile.
getElemCenterline_(row, elem) protected Berechnet die Mittellinie eines Elements in einer gerenderten Zeile. Bei dieser Basisimplementierung wird die Mittellinie vertikal in der Mitte der Zeile platziert, ohne Sonderfälle. Sie benötigen wahrscheinlich zusätzliche Logik, um die oberen und unteren Zeilen (mindestens) zu verarbeiten.
getInRowSpacing_(vorher, weiter) protected Berechnen Sie die Breite eines Abstandselements in einer Zeile basierend auf den vorherigen und nächsten Elementen in dieser Zeile. Beispielsweise wird zwischen zwei bearbeitbaren Feldern ein zusätzlicher Abstand hinzugefügt.
getMeasureableForConnection(conn) Gibt die messbare Verbindung zurück, die der angegebenen Verbindung zugeordnet ist.
getRenderer() Rufen Sie den verwendeten Block-Renderer ab.
getSpacerRowHeight_(_prev, _next) protected Berechnen Sie die Höhe einer Zeile mit Abstandshalter.
getSpacerRowWidth_(_prev, _next) protected Berechnen Sie die Breite einer Abstandshalterzeile.
makeSpacerRow_(vorher, weiter) protected Erstellen Sie eine Abstandszeile, um zwischen „Zurück“ und „Weiter“ zu wechseln und ihre Größe festzulegen.
measure()

Füllen Sie dieses Objekt mit allen Größeninformationen, die zum Zeichnen des Blocks erforderlich sind.

Diese Messungsfreigabe überträgt keine Änderungen an den Block (obwohl Felder möglicherweise neu gerendert werden, wenn getSize() aufgerufen wird). Wiederholtes Aufrufen kann jedoch teuer werden.

populateBottomRow_() protected Erstellen Sie alle Nicht-Abstandselemente, die in die unterste Zeile gehören.
populateTopRow_() protected Erstellen Sie alle Nicht-Leerzeichen-Elemente, die in die oberste Zeile gehören.
recordElemPositions_(row) protected Erfassen Sie die endgültigen Positionsinformationen der Elemente in der jeweiligen Zeile zur Verwendung beim Zeichnen. Damit werden mindestens xPos und centerline für jedes Element erfasst.
shouldStartNewRow_(currInput, prevInput) protected Entscheiden Sie, ob zwischen den beiden Blockly.Inputs eine neue Zeile beginnen soll.