mirror of https://github.com/YGGverse/Yoda.git
yggverse
5 months ago
4 changed files with 152 additions and 2 deletions
@ -0,0 +1,60 @@
@@ -0,0 +1,60 @@
|
||||
<?php |
||||
|
||||
declare(strict_types=1); |
||||
|
||||
namespace Yggverse\Yoda\Entity\Browser\Menu; |
||||
|
||||
use \Yggverse\Yoda\Entity\Browser\Menu\Tab\Add; |
||||
use \Yggverse\Yoda\Entity\Browser\Menu\Tab\Close; |
||||
|
||||
class Tab |
||||
{ |
||||
public \GtkMenuItem $gtk; |
||||
|
||||
// Dependencies |
||||
public \Yggverse\Yoda\Entity\Browser\Menu $menu; |
||||
|
||||
// Requirements |
||||
public \Yggverse\Yoda\Entity\Browser\Menu\Tab\Add $add; |
||||
public \Yggverse\Yoda\Entity\Browser\Menu\Tab\Close $close; |
||||
|
||||
// Defaults |
||||
private string $_label = 'Tab'; |
||||
|
||||
public function __construct( |
||||
\Yggverse\Yoda\Entity\Browser\Menu $menu |
||||
) { |
||||
// Init dependencies |
||||
$this->menu = $menu; |
||||
|
||||
// Init menu item |
||||
$this->gtk = \GtkMenuItem::new_with_label( |
||||
$this->_label |
||||
); |
||||
|
||||
// Init submenu container |
||||
$tab = new \GtkMenu; |
||||
|
||||
// Init new tab menu item |
||||
$this->add = new Add( |
||||
$this |
||||
); |
||||
|
||||
$tab->append( |
||||
$this->add->gtk |
||||
); |
||||
|
||||
// Init close tab menu item |
||||
$this->close = new Close( |
||||
$this |
||||
); |
||||
|
||||
$tab->append( |
||||
$this->close->gtk |
||||
); |
||||
|
||||
$this->gtk->set_submenu( |
||||
$tab |
||||
); |
||||
} |
||||
} |
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
<?php |
||||
|
||||
declare(strict_types=1); |
||||
|
||||
namespace Yggverse\Yoda\Entity\Browser\Menu\Tab; |
||||
|
||||
class Add |
||||
{ |
||||
public \GtkMenuItem $gtk; |
||||
|
||||
// Dependencies |
||||
public \Yggverse\Yoda\Entity\Browser\Menu\Tab $tab; |
||||
|
||||
// Defaults |
||||
private string $_label = 'Add'; |
||||
|
||||
public function __construct( |
||||
\Yggverse\Yoda\Entity\Browser\Menu\Tab $tab |
||||
) { |
||||
// Init dependencies |
||||
$this->tab = $tab; |
||||
|
||||
// Init menu item |
||||
$this->gtk = \GtkMenuItem::new_with_label( |
||||
$this->_label |
||||
); |
||||
|
||||
// Int events |
||||
$this->gtk->connect( |
||||
'activate', |
||||
function() |
||||
{ |
||||
// @TODO |
||||
} |
||||
); |
||||
} |
||||
} |
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
<?php |
||||
|
||||
declare(strict_types=1); |
||||
|
||||
namespace Yggverse\Yoda\Entity\Browser\Menu\Tab; |
||||
|
||||
class Close |
||||
{ |
||||
public \GtkMenuItem $gtk; |
||||
|
||||
// Dependencies |
||||
public \Yggverse\Yoda\Entity\Browser\Menu\Tab $tab; |
||||
|
||||
// Defaults |
||||
private string $_label = 'Close'; |
||||
|
||||
public function __construct( |
||||
\Yggverse\Yoda\Entity\Browser\Menu\Tab $tab |
||||
) { |
||||
// Init dependencies |
||||
$this->tab = $tab; |
||||
|
||||
// Init menu item |
||||
$this->gtk = \GtkMenuItem::new_with_label( |
||||
$this->_label |
||||
); |
||||
|
||||
// Int events |
||||
$this->gtk->connect( |
||||
'activate', |
||||
function() |
||||
{ |
||||
// @TODO |
||||
} |
||||
); |
||||
} |
||||
} |
Loading…
Reference in new issue