From 8a8a1e0d8b5b0fc6af62a918353b2e30ffbb3682 Mon Sep 17 00:00:00 2001 From: Dung Le Date: Sun, 1 Dec 2019 17:01:34 +0700 Subject: [PATCH] Fix #475: Add status bar to EditView hiearchy This makes the status bar a part of the edit view hierachy, causing it to no longer block the edit view. --- Sources/XiEditor/EditViewController.swift | 18 ++++------ Sources/XiEditor/Main.storyboard | 33 +++++++++++------ Sources/XiEditor/StatusBar.swift | 44 ++++++++++++++--------- xi-editor | 2 +- 4 files changed, 57 insertions(+), 40 deletions(-) diff --git a/Sources/XiEditor/EditViewController.swift b/Sources/XiEditor/EditViewController.swift index 63218ab9..c0047b64 100644 --- a/Sources/XiEditor/EditViewController.swift +++ b/Sources/XiEditor/EditViewController.swift @@ -82,7 +82,9 @@ class EditViewController: NSViewController, EditViewDataSource, FindDelegate, Sc @IBOutlet weak var editContainerView: EditContainerView! @IBOutlet var editView: EditView! @IBOutlet weak var shadowView: ShadowView! - + @IBOutlet weak var statusBar: StatusBar! + + @IBOutlet weak var statusBarHeight: NSLayoutConstraint! @IBOutlet weak var editViewHeight: NSLayoutConstraint! @IBOutlet weak var editViewWidth: NSLayoutConstraint! @@ -227,8 +229,6 @@ class EditViewController: NSViewController, EditViewDataSource, FindDelegate, Sc var hoverEvent: NSEvent? - let statusBar = StatusBar(frame: .zero) - // Popover that manages hover views. lazy var infoPopover: NSPopover = { let popover = NSPopover() @@ -245,6 +245,7 @@ class EditViewController: NSViewController, EditViewDataSource, FindDelegate, Sc override func viewDidLoad() { super.viewDidLoad() + statusBar.delegate = self shadowView.wantsLayer = true editView.dataSource = self editContainerView.contextMenu = contextMenu @@ -272,14 +273,7 @@ class EditViewController: NSViewController, EditViewDataSource, FindDelegate, Sc func setupStatusBar() { statusBar.hasUnifiedTitlebar = unifiedTitlebar - self.view.addSubview(statusBar) - - NSLayoutConstraint.activate([ - statusBar.heightAnchor.constraint(equalToConstant: statusBar.statusBarHeight), - statusBar.leadingAnchor.constraint(equalTo: editView.leadingAnchor), - statusBar.trailingAnchor.constraint(equalTo: editView.trailingAnchor), - statusBar.bottomAnchor.constraint(equalTo: editView.bottomAnchor) - ]) + hideStatusBar() } func updateGutterWidth() { @@ -494,10 +488,12 @@ class EditViewController: NSViewController, EditViewDataSource, FindDelegate, Sc override func uppercaseWord(_ sender: Any?) { xiView.uppercase() + self.showStatusBar() } override func lowercaseWord(_ sender: Any?) { xiView.lowercase() + self.hideStatusBar() } override func capitalizeWord(_ sender: Any?) { diff --git a/Sources/XiEditor/Main.storyboard b/Sources/XiEditor/Main.storyboard index c810bd06..1dfe620d 100644 --- a/Sources/XiEditor/Main.storyboard +++ b/Sources/XiEditor/Main.storyboard @@ -1,8 +1,8 @@ - + - + @@ -61,27 +61,36 @@ + + + + + + + + + - + - + @@ -92,6 +101,8 @@ + + @@ -121,7 +132,7 @@ DQ