1
0
Fork 0
forked from wry/wry

wayland: use code generation for wl_usr event handlers

This commit is contained in:
Julian Orth 2024-07-24 15:56:18 +02:00
parent b359b2648d
commit 084fe50259
49 changed files with 554 additions and 524 deletions

View file

@ -1,6 +1,6 @@
use {
crate::{
utils::buffd::{MsgParser, MsgParserError},
object::Version,
wire::{wl_surface::*, WlSurfaceId},
wl_usr::{
usr_ifs::{usr_wl_buffer::UsrWlBuffer, usr_wl_callback::UsrWlCallback},
@ -8,12 +8,13 @@ use {
UsrCon,
},
},
std::rc::Rc,
std::{convert::Infallible, rc::Rc},
};
pub struct UsrWlSurface {
pub id: WlSurfaceId,
pub con: Rc<UsrCon>,
pub version: Version,
}
impl UsrWlSurface {
@ -41,35 +42,39 @@ impl UsrWlSurface {
pub fn commit(&self) {
self.con.request(Commit { self_id: self.id });
}
}
fn enter(&self, parser: MsgParser<'_, '_>) -> Result<(), MsgParserError> {
let _ev: Enter = self.con.parse(self, parser)?;
impl WlSurfaceEventHandler for UsrWlSurface {
type Error = Infallible;
fn enter(&self, _ev: Enter, _slf: &Rc<Self>) -> Result<(), Self::Error> {
Ok(())
}
fn leave(&self, parser: MsgParser<'_, '_>) -> Result<(), MsgParserError> {
let _ev: Leave = self.con.parse(self, parser)?;
fn leave(&self, _ev: Leave, _slf: &Rc<Self>) -> Result<(), Self::Error> {
Ok(())
}
fn preferred_buffer_scale(&self, parser: MsgParser<'_, '_>) -> Result<(), MsgParserError> {
let _ev: PreferredBufferScale = self.con.parse(self, parser)?;
fn preferred_buffer_scale(
&self,
_ev: PreferredBufferScale,
_slf: &Rc<Self>,
) -> Result<(), Self::Error> {
Ok(())
}
fn preferred_buffer_transform(&self, parser: MsgParser<'_, '_>) -> Result<(), MsgParserError> {
let _ev: PreferredBufferTransform = self.con.parse(self, parser)?;
fn preferred_buffer_transform(
&self,
_ev: PreferredBufferTransform,
_slf: &Rc<Self>,
) -> Result<(), Self::Error> {
Ok(())
}
}
usr_object_base! {
UsrWlSurface, WlSurface;
ENTER => enter,
LEAVE => leave,
PREFERRED_BUFFER_SCALE => preferred_buffer_scale,
PREFERRED_BUFFER_TRANSFORM => preferred_buffer_transform,
self = UsrWlSurface = WlSurface;
version = self.version;
}
impl UsrObject for UsrWlSurface {