diff --git a/src/components/base/popup.rs b/src/components/base/popup.rs index a25d8e2..19d5b13 100644 --- a/src/components/base/popup.rs +++ b/src/components/base/popup.rs @@ -1,17 +1,17 @@ use adw::glib; -use adw::glib::{IsA, Object}; -use gtk::Widget; +use adw::glib::Object; +use gtk::{gdk, Editable, Popover}; use super::popupImpl; glib::wrapper! { pub struct Popup(ObjectSubclass) - @extends adw::Window, gtk::Widget, - @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable; + @extends Popover, gtk::Widget, + @implements Editable,gdk::Popup, gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable; } impl Popup { - pub fn new(child: &impl IsA) -> Self { + pub fn new() -> Self { let popup: Popup = Object::builder().build(); // popup.set_child(child); popup diff --git a/src/components/base/popupImpl.rs b/src/components/base/popupImpl.rs index 7bf6caf..ecf032b 100644 --- a/src/components/base/popupImpl.rs +++ b/src/components/base/popupImpl.rs @@ -1,19 +1,41 @@ +use std::cell::RefCell; +use std::sync::Arc; + +use adw::subclass::prelude::{ActionRowImpl, PreferencesRowImpl}; use adw::subclass::window::AdwWindowImpl; +use gtk::gdk_pixbuf::subclass::prelude::{ + PixbufAnimationImpl, PixbufAnimationIterImpl, PixbufLoaderImpl, +}; +use gtk::prelude::PopupExt; use gtk::subclass::prelude::*; -use gtk::{glib, CompositeTemplate}; +use gtk::{ + gdk, glib, Button, CompositeTemplate, Entry, EntryBuffer, Label, PasswordEntry, + PasswordEntryBuffer, Popover, +}; use super::popup; #[allow(non_snake_case)] #[derive(Default, CompositeTemplate)] #[template(resource = "/org/Xetibo/ReSet/resetPopup.ui")] -pub struct Popup {} +pub struct Popup { + #[template_child] + pub resetPopupLabel: TemplateChild