// Copyright © SixtyFPS GmbH // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.1 OR LicenseRef-Slint-commercial import { LineEditBase} from "../common/lineedit-base.slint"; import { StyleMetrics } from "std-widgets-impl.slint"; export component LineEdit { in property font-size <=> inner.font-size; in property placeholder-text <=> inner.placeholder-text; in property input-type <=> inner.input-type; in property horizontal-alignment <=> inner.horizontal-alignment; in property read-only <=> inner.read-only; in property enabled: true; out property has-focus <=> inner.has-focus; in-out property text <=> inner.text; callback accepted <=> inner.accepted; callback edited <=> inner.edited; accessible-role: text-input; accessible-value <=> text; public function set-selection-offsets(start: int, end: int) { inner.set-selection-offsets(start, end); } public function select-all() { inner.select-all(); } public function clear-selection() { inner.clear-selection(); } public function cut() { inner.cut(); } public function copy() { inner.copy(); } public function paste() { inner.paste(); } forward-focus: inner; horizontal-stretch: 1; vertical-stretch: 0; min-width: max(160px, layout.min-height); min-height: max(32px, layout.min-height); native := NativeLineEdit { has-focus <=> root.has-focus; enabled: root.enabled; width: 100%; height: 100%; } layout := HorizontalLayout { padding-left: native.native-padding-left; padding-right: native.native-padding-right; padding-top: native.native-padding-top; padding-bottom: native.native-padding-bottom; inner := LineEditBase { placeholder-color: self.enabled ? StyleMetrics.placeholder-color : StyleMetrics.placeholder-color-disabled; text-color: self.enabled ? StyleMetrics.textedit-text-color : StyleMetrics.textedit-text-color-disabled; enabled: root.enabled; margin: layout.padding-left + layout.padding-right; } } }