Skip to content

Commit 8f64dbd

Browse files
gtk: Generate new types
1 parent 96f6ccf commit 8f64dbd

File tree

8 files changed

+262
-31
lines changed

8 files changed

+262
-31
lines changed

gtk4/Gir.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ generate = [
149149
"Gtk.ListBase",
150150
"Gtk.ListBoxRow",
151151
"Gtk.ListItemFactory",
152+
"Gtk.ListScrollFlags",
152153
"Gtk.ListTabBehavior",
153154
"Gtk.ListView",
154155
"Gtk.LockButton",
@@ -205,6 +206,7 @@ generate = [
205206
"Gtk.ScrollablePolicy",
206207
"Gtk.Scrollbar",
207208
"Gtk.ScrolledWindow",
209+
"Gtk.ScrollInfo",
208210
"Gtk.ScrollStep",
209211
"Gtk.ScrollType",
210212
"Gtk.SectionModel",

gtk4/src/auto/column_view.rs

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use crate::{
99
};
1010
#[cfg(feature = "v4_12")]
1111
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
12-
use crate::{ListItemFactory, ListTabBehavior};
12+
use crate::{ListItemFactory, ListScrollFlags, ListTabBehavior, ScrollInfo};
1313
use glib::{
1414
prelude::*,
1515
signal::{connect_raw, SignalHandlerId},
@@ -163,12 +163,26 @@ impl ColumnView {
163163
}
164164
}
165165

166-
//#[cfg(feature = "v4_12")]
167-
//#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
168-
//#[doc(alias = "gtk_column_view_scroll_to")]
169-
//pub fn scroll_to(&self, pos: u32, column: Option<&ColumnViewColumn>, flags: /*Ignored*/ListScrollFlags, scroll: /*Ignored*/Option<ScrollInfo>) {
170-
// unsafe { TODO: call ffi:gtk_column_view_scroll_to() }
171-
//}
166+
#[cfg(feature = "v4_12")]
167+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
168+
#[doc(alias = "gtk_column_view_scroll_to")]
169+
pub fn scroll_to(
170+
&self,
171+
pos: u32,
172+
column: Option<&ColumnViewColumn>,
173+
flags: ListScrollFlags,
174+
scroll: Option<ScrollInfo>,
175+
) {
176+
unsafe {
177+
ffi::gtk_column_view_scroll_to(
178+
self.to_glib_none().0,
179+
pos,
180+
column.to_glib_none().0,
181+
flags.into_glib(),
182+
scroll.into_glib_ptr(),
183+
);
184+
}
185+
}
172186

173187
#[doc(alias = "gtk_column_view_set_enable_rubberband")]
174188
pub fn set_enable_rubberband(&self, enable_rubberband: bool) {

gtk4/src/auto/flags.rs

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -912,6 +912,119 @@ impl From<InputHints> for glib::Value {
912912
}
913913
}
914914

915+
#[cfg(feature = "v4_12")]
916+
bitflags! {
917+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
918+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
919+
#[doc(alias = "GtkListScrollFlags")]
920+
pub struct ListScrollFlags: u32 {
921+
#[doc(alias = "GTK_LIST_SCROLL_NONE")]
922+
const NONE = ffi::GTK_LIST_SCROLL_NONE as _;
923+
#[doc(alias = "GTK_LIST_SCROLL_FOCUS")]
924+
const FOCUS = ffi::GTK_LIST_SCROLL_FOCUS as _;
925+
#[doc(alias = "GTK_LIST_SCROLL_SELECT")]
926+
const SELECT = ffi::GTK_LIST_SCROLL_SELECT as _;
927+
}
928+
}
929+
930+
#[cfg(feature = "v4_12")]
931+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
932+
impl fmt::Display for ListScrollFlags {
933+
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
934+
<Self as fmt::Debug>::fmt(self, f)
935+
}
936+
}
937+
938+
#[cfg(feature = "v4_12")]
939+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
940+
#[doc(hidden)]
941+
impl IntoGlib for ListScrollFlags {
942+
type GlibType = ffi::GtkListScrollFlags;
943+
944+
#[inline]
945+
fn into_glib(self) -> ffi::GtkListScrollFlags {
946+
self.bits()
947+
}
948+
}
949+
950+
#[cfg(feature = "v4_12")]
951+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
952+
#[doc(hidden)]
953+
impl FromGlib<ffi::GtkListScrollFlags> for ListScrollFlags {
954+
#[inline]
955+
unsafe fn from_glib(value: ffi::GtkListScrollFlags) -> Self {
956+
skip_assert_initialized!();
957+
Self::from_bits_truncate(value)
958+
}
959+
}
960+
961+
#[cfg(feature = "v4_12")]
962+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
963+
impl StaticType for ListScrollFlags {
964+
#[inline]
965+
fn static_type() -> glib::Type {
966+
unsafe { from_glib(ffi::gtk_list_scroll_flags_get_type()) }
967+
}
968+
}
969+
970+
#[cfg(feature = "v4_12")]
971+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
972+
impl glib::HasParamSpec for ListScrollFlags {
973+
type ParamSpec = glib::ParamSpecFlags;
974+
type SetValue = Self;
975+
type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
976+
977+
fn param_spec_builder() -> Self::BuilderFn {
978+
|name| Self::ParamSpec::builder(name)
979+
}
980+
}
981+
982+
#[cfg(feature = "v4_12")]
983+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
984+
impl glib::value::ValueType for ListScrollFlags {
985+
type Type = Self;
986+
}
987+
988+
#[cfg(feature = "v4_12")]
989+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
990+
unsafe impl<'a> glib::value::FromValue<'a> for ListScrollFlags {
991+
type Checker = glib::value::GenericValueTypeChecker<Self>;
992+
993+
#[inline]
994+
unsafe fn from_value(value: &'a glib::Value) -> Self {
995+
skip_assert_initialized!();
996+
from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
997+
}
998+
}
999+
1000+
#[cfg(feature = "v4_12")]
1001+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1002+
impl ToValue for ListScrollFlags {
1003+
#[inline]
1004+
fn to_value(&self) -> glib::Value {
1005+
let mut value = glib::Value::for_value_type::<Self>();
1006+
unsafe {
1007+
glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1008+
}
1009+
value
1010+
}
1011+
1012+
#[inline]
1013+
fn value_type(&self) -> glib::Type {
1014+
Self::static_type()
1015+
}
1016+
}
1017+
1018+
#[cfg(feature = "v4_12")]
1019+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1020+
impl From<ListScrollFlags> for glib::Value {
1021+
#[inline]
1022+
fn from(v: ListScrollFlags) -> Self {
1023+
skip_assert_initialized!();
1024+
ToValue::to_value(&v)
1025+
}
1026+
}
1027+
9151028
bitflags! {
9161029
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
9171030
#[doc(alias = "GtkPickFlags")]

gtk4/src/auto/grid_view.rs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
// from gir-files (https://github.com/gtk-rs/gir-files)
33
// DO NOT EDIT
44

5-
#[cfg(feature = "v4_12")]
6-
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
7-
use crate::ListTabBehavior;
85
use crate::{
96
Accessible, AccessibleRole, Adjustment, Align, Buildable, ConstraintTarget, LayoutManager,
107
ListBase, ListItemFactory, Orientable, Orientation, Overflow, Scrollable, ScrollablePolicy,
118
SelectionModel, Widget,
129
};
10+
#[cfg(feature = "v4_12")]
11+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
12+
use crate::{ListScrollFlags, ListTabBehavior, ScrollInfo};
1313
use glib::{
1414
prelude::*,
1515
signal::{connect_raw, SignalHandlerId},
@@ -102,12 +102,19 @@ impl GridView {
102102
unsafe { from_glib(ffi::gtk_grid_view_get_tab_behavior(self.to_glib_none().0)) }
103103
}
104104

105-
//#[cfg(feature = "v4_12")]
106-
//#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
107-
//#[doc(alias = "gtk_grid_view_scroll_to")]
108-
//pub fn scroll_to(&self, pos: u32, flags: /*Ignored*/ListScrollFlags, scroll: /*Ignored*/Option<ScrollInfo>) {
109-
// unsafe { TODO: call ffi:gtk_grid_view_scroll_to() }
110-
//}
105+
#[cfg(feature = "v4_12")]
106+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
107+
#[doc(alias = "gtk_grid_view_scroll_to")]
108+
pub fn scroll_to(&self, pos: u32, flags: ListScrollFlags, scroll: Option<ScrollInfo>) {
109+
unsafe {
110+
ffi::gtk_grid_view_scroll_to(
111+
self.to_glib_none().0,
112+
pos,
113+
flags.into_glib(),
114+
scroll.into_glib_ptr(),
115+
);
116+
}
117+
}
111118

112119
#[doc(alias = "gtk_grid_view_set_enable_rubberband")]
113120
pub fn set_enable_rubberband(&self, enable_rubberband: bool) {

gtk4/src/auto/list_view.rs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
// from gir-files (https://github.com/gtk-rs/gir-files)
33
// DO NOT EDIT
44

5-
#[cfg(feature = "v4_12")]
6-
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
7-
use crate::ListTabBehavior;
85
use crate::{
96
Accessible, AccessibleRole, Adjustment, Align, Buildable, ConstraintTarget, LayoutManager,
107
ListBase, ListItemFactory, Orientable, Orientation, Overflow, Scrollable, ScrollablePolicy,
118
SelectionModel, Widget,
129
};
10+
#[cfg(feature = "v4_12")]
11+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
12+
use crate::{ListScrollFlags, ListTabBehavior, ScrollInfo};
1313
use glib::{
1414
prelude::*,
1515
signal::{connect_raw, SignalHandlerId},
@@ -108,12 +108,19 @@ impl ListView {
108108
unsafe { from_glib(ffi::gtk_list_view_get_tab_behavior(self.to_glib_none().0)) }
109109
}
110110

111-
//#[cfg(feature = "v4_12")]
112-
//#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
113-
//#[doc(alias = "gtk_list_view_scroll_to")]
114-
//pub fn scroll_to(&self, pos: u32, flags: /*Ignored*/ListScrollFlags, scroll: /*Ignored*/Option<ScrollInfo>) {
115-
// unsafe { TODO: call ffi:gtk_list_view_scroll_to() }
116-
//}
111+
#[cfg(feature = "v4_12")]
112+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
113+
#[doc(alias = "gtk_list_view_scroll_to")]
114+
pub fn scroll_to(&self, pos: u32, flags: ListScrollFlags, scroll: Option<ScrollInfo>) {
115+
unsafe {
116+
ffi::gtk_list_view_scroll_to(
117+
self.to_glib_none().0,
118+
pos,
119+
flags.into_glib(),
120+
scroll.into_glib_ptr(),
121+
);
122+
}
123+
}
117124

118125
#[doc(alias = "gtk_list_view_set_enable_rubberband")]
119126
pub fn set_enable_rubberband(&self, enable_rubberband: bool) {

gtk4/src/auto/mod.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,6 +1066,13 @@ pub use self::recent_info::RecentInfo;
10661066
mod requisition;
10671067
pub use self::requisition::Requisition;
10681068

1069+
#[cfg(feature = "v4_12")]
1070+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1071+
mod scroll_info;
1072+
#[cfg(feature = "v4_12")]
1073+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1074+
pub use self::scroll_info::ScrollInfo;
1075+
10691076
mod text_iter;
10701077
pub use self::text_iter::TextIter;
10711078

@@ -1208,6 +1215,9 @@ pub use self::flags::EventControllerScrollFlags;
12081215
pub use self::flags::FontChooserLevel;
12091216
pub use self::flags::IconLookupFlags;
12101217
pub use self::flags::InputHints;
1218+
#[cfg(feature = "v4_12")]
1219+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1220+
pub use self::flags::ListScrollFlags;
12111221
pub use self::flags::PickFlags;
12121222
pub use self::flags::PopoverMenuFlags;
12131223
#[cfg(target_os = "linux")]

gtk4/src/auto/scroll_info.rs

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
// This file was generated by gir (https://github.com/gtk-rs/gir)
2+
// from gir-files (https://github.com/gtk-rs/gir-files)
3+
// DO NOT EDIT
4+
5+
use glib::translate::*;
6+
7+
glib::wrapper! {
8+
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
9+
pub struct ScrollInfo(Shared<ffi::GtkScrollInfo>);
10+
11+
match fn {
12+
ref => |ptr| ffi::gtk_scroll_info_ref(ptr),
13+
unref => |ptr| ffi::gtk_scroll_info_unref(ptr),
14+
type_ => || ffi::gtk_scroll_info_get_type(),
15+
}
16+
}
17+
18+
impl ScrollInfo {
19+
#[doc(alias = "gtk_scroll_info_new")]
20+
pub fn new() -> ScrollInfo {
21+
assert_initialized_main_thread!();
22+
unsafe { from_glib_full(ffi::gtk_scroll_info_new()) }
23+
}
24+
25+
#[doc(alias = "gtk_scroll_info_get_enable_horizontal")]
26+
#[doc(alias = "get_enable_horizontal")]
27+
pub fn enables_horizontal(&self) -> bool {
28+
unsafe {
29+
from_glib(ffi::gtk_scroll_info_get_enable_horizontal(
30+
self.to_glib_none().0,
31+
))
32+
}
33+
}
34+
35+
#[doc(alias = "gtk_scroll_info_get_enable_vertical")]
36+
#[doc(alias = "get_enable_vertical")]
37+
pub fn enables_vertical(&self) -> bool {
38+
unsafe {
39+
from_glib(ffi::gtk_scroll_info_get_enable_vertical(
40+
self.to_glib_none().0,
41+
))
42+
}
43+
}
44+
45+
#[doc(alias = "gtk_scroll_info_set_enable_horizontal")]
46+
pub fn set_enable_horizontal(&self, horizontal: bool) {
47+
unsafe {
48+
ffi::gtk_scroll_info_set_enable_horizontal(
49+
self.to_glib_none().0,
50+
horizontal.into_glib(),
51+
);
52+
}
53+
}
54+
55+
#[doc(alias = "gtk_scroll_info_set_enable_vertical")]
56+
pub fn set_enable_vertical(&self, vertical: bool) {
57+
unsafe {
58+
ffi::gtk_scroll_info_set_enable_vertical(self.to_glib_none().0, vertical.into_glib());
59+
}
60+
}
61+
}
62+
63+
#[cfg(feature = "v4_12")]
64+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
65+
impl Default for ScrollInfo {
66+
fn default() -> Self {
67+
Self::new()
68+
}
69+
}

gtk4/src/auto/viewport.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
// from gir-files (https://github.com/gtk-rs/gir-files)
33
// DO NOT EDIT
44

5+
#[cfg(feature = "v4_12")]
6+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
7+
use crate::ScrollInfo;
58
use crate::{
69
Accessible, AccessibleRole, Adjustment, Align, Buildable, ConstraintTarget, LayoutManager,
710
Overflow, Scrollable, ScrollablePolicy, Widget,
@@ -58,12 +61,18 @@ impl Viewport {
5861
unsafe { from_glib(ffi::gtk_viewport_get_scroll_to_focus(self.to_glib_none().0)) }
5962
}
6063

61-
//#[cfg(feature = "v4_12")]
62-
//#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
63-
//#[doc(alias = "gtk_viewport_scroll_to")]
64-
//pub fn scroll_to(&self, descendant: &impl IsA<Widget>, scroll: /*Ignored*/Option<ScrollInfo>) {
65-
// unsafe { TODO: call ffi:gtk_viewport_scroll_to() }
66-
//}
64+
#[cfg(feature = "v4_12")]
65+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
66+
#[doc(alias = "gtk_viewport_scroll_to")]
67+
pub fn scroll_to(&self, descendant: &impl IsA<Widget>, scroll: Option<ScrollInfo>) {
68+
unsafe {
69+
ffi::gtk_viewport_scroll_to(
70+
self.to_glib_none().0,
71+
descendant.as_ref().to_glib_none().0,
72+
scroll.into_glib_ptr(),
73+
);
74+
}
75+
}
6776

6877
#[doc(alias = "gtk_viewport_set_child")]
6978
pub fn set_child(&self, child: Option<&impl IsA<Widget>>) {

0 commit comments

Comments
 (0)