diff --git a/Mac/AppAssets.swift b/Mac/AppAssets.swift index 2e22c56ff..dd1125fac 100644 --- a/Mac/AppAssets.swift +++ b/Mac/AppAssets.swift @@ -14,26 +14,6 @@ import Images extension AppAsset { struct Mac { - - static let iconLightBackgroundColor = NSColor(named: "iconLightBackgroundColor")! - static let iconDarkBackgroundColor = NSColor(named: "iconDarkBackgroundColor")! - - static let marsEditIcon = RSImage.appImage("MarsEditIcon") - static let microblogIcon = RSImage.appImage("MicroblogIcon") - - struct Toolbar { - static let addNewSidebarItem = RSImage.systemImage("plus") - static let sidebarToggle = RSImage.systemImage("sidebar.left") - static let refresh = RSImage.systemImage("arrow.clockwise") - static let articleTheme = RSImage.systemImage("doc.richtext") - static let cleanUpImage = RSImage.systemImage("wind") - static let nextUnread = RSImage.systemImage("chevron.down.circle") - static let openInBrowser = RSImage.systemImage("safari") - static let readClosed = RSImage.systemImage("largecircle.fill.circle") - static let readOpen = RSImage.systemImage("circle") - static let share = AppAsset.shareImage - } - struct PreferencesToolbar { static let accounts = RSImage.systemImage("at") static let general = RSImage.systemImage("gearshape") diff --git a/Mac/MainWindow/IconView.swift b/Mac/MainWindow/IconView.swift index ad025a598..be1d00173 100644 --- a/Mac/MainWindow/IconView.swift +++ b/Mac/MainWindow/IconView.swift @@ -54,8 +54,8 @@ final class IconView: NSView { return imageView.frame.size.height < bounds.size.height } - private static var lightBackgroundColor = AppAsset.Mac.iconLightBackgroundColor - private static var darkBackgroundColor = AppAsset.Mac.iconDarkBackgroundColor + private static var lightBackgroundColor = AppAsset.iconLightBackgroundColor + private static var darkBackgroundColor = AppAsset.iconDarkBackgroundColor override init(frame frameRect: NSRect) { super.init(frame: frameRect) diff --git a/Mac/MainWindow/MainWindowController.swift b/Mac/MainWindow/MainWindowController.swift index 7f7cfd246..768af1cf5 100644 --- a/Mac/MainWindow/MainWindowController.swift +++ b/Mac/MainWindow/MainWindowController.swift @@ -796,15 +796,15 @@ extension MainWindowController: NSToolbarDelegate { case .sidebarToggle: let title = NSLocalizedString("Toggle Sidebar", comment: "Toggle Sidebar") - return buildToolbarButton(.toggleSidebar, title, AppAsset.Mac.Toolbar.sidebarToggle, "toggleTheSidebar:") + return buildToolbarButton(.toggleSidebar, title, AppAsset.toolbarSidebarToggleImage, "toggleTheSidebar:") case .refresh: let title = NSLocalizedString("Refresh", comment: "Refresh") - return buildToolbarButton(.refresh, title, AppAsset.Mac.Toolbar.refresh, "refreshAll:") + return buildToolbarButton(.refresh, title, AppAsset.toolbarRefreshImage, "refreshAll:") case .newSidebarItemMenu: let toolbarItem = NSMenuToolbarItem(itemIdentifier: .newSidebarItemMenu) - toolbarItem.image = AppAsset.Mac.Toolbar.addNewSidebarItem + toolbarItem.image = AppAsset.toolbarAddNewSidebarItemImage let description = NSLocalizedString("Add Item", comment: "Add Item") toolbarItem.toolTip = description toolbarItem.label = description @@ -824,7 +824,7 @@ extension MainWindowController: NSToolbarDelegate { case .markRead: let title = NSLocalizedString("Mark Read", comment: "Mark Read") - return buildToolbarButton(.markRead, title, AppAsset.Mac.Toolbar.readClosed, "toggleRead:") + return buildToolbarButton(.markRead, title, AppAsset.toolbarReadClosedImage, "toggleRead:") case .markStar: let title = NSLocalizedString("Star", comment: "Star") @@ -832,7 +832,7 @@ extension MainWindowController: NSToolbarDelegate { case .nextUnread: let title = NSLocalizedString("Next Unread", comment: "Next Unread") - return buildToolbarButton(.nextUnread, title, AppAsset.Mac.Toolbar.nextUnread, "nextUnread:") + return buildToolbarButton(.nextUnread, title, AppAsset.toolbarNextUnreadImage, "nextUnread:") case .readerView: let toolbarItem = RSToolbarItem(itemIdentifier: .readerView) @@ -847,14 +847,14 @@ extension MainWindowController: NSToolbarDelegate { case .share: let title = NSLocalizedString("Share", comment: "Share") - return buildToolbarButton(.share, title, AppAsset.Mac.Toolbar.share, "toolbarShowShareMenu:") + return buildToolbarButton(.share, title, AppAsset.toolbarShareImage, "toolbarShowShareMenu:") case .openInBrowser: let title = NSLocalizedString("Open in Browser", comment: "Open in Browser") - return buildToolbarButton(.openInBrowser, title, AppAsset.Mac.Toolbar.openInBrowser, "openArticleInBrowser:") + return buildToolbarButton(.openInBrowser, title, AppAsset.toolbarOpenInBrowserImage, "openArticleInBrowser:") case .articleThemeMenu: - articleThemeMenuToolbarItem.image = AppAsset.Mac.Toolbar.articleTheme + articleThemeMenuToolbarItem.image = AppAsset.toolbarArticleThemeImage let description = NSLocalizedString("Article Theme", comment: "Article Theme") articleThemeMenuToolbarItem.toolTip = description articleThemeMenuToolbarItem.label = description @@ -869,7 +869,7 @@ extension MainWindowController: NSToolbarDelegate { case .cleanUp: let title = NSLocalizedString("Clean Up", comment: "Clean Up") - return buildToolbarButton(.cleanUp, title, AppAsset.Mac.Toolbar.cleanUpImage, "cleanUp:") + return buildToolbarButton(.cleanUp, title, AppAsset.toolbarCleanUpImage, "cleanUp:") default: break @@ -1079,7 +1079,7 @@ private extension MainWindowController { } if let toolbarItem = item as? NSToolbarItem, let button = toolbarItem.view as? NSButton { - button.image = markingRead ? AppAsset.Mac.Toolbar.readClosed : AppAsset.Mac.Toolbar.readOpen + button.image = markingRead ? AppAsset.toolbarReadClosedImage : AppAsset.toolbarReadOpenImage } return result diff --git a/Shared/AppAsset.swift b/Shared/AppAsset.swift index df56fdfaa..d6c6c3166 100644 --- a/Shared/AppAsset.swift +++ b/Shared/AppAsset.swift @@ -26,32 +26,44 @@ final class AppAsset { @MainActor static let folderIcon: IconImage = { - #if os(macOS) +#if os(macOS) let image = RSImage.systemImage("folder") let preferredColor = NSColor(named: "AccentColor")! let coloredImage = image.tinted(with: preferredColor) return IconImage(coloredImage, isSymbol: true, isBackgroundSupressed: true, preferredColor: preferredColor.cgColor) - - #else +#else let image = RSImage.systemImage("folder.fill") let preferredColor = AppAssets.secondaryAccentColor return IconImage(image, isSymbol: true, isBackgroundSupressed: true, preferredColor: preferredColor.cgColor) - - #endif +#endif }() @MainActor static let searchFeedImage: IconImage = { #if os(macOS) IconImage(NSImage(named: NSImage.smartBadgeTemplateName)!, isSymbol: true, isBackgroundSupressed: true) - #else IconImage(UIImage(systemName: "magnifyingglass")!, isSymbol: true) - #endif }() - // MARK: - Account + // MARK: - ArticleExtractor + + static let articleExtractorErrorImage = RSImage.appImage("articleExtractorError") + static let articleExtractorOffImage = RSImage.appImage("articleExtractorOff") + static let articleExtractorOffSFImage = RSImage.systemImage("doc.plaintext") + static let articleExtractorOnImage = RSImage.appImage("articleExtractorOn") + static let articleExtractorOnSFImage = RSImage.appImage("articleExtractorOnSF") + + // MARK: - Filter icon + + static let filterActiveImage = RSImage.systemImage("line.horizontal.3.decrease.circle.fill") + static let filterInactiveImage = RSImage.systemImage("line.horizontal.3.decrease.circle") +} + +// MARK: - Account + +extension AppAsset { static let bazQuxImage = RSImage.appImage("accountBazQux") static let cloudKitImage = RSImage.appImage("accountCloudKit") @@ -72,14 +84,12 @@ final class AppAsset { #if os(macOS) return AppAsset.localAccountMacImage - #elseif os(iOS) if UIDevice.current.userInterfaceIdiom == .pad { return AppAsset.localAccountPadImage } else { return AppAsset.localAccountPhoneImage } - #endif case .cloudKit: @@ -100,17 +110,35 @@ final class AppAsset { return AppAsset.theOldReaderImage } } - - // MARK: - ArticleExtractor - - static let articleExtractorErrorImage = RSImage.appImage("articleExtractorError") - static let articleExtractorOffImage = RSImage.appImage("articleExtractorOff") - static let articleExtractorOffSFImage = RSImage.systemImage("doc.plaintext") - static let articleExtractorOnImage = RSImage.appImage("articleExtractorOn") - static let articleExtractorOnSFImage = RSImage.appImage("articleExtractorOnSF") - - // MARK: - Filter icon - - static let filterActiveImage = RSImage.systemImage("line.horizontal.3.decrease.circle.fill") - static let filterInactiveImage = RSImage.systemImage("line.horizontal.3.decrease.circle") } + +#if os(macOS) + +// MARK: - Mac + +extension AppAsset { + + static let iconLightBackgroundColor = NSColor(named: "iconLightBackgroundColor")! + static let iconDarkBackgroundColor = NSColor(named: "iconDarkBackgroundColor")! + + // MARK: - Mac Share Menu + + static let marsEditImage = RSImage.appImage("MarsEditIcon") + static let microblogImage = RSImage.appImage("MicroblogIcon") + + // MARK: - Mac Toolbar + + static let toolbarAddNewSidebarItemImage = RSImage.systemImage("plus") + static let toolbarSidebarToggleImage = RSImage.systemImage("sidebar.left") + static let toolbarRefreshImage = RSImage.systemImage("arrow.clockwise") + static let toolbarArticleThemeImage = RSImage.systemImage("doc.richtext") + static let toolbarCleanUpImage = RSImage.systemImage("wind") + static let toolbarNextUnreadImage = RSImage.systemImage("chevron.down.circle") + static let toolbarOpenInBrowserImage = RSImage.systemImage("safari") + static let toolbarReadClosedImage = RSImage.systemImage("largecircle.fill.circle") + static let toolbarReadOpenImage = RSImage.systemImage("circle") + static let toolbarShareImage = AppAsset.shareImage +} + +#endif + diff --git a/Shared/ExtensionPoints/SendToMarsEditCommand.swift b/Shared/ExtensionPoints/SendToMarsEditCommand.swift index 18c364808..0e46f29e1 100644 --- a/Shared/ExtensionPoints/SendToMarsEditCommand.swift +++ b/Shared/ExtensionPoints/SendToMarsEditCommand.swift @@ -14,7 +14,7 @@ import Core @MainActor final class SendToMarsEditCommand: SendToCommand { let title = "MarsEdit" - let image: RSImage? = AppAsset.Mac.marsEditIcon + let image: RSImage? = AppAsset.marsEditImage private let marsEditApps = [UserApp(bundleID: "com.red-sweater.marsedit4"), UserApp(bundleID: "com.red-sweater.marsedit")] diff --git a/Shared/ExtensionPoints/SendToMicroBlogCommand.swift b/Shared/ExtensionPoints/SendToMicroBlogCommand.swift index 92a4d96db..af23701d1 100644 --- a/Shared/ExtensionPoints/SendToMicroBlogCommand.swift +++ b/Shared/ExtensionPoints/SendToMicroBlogCommand.swift @@ -16,7 +16,7 @@ import Core @MainActor final class SendToMicroBlogCommand: SendToCommand { let title = "Micro.blog" - let image: RSImage? = AppAsset.Mac.microblogIcon + let image: RSImage? = AppAsset.microblogImage private let microBlogApp = UserApp(bundleID: "blog.micro.mac")