Add popup button for selecting article themes on Catalina

This commit is contained in:
Maurice C Parker 2021-09-09 05:47:49 -05:00
parent 6c09bf585c
commit c031aa5cbe
2 changed files with 30 additions and 7 deletions

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="17506" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS"> <document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="17701" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<dependencies> <dependencies>
<deployment identifier="macosx"/> <deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="17506"/> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="17701"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
<scenes> <scenes>
@ -196,6 +196,24 @@
<action selector="cleanUp:" target="Oky-zY-oP4" id="UCH-DG-yk4"/> <action selector="cleanUp:" target="Oky-zY-oP4" id="UCH-DG-yk4"/>
</connections> </connections>
</toolbarItem> </toolbarItem>
<toolbarItem implicitItemIdentifier="596363B5-CE41-417C-B8AB-11CC2C99BCA5" label="Article Theme" paletteLabel="Article Theme" sizingBehavior="auto" id="3Hc-al-vK2">
<nil key="toolTip"/>
<popUpButton key="view" verticalHuggingPriority="750" id="MFT-nb-eLG">
<rect key="frame" x="0.0" y="14" width="100" height="24"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<popUpButtonCell key="cell" type="roundTextured" title="Item 1" bezelStyle="texturedRounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" selectedItem="xAs-IL-tMv" id="ior-Gb-LTq">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="1Ac-Uq-Yeu">
<items>
<menuItem title="Item 1" state="on" id="xAs-IL-tMv"/>
<menuItem title="Item 2" id="T8e-ib-OTb"/>
<menuItem title="Item 3" id="Gfy-76-Njz"/>
</items>
</menu>
</popUpButtonCell>
</popUpButton>
</toolbarItem>
</allowedToolbarItems> </allowedToolbarItems>
<defaultToolbarItems> <defaultToolbarItems>
<toolbarItem reference="Skp-5r-70Q"/> <toolbarItem reference="Skp-5r-70Q"/>
@ -221,6 +239,7 @@
</connections> </connections>
</window> </window>
<connections> <connections>
<outlet property="articleThemePopUpButton" destination="MFT-nb-eLG" id="lHc-ej-PrT"/>
<segue destination="reS-fe-pD8" kind="relationship" relationship="window.shadowedContentViewController" id="WS2-WB-dc4"/> <segue destination="reS-fe-pD8" kind="relationship" relationship="window.shadowedContentViewController" id="WS2-WB-dc4"/>
</connections> </connections>
</windowController> </windowController>

View File

@ -18,7 +18,9 @@ enum TimelineSourceMode {
class MainWindowController : NSWindowController, NSUserInterfaceValidations { class MainWindowController : NSWindowController, NSUserInterfaceValidations {
private var activityManager = ActivityManager() @IBOutlet weak var articleThemePopUpButton: NSPopUpButton?
private var activityManager = ActivityManager()
private var isShowingExtractedArticle = false private var isShowingExtractedArticle = false
private var articleExtractor: ArticleExtractor? = nil private var articleExtractor: ArticleExtractor? = nil
@ -62,6 +64,8 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations {
sharingServicePickerDelegate = SharingServicePickerDelegate(self.window) sharingServicePickerDelegate = SharingServicePickerDelegate(self.window)
updateArticleThemeMenu()
if #available(macOS 11.0, *) { if #available(macOS 11.0, *) {
let toolbar = NSToolbar(identifier: "MainWindowToolbar") let toolbar = NSToolbar(identifier: "MainWindowToolbar")
toolbar.allowsUserCustomization = true toolbar.allowsUserCustomization = true
@ -155,11 +159,11 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations {
} }
@objc func articleThemeNamesDidChangeNotification(_ note: Notification) { @objc func articleThemeNamesDidChangeNotification(_ note: Notification) {
buildArticleThemeMenu() updateArticleThemeMenu()
} }
@objc func currentArticleThemeDidChangeNotification(_ note: Notification) { @objc func currentArticleThemeDidChangeNotification(_ note: Notification) {
buildArticleThemeMenu() updateArticleThemeMenu()
} }
private func updateWindowTitleIfNecessary(_ noteObject: Any?) { private func updateWindowTitleIfNecessary(_ noteObject: Any?) {
@ -817,7 +821,6 @@ extension MainWindowController: NSToolbarDelegate {
let description = NSLocalizedString("Article Theme", comment: "Article Theme") let description = NSLocalizedString("Article Theme", comment: "Article Theme")
articleThemeMenuToolbarItem.toolTip = description articleThemeMenuToolbarItem.toolTip = description
articleThemeMenuToolbarItem.label = description articleThemeMenuToolbarItem.label = description
buildArticleThemeMenu()
return articleThemeMenuToolbarItem return articleThemeMenuToolbarItem
case .search: case .search:
@ -1413,7 +1416,7 @@ private extension MainWindowController {
return menu return menu
} }
func buildArticleThemeMenu() { func updateArticleThemeMenu() {
let articleThemeMenu = NSMenu() let articleThemeMenu = NSMenu()
let defaultThemeItem = NSMenuItem() let defaultThemeItem = NSMenuItem()
@ -1433,6 +1436,7 @@ private extension MainWindowController {
} }
articleThemeMenuToolbarItem.menu = articleThemeMenu articleThemeMenuToolbarItem.menu = articleThemeMenu
articleThemePopUpButton?.menu = articleThemeMenu
} }
} }