// // DocumentControlViewController.swift // App // // Created by James Magahern on 9/22/20. // import UIKit class DocumentControlViewController: UIViewController { let documentControlsView = DocumentControlsView() let fontSizeAdjustView = FontSizeAdjustView() let findOnPageControlView = DocumentControlItemView() let navigationControlView = NavigationControlsView() let settingsView = DocumentControlItemView() let readabilityView = DocumentControlItemView() let darkModeView = DocumentControlItemView() let archiveView = DocumentControlItemView() var observations: [NSKeyValueObservation] = [] static public let preferredWidth = CGFloat(200.0) init(darkModeEnabled: Bool) { super.init(nibName: nil, bundle: nil) findOnPageControlView.label.text = "Find On Page" findOnPageControlView.imageView.image = UIImage(systemName: "magnifyingglass") settingsView.label.text = "Settings" settingsView.imageView.image = UIImage(systemName: "gear") readabilityView.label.text = "Reader Mode" readabilityView.imageView.image = UIImage(systemName: "doc.richtext") archiveView.label.text = "Archive.today" archiveView.imageView.image = UIImage(systemName: "shippingbox") if darkModeEnabled { darkModeView.label.text = "Disable Dark Mode" } else { darkModeView.label.text = "Enable Dark Mode" } darkModeView.imageView.image = DarkModeControls.buttonImage(forDarkModeState: darkModeEnabled) documentControlsView.stackView.addArrangedSubview(navigationControlView) documentControlsView.stackView.addArrangedSubview(fontSizeAdjustView) documentControlsView.stackView.addArrangedSubview(findOnPageControlView) documentControlsView.stackView.addArrangedSubview(darkModeView) documentControlsView.stackView.addArrangedSubview(readabilityView) documentControlsView.stackView.addArrangedSubview(archiveView) documentControlsView.stackView.addArrangedSubview(settingsView) for (i, view) in documentControlsView.stackView.arrangedSubviews.enumerated() { view.drawsBottomSeparator = (i < documentControlsView.stackView.arrangedSubviews.count - 1) } } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func loadView() { self.view = documentControlsView } override var preferredContentSize: CGSize { get { documentControlsView.stackView.sizeThatFits(CGSize(width: Self.preferredWidth, height: -1)) } set {} } }