1a25f0a04SGreg Roach<?php 2a25f0a04SGreg Roach/** 3a25f0a04SGreg Roach * webtrees: online genealogy 48fcd0d32SGreg Roach * Copyright (C) 2019 webtrees development team 5a25f0a04SGreg Roach * This program is free software: you can redistribute it and/or modify 6a25f0a04SGreg Roach * it under the terms of the GNU General Public License as published by 7a25f0a04SGreg Roach * the Free Software Foundation, either version 3 of the License, or 8a25f0a04SGreg Roach * (at your option) any later version. 9a25f0a04SGreg Roach * This program is distributed in the hope that it will be useful, 10a25f0a04SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of 11a25f0a04SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12a25f0a04SGreg Roach * GNU General Public License for more details. 13a25f0a04SGreg Roach * You should have received a copy of the GNU General Public License 14a25f0a04SGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>. 15a25f0a04SGreg Roach */ 16e7f56f2aSGreg Roachdeclare(strict_types=1); 17e7f56f2aSGreg Roach 1876692c8bSGreg Roachnamespace Fisharebest\Webtrees\Module; 19a25f0a04SGreg Roach 20ade503dfSGreg Roachuse Fisharebest\Webtrees\Fact; 21ade503dfSGreg Roachuse Fisharebest\Webtrees\Individual; 22ade503dfSGreg Roachuse Fisharebest\Webtrees\Menu; 23*0c8c69d4SGreg Roachuse Fisharebest\Webtrees\Tree; 24ade503dfSGreg Roach 25a25f0a04SGreg Roach/** 26ade503dfSGreg Roach * Interface ModuleThemelInterface - Classes and libraries for module system 27a25f0a04SGreg Roach */ 2837eb8894SGreg Roachinterface ModuleThemeInterface extends ModuleInterface 29c1010edaSGreg Roach{ 30ade503dfSGreg Roach /** 31ade503dfSGreg Roach * Display an icon for this fact. 32ade503dfSGreg Roach * 33ade503dfSGreg Roach * @param Fact $fact 34ade503dfSGreg Roach * 35ade503dfSGreg Roach * @return string 36ade503dfSGreg Roach */ 37ade503dfSGreg Roach public function icon(Fact $fact): string; 38ade503dfSGreg Roach 39ade503dfSGreg Roach /** 40ade503dfSGreg Roach * Display an individual in a box - for charts, etc. 41ade503dfSGreg Roach * 42ade503dfSGreg Roach * @param Individual $individual 43ade503dfSGreg Roach * 44ade503dfSGreg Roach * @return string 45ade503dfSGreg Roach */ 46ade503dfSGreg Roach public function individualBox(Individual $individual): string; 47ade503dfSGreg Roach 48ade503dfSGreg Roach /** 49ade503dfSGreg Roach * Display an empty box - for a missing individual in a chart. 50ade503dfSGreg Roach * 51ade503dfSGreg Roach * @return string 52ade503dfSGreg Roach */ 53ade503dfSGreg Roach public function individualBoxEmpty(): string; 54ade503dfSGreg Roach 55ade503dfSGreg Roach /** 56ade503dfSGreg Roach * Display an individual in a box - for charts, etc. 57ade503dfSGreg Roach * 58ade503dfSGreg Roach * @param Individual $individual 59ade503dfSGreg Roach * 60ade503dfSGreg Roach * @return string 61ade503dfSGreg Roach */ 62ade503dfSGreg Roach public function individualBoxLarge(Individual $individual): string; 63ade503dfSGreg Roach 64ade503dfSGreg Roach /** 65ade503dfSGreg Roach * Display an individual in a box - for charts, etc. 66ade503dfSGreg Roach * 67ade503dfSGreg Roach * @param Individual $individual 68ade503dfSGreg Roach * 69ade503dfSGreg Roach * @return string 70ade503dfSGreg Roach */ 71ade503dfSGreg Roach public function individualBoxSmall(Individual $individual): string; 72ade503dfSGreg Roach 73ade503dfSGreg Roach /** 74ade503dfSGreg Roach * Display an individual in a box - for charts, etc. 75ade503dfSGreg Roach * 76ade503dfSGreg Roach * @return string 77ade503dfSGreg Roach */ 78ade503dfSGreg Roach public function individualBoxSmallEmpty(): string; 79ade503dfSGreg Roach 80ade503dfSGreg Roach /** 81ade503dfSGreg Roach * Links, to show in chart boxes; 82ade503dfSGreg Roach * 83ade503dfSGreg Roach * @param Individual $individual 84ade503dfSGreg Roach * 85ade503dfSGreg Roach * @return Menu[] 86ade503dfSGreg Roach */ 87ade503dfSGreg Roach public function individualBoxMenu(Individual $individual): array; 88ade503dfSGreg Roach 89ade503dfSGreg Roach /** 90ade503dfSGreg Roach * Themes menu. 91ade503dfSGreg Roach * 92ade503dfSGreg Roach * @return Menu|null 93ade503dfSGreg Roach */ 94ade503dfSGreg Roach public function menuThemes(); 95ade503dfSGreg Roach 96ade503dfSGreg Roach /** 97ade503dfSGreg Roach * Misecellaneous dimensions, fonts, styles, etc. 98ade503dfSGreg Roach * 99ade503dfSGreg Roach * @param string $parameter_name 100ade503dfSGreg Roach * 101ade503dfSGreg Roach * @return string|int|float 102ade503dfSGreg Roach */ 103ade503dfSGreg Roach public function parameter($parameter_name); 104ade503dfSGreg Roach 105ade503dfSGreg Roach /** 106ade503dfSGreg Roach * Generate a list of items for the main menu. 107ade503dfSGreg Roach * 108*0c8c69d4SGreg Roach * @param Tree|null $tree 109*0c8c69d4SGreg Roach * 110ade503dfSGreg Roach * @return Menu[] 111ade503dfSGreg Roach */ 112*0c8c69d4SGreg Roach public function genealogyMenu(?Tree $tree): array; 113ade503dfSGreg Roach 114ade503dfSGreg Roach /** 115ade503dfSGreg Roach * Generate a list of items for the user menu. 116ade503dfSGreg Roach * 117*0c8c69d4SGreg Roach * @param Tree|null $tree 118*0c8c69d4SGreg Roach * 119ade503dfSGreg Roach * @return Menu[] 120ade503dfSGreg Roach */ 121*0c8c69d4SGreg Roach public function userMenu(?Tree $tree): array; 122ade503dfSGreg Roach 123ade503dfSGreg Roach /** 124ade503dfSGreg Roach * A list of CSS files to include for this page. 125ade503dfSGreg Roach * 126ade503dfSGreg Roach * @return string[] 127ade503dfSGreg Roach */ 128ade503dfSGreg Roach public function stylesheets(): array; 129a25f0a04SGreg Roach} 130