Skip to content

Commit

Permalink
- Allow registration of the same variables with different units
Browse files Browse the repository at this point in the history
- Remove register/deregister function for single variables
- Change generic value hashmap to reference count dictionary to prevent deregister in-use variables
- Change Connector event for Generic values to return double directly instead of converting to string to prevent converting back and forth later on
- General layout improvement for generic PIs
- Move EventValueLibrary into Core to be accessible from Logics
  • Loading branch information
nguyenquyhy committed Feb 16, 2021
1 parent 65328d6 commit 536d435
Show file tree
Hide file tree
Showing 29 changed files with 559 additions and 470 deletions.
21 changes: 21 additions & 0 deletions FlightStreamDeck.AddOn/FlightStreamDeck.AddOn.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,27 @@
<None Update="PropertyInspector\common.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="PropertyInspector\css\caret.svg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="PropertyInspector\css\check.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="PropertyInspector\css\check.svg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="PropertyInspector\css\elg_calendar.svg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="PropertyInspector\css\elg_calendar_inv.svg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="PropertyInspector\css\rcheck.svg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="PropertyInspector\css\sdpi.css">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="PropertyInspector\embedimages.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
Expand Down
126 changes: 75 additions & 51 deletions FlightStreamDeck.AddOn/PropertyInspector/GenericGauge.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,99 +3,111 @@
<head>
<meta charset="utf-8" />
<title>Property Inspector</title>
<link rel="stylesheet" href="sdpi.css">
<link rel="stylesheet" href="css/sdpi.css">
</head>
<body>
<div class="sdpi-wrapper">
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Header</div>
<input class="sdpi-item-value" id="Header" value="" placeholder="Throttle" onchange="updateData()">
<div class="sdpi-item-label">Toggle value</div>
<input class="sdpi-item-value" id="ToggleValue" value="" placeholder="e.g. YAW_DAMPER_TOGGLE" onchange="updateData()" pattern="[A-Z_]">
</div>
<div class="sdpi-item" type="field">
<div id="HideTopHeader" class="sdpi-item-label">Header Top Hide If Outside Min/Max</div>
<div id="HideHeader" class="sdpi-item-label">Header Hide If Outside Min/Max</div>
<input class="sdpi-item-value" id="HideLabelOutsideMinMaxTop" type="checkbox" onchange="updateData()">
<label for="HideLabelOutsideMinMaxTop"><span></span></label>
<div class="sdpi-item-label">Type</div>
<select class="sdpi-item-value select" id="Type" onchange="updateData()">
<option value="Generic">Simple</option>
<option value="Custom">Custom</option>
</select>
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Toggle value</div>
<input class="sdpi-item-value" id="ToggleValue" value="" placeholder="YAW_DAMPER_TOGGLE" onchange="updateData()" pattern="[A-Z_]">
<div class="sdpi-item-label">Header</div>
<input class="sdpi-item-value" id="Header" value="" placeholder="e.g. Throttle" onchange="updateData()">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Display value</div>
<input class="sdpi-item-value" id="DisplayValue" value="" placeholder="INDICATED_ALTITUDE" onchange="updateData()" pattern="[A-Z_]">
<div id="WrapperHideLabelOutsideMinMaxTop">
<div class="sdpi-item" type="field">
<div style="width: 94px; padding: 4px;"></div>
<input class="sdpi-item-value" id="HideLabelOutsideMinMaxTop" type="checkbox" onchange="updateData()">
<label for="HideLabelOutsideMinMaxTop"><span></span>Hide if outside Min/Max</label>
</div>
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Sub Display value</div>
<input class="sdpi-item-value" id="SubDisplayValue" value="" placeholder="KOHLSMAN_SETTING_HG" onchange="updateData()" pattern="[A-Z_]">
<div id="LabelDisplayValue" class="sdpi-item-label">Display value</div>
<input class="sdpi-item-value" id="DisplayValue" value="" placeholder="e.g. INDICATED_ALTITUDE" onchange="updateData()" pattern="[A-Z_]">
</div>
<div id="WrapperHeaderBottom">
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Bottom Header</div>
<input class="sdpi-item-value" id="HeaderBottom" placeholder="R" onchange="updateData()">
</div>
</div>
<div id="WrapperHideLabelOutsideMinMaxBottom">
<div class="sdpi-item" type="field">
<div style="width: 94px; padding: 4px;"></div>
<input class="sdpi-item-value" id="HideLabelOutsideMinMaxBottom" type="checkbox" onchange="updateData()">
<label for="HideLabelOutsideMinMaxBottom"><span></span>Hide If Outside Min/Max</label>
</div>
</div>
<div id="WrapperDisplayValueBottom">
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Bottom Display value</div>
<input class="sdpi-item-value" id="DisplayValueBottom" placeholder="FUEL_RIGHT_QUANTITY" onchange="updateData()" pattern="[A-Z_]">
</div>
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Minimal value</div>
<div class="sdpi-item-label">Minimum</div>
<input class="sdpi-item-value" id="MinValue" value="" placeholder="0" onchange="updateData()" pattern="[0-9.-]">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Maximum value</div>
<input class="sdpi-item-value" id="MaxValue" value="" placeholder="100" onchange="updateData()" pattern="[0-9.-]">
<div class="sdpi-item-label">Maximum</div>
<input class="sdpi-item-value" id="MaxValue" value="" placeholder="30" onchange="updateData()" pattern="[0-9.-]">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Value Units</div>
<input class="sdpi-item-value" id="ValueUnit" value="" placeholder="empty for default units" onchange="updateData()" pattern="[A-Z0-9: ]*">
<div class="sdpi-item-label">Unit & Decimals</div>
<input class="sdpi-item-value" id="ValueUnit" value="" placeholder="Empty for default unit" onchange="updateData()" pattern="[A-Z0-9: ]*" style="margin-right: 0">
<input class="sdpi-item-value" id="ValuePrecision" value="" placeholder="Default decimals" onchange="updateData()" pattern="[0-9: ]*" style="max-width: 90px">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Value Precision</div>
<input class="sdpi-item-value" id="ValuePrecision" value="" placeholder="2" onchange="updateData()" pattern="[0-9]">
<div class="sdpi-item">
<details class="message caution">
<summary>Setting invalid unit affects the whole page.</summary>
</details>
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Type</div>
<select class="sdpi-item-value select" id="Type" onchange="updateData()">
<option value="Generic">Generic</option>
<option value="Custom">Custom</option>
</select>
<div id="simpleFields">
<div class="sdpi-heading">More Settings</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Sub value</div>
<input class="sdpi-item-value" id="SubDisplayValue" value="" placeholder="e.g. KOHLSMAN_SETTING_HG" onchange="updateData()" pattern="[A-Z_]">
</div>
</div>
<div id="customFields">
<div class="sdpi-heading">Custom Gauge Settings</div>
<div class="sdpi-heading">More Settings</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Chart Split by Percentage</div>
<div class="sdpi-item-label">Color Split by Percentage</div>
<input class="sdpi-item-value" id="ChartSplitValue" placeholder="12:red,24:yellow,64:green" onchange="updateData()" pattern="[0-9,]*">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Chart Thickness</div>
<div class="sdpi-item-label">Thickness</div>
<input class="sdpi-item-value" id="ChartThicknessValue" placeholder="13" onchange="updateData()" pattern="[0-9]*">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Chart Chevron Size</div>
<div class="sdpi-item-label">Chevron Size</div>
<input class="sdpi-item-value" id="ChartChevronSizeValue" placeholder="3" onchange="updateData()" pattern="[0-9]*">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Header Bottom Hide If Outside Min/Max</div>
<input class="sdpi-item-value" id="HideLabelOutsideMinMaxBottom" type="checkbox" onchange="updateData()">
<label for="HideLabelOutsideMinMaxBottom"><span></span></label>
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Header Bottom</div>
<input class="sdpi-item-value" id="HeaderBottom" placeholder="R" onchange="updateData()">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Display value Bottom</div>
<input class="sdpi-item-value" id="DisplayValueBottom" placeholder="FUEL_RIGHT_QUANTITY" onchange="updateData()" pattern="[A-Z_]">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Vertical Or Horizontal?</div>
<div class="sdpi-item-label">Orientation</div>
<select class="sdpi-item-value select" id="DisplayHorizontalValue" onchange="updateData()">
<option value="false">Vertical</option>
<option value="true">Horizontal</option>
</select>
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Use Absolute Value for Value Text</div>
<div class="sdpi-item-label">Display absolute value</div>
<select class="sdpi-item-value select" id="AbsValText" onchange="updateData()">
<option value="false">No</option>
<option value="true">Yes</option>
</select>
</div>
</div>
</div>

<script src="common.js"></script>
<script language="JavaScript" type="text/javascript">
function loadSettings(settings) {
Expand Down Expand Up @@ -147,9 +159,21 @@
}

function CustomShow() {
document.getElementById("customFields").hidden = (Type.value != "Custom");
document.getElementById("HideTopHeader").hidden = (Type.value != "Custom");
document.getElementById("HideHeader").hidden = (Type.value == "Custom");
simpleFields.hidden = Type.value != "Generic";

customFields.hidden = Type.value != "Custom";
WrapperHideLabelOutsideMinMaxTop.hidden =
WrapperHeaderBottom.hidden =
WrapperHideLabelOutsideMinMaxBottom.hidden =
WrapperDisplayValueBottom.hidden =
Type.value != "Custom";
switch (Type.value) {
case "Generic":
break;
case "Custom":

break;
}
}
</script>
<script src="init.js"></script>
Expand Down
18 changes: 10 additions & 8 deletions FlightStreamDeck.AddOn/PropertyInspector/GenericToggle.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
<head>
<meta charset="utf-8" />
<title>Property Inspector</title>
<link rel="stylesheet" href="sdpi.css">
<link rel="stylesheet" href="css/sdpi.css">
</head>
<body>
<div class="sdpi-wrapper">
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Header</div>
<input class="sdpi-item-value" id="Header" value="" placeholder="YD">
<input class="sdpi-item-value" id="e.g. Header" value="" placeholder="YD">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Toggle event</div>
Expand All @@ -25,15 +25,17 @@
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Display value</div>
<input class="sdpi-item-value" id="DisplayValue" value="" placeholder="Empty for toggle button" pattern="[A-Z0-9: ]*">
<input class="sdpi-item-value" id="DisplayValue" value="" placeholder="Empty to show no number" pattern="[A-Z0-9: ]*">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Display Value Units</div>
<input class="sdpi-item-value" id="DisplayValueUnit" value="" placeholder="empty for default units" pattern="[A-Z0-9: ]*">
<div class="sdpi-item-label">Unit & Decimals</div>
<input class="sdpi-item-value" id="DisplayValueUnit" value="" placeholder="Empty for default unit" pattern="[A-Z0-9: ]*" style="margin-right: 0">
<input class="sdpi-item-value" id="DisplayValuePrecision" value="" placeholder="Default decimals" pattern="[0-9: ]*" style="max-width: 90px">
</div>
<div class="sdpi-item" type="field">
<div class="sdpi-item-label">Display Value Precision</div>
<input class="sdpi-item-value" id="DisplayValuePrecision" value="" placeholder="Empty for default precision" pattern="[A-Z0-9: ]*">
<div class="sdpi-item">
<details class="message caution">
<summary>Setting invalid unit affects the whole page.</summary>
</details>
</div>
<div type="group" class="sdpi-item" id="messagegroup">
<div class="sdpi-item-label">Custom ON/OFF images</div>
Expand Down
2 changes: 1 addition & 1 deletion FlightStreamDeck.AddOn/PropertyInspector/NavCom.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="utf-8" />
<title>Property Inspector</title>
<link rel="stylesheet" href="sdpi.css">
<link rel="stylesheet" href="css/sdpi.css">
</head>
<body>
<div class="sdpi-wrapper">
Expand Down
4 changes: 2 additions & 2 deletions FlightStreamDeck.AddOn/PropertyInspector/PresetChange.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="utf-8" />
<title>Property Inspector</title>
<link rel="stylesheet" href="sdpi.css">
<link rel="stylesheet" href="css/sdpi.css">
</head>
<body>
<div class="sdpi-wrapper">
Expand All @@ -27,7 +27,7 @@
<script language="JavaScript" type="text/javascript">
function loadSettings(settings) {
if (settings['Type']) {
Type.value = settings['Type'];
Type.value = settings['Type'];
};
}

Expand Down
2 changes: 1 addition & 1 deletion FlightStreamDeck.AddOn/PropertyInspector/PresetToggle.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="utf-8" />
<title>Property Inspector</title>
<link rel="stylesheet" href="sdpi.css">
<link rel="stylesheet" href="css/sdpi.css">
</head>
<body>
<div class="sdpi-wrapper">
Expand Down
3 changes: 3 additions & 0 deletions FlightStreamDeck.AddOn/PropertyInspector/css/caret.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions FlightStreamDeck.AddOn/PropertyInspector/css/check.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions FlightStreamDeck.AddOn/PropertyInspector/css/elg_calendar.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions FlightStreamDeck.AddOn/PropertyInspector/css/rcheck.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -694,7 +694,7 @@ textarea {
border: none;
margin-top: 2px;
margin-bottom: 2px;
min-width: 219px;
min-width: 80px;
}

textarea + label {
Expand Down Expand Up @@ -1136,7 +1136,7 @@ input::-webkit-datetime-edit-fields-wrapper {
}
*/

/*
/*
input[type="date"] {
background-color: red;
outline: none;
Expand Down Expand Up @@ -1222,7 +1222,7 @@ input:required:valid {
left: 8px;
display: none;
color: #fff;
border: 8px solid transparent;
border: 8px solid transparent;
border-bottom: 8px solid #000;
}
Expand All @@ -1240,7 +1240,7 @@ input:required:valid {
opacity: 1;
position: absolute;
height: auto;
text-align: center;
bottom: 2px;
z-index: 100;
Expand Down Expand Up @@ -1307,7 +1307,7 @@ input[type=range] {
overflow: visible;
}

/*
/*
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
background-color: var(--sdpi-color);
Expand Down
Loading

0 comments on commit 536d435

Please sign in to comment.