mirror of
https://github.com/qvacua/vimr.git
synced 2024-11-24 11:37:32 +03:00
109 lines
3.3 KiB
Swift
109 lines
3.3 KiB
Swift
/**
|
|
* Tae Won Ha - http://taewon.de - @hataewon
|
|
* See LICENSE
|
|
*/
|
|
|
|
import Cocoa
|
|
import PureLayout
|
|
|
|
@NSApplicationMain
|
|
class AppDelegate: NSObject, NSApplicationDelegate, WorkspaceDelegate {
|
|
|
|
@IBOutlet weak var window: NSWindow!
|
|
|
|
fileprivate var workspace: Workspace = Workspace(mainView: NSView())
|
|
|
|
@IBAction func toggleBars(_ sender: AnyObject!) {
|
|
workspace.toggleAllTools()
|
|
}
|
|
|
|
@IBAction func toggleButtons(_ sender: AnyObject!) {
|
|
workspace.toggleToolButtons()
|
|
}
|
|
|
|
func applicationDidFinishLaunching(_ aNotification: Notification) {
|
|
let contentView = self.window.contentView!
|
|
let workspace = Workspace(mainView: DummyView(NSColor.white))
|
|
self.workspace = workspace
|
|
|
|
contentView.addSubview(workspace)
|
|
workspace.autoPinEdgesToSuperviewEdges()
|
|
|
|
// workspace.append(tool: dummyTool(title: "Top-1", color: .yellow), location: .top)
|
|
|
|
workspace.append(tool: dummyTool(title: "Right-1", color: .magenta), location: .right)
|
|
workspace.append(tool: dummyTool(title: "Right-2", color: .black), location: .right)
|
|
|
|
let menuItems = [
|
|
NSMenuItem(title: "First", action: nil, keyEquivalent: ""),
|
|
NSMenuItem(title: "Second", action: nil, keyEquivalent: ""),
|
|
NSMenuItem(title: "Third", action: nil, keyEquivalent: ""),
|
|
NSMenuItem(title: "Fourth", action: nil, keyEquivalent: ""),
|
|
NSMenuItem(title: "Fifth", action: nil, keyEquivalent: ""),
|
|
]
|
|
|
|
let tool = dummyTool(title: "Left-1", color: .blue, customToolbar: DummyView(.orange), customMenu: menuItems)
|
|
|
|
workspace.append(tool: tool, location: .left)
|
|
workspace.append(tool: dummyTool(title: "Left-2", color: .red), location: .left)
|
|
workspace.append(tool: dummyTool(title: "Left-3", color: .gray), location: .left)
|
|
|
|
workspace.append(tool: dummyTool(title: "Bottom-1", color: .cyan), location: .bottom)
|
|
workspace.append(tool: dummyTool(title: "Bottom-2", color: .blue), location: .bottom)
|
|
|
|
tool.toggle()
|
|
|
|
// FIXME: GH-422
|
|
workspace.delegate = self
|
|
}
|
|
|
|
fileprivate func dummyTool(title: String,
|
|
color: NSColor,
|
|
customToolbar: NSView? = nil,
|
|
customMenu: [NSMenuItem] = []) -> WorkspaceTool
|
|
{
|
|
let config = WorkspaceTool.Config(title: title,
|
|
view: DummyView(color),
|
|
minimumDimension: 150,
|
|
withInnerToolbar: true,
|
|
customToolbar: customToolbar,
|
|
customMenuItems: customMenu)
|
|
|
|
return WorkspaceTool(config)
|
|
}
|
|
|
|
func resizeWillStart(workspace: Workspace, tool: WorkspaceTool?) {
|
|
NSLog("\(#function)")
|
|
}
|
|
|
|
func resizeDidEnd(workspace: Workspace, tool: WorkspaceTool?) {
|
|
NSLog("\(#function)")
|
|
}
|
|
|
|
func toggled(tool: WorkspaceTool) {
|
|
NSLog("\(#function)")
|
|
}
|
|
|
|
func moved(tool: WorkspaceTool) {
|
|
NSLog("\(#function)")
|
|
}
|
|
}
|
|
|
|
class DummyView: NSView {
|
|
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
init(_ color: NSColor) {
|
|
super.init(frame: .zero)
|
|
self.configureForAutoLayout()
|
|
self.wantsLayer = true
|
|
self.layer?.backgroundColor = color.cgColor
|
|
}
|
|
|
|
override func mouseDown(with event: NSEvent) {
|
|
NSLog("mouse down")
|
|
}
|
|
}
|