add popover component
This commit is contained in:
@@ -3,23 +3,7 @@
|
||||
#include <gtkmm/label.h>
|
||||
#include <webkit/webkit.h>
|
||||
|
||||
WebWidget::WebWidget(std::string icon, std::string title, std::string url) {
|
||||
auto label = Gtk::make_managed<Gtk::Label>(icon);
|
||||
label->add_css_class("icon-label");
|
||||
set_child(*label);
|
||||
|
||||
signal_clicked().connect(
|
||||
sigc::mem_fun(*this, &WebWidget::on_toggle_window));
|
||||
|
||||
popover = new Gtk::Popover();
|
||||
popover->set_parent(*this);
|
||||
popover->set_autohide(true);
|
||||
|
||||
popover->signal_closed().connect([this]() {
|
||||
this->add_css_class("minimized");
|
||||
this->remove_css_class("restored");
|
||||
});
|
||||
|
||||
WebWidget::WebWidget(std::string icon, std::string name, std::string url) : Popover(icon, name) {
|
||||
auto webview = webkit_web_view_new();
|
||||
gtk_widget_set_hexpand(webview, true);
|
||||
gtk_widget_set_vexpand(webview, true);
|
||||
@@ -31,19 +15,5 @@ WebWidget::WebWidget(std::string icon, std::string title, std::string url) {
|
||||
|
||||
webkit_web_view_load_uri(WEBKIT_WEB_VIEW(webview), url.c_str());
|
||||
|
||||
gtk_popover_set_child(popover->gobj(), webview);
|
||||
}
|
||||
|
||||
WebWidget::~WebWidget() {
|
||||
delete popover;
|
||||
}
|
||||
|
||||
void WebWidget::on_toggle_window() {
|
||||
if (popover->get_visible()) {
|
||||
popover->popdown();
|
||||
} else {
|
||||
popover->popup();
|
||||
this->remove_css_class("minimized");
|
||||
this->add_css_class("restored");
|
||||
}
|
||||
this->set_popover_child(*Glib::wrap(webview));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user