import addon from "../utils/addon"; import { NativeElement, Component } from "../core/Component"; import { checkIfNativeElement } from "../utils/helpers"; import { QVariant } from "./QVariant"; import { DateFormat } from "../QtEnums"; export class QTime extends Component { constructor( nativeOrHours?: NativeElement | number, m?: number, s = 0, ms = 0 ) { const count = arguments.length; let native: NativeElement; if (count > 1) { native = new addon.QTime(nativeOrHours, m, s, ms); } else if (checkIfNativeElement(nativeOrHours)) { native = nativeOrHours as NativeElement; } else { native = new addon.QTime(); } super(native); } addMSecs(ms: number): QTime { return new QTime(this.native?.addMSecs(ms)); } addSecs(s: number): QTime { return new QTime(this.native?.addSecs(s)); } hour(): number { return this.native?.hour(); } isNull(): boolean { return this.native?.isNull(); } isValid(): boolean { return this.native?.isValid(); } minute(): number { return this.native?.minute(); } msec(): number { return this.native?.msec(); } msecsSinceStartOfDay(): number { return this.native?.msecsSinceStartOfDay(); } msecsTo(t: QTime): number { return this.native?.msecsTo(t.native); } second(): number { return this.native?.second(); } secsTo(t: QTime): number { return this.native?.secsTo(t.native); } setHMS(h: number, m: number, s: number, ms = 0): boolean { return this.native?.setHMS(h, m, s, ms); } toString(format: string | DateFormat): string { return this.native?.toString$(format); } static currentTime(): QTime { return new QTime(addon.QTime.currentTime()); } static fromMSecsSinceStartOfDay(msecs: number): QTime { return new QTime(addon.QTime.fromMSecsSinceStartOfDay(msecs)); } static isValid(h: number, m: number, s: number, ms = 0): boolean { return addon.QTime.isValid(h, m, s, ms); } static fromString(timeString: string, format: string | DateFormat): QTime { return new QTime(addon.QTime.fromString(timeString, format)); } static fromQVariant(variant: QVariant): QTime { return new QTime(addon.QTime.fromQVariant(variant.native)); } }