mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-31 21:41:33 +00:00

- Moved globally-relevant methods to BaseViewController, so their menu items are always available. - Big refactor to eliminate redundant appDelegate properties. - Work in progress on reimplementing the navigation bars as a Mac toolbar.
71 lines
2.4 KiB
Swift
71 lines
2.4 KiB
Swift
//
|
|
// ToolbarDelegate.swift
|
|
// NewsBlur
|
|
//
|
|
// Created by David Sinclair on 2024-01-05.
|
|
// Copyright © 2024 NewsBlur. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
#if targetEnvironment(macCatalyst)
|
|
class ToolbarDelegate: NSObject {
|
|
}
|
|
|
|
extension NSToolbarItem.Identifier {
|
|
static let reloadFeeds = NSToolbarItem.Identifier("com.newsblur.reloadFeeds")
|
|
static let feedDetailSettings = NSToolbarItem.Identifier("com.newsblur.feedDetailSettings")
|
|
}
|
|
|
|
extension ToolbarDelegate: NSToolbarDelegate {
|
|
func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
|
|
let identifiers: [NSToolbarItem.Identifier] = [
|
|
.toggleSidebar,
|
|
.reloadFeeds,
|
|
.flexibleSpace,
|
|
.feedDetailSettings
|
|
]
|
|
return identifiers
|
|
}
|
|
|
|
func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
|
|
return toolbarDefaultItemIdentifiers(toolbar)
|
|
}
|
|
|
|
func toolbar(_ toolbar: NSToolbar,
|
|
itemForItemIdentifier itemIdentifier: NSToolbarItem.Identifier,
|
|
willBeInsertedIntoToolbar flag: Bool) -> NSToolbarItem? {
|
|
switch itemIdentifier {
|
|
case .reloadFeeds:
|
|
return makeToolbarItem(itemIdentifier,
|
|
image: UIImage(systemName: "arrow.clockwise"),
|
|
label: "Reload Sites",
|
|
action: #selector(BaseViewController.reloadFeeds(_:)))
|
|
|
|
case .feedDetailSettings:
|
|
return makeToolbarItem(itemIdentifier,
|
|
image: Utilities.imageNamed("settings", sized: 24),
|
|
label: "Site Settings",
|
|
action: #selector(FeedDetailViewController.doOpenSettingsMenu(_:)))
|
|
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
|
|
func makeToolbarItem(_ identifier: NSToolbarItem.Identifier,
|
|
image: UIImage?,
|
|
label: String,
|
|
action: Selector,
|
|
target: AnyObject? = nil) -> NSToolbarItem {
|
|
let item = NSToolbarItem(itemIdentifier: identifier)
|
|
|
|
item.image = image
|
|
item.label = label
|
|
item.action = action
|
|
item.target = target
|
|
|
|
return item
|
|
}
|
|
}
|
|
#endif
|