[fractal/fractal-next] components: Add CustomEntry
- From: Julian Sparber <jsparber src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal/fractal-next] components: Add CustomEntry
- Date: Mon, 23 Aug 2021 15:02:20 +0000 (UTC)
commit 97560a3efde5f11b03f10e1654dc6f059b158271
Author: Kai A. Hiller <V02460 gmail com>
Date: Sun Aug 22 19:49:44 2021 +0200
components: Add CustomEntry
po/POTFILES.in | 1 +
src/components/custom_entry.rs | 46 ++++++++++++++++++++++++++++++++++++++++++
src/components/mod.rs | 2 ++
src/meson.build | 1 +
4 files changed, 50 insertions(+)
---
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 41d6c374..76eec5fd 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -34,6 +34,7 @@ data/resources/ui/window.ui
src/application.rs
src/components/avatar.rs
src/components/context_menu_bin.rs
+src/components/custom_entry.rs
src/components/label_with_widgets.rs
src/components/in_app_notification.rs
src/components/mod.rs
diff --git a/src/components/custom_entry.rs b/src/components/custom_entry.rs
new file mode 100644
index 00000000..759316a5
--- /dev/null
+++ b/src/components/custom_entry.rs
@@ -0,0 +1,46 @@
+use adw::subclass::prelude::*;
+use gtk::glib;
+use gtk::subclass::prelude::*;
+
+mod imp {
+ use super::*;
+
+ #[derive(Debug, Default)]
+ pub struct CustomEntry {}
+
+ #[glib::object_subclass]
+ impl ObjectSubclass for CustomEntry {
+ const NAME: &'static str = "CustomEntry";
+ type Type = super::CustomEntry;
+ type ParentType = adw::Bin;
+
+ fn class_init(klass: &mut Self::Class) {
+ klass.set_css_name("entry");
+ }
+ }
+
+ impl ObjectImpl for CustomEntry {}
+ impl WidgetImpl for CustomEntry {}
+ impl BinImpl for CustomEntry {}
+}
+
+glib::wrapper! {
+ /// Wrapper object acting as an entry.
+ ///
+ /// Wrap your custom widgets with CustomEntry to get stock entry styling and
+ /// behavior for free.
+ pub struct CustomEntry(ObjectSubclass<imp::CustomEntry>)
+ @extends gtk::Widget, adw::Bin;
+}
+
+impl CustomEntry {
+ pub fn new() -> Self {
+ glib::Object::new(&[]).expect("Failed to create CustomEntry")
+ }
+}
+
+impl Default for CustomEntry {
+ fn default() -> Self {
+ Self::new()
+ }
+}
diff --git a/src/components/mod.rs b/src/components/mod.rs
index 5d2e3e74..d80ef5a3 100644
--- a/src/components/mod.rs
+++ b/src/components/mod.rs
@@ -1,5 +1,6 @@
mod avatar;
mod context_menu_bin;
+mod custom_entry;
mod in_app_notification;
mod label_with_widgets;
mod pill;
@@ -8,6 +9,7 @@ mod spinner_button;
pub use self::avatar::Avatar;
pub use self::context_menu_bin::{ContextMenuBin, ContextMenuBinExt, ContextMenuBinImpl};
+pub use self::custom_entry::CustomEntry;
pub use self::in_app_notification::InAppNotification;
pub use self::label_with_widgets::LabelWithWidgets;
pub use self::pill::Pill;
diff --git a/src/meson.build b/src/meson.build
index ee7f4d2a..294b9139 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -22,6 +22,7 @@ sources = files(
'application.rs',
'components/avatar.rs',
'components/context_menu_bin.rs',
+ 'components/custom_entry.rs',
'components/label_with_widgets.rs',
'components/mod.rs',
'components/pill.rs',
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]