diff options
author | 2019-01-02 01:07:46 +0530 | |
---|---|---|
committer | 2019-01-14 14:52:30 +0530 | |
commit | 7934d6b0c798924c859a4b0d55f6561d48f6eaff (patch) | |
tree | 31ef34d4b653629eb6abfd79a8663fea3e6eda64 /WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift | |
parent | macOS: Capitalize All Rights Reserved (diff) | |
download | wireguard-apple-7934d6b0c798924c859a4b0d55f6561d48f6eaff.tar.xz wireguard-apple-7934d6b0c798924c859a4b0d55f6561d48f6eaff.zip |
macOS: Manage tunnels window: Tunnels list
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r-- | WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift new file mode 100644 index 0000000..47658d6 --- /dev/null +++ b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: MIT +// Copyright © 2018 WireGuard LLC. All Rights Reserved. + +import Cocoa + +class TunnelsListTableViewController: NSViewController { + + let tunnelsManager: TunnelsManager + + let tableView: NSTableView = { + let tableView = NSTableView() + tableView.addTableColumn(NSTableColumn(identifier: NSUserInterfaceItemIdentifier("TunnelsList"))) + tableView.headerView = nil + tableView.rowSizeStyle = .medium + return tableView + }() + + init(tunnelsManager: TunnelsManager) { + self.tunnelsManager = tunnelsManager + super.init(nibName: nil, bundle: nil) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func loadView() { + tableView.dataSource = self + tableView.delegate = self + + let scrollView = NSScrollView() + scrollView.hasVerticalScroller = true + scrollView.autohidesScrollers = true + + let clipView = NSClipView() + clipView.documentView = tableView + scrollView.contentView = clipView + + self.view = scrollView + } +} + +extension TunnelsListTableViewController: NSTableViewDataSource { + func numberOfRows(in tableView: NSTableView) -> Int { + return tunnelsManager.numberOfTunnels() + } +} + +extension TunnelsListTableViewController: NSTableViewDelegate { + func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { + let cell: TunnelListCell = tableView.dequeueReusableCell() + cell.tunnel = tunnelsManager.tunnel(at: row) + return cell + } +} |