1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files.git)
// DO NOT EDIT
use crate::AxisFlags;
use crate::DeviceToolType;
use glib::translate::*;
use std::fmt;
glib::wrapper! {
/// A physical tool associated to a [`Device`][crate::Device].
#[doc(alias = "GdkDeviceTool")]
pub struct DeviceTool(Object<ffi::GdkDeviceTool>);
match fn {
type_ => || ffi::gdk_device_tool_get_type(),
}
}
impl DeviceTool {
/// Gets the axes of the tool.
///
/// # Returns
///
/// the axes of @self
#[doc(alias = "gdk_device_tool_get_axes")]
#[doc(alias = "get_axes")]
pub fn axes(&self) -> AxisFlags {
unsafe { from_glib(ffi::gdk_device_tool_get_axes(self.to_glib_none().0)) }
}
/// Gets the hardware ID of this tool, or 0 if it's not known.
///
/// When non-zero, the identificator is unique for the given tool model,
/// meaning that two identical tools will share the same @hardware_id,
/// but will have different serial numbers (see
/// [`serial()`][Self::serial()]).
///
/// This is a more concrete (and device specific) method to identify
/// a [`DeviceTool`][crate::DeviceTool] than [`tool_type()`][Self::tool_type()],
/// as a tablet may support multiple devices with the same
/// [`DeviceToolType`][crate::DeviceToolType], but different hardware identificators.
///
/// # Returns
///
/// The hardware identificator of this tool.
#[doc(alias = "gdk_device_tool_get_hardware_id")]
#[doc(alias = "get_hardware_id")]
pub fn hardware_id(&self) -> u64 {
unsafe { ffi::gdk_device_tool_get_hardware_id(self.to_glib_none().0) }
}
/// Gets the serial number of this tool.
///
/// This value can be used to identify a physical tool
/// (eg. a tablet pen) across program executions.
///
/// # Returns
///
/// The serial ID for this tool
#[doc(alias = "gdk_device_tool_get_serial")]
#[doc(alias = "get_serial")]
pub fn serial(&self) -> u64 {
unsafe { ffi::gdk_device_tool_get_serial(self.to_glib_none().0) }
}
/// Gets the [`DeviceToolType`][crate::DeviceToolType] of the tool.
///
/// # Returns
///
/// The physical type for this tool. This can be used to
/// figure out what sort of pen is being used, such as an airbrush
/// or a pencil.
#[doc(alias = "gdk_device_tool_get_tool_type")]
#[doc(alias = "get_tool_type")]
pub fn tool_type(&self) -> DeviceToolType {
unsafe { from_glib(ffi::gdk_device_tool_get_tool_type(self.to_glib_none().0)) }
}
}
impl fmt::Display for DeviceTool {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str("DeviceTool")
}
}