mirror of https://github.com/YGGverse/Yoda.git
yggverse
4 months ago
5 changed files with 233 additions and 5 deletions
@ -0,0 +1,76 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
namespace Yggverse\Yoda\Entity\Browser\Menu; |
||||||
|
|
||||||
|
use \GtkMenu; |
||||||
|
use \GtkMenuItem; |
||||||
|
|
||||||
|
use \Yggverse\Yoda\Entity\Browser\Menu; |
||||||
|
|
||||||
|
class Help |
||||||
|
{ |
||||||
|
// GTK |
||||||
|
public GtkMenuItem $gtk; |
||||||
|
|
||||||
|
// Dependencies |
||||||
|
public Menu $menu; |
||||||
|
|
||||||
|
// Requirements |
||||||
|
public Help\About $about; |
||||||
|
public Help\Gemlog $gemlog; |
||||||
|
public Help\Issue $issue; |
||||||
|
|
||||||
|
// Defaults |
||||||
|
public const LABEL = 'Help'; |
||||||
|
|
||||||
|
public function __construct( |
||||||
|
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 about menu item |
||||||
|
$this->about = new Help\About( |
||||||
|
$this |
||||||
|
); |
||||||
|
|
||||||
|
$tab->append( |
||||||
|
$this->about->gtk |
||||||
|
); |
||||||
|
|
||||||
|
// Init gemlog menu item |
||||||
|
$this->gemlog = new Help\Gemlog( |
||||||
|
$this |
||||||
|
); |
||||||
|
|
||||||
|
$tab->append( |
||||||
|
$this->gemlog->gtk |
||||||
|
); |
||||||
|
|
||||||
|
// Init issue menu item |
||||||
|
$this->issue = new Help\Issue( |
||||||
|
$this |
||||||
|
); |
||||||
|
|
||||||
|
$tab->append( |
||||||
|
$this->issue->gtk |
||||||
|
); |
||||||
|
|
||||||
|
$this->gtk->set_submenu( |
||||||
|
$tab |
||||||
|
); |
||||||
|
|
||||||
|
// Render |
||||||
|
$this->gtk->show(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,46 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
namespace Yggverse\Yoda\Entity\Browser\Menu\Help; |
||||||
|
|
||||||
|
use \Gtk; |
||||||
|
use \GtkMenuItem; |
||||||
|
|
||||||
|
use \Yggverse\Yoda\Entity\Browser\Menu\Help; |
||||||
|
|
||||||
|
class About |
||||||
|
{ |
||||||
|
// GTK |
||||||
|
public GtkMenuItem $gtk; |
||||||
|
|
||||||
|
// Dependencies |
||||||
|
public Help $help; |
||||||
|
|
||||||
|
// Defaults |
||||||
|
public const LABEL = 'About'; |
||||||
|
|
||||||
|
public function __construct( |
||||||
|
Help $help |
||||||
|
) { |
||||||
|
// Init dependencies |
||||||
|
$this->help = $help; |
||||||
|
|
||||||
|
// Init menu item |
||||||
|
$this->gtk = GtkMenuItem::new_with_label( |
||||||
|
$this::LABEL |
||||||
|
); |
||||||
|
|
||||||
|
// Render |
||||||
|
$this->gtk->show(); |
||||||
|
|
||||||
|
// Int events |
||||||
|
$this->gtk->connect( |
||||||
|
'activate', |
||||||
|
function() |
||||||
|
{ |
||||||
|
// @TODO |
||||||
|
} |
||||||
|
); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,49 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
namespace Yggverse\Yoda\Entity\Browser\Menu\Help; |
||||||
|
|
||||||
|
use \Gtk; |
||||||
|
use \GtkMenuItem; |
||||||
|
|
||||||
|
use \Yggverse\Yoda\Entity\Browser\Menu\Help; |
||||||
|
|
||||||
|
class Gemlog |
||||||
|
{ |
||||||
|
// GTK |
||||||
|
public GtkMenuItem $gtk; |
||||||
|
|
||||||
|
// Dependencies |
||||||
|
public Help $help; |
||||||
|
|
||||||
|
// Defaults |
||||||
|
public const LABEL = 'Gemlog'; |
||||||
|
public const URL = 'gemini://yggverse.cities.yesterweb.org'; |
||||||
|
|
||||||
|
public function __construct( |
||||||
|
Help $help |
||||||
|
) { |
||||||
|
// Init dependencies |
||||||
|
$this->help = $help; |
||||||
|
|
||||||
|
// Init menu item |
||||||
|
$this->gtk = GtkMenuItem::new_with_label( |
||||||
|
$this::LABEL |
||||||
|
); |
||||||
|
|
||||||
|
// Render |
||||||
|
$this->gtk->show(); |
||||||
|
|
||||||
|
// Int events |
||||||
|
$this->gtk->connect( |
||||||
|
'activate', |
||||||
|
function() |
||||||
|
{ |
||||||
|
$this->help->menu->browser->container->tab->append( |
||||||
|
self::URL |
||||||
|
); |
||||||
|
} |
||||||
|
); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
namespace Yggverse\Yoda\Entity\Browser\Menu\Help; |
||||||
|
|
||||||
|
use \Gtk; |
||||||
|
use \GtkMenuItem; |
||||||
|
|
||||||
|
use \Yggverse\Yoda\Entity\Browser\Menu\Help; |
||||||
|
|
||||||
|
class Issue |
||||||
|
{ |
||||||
|
// GTK |
||||||
|
public GtkMenuItem $gtk; |
||||||
|
|
||||||
|
// Dependencies |
||||||
|
public Help $help; |
||||||
|
|
||||||
|
// Defaults |
||||||
|
public const LABEL = 'Report issue'; |
||||||
|
public const URL = 'https://github.com/YGGverse/Yoda'; |
||||||
|
|
||||||
|
public function __construct( |
||||||
|
Help $help |
||||||
|
) { |
||||||
|
// Init dependencies |
||||||
|
$this->help = $help; |
||||||
|
|
||||||
|
// Init menu item |
||||||
|
$this->gtk = GtkMenuItem::new_with_label( |
||||||
|
$this::LABEL |
||||||
|
); |
||||||
|
|
||||||
|
// Render |
||||||
|
$this->gtk->show(); |
||||||
|
|
||||||
|
// Int events |
||||||
|
$this->gtk->connect( |
||||||
|
'activate', |
||||||
|
function() |
||||||
|
{ |
||||||
|
// @TODO self::URL |
||||||
|
} |
||||||
|
); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue