remake tab session api

This commit is contained in:
yggverse 2024-09-10 20:37:38 +03:00
parent 9bdf707a20
commit 7e8aaef1c5
5 changed files with 87 additions and 66 deletions

View file

@ -5,11 +5,20 @@
using namespace app::browser::main::tab;
Page::Page(
const MIME & MIME,
const Glib::ustring & TITLE,
const Glib::ustring & DESCRIPTION,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__REFRESH,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__PAGE_NAVIGATION_HISTORY_BACK,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__PAGE_NAVIGATION_HISTORY_FORWARD,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__PAGE_NAVIGATION_UPDATE
) {
// Init meta
mime = MIME;
title = TITLE;
description = DESCRIPTION;
progress_fraction = 0;
// Init actions
action__refresh = ACTION__REFRESH;
@ -40,13 +49,8 @@ Page::Page(
signal_realize().connect(
[this]
{
// Make initial data setup
update(
MIME::UNDEFINED,
_("New page"),
"",
0
);
// Refresh parent window
action__refresh->activate();
}
);
}
@ -60,7 +64,7 @@ void Page::refresh()
}
void Page::update(
const MIME & MIME,
const enum MIME & MIME,
const Glib::ustring & TITLE,
const Glib::ustring & DESCRIPTION,
const double & PROGRESS_FRACTION

View file

@ -25,36 +25,42 @@ namespace app::browser::main::tab
class Page : public Gtk::Box
{
// Extras
enum class MIME
{
TEXT_PLAIN,
TEXT_GEMINI,
UNDEFINED
};
public:
// Data
MIME mime;
Glib::ustring title;
Glib::ustring description;
double progress_fraction;
enum class MIME
{
TEXT_PLAIN,
TEXT_GEMINI,
UNDEFINED
};
// Actions
Glib::RefPtr<Gio::SimpleAction> action__refresh;
private:
// Socket
char buffer[0xfffff]; // 1Mb
// Meta
MIME mime;
Glib::ustring title;
Glib::ustring description;
double progress_fraction;
Glib::RefPtr<Gio::SocketClient> GioSocketClient;
Glib::RefPtr<Gio::SocketConnection> GioSocketConnection;
// Actions
Glib::RefPtr<Gio::SimpleAction> action__refresh;
// Components
page::Content * pageContent;
page::Navigation * pageNavigation;
// Socket
char buffer[0xfffff]; // 1Mb
Glib::RefPtr<Gio::SocketClient> GioSocketClient;
Glib::RefPtr<Gio::SocketConnection> GioSocketConnection;
// Components
page::Content * pageContent;
page::Navigation * pageNavigation;
public:
Page(
const MIME & MIME,
const Glib::ustring & TITLE,
const Glib::ustring & DESCRIPTION,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__REFRESH,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__PAGE_NAVIGATION_HISTORY_BACK,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__PAGE_NAVIGATION_HISTORY_FORWARD,