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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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