slint-lsp 1.16.1

A language server protocol implementation for Slint
Documentation
// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0

import { ChildIndicator, CodeButton, ResetButton } from "./basics.slint";

import { PropertyValue } from "../../api.slint";
import { EditorSpaceSettings } from "../../components/styling.slint";

export component CodeWidget inherits GridLayout {
    in property <bool> enabled;
    in property <string> property-name;
    in property <PropertyValue> property-value;

    callback update-display-string(value: string);

    callback code-action();
    callback reset-action();

    spacing-vertical: EditorSpaceSettings.default-spacing;

    Row {
        childIndicator := ChildIndicator {
            horizontal-stretch: 0;
            visible: false;
        }

        HorizontalLayout {
            if property-value.code == "": Text {
                horizontal-alignment: left;
                vertical-alignment: center;
                text: @tr("Not Set");
                font-italic: true;
            }

            if property-value.code != "": HorizontalLayout {
                spacing: EditorSpaceSettings.default-spacing;

                ResetButton {
                    enabled: root.enabled;
                    clicked() => {
                        root.reset-action();
                    }
                }

                CodeButton {
                    enabled: root.enabled;
                    clicked() => {
                        root.code-action();
                    }
                }
            }
        }
    }
}