mirror of
https://codeberg.org/scip/swayipc.git
synced 2026-08-23 22:34:20 +02:00
add Node.Is* predicates to comfortably check node type (#4)
This commit is contained in:
30
node.go
30
node.go
@@ -6,11 +6,11 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
NodeTypeRoot = iota + 1 // A root node
|
||||
NodeTypeOutput // An output node
|
||||
NodeTypeWorkspace // A workspace
|
||||
NodeTypeCon // A container node (containing more nodes)
|
||||
NodeTypeFloating // A floating node
|
||||
NodeTypeRoot = "root"
|
||||
NodeTypeOutput = "output"
|
||||
NodeTypeWorkspace = "workspace"
|
||||
NodeTypeCon = "con"
|
||||
NodeTypeFloating = "floating_con"
|
||||
)
|
||||
|
||||
// Node can be an output, a workspace, a container or a container
|
||||
@@ -86,6 +86,26 @@ func (node *Node) FindCurrentWorkspace() string {
|
||||
return searchCurrentWorkspace(node.Nodes)
|
||||
}
|
||||
|
||||
func (node *Node) IsRoot() bool {
|
||||
return node.Type == NodeTypeRoot
|
||||
}
|
||||
|
||||
func (node *Node) IsOutput() bool {
|
||||
return node.Type == NodeTypeOutput
|
||||
}
|
||||
|
||||
func (node *Node) IsWorkspace() bool {
|
||||
return node.Type == NodeTypeWorkspace
|
||||
}
|
||||
|
||||
func (node *Node) IsContainer() bool {
|
||||
return node.Type == NodeTypeCon
|
||||
}
|
||||
|
||||
func (node *Node) IsFloating() bool {
|
||||
return node.Type == NodeTypeFloating
|
||||
}
|
||||
|
||||
// searchCurrentWorkspace search for current workspace
|
||||
func searchCurrentWorkspace(nodes []*Node) string {
|
||||
for _, node := range nodes {
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
VERSION = "v2.1.0"
|
||||
VERSION = "v2.1.1"
|
||||
|
||||
IpcHeaderSize = 14
|
||||
IpcMagix = "i3-ipc"
|
||||
|
||||
Reference in New Issue
Block a user