You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
936 B
37 lines
936 B
use gtk::{glib, prelude::*, subclass::prelude::*}; |
|
|
|
mod imp { |
|
use std::cell::RefCell; |
|
|
|
use super::*; |
|
|
|
#[derive(Debug, Default, glib::Properties)] |
|
#[properties(wrapper_type = super::DummyObject)] |
|
pub struct DummyObject { |
|
/// The identifier of this item. |
|
#[property(get, set)] |
|
pub id: RefCell<String>, |
|
} |
|
|
|
#[glib::object_subclass] |
|
impl ObjectSubclass for DummyObject { |
|
const NAME: &'static str = "DummyObject"; |
|
type Type = super::DummyObject; |
|
} |
|
|
|
#[glib::derived_properties] |
|
impl ObjectImpl for DummyObject {} |
|
} |
|
|
|
glib::wrapper! { |
|
/// A dummy GObject. |
|
/// |
|
/// It can be used for example to add extra widgets in a list model and can be identified with its ID. |
|
pub struct DummyObject(ObjectSubclass<imp::DummyObject>); |
|
} |
|
|
|
impl DummyObject { |
|
pub fn new(id: &str) -> Self { |
|
glib::Object::builder().property("id", id).build() |
|
} |
|
}
|
|
|