import Adw public extension SpinRow { /// Creates a SpinRow with static text and value settings. /// /// Values are applied once when the widget mounts. The convenience uses climb rate 1 and 0 digits; /// chain the generated modifiers to choose different settings. /// - Parameter title: The row title. /// - Parameter subtitle: The optional row subtitle. /// - Parameter adjustment: The optional adjustment model. /// - Parameter value: The optional value. @_disfavoredOverload init(_ title: S, subtitle: String? = nil, adjustment: Adjustment? = nil, value: Double? = nil) { self.init(adjustment: adjustment, climbRate: 1, digits: 0) self = self.title(String(title)) if let subtitle { self = self.subtitle(subtitle) } if let value { self = self.value(value) } } /// Creates a SpinRow whose text and value follow bindings. /// /// Binding modifiers update the widget in place and write widget changes back. The convenience uses climb rate 1 and 0 digits. /// - Parameter title: The title binding. /// - Parameter subtitle: The optional subtitle binding. /// - Parameter adjustment: The optional adjustment model. /// - Parameter value: The optional value binding. init(_ title: Portico.Binding, subtitle: Portico.Binding? = nil, adjustment: Adjustment? = nil, value: Portico.Binding? = nil) { self.init(adjustment: adjustment, climbRate: 1, digits: 0) self = self.title(title) if let subtitle { self = self.subtitle(subtitle) } if let value { self = self.value(value) } } /// Creates a SpinRow with live interpolated text values. /// /// Interpolated segments are re-evaluated when their dependencies change. The convenience uses climb rate 1 and 0 digits. /// - Parameter title: The interpolated title. /// - Parameter subtitle: The optional interpolated subtitle. /// - Parameter adjustment: The optional adjustment model. /// - Parameter value: The optional value. init(_ title: Portico.InterpolatedText, subtitle: Portico.InterpolatedText? = nil, adjustment: Adjustment? = nil, value: Double? = nil) { self.init(adjustment: adjustment, climbRate: 1, digits: 0) self = self.title(title) if let subtitle { self = self.subtitle(subtitle) } if let value { self = self.value(value) } } /// Creates a SpinRow with a static title and bound value. /// /// The value binding updates the widget in place and receives widget changes. The convenience uses climb rate 1 and 0 digits. /// - Parameter title: The row title. /// - Parameter subtitle: The optional row subtitle. /// - Parameter adjustment: The optional adjustment model. /// - Parameter value: The required value binding. init(_ title: S, subtitle: String? = nil, adjustment: Adjustment? = nil, value: Portico.Binding) { self.init(adjustment: adjustment, climbRate: 1, digits: 0) self = self.title(String(title)) if let subtitle { self = self.subtitle(subtitle) } self = self.value(value) } }