import Foundation
|
import AlignerCore
|
|
enum QuickSwitchCloseRequest {
|
case app(QuickSwitchAppShelfItemViewModel)
|
case window(QuickSwitchWindowCardViewModel)
|
|
var kindDescription: String {
|
switch self {
|
case .app:
|
return "app"
|
case .window:
|
return "window"
|
}
|
}
|
|
var appGroupIndex: Int {
|
switch self {
|
case .app(let item):
|
return item.appGroupIndex
|
case .window(let card):
|
return card.appGroupIndex
|
}
|
}
|
|
var windowID: UInt32? {
|
switch self {
|
case .app:
|
return nil
|
case .window(let card):
|
return card.window.id
|
}
|
}
|
|
var appName: String {
|
switch self {
|
case .app(let item):
|
return item.app.name
|
case .window(let card):
|
return card.window.app.name
|
}
|
}
|
|
var title: String {
|
switch self {
|
case .app(let item):
|
return item.app.name
|
case .window(let card):
|
let trimmedTitle = card.window.title.trimmingCharacters(in: .whitespacesAndNewlines)
|
return trimmedTitle.isEmpty ? "Untitled Window" : trimmedTitle
|
}
|
}
|
|
var app: AlignerApp {
|
switch self {
|
case .app(let item):
|
return item.app
|
case .window(let card):
|
return card.window.app
|
}
|
}
|
|
var window: AlignerWindow? {
|
switch self {
|
case .app:
|
return nil
|
case .window(let card):
|
return card.window
|
}
|
}
|
}
|