mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-02 09:35:28 +00:00
init tab menu elements
This commit is contained in:
parent
c5aee8f861
commit
1459667dc7
4 changed files with 152 additions and 2 deletions
|
|
@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Yggverse\Yoda\Entity\Browser;
|
namespace Yggverse\Yoda\Entity\Browser;
|
||||||
|
|
||||||
|
use \Yggverse\Yoda\Entity\Browser\Menu\Tab;
|
||||||
use \Yggverse\Yoda\Entity\Browser\Menu\History;
|
use \Yggverse\Yoda\Entity\Browser\Menu\History;
|
||||||
use \Yggverse\Yoda\Entity\Browser\Menu\Quit;
|
use \Yggverse\Yoda\Entity\Browser\Menu\Quit;
|
||||||
|
|
||||||
|
|
@ -15,6 +16,7 @@ class Menu
|
||||||
public \Yggverse\Yoda\Entity\Browser $browser;
|
public \Yggverse\Yoda\Entity\Browser $browser;
|
||||||
|
|
||||||
// Requirements
|
// Requirements
|
||||||
|
public \Yggverse\Yoda\Entity\Browser\Menu\Tab $tab;
|
||||||
public \Yggverse\Yoda\Entity\Browser\Menu\History $history;
|
public \Yggverse\Yoda\Entity\Browser\Menu\History $history;
|
||||||
public \Yggverse\Yoda\Entity\Browser\Menu\Quit $quit;
|
public \Yggverse\Yoda\Entity\Browser\Menu\Quit $quit;
|
||||||
|
|
||||||
|
|
@ -27,7 +29,16 @@ class Menu
|
||||||
// Init menu
|
// Init menu
|
||||||
$this->gtk = new \GtkMenu;
|
$this->gtk = new \GtkMenu;
|
||||||
|
|
||||||
// Init history
|
// Init tab menu item
|
||||||
|
$this->tab = new Tab(
|
||||||
|
$this
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->gtk->append(
|
||||||
|
$this->tab->gtk
|
||||||
|
);
|
||||||
|
|
||||||
|
// Init history menu item
|
||||||
$this->history = new History(
|
$this->history = new History(
|
||||||
$this
|
$this
|
||||||
);
|
);
|
||||||
|
|
@ -36,7 +47,12 @@ class Menu
|
||||||
$this->history->gtk
|
$this->history->gtk
|
||||||
);
|
);
|
||||||
|
|
||||||
// Init quit
|
// Add separator
|
||||||
|
$this->gtk->append(
|
||||||
|
new \GtkSeparatorMenuItem
|
||||||
|
);
|
||||||
|
|
||||||
|
// Init quit menu item
|
||||||
$this->quit = new Quit(
|
$this->quit = new Quit(
|
||||||
$this
|
$this
|
||||||
);
|
);
|
||||||
|
|
|
||||||
60
src/Entity/Browser/Menu/Tab.php
Normal file
60
src/Entity/Browser/Menu/Tab.php
Normal file
|
|
@ -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
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
37
src/Entity/Browser/Menu/Tab/Add.php
Normal file
37
src/Entity/Browser/Menu/Tab/Add.php
Normal file
|
|
@ -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
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
37
src/Entity/Browser/Menu/Tab/Close.php
Normal file
37
src/Entity/Browser/Menu/Tab/Close.php
Normal file
|
|
@ -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…
Add table
Add a link
Reference in a new issue