import Cocoa
-
-private extension Selector {
-
- static let reloadContent = #selector(BroserWindowController.reloadContent(_:))
- static let deleteCacheAndReload = #selector(BroserWindowController.deleteCacheAndReload(_:))
- static let clearQuestList = #selector(BroserWindowController.clearQuestList(_:))
- static let selectView = #selector(BroserWindowController.selectView(_:))
- static let changeMainTab = #selector(BroserWindowController.changeMainTab(_:))
- static let screenShot = #selector(BroserWindowController.screenShot(_:))
- static let toggleAnchorageSize = #selector(BroserWindowController.toggleAnchorageSize(_:))
- static let showHideCombinedView = #selector(BroserWindowController.showHideCombinedView(_:))
- static let fleetListAbove = #selector(BroserWindowController.fleetListAbove(_:))
- static let fleetListBelow = #selector(BroserWindowController.fleetListBelow(_:))
- static let fleetListDivide = #selector(BroserWindowController.fleetListDivide(_:))
- static let fleetListSimple = #selector(BroserWindowController.fleetListSimple(_:))
- static let reorderToDoubleLine = #selector(BroserWindowController.reorderToDoubleLine(_:))
- static let reorderToLeftToRight = #selector(BroserWindowController.reorderToLeftToRight(_:))
- static let selectNextFleet = #selector(BroserWindowController.selectNextFleet(_:))
- static let selectPreviousFleet = #selector(BroserWindowController.selectPreviousFleet(_:))
- static let changeSakutekiCalculator = #selector(BroserWindowController.changeSakutekiCalculator(_:))
-}
-
final class BroserWindowController: NSWindowController {
enum FleetViewPosition: Int {
case oldStyle = 0xffffffff
}
- @objc class func keyPathsForValuesAffectingFlagShipName() -> Set<String> {
+ @objc override class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String> {
- return [#keyPath(flagShipID)]
+ switch key {
+
+ case #keyPath(flagShipName): return [#keyPath(flagShipID)]
+
+ default: return []
+ }
}
@objc let managedObjectContext = ServerDataStore.default.context
@IBOutlet weak var placeholder: NSView!
@IBOutlet weak var combinedViewPlaceholder: NSView!
@IBOutlet weak var deckPlaceholder: NSView!
+ @IBOutlet weak var stokerContainer: NSView!
@IBOutlet weak var resourcePlaceholder: NSView!
@IBOutlet weak var ancherageRepariTimerPlaceholder: NSView!
@IBOutlet weak var informations: NSTabView!
private var fleetViewPosition: FleetViewPosition = .above
private var isCombinedMode = false
+ private var isExtShpMode = false
// MARK: - Function
override func windowDidLoad() {
fleetViewController.enableAnimation = false
fleetViewController.shipOrder = UserDefaults.standard[.fleetViewShipOrder]
fleetViewController.enableAnimation = true
+ fleetViewController.delegate = self
bind(NSBindingName(rawValue: #keyPath(flagShipID)), to: deckContoller, withKeyPath: "selection.ship_0", options: nil)
if event.deltaX > 0 {
showCombinedView()
-
}
if event.deltaX < 0 {
hideCombinedView()
-
}
}
viewController.view.frame = view.frame
viewController.view.autoresizingMask = view.autoresizingMask
- self.window?.contentView?.replaceSubview(view, with: viewController.view)
+ view.superview?.replaceSubview(view, with: viewController.view)
}
private func showCombinedView() {
@IBAction func clearQuestList(_ sender: AnyObject?) {
let store = ServerDataStore.oneTimeEditor()
- store.quests().forEach { store.delete($0) }
+ store.quests().forEach(store.delete)
}
@IBAction func selectView(_ sender: AnyObject?) {
guard let action: Selector = menuItem.action else { return false }
switch action {
- case Selector.reloadContent, Selector.screenShot, Selector.deleteCacheAndReload:
+
+ case #selector(BroserWindowController.reloadContent(_:)),
+ #selector(BroserWindowController.screenShot(_:)),
+ #selector(BroserWindowController.deleteCacheAndReload(_:)):
+
return gameViewController.validateMenuItem(menuItem)
- case Selector.selectView, Selector.selectNextFleet, Selector.selectPreviousFleet:
+ case #selector(BroserWindowController.selectView(_:)),
+ #selector(BroserWindowController.selectNextFleet(_:)),
+ #selector(BroserWindowController.selectPreviousFleet(_:)):
+
return true
- case Selector.fleetListAbove:
+ case #selector(BroserWindowController.fleetListAbove(_:)):
menuItem.state = (fleetViewPosition == .above ? .on : .off)
return true
- case Selector.fleetListBelow:
+ case #selector(BroserWindowController.fleetListBelow(_:)):
menuItem.state = (fleetViewPosition == .below ? .on : .off)
return true
- case Selector.fleetListDivide:
+ case #selector(BroserWindowController.fleetListDivide(_:)):
menuItem.state = (fleetViewPosition == .divided ? .on : .off)
return true
- case Selector.fleetListSimple:
+ case #selector(BroserWindowController.fleetListSimple(_:)):
menuItem.state = (fleetViewPosition == .oldStyle ? .on : .off)
return true
- case Selector.reorderToDoubleLine:
+ case #selector(BroserWindowController.reorderToDoubleLine(_:)):
menuItem.state = (fleetViewController.shipOrder == .doubleLine ? .on : .off)
return true
- case Selector.reorderToLeftToRight:
+ case #selector(BroserWindowController.reorderToLeftToRight(_:)):
menuItem.state = (fleetViewController.shipOrder == .leftToRight ? .on: .off)
return true
- case Selector.clearQuestList:
+ case #selector(BroserWindowController.clearQuestList(_:)):
return true
- case Selector.showHideCombinedView:
+ case #selector(BroserWindowController.showHideCombinedView(_:)):
if isCombinedMode {
- menuItem.title = NSLocalizedString("Hide Combined View", comment: "View menu, hide combined view")
+ menuItem.title = LocalizedStrings.hideCombinedView.string
} else {
- menuItem.title = NSLocalizedString("Show Combined View", comment: "View menu, show combined view")
+ menuItem.title = LocalizedStrings.showCombinedView.string
}
if fleetViewPosition == .oldStyle { return false }
return true
- case Selector.toggleAnchorageSize:
+ case #selector(BroserWindowController.toggleAnchorageSize(_:)):
return true
- case Selector.changeSakutekiCalculator:
+ case #selector(BroserWindowController.changeSakutekiCalculator(_:)):
return fleetViewController.validateMenuItem(menuItem)
default:
newController.shipOrder = fleetViewController.shipOrder
replace(fleetViewController.view, with: newController)
fleetViewController = newController
+ fleetViewController.delegate = self
}
private func windowHeightForFleetViewPosition(position newPosition: FleetViewPosition) -> CGFloat {
}
+extension BroserWindowController: FleetViewControllerDelegate {
+
+ func changeShowsExtShip(_ fleetViewController: FleetViewController, showsExtShip: Bool) {
+
+ guard self.fleetViewController == fleetViewController else { return }
+
+ if isExtShpMode && !showsExtShip {
+
+ // hide
+ let diffHeight = fleetViewController.shipViewSize.height
+
+ var iFrame = informations.frame
+ iFrame.origin.y -= diffHeight
+ iFrame.size.height += diffHeight
+ informations.animator().frame = iFrame
+
+ var sFrame = stokerContainer.frame
+ sFrame.origin.y -= diffHeight
+ stokerContainer.animator().frame = sFrame
+
+ isExtShpMode = false
+
+ } else if !isExtShpMode && showsExtShip {
+
+ //show
+ let diffHeight = fleetViewController.shipViewSize.height
+
+ var iFrame = informations.frame
+ iFrame.origin.y += diffHeight
+ iFrame.size.height -= diffHeight
+ informations.animator().frame = iFrame
+
+ var sFrame = stokerContainer.frame
+ sFrame.origin.y += diffHeight
+ stokerContainer.animator().frame = sFrame
+
+ isExtShpMode = true
+ }
+ }
+}
+
@available(OSX 10.12.2, *)
private var mainTouchBars: [Int: NSTouchBar] = [:]
@available(OSX 10.12.2, *)
if let mainTouchBar = mainTouchBar { return mainTouchBar }
- var array: NSArray?
- Bundle.main.loadNibNamed(NSNib.Name("BroswerTouchBar"), owner: self, topLevelObjects: &array)
+ Bundle.main.loadNibNamed(NSNib.Name("BroswerTouchBar"), owner: self, topLevelObjects: nil)
shipTypeSegment.bind(.selectedIndex,
to: tabViewItemViewControllers[0],