Skip to content

Commit 3a30194

Browse files
sdroegebilelmoussaoui
authored andcommitted
gdk: Generate new ScrollRelativeDirection enum
1 parent f686c1c commit 3a30194

File tree

4 files changed

+137
-7
lines changed

4 files changed

+137
-7
lines changed

gdk4/Gir.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ generate = [
5353
"Gdk.ProximityEvent",
5454
"Gdk.ScrollDirection",
5555
"Gdk.ScrollEvent",
56+
"Gdk.ScrollRelativeDirection",
5657
"Gdk.ScrollUnit",
5758
"Gdk.SeatCapabilities",
5859
"Gdk.SubpixelLayout",

gdk4/src/auto/enums.rs

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2436,6 +2436,124 @@ impl From<ScrollDirection> for glib::Value {
24362436
}
24372437
}
24382438

2439+
#[cfg(feature = "v4_20")]
2440+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2441+
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2442+
#[non_exhaustive]
2443+
#[doc(alias = "GdkScrollRelativeDirection")]
2444+
pub enum ScrollRelativeDirection {
2445+
#[doc(alias = "GDK_SCROLL_RELATIVE_DIRECTION_IDENTICAL")]
2446+
Identical,
2447+
#[doc(alias = "GDK_SCROLL_RELATIVE_DIRECTION_INVERTED")]
2448+
Inverted,
2449+
#[doc(alias = "GDK_SCROLL_RELATIVE_DIRECTION_UNKNOWN")]
2450+
Unknown,
2451+
#[doc(hidden)]
2452+
__Unknown(i32),
2453+
}
2454+
2455+
#[cfg(feature = "v4_20")]
2456+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2457+
#[doc(hidden)]
2458+
impl IntoGlib for ScrollRelativeDirection {
2459+
type GlibType = ffi::GdkScrollRelativeDirection;
2460+
2461+
#[inline]
2462+
fn into_glib(self) -> ffi::GdkScrollRelativeDirection {
2463+
match self {
2464+
Self::Identical => ffi::GDK_SCROLL_RELATIVE_DIRECTION_IDENTICAL,
2465+
Self::Inverted => ffi::GDK_SCROLL_RELATIVE_DIRECTION_INVERTED,
2466+
Self::Unknown => ffi::GDK_SCROLL_RELATIVE_DIRECTION_UNKNOWN,
2467+
Self::__Unknown(value) => value,
2468+
}
2469+
}
2470+
}
2471+
2472+
#[cfg(feature = "v4_20")]
2473+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2474+
#[doc(hidden)]
2475+
impl FromGlib<ffi::GdkScrollRelativeDirection> for ScrollRelativeDirection {
2476+
#[inline]
2477+
unsafe fn from_glib(value: ffi::GdkScrollRelativeDirection) -> Self {
2478+
skip_assert_initialized!();
2479+
2480+
match value {
2481+
ffi::GDK_SCROLL_RELATIVE_DIRECTION_IDENTICAL => Self::Identical,
2482+
ffi::GDK_SCROLL_RELATIVE_DIRECTION_INVERTED => Self::Inverted,
2483+
ffi::GDK_SCROLL_RELATIVE_DIRECTION_UNKNOWN => Self::Unknown,
2484+
value => Self::__Unknown(value),
2485+
}
2486+
}
2487+
}
2488+
2489+
#[cfg(feature = "v4_20")]
2490+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2491+
impl StaticType for ScrollRelativeDirection {
2492+
#[inline]
2493+
#[doc(alias = "gdk_scroll_relative_direction_get_type")]
2494+
fn static_type() -> glib::Type {
2495+
unsafe { from_glib(ffi::gdk_scroll_relative_direction_get_type()) }
2496+
}
2497+
}
2498+
2499+
#[cfg(feature = "v4_20")]
2500+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2501+
impl glib::HasParamSpec for ScrollRelativeDirection {
2502+
type ParamSpec = glib::ParamSpecEnum;
2503+
type SetValue = Self;
2504+
type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2505+
2506+
fn param_spec_builder() -> Self::BuilderFn {
2507+
Self::ParamSpec::builder_with_default
2508+
}
2509+
}
2510+
2511+
#[cfg(feature = "v4_20")]
2512+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2513+
impl glib::value::ValueType for ScrollRelativeDirection {
2514+
type Type = Self;
2515+
}
2516+
2517+
#[cfg(feature = "v4_20")]
2518+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2519+
unsafe impl<'a> glib::value::FromValue<'a> for ScrollRelativeDirection {
2520+
type Checker = glib::value::GenericValueTypeChecker<Self>;
2521+
2522+
#[inline]
2523+
unsafe fn from_value(value: &'a glib::Value) -> Self {
2524+
skip_assert_initialized!();
2525+
from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2526+
}
2527+
}
2528+
2529+
#[cfg(feature = "v4_20")]
2530+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2531+
impl ToValue for ScrollRelativeDirection {
2532+
#[inline]
2533+
fn to_value(&self) -> glib::Value {
2534+
let mut value = glib::Value::for_value_type::<Self>();
2535+
unsafe {
2536+
glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2537+
}
2538+
value
2539+
}
2540+
2541+
#[inline]
2542+
fn value_type(&self) -> glib::Type {
2543+
Self::static_type()
2544+
}
2545+
}
2546+
2547+
#[cfg(feature = "v4_20")]
2548+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2549+
impl From<ScrollRelativeDirection> for glib::Value {
2550+
#[inline]
2551+
fn from(v: ScrollRelativeDirection) -> Self {
2552+
skip_assert_initialized!();
2553+
ToValue::to_value(&v)
2554+
}
2555+
}
2556+
24392557
#[cfg(feature = "v4_8")]
24402558
#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
24412559
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]

gdk4/src/auto/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,9 @@ pub use self::enums::KeyMatch;
255255
pub use self::enums::MemoryFormat;
256256
pub use self::enums::NotifyType;
257257
pub use self::enums::ScrollDirection;
258+
#[cfg(feature = "v4_20")]
259+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
260+
pub use self::enums::ScrollRelativeDirection;
258261
#[cfg(feature = "v4_8")]
259262
#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
260263
pub use self::enums::ScrollUnit;

gdk4/src/auto/scroll_event.rs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
77
use crate::ScrollUnit;
88
use crate::{ffi, ScrollDirection};
9+
#[cfg(feature = "v4_20")]
10+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
11+
use crate::{Event, ScrollRelativeDirection};
912
use glib::{prelude::*, translate::*};
1013

1114
glib::wrapper! {
@@ -59,11 +62,16 @@ impl ScrollEvent {
5962
unsafe { from_glib(ffi::gdk_scroll_event_is_stop(self.to_glib_none().0)) }
6063
}
6164

62-
//#[cfg(feature = "v4_20")]
63-
//#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
64-
//#[doc(alias = "gdk_scroll_event_get_relative_direction")]
65-
//#[doc(alias = "get_relative_direction")]
66-
//pub fn relative_direction(event: impl AsRef<Event>) -> /*Ignored*/ScrollRelativeDirection {
67-
// unsafe { TODO: call ffi:gdk_scroll_event_get_relative_direction() }
68-
//}
65+
#[cfg(feature = "v4_20")]
66+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
67+
#[doc(alias = "gdk_scroll_event_get_relative_direction")]
68+
#[doc(alias = "get_relative_direction")]
69+
pub fn relative_direction(event: impl AsRef<Event>) -> ScrollRelativeDirection {
70+
skip_assert_initialized!();
71+
unsafe {
72+
from_glib(ffi::gdk_scroll_event_get_relative_direction(
73+
event.as_ref().to_glib_none().0,
74+
))
75+
}
76+
}
6977
}

0 commit comments

Comments
 (0)