implement viewport update method

This commit is contained in:
yggverse 2024-07-18 14:10:48 +03:00
parent 2f6ac84f3e
commit 300cc6b8a2
2 changed files with 32 additions and 8 deletions

View file

@ -57,9 +57,6 @@ class Content
$this->gtk->add(
$this->viewport->gtk
);
// Render
$this->gtk->show();
}
public function set(
@ -115,11 +112,11 @@ class Content
);
}
$this->viewport->gtk->add(
$document->gtk
$this->viewport->set(
$document
);
//$this->gtk->show_all();
$this->gtk->show();
}
public function getSource(): ?string

View file

@ -4,21 +4,48 @@ declare(strict_types=1);
namespace Yggverse\Yoda\Entity\Browser\Container\Page\Content;
use \Yggverse\Yoda\Entity\Browser\Container\Page\Content;
use \Yggverse\Yoda\Entity\Browser\Container\Page\Content\Gemtext;
use \Yggverse\Yoda\Entity\Browser\Container\Page\Content\Image;
use \Yggverse\Yoda\Entity\Browser\Container\Page\Content\Plain;
class Viewport
{
public \GtkViewport $gtk;
// Dependencies
public \Yggverse\Yoda\Entity\Browser\Container\Page\Content $content;
public Content $content;
// Requirements
private Gemtext | Plain | Image | null $_data = null;
public function __construct(
\Yggverse\Yoda\Entity\Browser\Container\Page\Content $content
Content $content
) {
// Init dependencies
$this->content = $content;
// Init viewport
$this->gtk = new \GtkViewport;
}
public function set(
Gemtext | Plain | Image $data
): void
{
// Remove previous
if ($this->_data)
{
$this->_data->gtk->destroy();
}
// Init current
$this->_data = $data;
$this->gtk->add(
$data->gtk
);
// Render
$this->gtk->show();