// Generated by PorticoGen. DO NOT EDIT. See Sources/PorticoGen to make changes. import Adw import Gtk import Gio import Gdk // PorticoGen: generateStruct | source: Gtk.EditableLabel /// Allows users to edit the displayed text by switching to an “edit mode”. /// /// /// /// An example GtkEditableLabel /// /// /// `GtkEditableLabel` does not have API of its own, but it /// implements the [iface`Gtk`.Editable] interface. /// /// The default bindings for activating the edit mode is /// to click or press the Enter key. The default bindings /// for leaving the edit mode are the Enter key (to save /// the results) or the Escape key (to cancel the editing). /// /// # Shortcuts and Gestures /// /// `GtkEditableLabel` supports the following keyboard shortcuts: /// /// - Enter starts editing. /// - Escape stops editing. /// /// # Actions /// /// `GtkEditableLabel` defines a set of built-in actions: /// /// - `editing.starts` switches the widget into editing mode. /// - `editing.stop` switches the widget out of editing mode. /// /// # CSS nodes /// /// ``` /// editablelabel[.editing] /// ╰── stack /// ├── label /// ╰── text /// ``` /// /// `GtkEditableLabel` has a main node with the name editablelabel. /// When the entry is in editing mode, it gets the .editing style /// class. /// /// For all the subnodes added to the text node in various situations, /// see [class`Gtk`.Text]. /// /// A Portico view that mounts a `Gtk.EditableLabel`. @MainActor public struct EditableLabel: View { private let make: (MountContext) -> Gtk.EditableLabel private var configure: [(Gtk.EditableLabel, MountContext) -> Void] = [] public var body: Never { fatalError() } // PorticoGen: generateInits(static) | source: Gtk.EditableLabel.init(str:) /// Creates a new `GtkEditableLabel` widget. /// /// Applied once at mount; use the `Binding` or closure overload for values that change. /// Optional value parameters are applied only when non-`nil`; a `nil` argument leaves the widget's own default in place and cannot clear a nullable property - use the matching modifier for that. /// /// - Parameter str: The `str` value forwarded to `Gtk.EditableLabel`. public init(str: String) { make = { _ in Gtk.EditableLabel(str: str) } } } extension EditableLabel: WidgetView { public typealias Target = Gtk.EditableLabel @_spi(Portico) public func appending( _ step: @escaping (Gtk.EditableLabel, MountContext) -> Void ) -> Self { var c = self c.configure.append(step) return c } } @_spi(Portico) extension EditableLabel: Mountable { @_spi(Portico) public func mount(_ ctx: MountContext) -> Gtk.Widget { let w = make(ctx) for step in configure { step(w, ctx) } return w } }