Skip to content

Commit 459e607

Browse files
authored
Support Granite 7.4 (#3)
* Support Granite 7.4 * Bump versions
1 parent 4d3fe71 commit 459e607

File tree

8 files changed

+135
-6
lines changed

8 files changed

+135
-6
lines changed

.github/workflows/rust.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ jobs:
2121
- beta
2222
- "1.70.0"
2323
conf:
24+
- { name: "granite", features: "v7_4", test_sys: true }
2425
- { name: "granite", features: "v7_3", test_sys: true }
2526
- { name: "granite", features: "v7_2", test_sys: true }
2627
- { name: "granite", features: "v7_1", test_sys: true }

Granite-7.0.gir

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<?xml version="1.0"?>
2-
<!-- Granite-7.0.gir generated by valac 0.56.2.25-2b69b-dirty, do not modify. -->
3-
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
2+
<!-- Granite-7.0.gir generated by valac 0.56.13, do not modify. -->
3+
<repository xmlns="http://www.gtk.org/introspection/core/1.0"
4+
xmlns:c="http://www.gtk.org/introspection/c/1.0"
5+
xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
46
<include name="GLib" version="2.0"/>
57
<include name="Gio" version="2.0"/>
68
<include name="GObject" version="2.0"/>
@@ -1056,6 +1058,32 @@
10561058
</parameter>
10571059
</parameters>
10581060
</method>
1061+
<property name="mnemonic-widget" writable="1" version="7.4.0">
1062+
<type name="Gtk.Widget" c:type="GtkWidget*"/>
1063+
</property>
1064+
<method name="get_mnemonic_widget" c:identifier="granite_header_label_get_mnemonic_widget" version="7.4.0">
1065+
<return-value transfer-ownership="none" nullable="1">
1066+
<type name="Gtk.Widget" c:type="GtkWidget*"/>
1067+
</return-value>
1068+
<parameters>
1069+
<instance-parameter name="self" transfer-ownership="none">
1070+
<type name="Granite.HeaderLabel" c:type="GraniteHeaderLabel*"/>
1071+
</instance-parameter>
1072+
</parameters>
1073+
</method>
1074+
<method name="set_mnemonic_widget" c:identifier="granite_header_label_set_mnemonic_widget" version="7.4.0">
1075+
<return-value transfer-ownership="none">
1076+
<type name="none" c:type="void"/>
1077+
</return-value>
1078+
<parameters>
1079+
<instance-parameter name="self" transfer-ownership="none">
1080+
<type name="Granite.HeaderLabel" c:type="GraniteHeaderLabel*"/>
1081+
</instance-parameter>
1082+
<parameter name="value" transfer-ownership="none" nullable="1">
1083+
<type name="Gtk.Widget" c:type="GtkWidget*"/>
1084+
</parameter>
1085+
</parameters>
1086+
</method>
10591087
<property name="secondary-text" writable="1" version="7.1.0">
10601088
<type name="utf8" c:type="gchar*"/>
10611089
</property>
@@ -2102,6 +2130,16 @@
21022130
</instance-parameter>
21032131
</parameters>
21042132
</method>
2133+
<method name="withdraw" c:identifier="granite_toast_withdraw" version="7.4.0">
2134+
<return-value transfer-ownership="full">
2135+
<type name="none" c:type="void"/>
2136+
</return-value>
2137+
<parameters>
2138+
<instance-parameter name="self" transfer-ownership="none">
2139+
<type name="Granite.Toast" c:type="GraniteToast*"/>
2140+
</instance-parameter>
2141+
</parameters>
2142+
</method>
21052143
<field name="priv" readable="0" private="1">
21062144
<type name="ToastPrivate" c:type="GraniteToastPrivate*"/>
21072145
</field>

examples/src/date_time_picker_view.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use granite::prelude::*;
2-
use gtk::prelude::{*, SettingsExt};
2+
use gtk::prelude::{SettingsExt, *};
33
use gtk::subclass::prelude::*;
44

55
mod imp {

granite/Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "granite-rs"
3-
version = "1.0.0"
3+
version = "1.1.0"
44
edition = "2021"
55
authors = ["David Hewitt <davidmhewitt@gmail.com>"]
66
readme = "../README.md"
@@ -15,6 +15,7 @@ keywords = ["gtk4-rs", "GUI"]
1515
v7_1 = ["ffi/v7_1"]
1616
v7_2 = ["ffi/v7_2", "v7_1"]
1717
v7_3 = ["ffi/v7_3", "v7_2"]
18+
v7_4 = ["ffi/v7_4", "v7_3"]
1819

1920
[package.metadata.docs.rs]
2021
all-features = true
@@ -43,4 +44,4 @@ version = "0.7"
4344
[dependencies.ffi]
4445
package = "granite-rs-sys"
4546
path = "./sys"
46-
version = "0.2.4"
47+
version = "0.3.4"

granite/src/auto/header_label.rs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,16 @@ impl HeaderLabelBuilder {
6565
}
6666
}
6767

68+
#[cfg(feature = "v7_4")]
69+
#[cfg_attr(docsrs, doc(cfg(feature = "v7_4")))]
70+
pub fn mnemonic_widget(self, mnemonic_widget: &impl IsA<gtk::Widget>) -> Self {
71+
Self {
72+
builder: self
73+
.builder
74+
.property("mnemonic-widget", mnemonic_widget.clone().upcast()),
75+
}
76+
}
77+
6878
#[cfg(feature = "v7_1")]
6979
#[cfg_attr(docsrs, doc(cfg(feature = "v7_1")))]
7080
pub fn secondary_text(self, secondary_text: impl Into<glib::GString>) -> Self {
@@ -287,6 +297,30 @@ pub trait HeaderLabelExt: IsA<HeaderLabel> + sealed::Sealed + 'static {
287297
}
288298
}
289299

300+
#[cfg(feature = "v7_4")]
301+
#[cfg_attr(docsrs, doc(cfg(feature = "v7_4")))]
302+
#[doc(alias = "granite_header_label_get_mnemonic_widget")]
303+
#[doc(alias = "get_mnemonic_widget")]
304+
fn mnemonic_widget(&self) -> Option<gtk::Widget> {
305+
unsafe {
306+
from_glib_none(ffi::granite_header_label_get_mnemonic_widget(
307+
self.as_ref().to_glib_none().0,
308+
))
309+
}
310+
}
311+
312+
#[cfg(feature = "v7_4")]
313+
#[cfg_attr(docsrs, doc(cfg(feature = "v7_4")))]
314+
#[doc(alias = "granite_header_label_set_mnemonic_widget")]
315+
fn set_mnemonic_widget(&self, value: Option<&impl IsA<gtk::Widget>>) {
316+
unsafe {
317+
ffi::granite_header_label_set_mnemonic_widget(
318+
self.as_ref().to_glib_none().0,
319+
value.map(|p| p.as_ref()).to_glib_none().0,
320+
);
321+
}
322+
}
323+
290324
#[cfg(feature = "v7_1")]
291325
#[cfg_attr(docsrs, doc(cfg(feature = "v7_1")))]
292326
#[doc(alias = "granite_header_label_get_secondary_text")]
@@ -334,6 +368,34 @@ pub trait HeaderLabelExt: IsA<HeaderLabel> + sealed::Sealed + 'static {
334368
}
335369
}
336370

371+
#[cfg(feature = "v7_4")]
372+
#[cfg_attr(docsrs, doc(cfg(feature = "v7_4")))]
373+
#[doc(alias = "mnemonic-widget")]
374+
fn connect_mnemonic_widget_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
375+
unsafe extern "C" fn notify_mnemonic_widget_trampoline<
376+
P: IsA<HeaderLabel>,
377+
F: Fn(&P) + 'static,
378+
>(
379+
this: *mut ffi::GraniteHeaderLabel,
380+
_param_spec: glib::ffi::gpointer,
381+
f: glib::ffi::gpointer,
382+
) {
383+
let f: &F = &*(f as *const F);
384+
f(HeaderLabel::from_glib_borrow(this).unsafe_cast_ref())
385+
}
386+
unsafe {
387+
let f: Box_<F> = Box_::new(f);
388+
connect_raw(
389+
self.as_ptr() as *mut _,
390+
b"notify::mnemonic-widget\0".as_ptr() as *const _,
391+
Some(std::mem::transmute::<_, unsafe extern "C" fn()>(
392+
notify_mnemonic_widget_trampoline::<Self, F> as *const (),
393+
)),
394+
Box_::into_raw(f),
395+
)
396+
}
397+
}
398+
337399
#[cfg(feature = "v7_1")]
338400
#[cfg_attr(docsrs, doc(cfg(feature = "v7_1")))]
339401
#[doc(alias = "secondary-text")]

granite/src/auto/toast.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,15 @@ pub trait ToastExt: IsA<Toast> + sealed::Sealed + 'static {
287287
}
288288
}
289289

290+
#[cfg(feature = "v7_4")]
291+
#[cfg_attr(docsrs, doc(cfg(feature = "v7_4")))]
292+
#[doc(alias = "granite_toast_withdraw")]
293+
fn withdraw(&self) {
294+
unsafe {
295+
ffi::granite_toast_withdraw(self.as_ref().to_glib_none().0);
296+
}
297+
}
298+
290299
#[doc(alias = "closed")]
291300
fn connect_closed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
292301
unsafe extern "C" fn closed_trampoline<P: IsA<Toast>, F: Fn(&P) + 'static>(

granite/sys/Cargo.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "granite-rs-sys"
3-
version = "0.2.4"
3+
version = "0.3.4"
44
edition = "2021"
55
build = "build.rs"
66
links = "libgranite-7"
@@ -26,6 +26,9 @@ version = "7.2"
2626
[package.metadata.system-deps.granite_7.v7_3]
2727
version = "7.3"
2828

29+
[package.metadata.system-deps.granite_7.v7_4]
30+
version = "7.4"
31+
2932
[package.metadata.docs.rs]
3033
features = []
3134
rustc-args = ["--cfg", "docsrs"]
@@ -68,3 +71,4 @@ tempfile = "3"
6871
v7_1 = []
6972
v7_2 = ["v7_1"]
7073
v7_3 = ["v7_2"]
74+
v7_4 = ["v7_3"]

granite/sys/src/lib.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,17 @@ extern "C" {
900900
pub fn granite_header_label_get_type() -> GType;
901901
pub fn granite_header_label_get_label(self_: *mut GraniteHeaderLabel) -> *const c_char;
902902
pub fn granite_header_label_set_label(self_: *mut GraniteHeaderLabel, value: *const c_char);
903+
#[cfg(feature = "v7_4")]
904+
#[cfg_attr(docsrs, doc(cfg(feature = "v7_4")))]
905+
pub fn granite_header_label_get_mnemonic_widget(
906+
self_: *mut GraniteHeaderLabel,
907+
) -> *mut gtk::GtkWidget;
908+
#[cfg(feature = "v7_4")]
909+
#[cfg_attr(docsrs, doc(cfg(feature = "v7_4")))]
910+
pub fn granite_header_label_set_mnemonic_widget(
911+
self_: *mut GraniteHeaderLabel,
912+
value: *mut gtk::GtkWidget,
913+
);
903914
#[cfg(feature = "v7_1")]
904915
#[cfg_attr(docsrs, doc(cfg(feature = "v7_1")))]
905916
pub fn granite_header_label_get_secondary_text(self_: *mut GraniteHeaderLabel)
@@ -1202,6 +1213,9 @@ extern "C" {
12021213
pub fn granite_toast_new(title: *const c_char) -> *mut GraniteToast;
12031214
pub fn granite_toast_set_default_action(self_: *mut GraniteToast, label: *const c_char);
12041215
pub fn granite_toast_send_notification(self_: *mut GraniteToast);
1216+
#[cfg(feature = "v7_4")]
1217+
#[cfg_attr(docsrs, doc(cfg(feature = "v7_4")))]
1218+
pub fn granite_toast_withdraw(self_: *mut GraniteToast);
12051219

12061220
//=========================================================================
12071221
// GraniteValidatedEntry

0 commit comments

Comments
 (0)