├── .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 |
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 |
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 |
--------------------------------------------------------------------------------