GridDisplaySettings.js (3571B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 "use strict"; 6 7 const { 8 PureComponent, 9 } = require("resource://devtools/client/shared/vendor/react.mjs"); 10 const dom = require("resource://devtools/client/shared/vendor/react-dom-factories.js"); 11 const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.mjs"); 12 const { 13 getStr, 14 } = require("resource://devtools/client/inspector/layout/utils/l10n.js"); 15 16 const Types = require("resource://devtools/client/inspector/grids/types.js"); 17 18 class GridDisplaySettings extends PureComponent { 19 static get propTypes() { 20 return { 21 highlighterSettings: PropTypes.shape(Types.highlighterSettings) 22 .isRequired, 23 onToggleShowGridAreas: PropTypes.func.isRequired, 24 onToggleShowGridLineNumbers: PropTypes.func.isRequired, 25 onToggleShowInfiniteLines: PropTypes.func.isRequired, 26 }; 27 } 28 29 constructor(props) { 30 super(props); 31 32 this.onShowGridAreasCheckboxClick = 33 this.onShowGridAreasCheckboxClick.bind(this); 34 this.onShowGridLineNumbersCheckboxClick = 35 this.onShowGridLineNumbersCheckboxClick.bind(this); 36 this.onShowInfiniteLinesCheckboxClick = 37 this.onShowInfiniteLinesCheckboxClick.bind(this); 38 } 39 40 onShowGridAreasCheckboxClick() { 41 const { highlighterSettings, onToggleShowGridAreas } = this.props; 42 43 onToggleShowGridAreas(!highlighterSettings.showGridAreasOverlay); 44 } 45 46 onShowGridLineNumbersCheckboxClick() { 47 const { highlighterSettings, onToggleShowGridLineNumbers } = this.props; 48 49 onToggleShowGridLineNumbers(!highlighterSettings.showGridLineNumbers); 50 } 51 52 onShowInfiniteLinesCheckboxClick() { 53 const { highlighterSettings, onToggleShowInfiniteLines } = this.props; 54 55 onToggleShowInfiniteLines(!highlighterSettings.showInfiniteLines); 56 } 57 58 render() { 59 const { highlighterSettings } = this.props; 60 61 return dom.div( 62 { className: "grid-container" }, 63 dom.span( 64 { 65 role: "heading", 66 "aria-level": "3", 67 }, 68 getStr("layout.gridDisplaySettings") 69 ), 70 dom.ul( 71 {}, 72 dom.li( 73 { className: "grid-settings-item" }, 74 dom.label( 75 {}, 76 dom.input({ 77 id: "grid-setting-show-grid-line-numbers", 78 type: "checkbox", 79 checked: highlighterSettings.showGridLineNumbers, 80 onChange: this.onShowGridLineNumbersCheckboxClick, 81 }), 82 getStr("layout.displayLineNumbers") 83 ) 84 ), 85 dom.li( 86 { className: "grid-settings-item" }, 87 dom.label( 88 {}, 89 dom.input({ 90 id: "grid-setting-show-grid-areas", 91 type: "checkbox", 92 checked: highlighterSettings.showGridAreasOverlay, 93 onChange: this.onShowGridAreasCheckboxClick, 94 }), 95 getStr("layout.displayAreaNames") 96 ) 97 ), 98 dom.li( 99 { className: "grid-settings-item" }, 100 dom.label( 101 {}, 102 dom.input({ 103 id: "grid-setting-extend-grid-lines", 104 type: "checkbox", 105 checked: highlighterSettings.showInfiniteLines, 106 onChange: this.onShowInfiniteLinesCheckboxClick, 107 }), 108 getStr("layout.extendLinesInfinitely") 109 ) 110 ) 111 ) 112 ); 113 } 114 } 115 116 module.exports = GridDisplaySettings;