xref: /webtrees/app/Module/ModuleThemeInterface.php (revision fcfa147e10aaa6c7ff580c29bd6e5b88666befc1)
1a25f0a04SGreg Roach<?php
23976b470SGreg Roach
3a25f0a04SGreg Roach/**
4a25f0a04SGreg Roach * webtrees: online genealogy
58fcd0d32SGreg Roach * Copyright (C) 2019 webtrees development team
6a25f0a04SGreg Roach * This program is free software: you can redistribute it and/or modify
7a25f0a04SGreg Roach * it under the terms of the GNU General Public License as published by
8a25f0a04SGreg Roach * the Free Software Foundation, either version 3 of the License, or
9a25f0a04SGreg Roach * (at your option) any later version.
10a25f0a04SGreg Roach * This program is distributed in the hope that it will be useful,
11a25f0a04SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
12a25f0a04SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13a25f0a04SGreg Roach * GNU General Public License for more details.
14a25f0a04SGreg Roach * You should have received a copy of the GNU General Public License
15a25f0a04SGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>.
16a25f0a04SGreg Roach */
17*fcfa147eSGreg Roach
18e7f56f2aSGreg Roachdeclare(strict_types=1);
19e7f56f2aSGreg Roach
2076692c8bSGreg Roachnamespace Fisharebest\Webtrees\Module;
21a25f0a04SGreg Roach
22ade503dfSGreg Roachuse Fisharebest\Webtrees\Fact;
23ade503dfSGreg Roachuse Fisharebest\Webtrees\Individual;
24ade503dfSGreg Roachuse Fisharebest\Webtrees\Menu;
250c8c69d4SGreg Roachuse Fisharebest\Webtrees\Tree;
26ade503dfSGreg Roach
27a25f0a04SGreg Roach/**
28ade503dfSGreg Roach * Interface ModuleThemelInterface - Classes and libraries for module system
29a25f0a04SGreg Roach */
3037eb8894SGreg Roachinterface ModuleThemeInterface extends ModuleInterface
31c1010edaSGreg Roach{
32ade503dfSGreg Roach    /**
33ade503dfSGreg Roach     * Display an icon for this fact.
34ade503dfSGreg Roach     *
35ade503dfSGreg Roach     * @param Fact $fact
36ade503dfSGreg Roach     *
37ade503dfSGreg Roach     * @return string
38ade503dfSGreg Roach     */
39ade503dfSGreg Roach    public function icon(Fact $fact): string;
40ade503dfSGreg Roach
41ade503dfSGreg Roach    /**
42ade503dfSGreg Roach     * Links, to show in chart boxes;
43ade503dfSGreg Roach     *
44ade503dfSGreg Roach     * @param Individual $individual
45ade503dfSGreg Roach     *
46ade503dfSGreg Roach     * @return Menu[]
47ade503dfSGreg Roach     */
48ade503dfSGreg Roach    public function individualBoxMenu(Individual $individual): array;
49ade503dfSGreg Roach
50ade503dfSGreg Roach    /**
51ade503dfSGreg Roach     * Themes menu.
52ade503dfSGreg Roach     *
53ade503dfSGreg Roach     * @return Menu|null
54ade503dfSGreg Roach     */
55e364afe4SGreg Roach    public function menuThemes(): ?Menu;
56ade503dfSGreg Roach
57ade503dfSGreg Roach    /**
58ade503dfSGreg Roach     * Misecellaneous dimensions, fonts, styles, etc.
59ade503dfSGreg Roach     *
60ade503dfSGreg Roach     * @param string $parameter_name
61ade503dfSGreg Roach     *
62ade503dfSGreg Roach     * @return string|int|float
63ade503dfSGreg Roach     */
64ade503dfSGreg Roach    public function parameter($parameter_name);
65ade503dfSGreg Roach
66ade503dfSGreg Roach    /**
67ade503dfSGreg Roach     * Generate a list of items for the main menu.
68ade503dfSGreg Roach     *
690c8c69d4SGreg Roach     * @param Tree|null $tree
700c8c69d4SGreg Roach     *
71ade503dfSGreg Roach     * @return Menu[]
72ade503dfSGreg Roach     */
730c8c69d4SGreg Roach    public function genealogyMenu(?Tree $tree): array;
74ade503dfSGreg Roach
75ade503dfSGreg Roach    /**
76ade503dfSGreg Roach     * Generate a list of items for the user menu.
77ade503dfSGreg Roach     *
780c8c69d4SGreg Roach     * @param Tree|null $tree
790c8c69d4SGreg Roach     *
80ade503dfSGreg Roach     * @return Menu[]
81ade503dfSGreg Roach     */
820c8c69d4SGreg Roach    public function userMenu(?Tree $tree): array;
83ade503dfSGreg Roach
84ade503dfSGreg Roach    /**
85ade503dfSGreg Roach     * A list of CSS files to include for this page.
86ade503dfSGreg Roach     *
87ade503dfSGreg Roach     * @return string[]
88ade503dfSGreg Roach     */
89ade503dfSGreg Roach    public function stylesheets(): array;
90a25f0a04SGreg Roach}
91