mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-03-07 11:59:59 +03:00
* Propose an explicit .rustfnt.toml Use 2024 style, 4 spaces for tabs and epand the default width a tad * Auto-format the existing code with new rules
68 lines
1.9 KiB
Rust
68 lines
1.9 KiB
Rust
use std::sync::OnceLock;
|
|
|
|
use adw::prelude::*;
|
|
use adw::subclass::prelude::*;
|
|
use glib::subclass::InitializingObject;
|
|
use gtk::{
|
|
Button, CompositeTemplate, Text,
|
|
glib::{self, subclass::Signal},
|
|
template_callbacks,
|
|
};
|
|
|
|
#[derive(CompositeTemplate, Default)]
|
|
#[template(resource = "/de/feschber/LanMouse/fingerprint_window.ui")]
|
|
pub struct FingerprintWindow {
|
|
#[template_child]
|
|
pub description: TemplateChild<Text>,
|
|
#[template_child]
|
|
pub fingerprint: TemplateChild<Text>,
|
|
#[template_child]
|
|
pub confirm_button: TemplateChild<Button>,
|
|
}
|
|
|
|
#[glib::object_subclass]
|
|
impl ObjectSubclass for FingerprintWindow {
|
|
const NAME: &'static str = "FingerprintWindow";
|
|
const ABSTRACT: bool = false;
|
|
|
|
type Type = super::FingerprintWindow;
|
|
type ParentType = adw::Window;
|
|
|
|
fn class_init(klass: &mut Self::Class) {
|
|
klass.bind_template();
|
|
klass.bind_template_callbacks();
|
|
}
|
|
|
|
fn instance_init(obj: &InitializingObject<Self>) {
|
|
obj.init_template();
|
|
}
|
|
}
|
|
|
|
#[template_callbacks]
|
|
impl FingerprintWindow {
|
|
#[template_callback]
|
|
fn handle_confirm(&self, _button: Button) {
|
|
let desc = self.description.text().as_str().trim().to_owned();
|
|
let fp = self.fingerprint.text().as_str().trim().to_owned();
|
|
self.obj().emit_by_name("confirm-clicked", &[&desc, &fp])
|
|
}
|
|
}
|
|
|
|
impl ObjectImpl for FingerprintWindow {
|
|
fn signals() -> &'static [Signal] {
|
|
static SIGNALS: OnceLock<Vec<Signal>> = OnceLock::new();
|
|
SIGNALS.get_or_init(|| {
|
|
vec![
|
|
Signal::builder("confirm-clicked")
|
|
.param_types([String::static_type(), String::static_type()])
|
|
.build(),
|
|
]
|
|
})
|
|
}
|
|
}
|
|
|
|
impl WidgetImpl for FingerprintWindow {}
|
|
impl WindowImpl for FingerprintWindow {}
|
|
impl ApplicationWindowImpl for FingerprintWindow {}
|
|
impl AdwWindowImpl for FingerprintWindow {}
|