nodeguy/src/lib/QtWidgets/QDoubleSpinBox.ts
2022-05-11 22:30:42 +02:00

103 lines
3.1 KiB
TypeScript

import addon from '../utils/addon';
import { QWidget, QWidgetSignals } from './QWidget';
import { NativeElement } from '../core/Component';
import { QAbstractSpinBox, QAbstractSpinBoxSignals, StepType } from './QAbstractSpinBox';
import { checkIfNativeElement } from '../utils/helpers';
import { wrapperCache } from '../core/WrapperCache';
/**
> Create and control double spin box widgets.
* **This class is a JS wrapper around Qt's [QDoubleSpinBox class](https://doc.qt.io/qt-5/qdoublespinbox.html)**
A `QDoubleSpinBox` provides ability to add and manipulate native double spin box widgets.
### Example
```javascript
const { QDoubleSpinBox } = require("@nodegui/nodegui");
const doublespinBox = new QDoubleSpinBox();
```
*/
export class QDoubleSpinBox extends QAbstractSpinBox<QDoubleSpinBoxSignals> {
constructor(arg?: QWidget<QWidgetSignals> | NativeElement) {
let native: NativeElement;
if (checkIfNativeElement(arg)) {
native = arg as NativeElement;
} else if (arg != null) {
const parent = arg as QWidget;
native = new addon.QDoubleSpinBox(parent.native);
} else {
native = new addon.QDoubleSpinBox();
}
super(native);
}
cleanText(): string {
return this.property('cleanText').toString();
}
setDecimals(prec: number): void {
this.setProperty('decimals', prec);
}
decimals(): number {
return this.property('decimals').toInt();
}
setMaximum(max: number): void {
this.setProperty('maximum', max);
}
maximum(): number {
return this.property('maximum').toDouble();
}
setMinimum(min: number): void {
this.setProperty('minimum', min);
}
minimum(): number {
return this.property('minimum').toDouble();
}
setPrefix(prefix: string): void {
this.setProperty('prefix', prefix);
}
prefix(): string {
return this.property('prefix').toString();
}
setSingleStep(val: number): void {
this.setProperty('singleStep', val);
}
singleStep(): number {
return this.property('singleStep').toDouble();
}
setStepType(stepType: StepType): void {
this.setProperty('stepType', stepType);
}
stepType(): StepType {
return this.property('stepType').toInt();
}
setSuffix(suffix: string): void {
this.setProperty('suffix', suffix);
}
suffix(): string {
return this.property('suffix').toString();
}
setValue(val: number): void {
this.setProperty('value', val);
}
value(): number {
return this.property('value').toDouble();
}
setRange(minimum: number, maximum: number): void {
this.native.setRange(minimum, maximum);
}
textFromValue(value: number): string {
return this.native.textFromValue(value);
}
valueFromText(text: string): number {
return this.native.valueFromText(text);
}
}
wrapperCache.registerWrapper('QDoubleSpinBoxWrap', QDoubleSpinBox);
export interface QDoubleSpinBoxSignals extends QAbstractSpinBoxSignals {
valueChanged: (value: number) => void;
}