// // DocHubToolbar.swift // DocHub // // Created by Tristan Juricek on 6/13/14. // Copyright (c) 2014 Perforce. All rights reserved. // import Foundation import AppKit // ToolbarIDs that I would make class properties let DocHubBackToolbarItemIdentifier = "DocHubBackToolbarItemIdentifier" let DocHubNextToolbarItemIdentifier = "DocHubNextToolbarItemIdentifier" let DocHubLibraryToolbarItemIdentifier = "DocHubLibraryToolbarItemIdentifier" // Defines the application toobar for DocHub. Should really only be one per // window. @objc class DocHubToolbarDelegate : NSObject, NSToolbarDelegate { let controller:AnyObject! init(mainController:AnyObject!) { controller = mainController super.init() } // Create a new toolbar item for the particular ID func toolbar(toolbar: NSToolbar!, itemForItemIdentifier itemIdentifier: String!, willBeInsertedIntoToolbar flag: Bool) -> NSToolbarItem! { var toolbarItem:NSToolbarItem? = nil switch(itemIdentifier) { case DocHubBackToolbarItemIdentifier: toolbarItem = createBack(); case DocHubNextToolbarItemIdentifier: toolbarItem = createNext(); case DocHubLibraryToolbarItemIdentifier: toolbarItem = createLibrary(); default: assert(false, "illegal toolbar item") } return toolbarItem! } func createBack() -> NSToolbarItem { let backItem = NSToolbarItem(itemIdentifier: DocHubBackToolbarItemIdentifier) backItem.label = "Back" backItem.image = NSImage(named: "icon_back16.png") return backItem } func createNext() -> NSToolbarItem { let nextItem = NSToolbarItem(itemIdentifier: DocHubNextToolbarItemIdentifier) nextItem.label = "Next" nextItem.image = NSImage(named: "icon_next16.png") return nextItem } func createLibrary() -> NSToolbarItem { let libraryItem = NSToolbarItem(itemIdentifier: DocHubLibraryToolbarItemIdentifier) libraryItem.label = "Library" libraryItem.paletteLabel = "Toggle Library" libraryItem.toolTip = "Open or close the leftmost panel" libraryItem.image = NSImage(named: "icon-library.png") libraryItem.enabled = true libraryItem.target = controller libraryItem.action = "toggleLibrary" return libraryItem } // Sent to discover the allowed item identifiers for a toolbar. func toolbarAllowedItemIdentifiers(toolbar: NSToolbar!) -> AnyObject[]! { return [ // DocHubBackToolbarItemIdentifier, // DocHubNextToolbarItemIdentifier, DocHubLibraryToolbarItemIdentifier ] } // Sent to discover the default item identifiers for a toolbar. func toolbarDefaultItemIdentifiers(toolbar: NSToolbar!) -> AnyObject[]! { return [ // DocHubBackToolbarItemIdentifier, // DocHubNextToolbarItemIdentifier, DocHubLibraryToolbarItemIdentifier ] } }