From d95b85932fb0d28e9bc43556b55ad6d4184b66c9 Mon Sep 17 00:00:00 2001 From: yggverse Date: Wed, 14 Aug 2024 09:16:45 +0300 Subject: [PATCH] init navbar actions --- src/app/browser/main/tab/data.cpp | 25 ++++++++------ src/app/browser/main/tab/data/navbar.cpp | 34 ++++++++++++++++++- src/app/browser/main/tab/data/navbar.hpp | 20 ++++++++--- .../browser/main/tab/data/navbar/request.cpp | 6 +++- 4 files changed, 68 insertions(+), 17 deletions(-) diff --git a/src/app/browser/main/tab/data.cpp b/src/app/browser/main/tab/data.cpp index eb4184b..0af742e 100644 --- a/src/app/browser/main/tab/data.cpp +++ b/src/app/browser/main/tab/data.cpp @@ -10,7 +10,7 @@ Data::Data() Gtk::Orientation::VERTICAL ); - // Init children components + // Init components navbar = new data::Navbar(); append( @@ -20,22 +20,25 @@ Data::Data() // Init actions group action_group = Gio::SimpleActionGroup::create(); - // Define actions - action_group->add_action( - "update", - sigc::mem_fun( - * this, - & Data::update - ) - ); + // Define group actions + action_group->add_action( + "update", + sigc::mem_fun( + * this, + & Data::update + ) + ); insert_action_group( - "tab", + "data", action_group ); } Data::~Data() = default; +// Actions void Data::update() -{} // @TODO +{ + // navbar->get_request_value() @TODO +} diff --git a/src/app/browser/main/tab/data/navbar.cpp b/src/app/browser/main/tab/data/navbar.cpp index fcf4d4e..3880458 100644 --- a/src/app/browser/main/tab/data/navbar.cpp +++ b/src/app/browser/main/tab/data/navbar.cpp @@ -34,7 +34,7 @@ Navbar::Navbar() MARGIN ); - // Init elements + // Init components base = new navbar::Base(); append( @@ -64,6 +64,38 @@ Navbar::Navbar() append( * bookmark ); + + // Init actions group + action_group = Gio::SimpleActionGroup::create(); + + // Define group actions + action_group->add_action( + "refresh", + sigc::mem_fun( + * this, + & Navbar::refresh + ) + ); + + insert_action_group( + "navbar", + action_group + ); } Navbar::~Navbar() = default; + +// Actions +void Navbar::refresh() +{ + // Deactivate on request value is empty + update->set_sensitive( + (bool) request->get_text_length() + ); +} + +// Getters +Glib::ustring Navbar::get_request_value() +{ + return request->get_text(); +} \ No newline at end of file diff --git a/src/app/browser/main/tab/data/navbar.hpp b/src/app/browser/main/tab/data/navbar.hpp index e3d1f21..5401b0b 100644 --- a/src/app/browser/main/tab/data/navbar.hpp +++ b/src/app/browser/main/tab/data/navbar.hpp @@ -1,7 +1,11 @@ #ifndef APP_BROWSER_MAIN_TAB_DATA_NAVBAR_HPP #define APP_BROWSER_MAIN_TAB_DATA_NAVBAR_HPP +#include +#include +#include #include +#include namespace app::browser::main::tab::data { @@ -18,9 +22,8 @@ namespace app::browser::main::tab::data { private: - // Defaults - const int SPACING = 8; - const int MARGIN = 8; + // Actions + Glib::RefPtr action_group; // Components navbar::Base * base; @@ -29,11 +32,20 @@ namespace app::browser::main::tab::data navbar::Request * request; navbar::Update * update; + // Defaults + const int SPACING = 8; + const int MARGIN = 8; + public: Navbar(); - ~Navbar(); + + // Actions + void refresh(); + + // Getters + Glib::ustring get_request_value(); }; } diff --git a/src/app/browser/main/tab/data/navbar/request.cpp b/src/app/browser/main/tab/data/navbar/request.cpp index 9e306ce..ef53a06 100644 --- a/src/app/browser/main/tab/data/navbar/request.cpp +++ b/src/app/browser/main/tab/data/navbar/request.cpp @@ -33,4 +33,8 @@ void Request::on_activate() {} // @TODO void Request::on_change() -{} // @TODO +{ + activate_action( + "navbar.refresh" + ); +}