mirror of https://github.com/YGGverse/Yoda.git
yggverse
5 months ago
6 changed files with 191 additions and 9 deletions
@ -0,0 +1,37 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
namespace Yggverse\Yoda\Entity\Browser\Header; |
||||||
|
|
||||||
|
use \Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu; |
||||||
|
|
||||||
|
class Navigation |
||||||
|
{ |
||||||
|
public \GtkMenuButton $gtk; |
||||||
|
|
||||||
|
// Dependencies |
||||||
|
public \Yggverse\Yoda\Entity\Browser\Header $header; |
||||||
|
|
||||||
|
// Requirements |
||||||
|
public \Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu $menu; |
||||||
|
|
||||||
|
public function __construct( |
||||||
|
\Yggverse\Yoda\Entity\Browser\Header $header |
||||||
|
) { |
||||||
|
// Init dependencies |
||||||
|
$this->header = $header; |
||||||
|
|
||||||
|
// Init navigation container |
||||||
|
$this->gtk = new \GtkMenuButton; |
||||||
|
|
||||||
|
// Init menu |
||||||
|
$this->menu = new Menu( |
||||||
|
$this |
||||||
|
); |
||||||
|
|
||||||
|
$this->gtk->set_popup( |
||||||
|
$this->menu->gtk |
||||||
|
); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,51 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
namespace Yggverse\Yoda\Entity\Browser\Header\Navigation; |
||||||
|
|
||||||
|
use \Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu\History; |
||||||
|
use \Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu\Quit; |
||||||
|
|
||||||
|
class Menu |
||||||
|
{ |
||||||
|
public \GtkMenu $gtk; |
||||||
|
|
||||||
|
// Dependencies |
||||||
|
public \Yggverse\Yoda\Entity\Browser\Header\Navigation $navigation; |
||||||
|
|
||||||
|
// Requirements |
||||||
|
public \Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu\History $history; |
||||||
|
public \Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu\Quit $quit; |
||||||
|
|
||||||
|
public function __construct( |
||||||
|
\Yggverse\Yoda\Entity\Browser\Header\Navigation $navigation |
||||||
|
) { |
||||||
|
// Init dependencies |
||||||
|
$this->navigation = $navigation; |
||||||
|
|
||||||
|
// Init menu |
||||||
|
$this->gtk = new \GtkMenu; |
||||||
|
|
||||||
|
// Init history |
||||||
|
$this->history = new History( |
||||||
|
$this |
||||||
|
); |
||||||
|
|
||||||
|
$this->gtk->append( |
||||||
|
$this->history->gtk |
||||||
|
); |
||||||
|
|
||||||
|
// Init quit |
||||||
|
$this->quit = new Quit( |
||||||
|
$this |
||||||
|
); |
||||||
|
|
||||||
|
$this->gtk->append( |
||||||
|
$this->quit->gtk |
||||||
|
); |
||||||
|
|
||||||
|
// Render |
||||||
|
$this->gtk->show_all(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,41 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
namespace Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu; |
||||||
|
|
||||||
|
class History |
||||||
|
{ |
||||||
|
public \GtkMenuItem $gtk; |
||||||
|
|
||||||
|
// Dependencies |
||||||
|
public \Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu $menu; |
||||||
|
|
||||||
|
// Defaults |
||||||
|
private string $_label = 'History'; |
||||||
|
|
||||||
|
public function __construct( |
||||||
|
\Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu $menu |
||||||
|
) { |
||||||
|
// Init dependencies |
||||||
|
$this->menu = $menu; |
||||||
|
|
||||||
|
// Init menu item |
||||||
|
$this->gtk = \GtkMenuItem::new_with_label( |
||||||
|
$this->_label |
||||||
|
); |
||||||
|
|
||||||
|
// Int events |
||||||
|
$this->gtk->connect( |
||||||
|
'activate', |
||||||
|
function() |
||||||
|
{ |
||||||
|
$history = new \Yggverse\Yoda\Entity\Browser\History( |
||||||
|
$this->menu->navigation->header->browser |
||||||
|
); |
||||||
|
|
||||||
|
$history->gtk->show_all(); |
||||||
|
} |
||||||
|
); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,37 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
namespace Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu; |
||||||
|
|
||||||
|
class Quit |
||||||
|
{ |
||||||
|
public \GtkMenuItem $gtk; |
||||||
|
|
||||||
|
// Dependencies |
||||||
|
public \Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu $menu; |
||||||
|
|
||||||
|
// Defaults |
||||||
|
private string $_label = 'Quit'; |
||||||
|
|
||||||
|
public function __construct( |
||||||
|
\Yggverse\Yoda\Entity\Browser\Header\Navigation\Menu $menu |
||||||
|
) { |
||||||
|
// Init dependencies |
||||||
|
$this->menu = $menu; |
||||||
|
|
||||||
|
// Init menu item |
||||||
|
$this->gtk = \GtkMenuItem::new_with_label( |
||||||
|
$this->_label |
||||||
|
); |
||||||
|
|
||||||
|
// Int events |
||||||
|
$this->gtk->connect( |
||||||
|
'activate', |
||||||
|
function() |
||||||
|
{ |
||||||
|
\Gtk::main_quit(); |
||||||
|
} |
||||||
|
); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue