mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-01 00:55:28 +00:00
53 lines
No EOL
1.1 KiB
PHP
53 lines
No EOL
1.1 KiB
PHP
<?php
|
|
|
|
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 Content $content;
|
|
|
|
// Requirements
|
|
private Gemtext | Plain | Image | null $_data = null;
|
|
|
|
public function __construct(
|
|
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();
|
|
}
|
|
} |