react-qml
Version:
62 lines (61 loc) • 2.72 kB
TypeScript
export declare type AnchorLineProp = 'left' | 'top' | 'right' | 'bottom' | 'horizontalCenter' | 'verticalCenter' | 'baseline';
export declare type AnchorItemProp = 'fill' | 'centerIn';
export declare type AnchorRefProp = AnchorLineProp | AnchorItemProp;
export declare function isAnchorLineProp(key: string): boolean;
export declare function isAnchorItemProp(key: string): boolean;
export declare function isAnchorProp(key: string): boolean;
export declare type AnchorPrimitiveKey = 'margins' | 'topMargin' | 'bottomMargin' | 'leftMargin' | 'rightMargin' | 'horizontalCenterOffset' | 'verticalCenterOffset' | 'baselineOffset' | 'alignWhenCentered';
declare type AnchorSubscription = {
source: Qml.QmlElement;
sourceProp: AnchorRefProp;
target?: Qml.QmlElement;
targetProp?: AnchorRefProp;
onTargetChanged?: () => void;
};
export interface AnchorRef {
value(): any;
isReady(): boolean;
type(): string;
addSubscription(source: Qml.QmlElement, sourceProp: AnchorRefProp): void;
removeSubscription(source: Qml.QmlElement, sourceProp: AnchorRefProp): void;
}
declare abstract class AbstractAnchorRef implements AnchorRef {
protected qmlElement: Qml.QmlElement | null;
protected subscriptions: Array<AnchorSubscription>;
constructor(qmlElement?: Qml.QmlElement | null);
abstract value(): any;
abstract type(): string;
protected processSubscriptions(): void;
setQmlElement(qmlElement: Qml.QmlElement): void;
isReady(): boolean;
addSubscription(source: Qml.QmlElement, sourceProp: AnchorRefProp): void;
removeSubscription(source: Qml.QmlElement, sourceProp: AnchorRefProp): void;
}
export declare class AnchorLineRef extends AbstractAnchorRef {
private line;
constructor(line: AnchorLineProp, qmlElement?: Qml.QmlElement | null);
value(): any;
type(): string;
}
export declare class Anchor extends AbstractAnchorRef {
readonly id: Symbol;
readonly left: AnchorLineRef;
readonly horizontalCenter: AnchorLineRef;
readonly right: AnchorLineRef;
readonly top: AnchorLineRef;
readonly verticalCenter: AnchorLineRef;
readonly baseline: AnchorLineRef;
readonly bottom: AnchorLineRef;
constructor();
setQmlElement(qmlElement: Qml.QmlElement): void;
value(): Qml.QmlElement | undefined;
type(): string;
static createRef(): Anchor;
}
export declare class ParentAnchor {
private static parentAnchorSubscriptions;
private static updateAnchors;
static addSubscription(childElement: Qml.QmlElement, childPropName: AnchorRefProp, parentAnchorRef?: string): void;
static removeSubscription(childElement: Qml.QmlElement, childPropName: AnchorRefProp): void;
}
export default Anchor;