// Copyright © SixtyFPS GmbH // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 import { CupertinoPalette, CupertinoFontSettings } from "styling.slint"; import { MenuBarItemBase, MenuBarBase, MenuFrameBase, MenuItemBase } from "../common/menu-base.slint"; export component MenuBarItem { in property entry <=> base.entry; callback clicked <=> base.clicked; callback hovered <=> base.hovered; min-width: base.min-width; min-height: base.min-height; base := MenuBarItemBase { horizontal-padding: 8px; default-foreground: CupertinoPalette.foreground; hover-foreground: CupertinoPalette.foreground; pressed-foreground: CupertinoPalette.foreground; hover-background: CupertinoPalette.secondary-control-background; pressed-background: CupertinoPalette.secondary-control-background; font-size: 13px; font-weight: 300; border-radius: 2px; } } export component MenuBar inherits MenuBarBase { horizontal-padding: 8px; min-layout-height: 24px; } export component MenuFrame inherits MenuFrameBase { border-width: 1px; border-color: CupertinoPalette.border; layout-min-width: 280px; drop-shadow-blur: 22px; drop-shadow-color: #00000066; drop-shadow-offset-y: 0.5px; background: CupertinoPalette.background; border-radius: 6px; margin: 4px; } export component MenuItem { in property is-current <=> base.is-current; in property entry <=> base.entry; callback set-current <=> base.set-current; callback clear-current <=> base.clear-current; callback activate <=> base.activate; min-height: max(22px, base.min-height); HorizontalLayout { base := MenuItemBase { default-foreground: CupertinoPalette.foreground; current-foreground: CupertinoPalette.accent-foreground; current-background: CupertinoPalette.accent-background; separator-color: CupertinoPalette.border; font-size: CupertinoFontSettings.body.font-size; font-weight: CupertinoFontSettings.body.font-weight; border-radius: 5px; horizontal-padding: 8px; spacing: 4px; sub-menu-icon: @image-url("_arrow_forward.svg"); icon-size: 13px; } } }