import { NativeElement, Component } from '../core/Component'; import addon from '../utils/addon'; import { checkIfNativeElement } from '../utils/helpers'; import { QVariant } from './QVariant'; export class QRect extends Component { constructor(nativeOrX?: NativeElement | number, y = 0, width = 0, height = 0) { const count = arguments.length; let native: NativeElement; if (count > 1) { native = new addon.QRect(nativeOrX, y, width, height); } else if (checkIfNativeElement(nativeOrX)) { native = nativeOrX as NativeElement; } else { native = new addon.QRect(); } super(native); } setWidth(width: number): void { return this.native.setWidth(width); } width(): number { return this.native.width(); } setHeight(height: number): void { return this.native.setHeight(height); } height(): number { return this.native.height(); } left(): number { return this.native.left(); } setLeft(height: number): void { return this.native.setLeft(height); } top(): number { return this.native.top(); } setTop(height: number): void { return this.native.setTop(height); } static fromQVariant(variant: QVariant): QRect { return new QRect(addon.QRect.fromQVariant(variant.native)); } }