passepartout-apple/Library/Sources/UILibrary/Theme/Theme+ImageName.swift

136 lines
4.5 KiB
Swift

//
// Theme+ImageName.swift
// Passepartout
//
// Created by Davide De Rosa on 8/28/24.
// Copyright (c) 2024 Davide De Rosa. All rights reserved.
//
// https://github.com/passepartoutvpn
//
// This file is part of Passepartout.
//
// Passepartout is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Passepartout is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
//
import Foundation
extension Theme {
public enum ImageName {
case add
case close
case cloudOff
case cloudOn
case contextDuplicate
case contextRemove
case copy
case disclose
case editableSectionEdit
case editableSectionRemove
case failure
case favoriteOff
case favoriteOn
case filters
case footerAdd
case hide
case info
case marked
case moreDetails
case pending
case profileEdit
case profileImport
case profileMigrate
case profileProvider
case profilesGrid
case profilesList
case progress
case remove
case search
case selectionOff
case selectionOn
case settings
case share
case show
case sleeping
case tip
case tunnelDisable
case tunnelEnable
case tunnelRestart
case tunnelToggle
case tunnelUninstall
case tvOff
case tvOn
case upgrade
case warning
}
}
extension Theme.ImageName {
static var defaultSystemName: (Self) -> String {
{
switch $0 {
case .add: return "plus"
case .close: return "xmark"
case .cloudOff: return "icloud.slash"
case .cloudOn: return "icloud"
case .contextDuplicate: return "plus.square.on.square"
case .contextRemove: return "trash"
case .copy: return "doc.on.doc"
case .disclose: return "chevron.down"
case .editableSectionEdit: return "arrow.up.arrow.down"
case .editableSectionRemove: return "trash"
case .failure: return "exclamationmark.triangle"
case .favoriteOff: return "star"
case .favoriteOn: return "star.fill"
case .filters: return "line.3.horizontal.decrease"
case .footerAdd: return "plus.circle"
case .hide: return "eye.slash"
case .info: return "info.circle"
case .marked: return "checkmark"
case .moreDetails: return "ellipsis.circle"
case .pending: return "clock"
case .profileEdit: return "square.and.pencil"
case .profileImport: return "square.and.arrow.down"
case .profileMigrate: return "arrow.up.square"
case .profileProvider: return "network"
case .profilesGrid: return "square.grid.2x2"
case .profilesList: return "rectangle.grid.1x2"
case .progress: return "clock"
case .remove: return "minus"
case .search: return "magnifyingglass"
case .selectionOff: return "circle"
case .selectionOn: return "checkmark.circle.fill"
case .settings: return "gearshape"
case .share: return "square.and.arrow.up"
case .show: return "eye"
case .sleeping: return "powersleep"
case .tip: return "questionmark.circle"
case .tunnelDisable: return "arrow.down"
case .tunnelEnable: return "arrow.up"
case .tunnelRestart: return "arrow.clockwise"
case .tunnelToggle: return "power"
case .tunnelUninstall: return "arrow.uturn.down"
case .tvOff:
if #available(iOS 17, macOS 14, tvOS 17, *) {
return "tv.slash"
} else {
return "tv"
}
case .tvOn: return "tv"
case .upgrade: return "arrow.up.circle"
case .warning: return "exclamationmark.triangle"
}
}
}
}