mirror of
https://github.com/neon443/ShhShell.git
synced 2026-03-11 21:36:17 +00:00
added cursor type stuff
updated picker
This commit is contained in:
@@ -11,7 +11,7 @@ import SwiftTerm
|
||||
|
||||
struct AppSettings: Codable, Sendable, Equatable {
|
||||
var scrollback: CGFloat = 10_000
|
||||
var cursorStyle: CursorShape = .block
|
||||
var cursorType: CursorType = CursorType()
|
||||
var locationPersist: Bool = false
|
||||
var bellSound: Bool = false
|
||||
var bellHaptic: Bool = true
|
||||
@@ -23,6 +23,7 @@ struct AppSettings: Codable, Sendable, Equatable {
|
||||
enum CursorShape: Codable, CaseIterable, Equatable, CustomStringConvertible {
|
||||
case block
|
||||
case bar
|
||||
case underline
|
||||
|
||||
var description: String {
|
||||
switch self {
|
||||
@@ -30,10 +31,32 @@ enum CursorShape: Codable, CaseIterable, Equatable, CustomStringConvertible {
|
||||
return "Block"
|
||||
case .bar:
|
||||
return "Bar"
|
||||
case .underline:
|
||||
return "Underline"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct CursorType: Codable, Equatable, CustomStringConvertible {
|
||||
var cursorShape: CursorShape = .block
|
||||
var blink: Bool = true
|
||||
|
||||
var stCursorStyle: SwiftTerm.CursorStyle {
|
||||
switch cursorShape {
|
||||
case .block:
|
||||
return blink ? .blinkBlock : .steadyBlock
|
||||
case .bar:
|
||||
return blink ? .blinkBar : .steadyBar
|
||||
case .underline:
|
||||
return blink ? .blinkUnderline : .steadyUnderline
|
||||
}
|
||||
}
|
||||
|
||||
var description: String {
|
||||
return (blink ? "Blinking" : "Steady") + " " + cursorShape.description
|
||||
}
|
||||
}
|
||||
|
||||
enum TerminalFilter: Codable, CaseIterable, Equatable, CustomStringConvertible {
|
||||
case none
|
||||
case crt
|
||||
|
||||
@@ -26,12 +26,18 @@ struct SettingsView: View {
|
||||
}
|
||||
Slider(
|
||||
value: $hostsManager.settings.scrollback,
|
||||
in: 1_000...50_000,
|
||||
in: 100...10_000,
|
||||
step: 1_000.0
|
||||
)
|
||||
}
|
||||
|
||||
Picker("Cursor", selection: $hostsManager.settings.cursorStyle) {
|
||||
Picker("Blink", selection: $hostsManager.settings.cursorType.blink) {
|
||||
Text("Blink").tag(true)
|
||||
Text("Steady").tag(false)
|
||||
}
|
||||
.pickerStyle(.segmented)
|
||||
|
||||
Picker("Cursor", selection: $hostsManager.settings.cursorType.cursorShape) {
|
||||
ForEach(CursorShape.allCases, id: \.self) { type in
|
||||
Text(type.description).tag(type)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user