mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-03-31 16:45:27 +00:00
await for min renderer dimensions init
This commit is contained in:
parent
7a0d8a7e08
commit
62c2681cf9
2 changed files with 44 additions and 37 deletions
|
|
@ -53,7 +53,7 @@ class Content
|
|||
);
|
||||
}
|
||||
|
||||
public function set( // @TODO make async
|
||||
public function set(
|
||||
?string $mime,
|
||||
?string $data
|
||||
): void
|
||||
|
|
@ -64,40 +64,14 @@ class Content
|
|||
{
|
||||
case Filesystem::MIME_TEXT_GEMINI:
|
||||
|
||||
$title = null;
|
||||
|
||||
$document = new Content\Gemtext(
|
||||
$this
|
||||
);
|
||||
|
||||
$document->set(
|
||||
$data,
|
||||
$title
|
||||
$data
|
||||
);
|
||||
|
||||
// Update title by gemtext H1 tag (on available)
|
||||
if ($title)
|
||||
{
|
||||
// Set new title
|
||||
$this->page->title->setValue(
|
||||
$title
|
||||
);
|
||||
|
||||
// Update tooltip
|
||||
$this->page->title->setTooltip(
|
||||
$title
|
||||
);
|
||||
|
||||
// Refresh header by new title if current page is active
|
||||
if ($this->page === $this->page->container->tab->get())
|
||||
{
|
||||
$this->page->container->browser->header->setTitle(
|
||||
$this->page->title->getValue(),
|
||||
$this->page->title->getSubtitle()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Filesystem::MIME_TEXT_PLAIN:
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ namespace Yggverse\Yoda\Entity\Browser\Container\Page\Content;
|
|||
use \Exception;
|
||||
use \Gdk;
|
||||
use \GdkEvent;
|
||||
use \Gtk;
|
||||
use \GtkLabel;
|
||||
use \Pango;
|
||||
|
||||
|
|
@ -17,17 +18,49 @@ use \Yggverse\Yoda\Model\Gtk\Pango\Markup\Gemtext as Markup;
|
|||
class Gemtext extends \Yggverse\Yoda\Abstract\Entity\Browser\Container\Page\Content\Markup
|
||||
{
|
||||
public function set(
|
||||
string $source,
|
||||
string | null &$title = null
|
||||
string $value
|
||||
): void
|
||||
{
|
||||
$this->gtk->set_markup(
|
||||
Markup::format(
|
||||
$this->_source = $source,
|
||||
$this->content->page->navbar->request->getValue(),
|
||||
$this->content->page->content->gtk->get_allocated_width(),
|
||||
$title
|
||||
)
|
||||
Gtk::timeout_add( // await for renderer dimensions init
|
||||
1, function(?string $title = null) use ($value)
|
||||
{
|
||||
if ($this->content->page->content->gtk->get_allocated_width() > Markup::WRAP_WIDTH)
|
||||
{
|
||||
$this->gtk->set_markup(
|
||||
Markup::format(
|
||||
$this->_source = $value,
|
||||
$this->content->page->navbar->request->getValue(),
|
||||
$this->content->page->content->gtk->get_allocated_width(),
|
||||
$title
|
||||
)
|
||||
);
|
||||
|
||||
// Update title by gemtext H1 tag (on available)
|
||||
if ($title)
|
||||
{
|
||||
// Set new title
|
||||
$this->content->page->title->setValue(
|
||||
$title
|
||||
);
|
||||
|
||||
// Update tooltip
|
||||
$this->content->page->title->setTooltip(
|
||||
$title
|
||||
);
|
||||
|
||||
// Refresh header by new title if current page is active
|
||||
if ($this->content->page === $this->content->page->container->tab->get())
|
||||
{
|
||||
$this->content->page->container->browser->header->setTitle(
|
||||
$this->content->page->title->getValue(),
|
||||
$this->content->page->title->getSubtitle()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
return false; // stop
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue