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
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use crate::AxisFlags;
use crate::DeviceToolType;
use glib::object::ObjectType as ObjectType_;
use glib::translate::*;
use glib::StaticType;
use std::fmt;
glib::wrapper! {
///
#[doc(alias = "GdkDeviceTool")]
pub struct DeviceTool(Object<ffi::GdkDeviceTool>);
match fn {
type_ => || ffi::gdk_device_tool_get_type(),
}
}
impl DeviceTool {
/// 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 having 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 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)) }
}
pub fn axes(&self) -> AxisFlags {
glib::ObjectExt::property(self, "axes")
}
}
impl fmt::Display for DeviceTool {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str("DeviceTool")
}
}