taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit 48c5fd77672cd6a488fc982acd142cdd59518f64
parent 5557e0b1ac94d552717ac89cd93e9746af45220d
Author: Marc Stibane <marc@taler.net>
Date:   Tue,  2 Sep 2025 01:04:51 +0200

Shape+style

Diffstat:
ATalerWallet1/Views/ViewModifier/Shape+style.swift | 50++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+), 0 deletions(-)

diff --git a/TalerWallet1/Views/ViewModifier/Shape+style.swift b/TalerWallet1/Views/ViewModifier/Shape+style.swift @@ -0,0 +1,50 @@ +// MIT License +// Copyright © John Sundell +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of this software +// and associated documentation files (the "Software"), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, publish, distribute, +// sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all copies or +// substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +// BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +import SwiftUI + +extension Shape { + func style<S: ShapeStyle, F: ShapeStyle>( + withStroke strokeContent: S, + lineWidth: CGFloat = 1, + fill fillContent: F + ) -> some View { + self.stroke(strokeContent, lineWidth: lineWidth) + .background(fill(fillContent)) + } +} + +/// use like this +// struct CreateAccountButton: View { +// var action: () -> Void +// +// var body: some View { +// Button("Create account", action: action) +// .padding() +// .foregroundColor(.white) +// .background(RoundedRectangle(cornerRadius: 20).style( +// withStroke: Color.primary, +// lineWidth: 2, +// fill: LinearGradient( +// gradient: Gradient(colors: [.blue, .black]), +// startPoint: .top, +// endPoint: .bottom +// ) +// )) +// } +// }