├── .gitignore ├── PackageDefinitions └── diagonalization-panel-notepad.xml ├── PackageSources ├── InGamePanels │ └── diagonalization-panel-notepad.xml └── html_ui │ ├── InGamePanels │ └── CustomPanel │ │ ├── CustomPanel.css │ │ ├── CustomPanel.html │ │ └── CustomPanel.js │ └── Textures │ └── Menu │ └── toolbar │ └── ICON_TOOLBAR.svg ├── README.md ├── build.bat ├── manifest.json └── package.xml /.gitignore: -------------------------------------------------------------------------------- 1 | /Packages 2 | /html_ui 3 | /_Temp -------------------------------------------------------------------------------- /PackageDefinitions/diagonalization-panel-notepad.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SPB 4 | diagonalization-panel-notepad 5 | Diagonalization 6 | Diagonalization 7 | 8 | 9 | false 10 | false 11 | 12 | 13 | 14 | SPB 15 | 16 | false 17 | 18 | PackageSources\InGamePanels\ 19 | InGamePanels\ 20 | 21 | 22 | Copy 23 | 24 | false 25 | 26 | PackageSources\html_ui\ 27 | html_ui\ 28 | 29 | 30 | -------------------------------------------------------------------------------- /PackageSources/InGamePanels/diagonalization-panel-notepad.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | InGamePanel_CustomPanel.spb 4 | 9 | 10 | -------------------------------------------------------------------------------- /PackageSources/html_ui/InGamePanels/CustomPanel/CustomPanel.css: -------------------------------------------------------------------------------- 1 | /** This mixin makes a single line element fit exactly on the Roboto font for easier integration. */ 2 | ingame-ui#CustomPanel { 3 | display:flex; 4 | flex-direction:column; 5 | align-items:center; 6 | justify-content: center; 7 | height:100% !important; 8 | width: 100% !important; 9 | /*border: 2px solid blue !important;*/ 10 | } 11 | ingame-ui#CustomPanel #CustomPanelWrap { 12 | display: flex; 13 | flex-direction: column; 14 | width: 100% !important; 15 | height: 100% !important; 16 | /*border: 2px solid red !important;*/ 17 | min-height: 0; 18 | min-width: 0; 19 | overflow:hidden; 20 | align-items: stretch !important; 21 | flex: 1 1 auto !important; 22 | } 23 | ingame-ui#CustomPanel #CustomPanelWrap #CustomPanelIframe { 24 | flex: 1 1 auto !important; 25 | border: 0; 26 | } 27 | ingame-ui#CustomPanel #MainDisplay.hidden { 28 | display: none; 29 | } 30 | ingame-ui#CustomPanel #Footer.hidden { 31 | display: none; 32 | } 33 | ingame-ui#CustomPanel .ingameUiContent { 34 | /*border: 2px solid green !important;*/ 35 | display: flex !important; 36 | flex-direction: column !important; 37 | width: 100% !important; 38 | height: 100% !important; 39 | min-height: 0 !important; 40 | min-width: 0 !important; 41 | overflow:hidden !important; 42 | align-items: stretch !important; 43 | flex: 1 1 auto !important; 44 | } 45 | ingame-ui#CustomPanel .ingameUiWrapper { 46 | /*border: 2px solid yellow !important;*/ 47 | display: flex !important; 48 | flex-direction: column !important; 49 | width: 100% !important; 50 | height: 100% !important; 51 | min-height: 0 !important; 52 | min-width: 0 !important; 53 | overflow:hidden !important; 54 | align-items: stretch !important; 55 | flex: 1 1 auto !important; 56 | } 57 | 58 | @font-face { 59 | font-family: "RobotoMono-Light"; 60 | src: url("/Fonts/RobotoMono-Light.ttf") format("truetype"); 61 | font-weight: normal; 62 | font-style: normal; 63 | } -------------------------------------------------------------------------------- /PackageSources/html_ui/InGamePanels/CustomPanel/CustomPanel.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
32 |
33 | 36 |
37 |
38 | header 39 |
40 | 43 |
44 |
45 | 46 | -------------------------------------------------------------------------------- /PackageSources/html_ui/InGamePanels/CustomPanel/CustomPanel.js: -------------------------------------------------------------------------------- 1 | class IngamePanelCustomPanel extends TemplateElement { 2 | constructor() { 3 | super(...arguments); 4 | } 5 | connectedCallback() { 6 | super.connectedCallback(); 7 | this.m_MainDisplay = document.querySelector("#MainDisplay"); 8 | this.m_MainDisplay.classList.add("hidden"); 9 | this.m_Footer = document.querySelector("#Footer"); 10 | this.m_Footer.classList.add("hidden"); 11 | 12 | const textBuffer = document.getElementById("textBuffer"); 13 | const lockBuffer = document.getElementById("lockBuffer"); 14 | lockBuffer.addEventListener("click", () => { 15 | textBuffer.readOnly = !textBuffer.readOnly; 16 | if (textBuffer.readOnly) { 17 | lockBuffer.title = "Unlock Notepad"; 18 | } else { 19 | lockBuffer.title = "Lock Notepad"; 20 | } 21 | }); 22 | } 23 | initialize() { 24 | } 25 | disconnectedCallback() { 26 | super.disconnectedCallback(); 27 | } 28 | updateImage() { 29 | } 30 | } 31 | window.customElements.define("ingamepanel-custom", IngamePanelCustomPanel); 32 | checkAutoload(); -------------------------------------------------------------------------------- /PackageSources/html_ui/Textures/Menu/toolbar/ICON_TOOLBAR.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | Created by potrace 1.10, written by Peter Selinger 2001-2011 6 | 7 | 9 | 58 | 63 | 69 | 74 | 80 | 99 | 103 | 108 | 110 | 112 | 114 | 116 | 118 | 120 | 121 | 122 | 124 | 137 | 139 | 141 | 142 | 144 | 146 | 147 | 148 | 149 | 150 | 151 | 153 | 155 | 156 | 157 | 158 | 159 | 161 | 163 | 165 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 177 | 178 | 180 | 182 | 183 | 184 | 185 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 195 | 197 | 198 | 200 | 202 | 203 | 204 | 206 | 208 | 211 | 213 | 214 | 215 | 217 | 220 | 222 | 223 | 225 | 226 | 227 | 229 | 230 | 232 | 234 | 236 | 237 | 238 | 239 | 241 | 242 | 243 | 245 | 246 | 247 | 250 | 252 | 253 | 254 | 255 | 257 | 258 | 260 | 262 | 263 | 265 | 266 | 268 | 269 | 271 | 272 | 274 | 275 | 276 | 278 | 280 | 282 | 283 | 285 | 287 | 288 | 289 | 290 | 292 | 294 | 296 | 298 | 299 | 300 | 301 | 302 | 304 | 305 | 307 | 308 | 309 | 311 | 313 | 314 | 315 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Panel Notepad 2 | 3 | A simple notepad that appears on the toolbar / panel along the top of Microsoft 4 | Flight Simulator. You can type into it, but are likely to conflict with keyboard 5 | shortcuts. You're better off pasting text from outside the sim (i.e., do not 6 | bind `Ctrl+V`). 7 | 8 | *The notepad does not save text.* 9 | 10 | ## Acknowledgements 11 | 12 | Based on https://github.com/bymaximus/msfs2020-toolbar-window-template. I have 13 | deleted and simplified a lot of code that did not appear necessary. 14 | 15 | ## Prerequisites 16 | 17 | You will need the MSFS SDK. 18 | 19 | ## Installation 20 | 21 | *This assumes you have installed MSFS from the Windows Store.* 22 | 23 | 1. Run `build.bat`. You will get an error. 24 | 2. Run `build.bat` again. No error! 25 | 26 | This builds the package *and* copies it to the community package folder. -------------------------------------------------------------------------------- /build.bat: -------------------------------------------------------------------------------- 1 | "%MSFS_SDK%\Tools\bin\fspackagetool.exe" package.xml 2 | xcopy /e .\Packages\diagonalization-panel-notepad "%USERPROFILE%\AppData\Local\Packages\Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalCache\Packages\Community\diagonalization-panel-notepad" 3 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | { 4 | "name": "fs-base-propdefs", 5 | "package_version": "0.1.2" 6 | }, 7 | { 8 | "name": "fs-base-ui", 9 | "package_version": "0.1.10" 10 | }, 11 | { 12 | "name": "asobo-vcockpits-core", 13 | "package_version": "0.1.12" 14 | } 15 | ], 16 | "content_type": "", 17 | "title": "Panel Notepad", 18 | "manufacturer": "Diagonalization", 19 | "creator": "Diagonalization", 20 | "package_version": "1.0.0", 21 | "minimum_game_version": "1.8.3", 22 | "release_notes": { 23 | "neutral": { 24 | "LastUpdate": "", 25 | "OlderHistory": "" 26 | } 27 | }, 28 | "total_package_size": "00000000000000014353" 29 | } -------------------------------------------------------------------------------- /package.xml: -------------------------------------------------------------------------------- 1 | 2 | . 3 | _Temp 4 | 5 | PackageDefinitions\diagonalization-panel-notepad.xml 6 | 7 | --------------------------------------------------------------------------------