-
Notifications
You must be signed in to change notification settings - Fork 1
files core monitor networkgraphview swift 724d17f6
ventaphobia edited this page Apr 23, 2026
·
1 revision
- Area: Core app.
- This page records the file's current repository role, source metadata, and recent commit history.
- Review nearby tests and commit pages before changing this file.
| Field | Value |
|---|---|
| Source path | Core-Monitor/NetworkGraphView.swift |
| Wiki area | Core app |
| Exists in current checkout | True |
| Size | 1832 bytes |
| Binary | False |
| Line count | 55 |
| Extension | .swift |
AppKit
| Kind | Name | Line |
|---|---|---|
| class | NetworkGraphView |
8 |
| func | push |
16 |
| Commit | Date | Subject |
|---|---|---|
2664fd1 |
2026-04-11 | Update Core Monitor |
011232b |
2026-04-11 | Update website install video |
- Prefer focused changes that respect the ownership described above.
- If this file touches helper trust, SMC writes, startup, or permissions, update the relevant support docs and tests.
- If this file is generated or an asset manifest, verify the producing workflow instead of hand-editing generated payloads.
// NetworkGraphView.swift
// CoreMonitor — scrolling bar-graph of network throughput.
//
// 60×20pt view containing ~20 vertical bars.
// Bars are cyan (#00D0FF) on black, newest bar on the right.
import AppKit
final class NetworkGraphView: NSView {
var theme: TouchBarTheme = .dark {
didSet { needsDisplay = true }
}
/// Ring buffer of normalised values [0.0 – 1.0], newest last.
private var samples: [CGFloat] = Array(repeating: 0, count: TB.graphBarCount)
func push(_ normalised: CGFloat) {
samples.removeFirst()
samples.append(min(max(normalised, 0), 1))
needsDisplay = true
}
override var intrinsicContentSize: NSSize {
NSSize(width: TB.graphW, height: TB.graphH)
}
override func draw(_ dirtyRect: NSRect) {
let background = NSBezierPath(roundedRect: bounds, xRadius: 5, yRadius: 5)
theme.graphBackgroundColor.setFill()
background.fill()
theme.barOutlineColor.setStroke()
background.lineWidth = 1
background.stroke()
let count = samples.count
let insetBounds = bounds.insetBy(dx: 4, dy: 4)
let barW = insetBounds.width / CGFloat(max(count, 1))
let maxH = insetBounds.height
for (i, val) in samples.enumerated() {
- Home
- Start Here
- Product Overview
- Runtime Architecture
- Monitoring Pipeline
- Fan Control
- Privileged Helper
- Touch Bar
- Release Automation
- Security Model
- File Index (279)
- Every Commit (401)
- Chronological Change Log
- Removed Parts
- All Deleted Paths
- Branches And Tags
- Wiki Manifest
- Start Here
- Product Overview
- Source Map
- Runtime Architecture
- App Startup And Lifecycle
- Dashboard Architecture
- Menu Bar Architecture
- Monitoring Pipeline
- Snapshot Trends And Freshness
- CPU GPU Memory Disk Network
- Battery Power And Thermals
- SMC And Apple Silicon
- Fan Control
- Custom Fan Curves
- Privileged Helper
- XPC Trust Boundary
- Helper Diagnostics
- Touch Bar Architecture
- Touch Bar Customization
- Weather And Location
- Privacy And Permissions
- Onboarding And Help
- Legacy Alerts
- Kernel Panic Weird Mode