fractal/session/view/content/room_history/member_timestamp/
mod.rs1use adw::subclass::prelude::*;
2use gtk::{glib, prelude::*};
3
4pub mod row;
5
6use crate::session::model::Member;
7
8mod imp {
9 use std::cell::Cell;
10
11 use super::*;
12
13 #[derive(Debug, Default, glib::Properties)]
14 #[properties(wrapper_type = super::MemberTimestamp)]
15 pub struct MemberTimestamp {
16 #[property(get, construct_only)]
18 member: glib::WeakRef<Member>,
19 #[property(get, construct_only)]
23 timestamp: Cell<u64>,
24 }
25
26 #[glib::object_subclass]
27 impl ObjectSubclass for MemberTimestamp {
28 const NAME: &'static str = "ContentMemberTimestamp";
29 type Type = super::MemberTimestamp;
30 }
31
32 #[glib::derived_properties]
33 impl ObjectImpl for MemberTimestamp {}
34}
35
36glib::wrapper! {
37 pub struct MemberTimestamp(ObjectSubclass<imp::MemberTimestamp>);
39}
40
41impl MemberTimestamp {
42 pub fn new(member: &Member, timestamp: Option<u64>) -> Self {
45 glib::Object::builder()
46 .property("member", member)
47 .property("timestamp", timestamp.unwrap_or_default())
48 .build()
49 }
50}