2023-06-30 21:34:07 -05:00
|
|
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
//
|
|
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
|
2023-07-04 21:27:23 -05:00
|
|
|
use smithay::{desktop::Window, output::Output};
|
2023-06-30 21:34:07 -05:00
|
|
|
|
2023-07-01 19:06:37 -05:00
|
|
|
#[derive(Debug, Hash, PartialEq, Eq, Clone, serde::Serialize, serde::Deserialize)]
|
2023-06-30 21:34:07 -05:00
|
|
|
pub struct TagId(String);
|
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct Tag {
|
|
|
|
pub id: TagId,
|
|
|
|
pub windows: Vec<Window>,
|
2023-07-04 21:27:23 -05:00
|
|
|
pub output: Output,
|
2023-06-30 21:34:07 -05:00
|
|
|
// TODO: layout
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Default)]
|
|
|
|
pub struct TagState {
|
|
|
|
pub tags: Vec<Tag>,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl TagState {
|
|
|
|
pub fn new() -> Self {
|
|
|
|
Default::default()
|
|
|
|
}
|
|
|
|
}
|