summaryrefslogtreecommitdiff
path: root/src/river_protocols
diff options
context:
space:
mode:
authorMaxVerevkin <maxxverrr@gmail.com>2023-01-02 20:23:35 +0200
committerMax Verevkin <34583604+MaxVerevkin@users.noreply.github.com>2023-01-02 20:44:14 +0200
commiteebeed1f2774146c3d7df90c7a982f58428d4cff (patch)
treec038e06100fbd8b4debf29c5b077d51a56a5f98b /src/river_protocols
parent2570f39b5daf6e2a13b3973d47aa7c67fbb457fb (diff)
downloadi3bar-mango-eebeed1f2774146c3d7df90c7a982f58428d4cff.tar.gz
rewrite using wayrs
Diffstat (limited to 'src/river_protocols')
-rw-r--r--src/river_protocols/control.rs112
-rw-r--r--src/river_protocols/status.rs144
2 files changed, 0 insertions, 256 deletions
diff --git a/src/river_protocols/control.rs b/src/river_protocols/control.rs
deleted file mode 100644
index 7cce23d..0000000
--- a/src/river_protocols/control.rs
+++ /dev/null
@@ -1,112 +0,0 @@
-use wayland_client::globals::{BindError, GlobalList};
-use wayland_client::{protocol::wl_seat, Connection, Dispatch, QueueHandle};
-
-use protocol::{zriver_command_callback_v1, zriver_control_v1};
-
-#[derive(Debug, Clone)]
-pub struct RiverControlState {
- control: zriver_control_v1::ZriverControlV1,
-}
-
-impl RiverControlState {
- pub fn new<D>(globals: &GlobalList, qh: &QueueHandle<D>) -> Result<Self, BindError>
- where
- D: Dispatch<zriver_control_v1::ZriverControlV1, (), D> + 'static,
- {
- let control = globals.bind(qh, 1..=1, ())?;
- Ok(Self { control })
- }
-
- pub fn run_command<D, Args, Arg>(&self, qh: &QueueHandle<D>, seat: &wl_seat::WlSeat, args: Args)
- where
- D: Dispatch<zriver_command_callback_v1::ZriverCommandCallbackV1, RiverCommandCallbackData>
- + 'static,
- Args: IntoIterator<Item = Arg>,
- Arg: Into<String>,
- {
- for arg in args {
- self.control.add_argument(arg.into());
- }
- self.control
- .run_command(seat, qh, RiverCommandCallbackData {});
- }
-}
-
-pub trait RiverControlHandler: Sized {
- fn river_control_state(&mut self) -> &mut RiverControlState;
-
- fn command_failure(&mut self, conn: &Connection, qh: &QueueHandle<Self>, message: String);
-
- fn command_success(&mut self, conn: &Connection, qh: &QueueHandle<Self>, message: String);
-}
-
-#[derive(Debug)]
-pub struct RiverCommandCallbackData {
- // This is empty right now, but may be populated in the future.
-}
-
-#[macro_export]
-macro_rules! delegate_river_control {
- ($ty: ty) => {
- ::smithay_client_toolkit::reexports::client::delegate_dispatch!($ty: [
- $crate::river_protocols::control::protocol::zriver_control_v1::ZriverControlV1: ()
- ] => $crate::river_protocols::control::RiverControlState);
- ::smithay_client_toolkit::reexports::client::delegate_dispatch!($ty: [
- $crate::river_protocols::control::protocol::zriver_command_callback_v1::ZriverCommandCallbackV1: $crate::river_protocols::control::RiverCommandCallbackData
- ] => $crate::river_protocols::control::RiverControlState);
- };
-}
-
-impl<D> Dispatch<zriver_control_v1::ZriverControlV1, (), D> for RiverControlState
-where
- D: Dispatch<zriver_control_v1::ZriverControlV1, ()> + RiverControlHandler + 'static,
-{
- fn event(
- _: &mut D,
- _: &zriver_control_v1::ZriverControlV1,
- _: zriver_control_v1::Event,
- _: &(),
- _: &Connection,
- _: &QueueHandle<D>,
- ) {
- unreachable!("zriver_control_v1 has no events")
- }
-}
-
-impl<D> Dispatch<zriver_command_callback_v1::ZriverCommandCallbackV1, RiverCommandCallbackData, D>
- for RiverControlState
-where
- D: Dispatch<zriver_command_callback_v1::ZriverCommandCallbackV1, RiverCommandCallbackData>
- + RiverControlHandler
- + 'static,
-{
- fn event(
- data: &mut D,
- _callback: &zriver_command_callback_v1::ZriverCommandCallbackV1,
- event: zriver_command_callback_v1::Event,
- _udata: &RiverCommandCallbackData,
- conn: &Connection,
- qh: &QueueHandle<D>,
- ) {
- use zriver_command_callback_v1::Event;
- match event {
- Event::Success { output } => data.command_success(conn, qh, output),
- Event::Failure { failure_message } => data.command_success(conn, qh, failure_message),
- }
- }
-}
-
-pub mod protocol {
- #![allow(non_upper_case_globals)]
-
- use smithay_client_toolkit::reexports::client as wayland_client;
- use smithay_client_toolkit::reexports::client::protocol::*;
-
- pub mod __interfaces {
- use smithay_client_toolkit::reexports::client::protocol::__interfaces::*;
- wayland_scanner::generate_interfaces!("protocols/river-control-unstable-v1.xml");
- }
- use self::__interfaces::*;
-
- wayland_scanner::generate_client_code!("protocols/river-control-unstable-v1.xml");
-}
diff --git a/src/river_protocols/status.rs b/src/river_protocols/status.rs
deleted file mode 100644
index ad93279..0000000
--- a/src/river_protocols/status.rs
+++ /dev/null
@@ -1,144 +0,0 @@
-use wayland_client::{
- globals::{BindError, GlobalList},
- protocol::wl_output,
- Connection, Dispatch, QueueHandle,
-};
-
-use protocol::{zriver_output_status_v1, zriver_status_manager_v1};
-
-#[derive(Debug, Clone)]
-pub struct RiverStatusState {
- status_manager: zriver_status_manager_v1::ZriverStatusManagerV1,
-}
-
-impl RiverStatusState {
- pub fn new<D>(globals: &GlobalList, qh: &QueueHandle<D>) -> Result<Self, BindError>
- where
- D: Dispatch<zriver_status_manager_v1::ZriverStatusManagerV1, (), D> + 'static,
- {
- let status_manager = globals.bind(qh, 1..=4, ())?;
- Ok(Self { status_manager })
- }
-
- #[must_use = "The output status is destroyed if dropped"]
- pub fn new_output_status<D>(
- &mut self,
- qh: &QueueHandle<D>,
- output: &wl_output::WlOutput,
- ) -> RiverOutputStatus
- where
- D: Dispatch<zriver_status_manager_v1::ZriverStatusManagerV1, ()>
- + Dispatch<zriver_output_status_v1::ZriverOutputStatusV1, RiverStatusData>
- + 'static,
- {
- RiverOutputStatus(self.status_manager.get_river_output_status(
- output,
- qh,
- RiverStatusData {
- output: output.clone(),
- },
- ))
- }
-}
-
-pub trait RiverStatusHandler: Sized {
- fn river_status_state(&mut self) -> &mut RiverStatusState;
-
- fn focused_tags_updated(&mut self, output: &wl_output::WlOutput, focused: u32);
-
- fn urgent_tags_updated(&mut self, output: &wl_output::WlOutput, urgent: u32);
-
- fn views_tags_updated(&mut self, output: &wl_output::WlOutput, tags: Vec<u32>);
-
- fn layout_name_updated(&mut self, output: &wl_output::WlOutput, layout_name: Option<String>);
-}
-
-#[derive(Debug)]
-pub struct RiverOutputStatus(zriver_output_status_v1::ZriverOutputStatusV1);
-
-impl Drop for RiverOutputStatus {
- fn drop(&mut self) {
- self.0.destroy();
- }
-}
-
-#[macro_export]
-macro_rules! delegate_river_status {
- ($ty: ty) => {
- ::smithay_client_toolkit::reexports::client::delegate_dispatch!($ty: [
- $crate::river_protocols::status::protocol::zriver_status_manager_v1::ZriverStatusManagerV1: ()
- ] => $crate::river_protocols::status::RiverStatusState);
- ::smithay_client_toolkit::reexports::client::delegate_dispatch!($ty: [
- $crate::river_protocols::status::protocol::zriver_output_status_v1::ZriverOutputStatusV1: $crate::river_protocols::status::RiverStatusData
- ] => $crate::river_protocols::status::RiverStatusState);
- };
-}
-
-#[derive(Debug)]
-pub struct RiverStatusData {
- output: wl_output::WlOutput,
-}
-
-impl<D> Dispatch<zriver_status_manager_v1::ZriverStatusManagerV1, (), D> for RiverStatusState
-where
- D: Dispatch<zriver_status_manager_v1::ZriverStatusManagerV1, ()> + RiverStatusHandler + 'static,
-{
- fn event(
- _: &mut D,
- _: &zriver_status_manager_v1::ZriverStatusManagerV1,
- _: zriver_status_manager_v1::Event,
- _: &(),
- _: &Connection,
- _: &QueueHandle<D>,
- ) {
- unreachable!("zriver_status_manager_v1 has no events")
- }
-}
-
-impl<D> Dispatch<zriver_output_status_v1::ZriverOutputStatusV1, RiverStatusData, D>
- for RiverStatusState
-where
- D: Dispatch<zriver_output_status_v1::ZriverOutputStatusV1, RiverStatusData>
- + RiverStatusHandler
- + 'static,
-{
- fn event(
- data: &mut D,
- _: &zriver_output_status_v1::ZriverOutputStatusV1,
- event: zriver_output_status_v1::Event,
- udata: &RiverStatusData,
- _: &Connection,
- _: &QueueHandle<D>,
- ) {
- use zriver_output_status_v1::Event;
-
- match event {
- Event::FocusedTags { tags } => data.focused_tags_updated(&udata.output, tags),
- Event::UrgentTags { tags } => data.urgent_tags_updated(&udata.output, tags),
- Event::ViewTags { tags } => {
- let tags = tags
- .chunks_exact(4)
- .map(|bytes| u32::from_ne_bytes(bytes.try_into().unwrap()))
- .collect();
- data.views_tags_updated(&udata.output, tags);
- }
- Event::LayoutName { name } => data.layout_name_updated(&udata.output, Some(name)),
- Event::LayoutNameClear => data.layout_name_updated(&udata.output, None),
- }
- }
-}
-
-pub mod protocol {
- #![allow(non_upper_case_globals)]
-
- use smithay_client_toolkit::reexports::client as wayland_client;
- use smithay_client_toolkit::reexports::client::protocol::*;
-
- pub mod __interfaces {
- use smithay_client_toolkit::reexports::client::protocol::__interfaces::*;
- wayland_scanner::generate_interfaces!("protocols/river-status-unstable-v1.xml");
- }
- use self::__interfaces::*;
-
- wayland_scanner::generate_client_code!("protocols/river-status-unstable-v1.xml");
-}