FG1000 - Checklist MFD page
This commit is contained in:
parent
c610f6911c
commit
e66a5551c0
27 changed files with 2284 additions and 1218 deletions
1395
Aircraft/Instruments-3d/FG1000/MFDPages/Checklist.svg
Normal file
1395
Aircraft/Instruments-3d/FG1000/MFDPages/Checklist.svg
Normal file
File diff suppressed because it is too large
Load diff
After Width: | Height: | Size: 75 KiB |
|
@ -24,10 +24,10 @@
|
|||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.9999999"
|
||||
inkscape:cx="645.49836"
|
||||
inkscape:cy="276.18699"
|
||||
inkscape:cx="723.87385"
|
||||
inkscape:cy="277.88979"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="FPLPageGroup"
|
||||
inkscape:current-layer="LstPageGroup"
|
||||
showgrid="true"
|
||||
inkscape:window-width="2495"
|
||||
inkscape:window-height="1416"
|
||||
|
@ -907,8 +907,7 @@
|
|||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="PageGroup"
|
||||
style="display:inline"
|
||||
sodipodi:insensitive="true">
|
||||
style="display:inline">
|
||||
<g
|
||||
style="display:inline"
|
||||
id="NrstPageGroup"
|
||||
|
@ -1016,6 +1015,85 @@
|
|||
x="774.98926"
|
||||
y="637.28754">NEAREST INTERSECTIONS</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
style="display:inline"
|
||||
id="WPTPageGroup"
|
||||
inkscape:label="#g5660">
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.91218525;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect5293"
|
||||
width="257.0878"
|
||||
height="104.13807"
|
||||
x="768.45612"
|
||||
y="638.40588"
|
||||
inkscape:label="#rect5034" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 770,723 39.90381,0.10355 5.18566,19.44823 L 850.25,742.75 855.5,723 1020,723"
|
||||
id="path5113"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<text
|
||||
inkscape:label="#text5066"
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="774.98926"
|
||||
y="653.33002"
|
||||
id="AirportInfo"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5117"
|
||||
x="774.98926"
|
||||
y="653.33002">AIRPORT INFORMATION</tspan></text>
|
||||
<text
|
||||
inkscape:label="#text5080"
|
||||
sodipodi:linespacing="125%"
|
||||
id="IntersectionInfo"
|
||||
y="669.46088"
|
||||
x="774.98926"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="669.46088"
|
||||
x="774.98926"
|
||||
id="tspan5121"
|
||||
sodipodi:role="line">INTERSECTION INFORMATION</tspan></text>
|
||||
<text
|
||||
inkscape:label="#text5084"
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="774.98926"
|
||||
y="685.5918"
|
||||
id="NDBInfo"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5125"
|
||||
x="774.98926"
|
||||
y="685.5918">NDB INFORMATION</tspan></text>
|
||||
<text
|
||||
inkscape:label="#text5088"
|
||||
sodipodi:linespacing="125%"
|
||||
id="VORInfo"
|
||||
y="701.72266"
|
||||
x="774.98926"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="701.72266"
|
||||
x="774.98926"
|
||||
id="tspan5129"
|
||||
sodipodi:role="line">VOR INFORMATION</tspan></text>
|
||||
<text
|
||||
inkscape:label="#text5092"
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="774.98926"
|
||||
y="717.85352"
|
||||
id="UserWPTInfo"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5133"
|
||||
x="774.98926"
|
||||
y="717.85352">USER WPT INFORMATION</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
style="display:inline"
|
||||
id="AuxPageGroup"
|
||||
|
@ -1101,103 +1179,20 @@
|
|||
</g>
|
||||
<g
|
||||
style="display:inline"
|
||||
id="LstPageGroup"
|
||||
inkscape:label="#g5402">
|
||||
id="FPLPageGroup"
|
||||
inkscape:label="#g5441">
|
||||
<rect
|
||||
inkscape:label="#rect5034"
|
||||
y="638.22949"
|
||||
x="768.45648"
|
||||
height="104.31408"
|
||||
width="257.08704"
|
||||
id="rect5335"
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.91295445;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5239"
|
||||
d="m 770,723 155.69255,-0.42678 4.30174,20.15534 25.08425,0.19822 5.07322,-20.45711 L 1020,723"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="Checklist1"
|
||||
y="653.33002"
|
||||
x="774.98926"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"
|
||||
inkscape:label="#text5066"><tspan
|
||||
y="653.33002"
|
||||
x="774.98926"
|
||||
id="tspan5243"
|
||||
sodipodi:role="line">CHECKLIST 1</tspan><tspan
|
||||
y="672.08002"
|
||||
x="774.98926"
|
||||
sodipodi:role="line"
|
||||
id="tspan5245" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="774.98926"
|
||||
y="669.46088"
|
||||
id="Checklist2"
|
||||
sodipodi:linespacing="125%"
|
||||
inkscape:label="#text5080"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5249"
|
||||
x="774.98926"
|
||||
y="669.46088">CHECKLIST 2</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="Checklist3"
|
||||
y="685.5918"
|
||||
x="774.98926"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"
|
||||
inkscape:label="#text5084"><tspan
|
||||
y="685.5918"
|
||||
x="774.98926"
|
||||
id="tspan5253"
|
||||
sodipodi:role="line">CHECKLIST 3</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="774.98926"
|
||||
y="701.72266"
|
||||
id="Checklist4"
|
||||
sodipodi:linespacing="125%"
|
||||
inkscape:label="#text5088"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5257"
|
||||
x="774.98926"
|
||||
y="701.72266">CHECKLIST 4 </tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="Checklist5"
|
||||
y="717.85352"
|
||||
x="774.98926"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"
|
||||
inkscape:label="#text5092"><tspan
|
||||
y="717.85352"
|
||||
x="774.98926"
|
||||
id="tspan5261"
|
||||
sodipodi:role="line">CHECKLIST 5 </tspan></text>
|
||||
</g>
|
||||
<g
|
||||
style="display:inline"
|
||||
id="WPTPageGroup"
|
||||
inkscape:label="#g5660">
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.91218525;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect5293"
|
||||
width="257.0878"
|
||||
height="104.13807"
|
||||
x="768.45612"
|
||||
y="638.40588"
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.75189382;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect5325"
|
||||
width="257.24811"
|
||||
height="70.710793"
|
||||
x="768.37598"
|
||||
y="671.91327"
|
||||
inkscape:label="#rect5034" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 770,723 39.90381,0.10355 5.18566,19.44823 L 850.25,742.75 855.5,723 1020,723"
|
||||
id="path5113"
|
||||
d="m 770,723 115.03391,-0.42678 5.3624,20.15534 29.68045,0.19822 5.60355,-20.45711 L 1020,723"
|
||||
id="path5213"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<text
|
||||
|
@ -1205,61 +1200,41 @@
|
|||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="774.98926"
|
||||
y="653.33002"
|
||||
id="AirportInfo"
|
||||
y="685.68018"
|
||||
id="ActiveFlightPlanNarrow"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5117"
|
||||
id="tspan5217"
|
||||
x="774.98926"
|
||||
y="653.33002">AIRPORT INFORMATION</tspan></text>
|
||||
y="685.68018">ACTIVE FLIGHT PLAN</tspan><tspan
|
||||
id="tspan5219"
|
||||
sodipodi:role="line"
|
||||
x="774.98926"
|
||||
y="704.43018" /></text>
|
||||
<text
|
||||
inkscape:label="#text5080"
|
||||
sodipodi:linespacing="125%"
|
||||
id="IntersectionInfo"
|
||||
y="669.46088"
|
||||
id="FlightPlanCatalog"
|
||||
y="701.81104"
|
||||
x="774.98926"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="669.46088"
|
||||
y="701.81104"
|
||||
x="774.98926"
|
||||
id="tspan5121"
|
||||
sodipodi:role="line">INTERSECTION INFORMATION</tspan></text>
|
||||
id="tspan5223"
|
||||
sodipodi:role="line">FLIGHT PLAN CATALOG</tspan></text>
|
||||
<text
|
||||
inkscape:label="#text5084"
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="774.98926"
|
||||
y="685.5918"
|
||||
id="NDBInfo"
|
||||
y="717.94196"
|
||||
id="StoredFlightPlan"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5125"
|
||||
id="tspan5227"
|
||||
x="774.98926"
|
||||
y="685.5918">NDB INFORMATION</tspan></text>
|
||||
<text
|
||||
inkscape:label="#text5088"
|
||||
sodipodi:linespacing="125%"
|
||||
id="VORInfo"
|
||||
y="701.72266"
|
||||
x="774.98926"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="701.72266"
|
||||
x="774.98926"
|
||||
id="tspan5129"
|
||||
sodipodi:role="line">VOR INFORMATION</tspan></text>
|
||||
<text
|
||||
inkscape:label="#text5092"
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="774.98926"
|
||||
y="717.85352"
|
||||
id="UserWPTInfo"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5133"
|
||||
x="774.98926"
|
||||
y="717.85352">USER WPT INFORMATION</tspan></text>
|
||||
y="717.94196">STORED FLIGHT PLAN</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
style="display:inline"
|
||||
|
@ -1341,62 +1316,38 @@
|
|||
</g>
|
||||
<g
|
||||
style="display:inline"
|
||||
id="FPLPageGroup"
|
||||
inkscape:label="#g5441">
|
||||
id="LstPageGroup"
|
||||
inkscape:label="#g5402">
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.75189382;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect5325"
|
||||
width="257.24811"
|
||||
height="70.710793"
|
||||
x="768.37598"
|
||||
y="671.91327"
|
||||
inkscape:label="#rect5034" />
|
||||
inkscape:label="#rect5034"
|
||||
y="698"
|
||||
x="768.45648"
|
||||
height="44.543579"
|
||||
width="257.08698"
|
||||
id="rect5335"
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.91295445;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 770,723 115.03391,-0.42678 5.3624,20.15534 29.68045,0.19822 5.60355,-20.45711 L 1020,723"
|
||||
id="path5213"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
id="path5239"
|
||||
d="m 770,723 155.69255,-0.42678 4.30174,20.15534 25.08425,0.19822 5.07322,-20.45711 L 1020,723"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<text
|
||||
inkscape:label="#text5066"
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="774.98926"
|
||||
y="685.68018"
|
||||
id="ActiveFlightPlanNarrow"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5217"
|
||||
x="774.98926"
|
||||
y="685.68018">ACTIVE FLIGHT PLAN</tspan><tspan
|
||||
id="tspan5219"
|
||||
sodipodi:role="line"
|
||||
x="774.98926"
|
||||
y="704.43018" /></text>
|
||||
<text
|
||||
inkscape:label="#text5080"
|
||||
sodipodi:linespacing="125%"
|
||||
id="FlightPlanCatalog"
|
||||
y="701.81104"
|
||||
id="Checklist"
|
||||
y="717.85352"
|
||||
x="774.98926"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="701.81104"
|
||||
x="774.98926"
|
||||
id="tspan5223"
|
||||
sodipodi:role="line">FLIGHT PLAN CATALOG</tspan></text>
|
||||
<text
|
||||
inkscape:label="#text5084"
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:15px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="774.98926"
|
||||
y="717.94196"
|
||||
id="StoredFlightPlan"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5227"
|
||||
inkscape:label="#text5066"><tspan
|
||||
y="717.85352"
|
||||
x="774.98926"
|
||||
y="717.94196">STORED FLIGHT PLAN</tspan></text>
|
||||
id="tspan5243"
|
||||
sodipodi:role="line">CHECKLISTS</tspan><tspan
|
||||
y="736.60352"
|
||||
x="774.98926"
|
||||
sodipodi:role="line"
|
||||
id="tspan5245" /></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
|
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 75 KiB |
|
@ -153,7 +153,40 @@ getFlightplan : func ()
|
|||
# Retrieve the checklists for this aircraft.
|
||||
getChecklists : func()
|
||||
{
|
||||
return props.globals.getNode("/sim/checklists");
|
||||
var checklists = {};
|
||||
checklists["Standard"] = {};
|
||||
checklists["EMERGENCY"] = {};
|
||||
|
||||
var checklistprops = props.globals.getNode("/sim/checklists");
|
||||
|
||||
foreach (var chklist; checklistprops.getChildren("checklist")) {
|
||||
var title = chklist.getNode("title", 1).getValue();
|
||||
var grp = "Standard";
|
||||
var items = [];
|
||||
if (find("emergency", string.lc(title)) != -1) {
|
||||
grp = "EMERGENCY";
|
||||
}
|
||||
|
||||
# Checklists can optionally be broken down into individual pages.
|
||||
foreach (var pg; chklist.getChildren("page")) {
|
||||
foreach (var item; pg.getChildren("item")) {
|
||||
var name = item.getNode("name", 1).getValue();
|
||||
var value = item.getNode("value", 1).getValue();
|
||||
append(items, { Name : name, Value: value, Checked: 0 });
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var item; chklist.getChildren("item")) {
|
||||
var name = item.getNode("name", 1).getValue();
|
||||
var value = item.getNode("value", 1).getValue();
|
||||
append(items, { Name : name, Value: value, Checked: 0 });
|
||||
}
|
||||
|
||||
# items now contains a list of all the checklists for
|
||||
checklists[grp][title] = items;
|
||||
}
|
||||
|
||||
return checklists;
|
||||
},
|
||||
|
||||
insertWaypoint : func (data)
|
||||
|
@ -373,7 +406,7 @@ RegisterWithEmesary : func()
|
|||
controller.insertWaypoint(notification.EventParameter.Value);
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
}
|
||||
if (id == "getChecklists") {
|
||||
if (id == "GetChecklists") {
|
||||
notification.EventParameter.Value = controller.getChecklists();
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
}
|
||||
|
|
|
@ -42,11 +42,7 @@ var MFDPages = [
|
|||
"ActiveFlightPlanWide",
|
||||
"FlightPlanCatalog",
|
||||
"StoredFlightPlan",
|
||||
"Checklist1",
|
||||
"Checklist2",
|
||||
"Checklist3",
|
||||
"Checklist4",
|
||||
"Checklist5",
|
||||
"Checklist",
|
||||
"NearestAirports",
|
||||
"NearestIntersections",
|
||||
"NearestNDB",
|
||||
|
|
|
@ -0,0 +1,478 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist
|
||||
var Checklist =
|
||||
{
|
||||
new : func (mfd, myCanvas, device, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [
|
||||
Checklist,
|
||||
MFDPage.new(mfd, myCanvas, device, svg, "Checklist", "LST - CHECKLIST")
|
||||
],
|
||||
_groupSelectVisible : 0,
|
||||
_checklistSelectVisible : 0,
|
||||
_checklistDisplayVisible : 0,
|
||||
};
|
||||
|
||||
obj.topMenu(device, obj, nil);
|
||||
|
||||
obj.checklistGroupSelect = PFD.GroupElement.new(
|
||||
obj.pageName,
|
||||
svg,
|
||||
["GroupItem"],
|
||||
7,
|
||||
"GroupItem",
|
||||
0,
|
||||
"GroupSelectScrollTrough",
|
||||
"GroupSelectScrollThumb",
|
||||
(165 - 120)
|
||||
);
|
||||
|
||||
obj.checklistSelect = PFD.GroupElement.new(
|
||||
obj.pageName,
|
||||
svg,
|
||||
["ChecklistItem"],
|
||||
7,
|
||||
"ChecklistItem",
|
||||
0,
|
||||
"SelectScrollTrough",
|
||||
"SelectScrollThumb",
|
||||
(165 - 120)
|
||||
);
|
||||
|
||||
obj.checklistDisplay = ChecklistGroupElement.new(
|
||||
obj.pageName,
|
||||
svg,
|
||||
16,
|
||||
"ScrollTrough",
|
||||
"ScrollThumb",
|
||||
(525 - 180)
|
||||
);
|
||||
|
||||
# Other dynamic text elements
|
||||
obj.addTextElements(["GroupName", "Name", "Next"]);
|
||||
|
||||
# The "Next" element isn't technically dynamic, though we want it to be
|
||||
# highlighted as a text element. We need to set a value for it explicitly,
|
||||
# as it'll be set to an empty string otherwise.
|
||||
obj.setTextElement("Next", "GO TO NEXT CHECKLIST?");
|
||||
|
||||
# Hide the various groups
|
||||
obj.hideChecklistSelect();
|
||||
obj.hideGroupSelect();
|
||||
|
||||
obj.setController(fg1000.ChecklistController.new(obj, svg));
|
||||
|
||||
return obj;
|
||||
},
|
||||
|
||||
displayChecklist : func(group, name, checklist_data) {
|
||||
me.setTextElement("GroupName", group);
|
||||
me.setTextElement("Name", name);
|
||||
|
||||
if (checklist_data == nil) {
|
||||
me.checklistGroupSelect.setValues([]);
|
||||
me.checklistGroupSelect.setValues([]);
|
||||
me.checklistDisplay.setValues([]);
|
||||
return;
|
||||
}
|
||||
|
||||
# Populate the list of groups
|
||||
var grouplist = [];
|
||||
foreach (var grp; keys(checklist_data)) {
|
||||
append(grouplist, { GroupItem : substr(grp, 0, 20) } );
|
||||
}
|
||||
|
||||
me.checklistGroupSelect.setValues(grouplist);
|
||||
|
||||
# Populate the list of checklists for this group
|
||||
var checklist_group = checklist_data[group];
|
||||
var checklistlist = [];
|
||||
foreach (var checklist; keys(checklist_group)) {
|
||||
append(checklistlist, { ChecklistItem : checklist } );
|
||||
}
|
||||
|
||||
me.checklistSelect.setValues(checklistlist);
|
||||
|
||||
# Finally, populate the checklist itself!
|
||||
var checklist = checklist_group[name];
|
||||
var checklistitems = [];
|
||||
foreach (var item; checklist) {
|
||||
append(checklistitems, {
|
||||
"ItemName" : item.Name,
|
||||
"ItemValue" : item.Value,
|
||||
"ItemBox" : 1,
|
||||
"ItemDots" : 1,
|
||||
"ItemTick" : item.Checked,
|
||||
"ItemSelect" : size(checklistitems),
|
||||
});
|
||||
}
|
||||
|
||||
me.checklistDisplay.setValues(checklistitems);
|
||||
},
|
||||
|
||||
displayChecklistSelect : func () {
|
||||
me.getElement("Select").setVisible(1);
|
||||
me.checklistSelect.displayGroup();
|
||||
me.checklistSelect.showCRSR();
|
||||
},
|
||||
|
||||
hideChecklistSelect : func () { me.getElement("Select").setVisible(0); },
|
||||
isChecklistSelectVisible : func() { return me.getElement("Select").getVisible(); },
|
||||
|
||||
displayGroupSelect : func () {
|
||||
me.getElement("GroupSelect").setVisible(1);
|
||||
me.checklistGroupSelect.displayGroup();
|
||||
me.checklistGroupSelect.showCRSR();
|
||||
},
|
||||
|
||||
hideGroupSelect : func () { me.getElement("GroupSelect").setVisible(0); },
|
||||
isGroupSelectVisible : func() { return me.getElement("GroupSelect").getVisible(); },
|
||||
|
||||
displayItemSelect : func () {
|
||||
me.checklistDisplay.displayGroup();
|
||||
me.checklistDisplay.showCRSR();
|
||||
},
|
||||
|
||||
hideItemSelect : func () {
|
||||
me.checklistDisplay.hideCRSR();
|
||||
},
|
||||
|
||||
offdisplay : func() {
|
||||
me._group.setVisible(0);
|
||||
|
||||
# Reset the menu colours. Shouldn't have to do this here, but
|
||||
# there's not currently an obvious other location to do so.
|
||||
for(var i = 0; i < 12; i +=1) {
|
||||
var name = sprintf("SoftKey%d",i);
|
||||
me.device.svg.getElementById(name ~ "-bg").setColorFill(0.0,0.0,0.0);
|
||||
me.device.svg.getElementById(name).setColor(1.0,1.0,1.0);
|
||||
}
|
||||
me.getController().offdisplay();
|
||||
},
|
||||
ondisplay : func() {
|
||||
me._group.setVisible(1);
|
||||
me.mfd.setPageTitle(me.title);
|
||||
me.getController().ondisplay();
|
||||
},
|
||||
topMenu : func(device, pg, menuitem) {
|
||||
pg.clearMenu();
|
||||
pg.resetMenuColors();
|
||||
device.updateMenus();
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
# A modified GroupElement for specific use by the checklist function.
|
||||
#
|
||||
# Key differences:
|
||||
# - Current selected item is shown in white.
|
||||
# - Checked items are shown in green
|
||||
# - Unchecked items are shown in blue.
|
||||
var ChecklistGroupElement =
|
||||
{
|
||||
|
||||
new : func (pageName, svg, displaysize, scrollTroughElement=nil, scrollThumbElement=nil, scrollHeight=0, style=nil)
|
||||
{
|
||||
var obj = {
|
||||
parents : [ ChecklistGroupElement ],
|
||||
_pageName : pageName,
|
||||
_svg : svg,
|
||||
_style : style,
|
||||
_scrollTroughElement : nil,
|
||||
_scrollThumbElement : nil,
|
||||
_scrollBaseTransform : nil,
|
||||
|
||||
# A hash mapping keys to the element name prefix of an SVG element
|
||||
_textElementNames : ["ItemName", "ItemValue"],
|
||||
_highlightElementNames : ["ItemBox", "ItemTick", "ItemDots", "ItemSelect"],
|
||||
|
||||
# The size of the group. For each of the ._textElementNames hash values there
|
||||
# must be an SVG Element [pageName][elementName]{0...pageSize}
|
||||
_size : displaysize,
|
||||
|
||||
# Length of the scroll bar.
|
||||
_scrollHeight : scrollHeight,
|
||||
|
||||
# List of values to display
|
||||
_values : [],
|
||||
|
||||
# List of SVG elements to display the values
|
||||
_elements : [],
|
||||
|
||||
# Cursor index into the _values array
|
||||
_crsrIndex : 0,
|
||||
|
||||
# Whether the CRSR is enabled
|
||||
_crsrEnabled : 0,
|
||||
|
||||
# Page index - which _values index element[0] refers to. The currently
|
||||
# selected _element has index (_crsrIndex - _pageIndex)
|
||||
_pageIndex : 0,
|
||||
};
|
||||
|
||||
# Optional scroll bar elements, consisting of the Thumb and the Trough *,
|
||||
# which will be used to display the scroll position.
|
||||
# * Yes, these are the terms of art for the elements.
|
||||
assert(((scrollTroughElement == nil) and (scrollThumbElement == nil)) or
|
||||
((scrollTroughElement != nil) and (scrollThumbElement != nil)),
|
||||
"Both the scroll trough element and the scroll thumb element must be defined, or neither");
|
||||
|
||||
if (scrollTroughElement != nil) {
|
||||
obj._scrollTroughElement = svg.getElementById(pageName ~ scrollTroughElement);
|
||||
assert(obj._scrollTroughElement != nil, "Unable to find scroll element " ~ pageName ~ scrollTroughElement);
|
||||
}
|
||||
if (scrollThumbElement != nil) {
|
||||
obj._scrollThumbElement = svg.getElementById(pageName ~ scrollThumbElement);
|
||||
assert(obj._scrollThumbElement != nil, "Unable to find scroll element " ~ pageName ~ scrollThumbElement);
|
||||
obj._scrollBaseTransform = obj._scrollThumbElement.getTranslation();
|
||||
}
|
||||
|
||||
if (style == nil) obj._style = PFD.DefaultStyle;
|
||||
|
||||
for (var i = 0; i < displaysize; i = i + 1) {
|
||||
append(obj._elements, PFD.HighlightElement.new(pageName, svg, "ItemSelect" ~ i, i, obj._style));
|
||||
#append(obj._elements, PFD.TextElement.new(pageName, svg, highlightElement ~ i, i, obj._style));
|
||||
}
|
||||
|
||||
return obj;
|
||||
},
|
||||
|
||||
# Set the values of the group. values_array is an array of hashes, each of which
|
||||
# has keys that match those of ._textElementNames
|
||||
setValues : func (values_array) {
|
||||
me._values = values_array;
|
||||
#me._pageIndex = 0;
|
||||
#me._crsrIndex = 0;
|
||||
|
||||
if (size(me._values) > me._size) {
|
||||
# Number of elements exceeds our ability to display them, so enable
|
||||
# the scroll bar.
|
||||
if (me._scrollThumbElement != nil) me._scrollThumbElement.setVisible(1);
|
||||
if (me._scrollTroughElement != nil) me._scrollTroughElement.setVisible(1);
|
||||
} else {
|
||||
# There is no scrolling to do, so hide the scrollbar.
|
||||
if (me._scrollThumbElement != nil) me._scrollThumbElement.setVisible(0);
|
||||
if (me._scrollTroughElement != nil) me._scrollTroughElement.setVisible(0);
|
||||
}
|
||||
|
||||
me.displayGroup();
|
||||
},
|
||||
|
||||
displayGroup : func () {
|
||||
|
||||
# The _crsrIndex element should be displayed as close to the middle of the
|
||||
# group as possible. So as the user scrolls the list appears to move around
|
||||
# a static cursor position.
|
||||
#
|
||||
# The exceptions to this is as the _crsrIndex approaches the ends of the list.
|
||||
# In these cases, we let the cursor move to the top or bottom of the list.
|
||||
|
||||
# Check the CRSR index is valid
|
||||
if (me._crsrIndex > (size(me._values) -1)) me._crsrIndex = 0;
|
||||
|
||||
# Determine the middle element
|
||||
var middle_element_index = math.ceil(me._size / 2);
|
||||
me._pageIndex = me._crsrIndex - middle_element_index;
|
||||
|
||||
if (me._crsrIndex < middle_element_index) {
|
||||
# Start of list
|
||||
me._pageIndex = 0;
|
||||
} else if (me._crsrIndex > (size(me._values) - middle_element_index - 1)) {
|
||||
# End of list
|
||||
me._pageIndex = size(me._values) - me._size;
|
||||
}
|
||||
|
||||
for (var i = 0; i < me._size; i = i + 1) {
|
||||
if (me._pageIndex + i < size(me._values)) {
|
||||
|
||||
var value = me._values[me._pageIndex + i];
|
||||
var checked = 0;
|
||||
var crsr = 0;
|
||||
|
||||
if (value["ItemTick"] == 1) checked = 1;
|
||||
if (me._crsrEnabled and (i + me._pageIndex == me._crsrIndex)) crsr = 1;
|
||||
|
||||
foreach (var k; keys(value)) {
|
||||
|
||||
var name = me._pageName ~ k ~ i;
|
||||
var element = me._svg.getElementById(name);
|
||||
assert(element != nil, "Unable to find element " ~ name);
|
||||
|
||||
if (k == "ItemSelect") {
|
||||
# Display if this is the cursor eleemtn
|
||||
element.setVisible(crsr);
|
||||
} else if (k == "ItemTick") {
|
||||
# Check the box if appropriate
|
||||
element.setVisible(checked);
|
||||
} else if (k == "ItemBox") {
|
||||
# Always display the box, but don't colour it.
|
||||
element.setVisible(1);
|
||||
} else if (k == "ItemDots") {
|
||||
# Always display the dots
|
||||
element.setVisible(1);
|
||||
|
||||
if (crsr) {
|
||||
# White - current cursor
|
||||
element.setColor("#FFFFFF");
|
||||
} else if (checked) {
|
||||
# Green - checked
|
||||
element.setColor("#00FF00");
|
||||
} else {
|
||||
# Cyan - unchecked
|
||||
element.setColor("#00FFFF");
|
||||
}
|
||||
} else if ((k == "ItemName") or (k == "ItemValue")) {
|
||||
element.setVisible(1);
|
||||
# We need to fill the bounding box with black so that we don't
|
||||
# see the underlying dots.
|
||||
element.setText(value[k])
|
||||
.setDrawMode(canvas.Text.TEXT + canvas.Text.FILLEDBOUNDINGBOX)
|
||||
.setPadding(2)
|
||||
.setColorFill("#000000");
|
||||
|
||||
if (crsr) {
|
||||
# White - current cursor
|
||||
element.setColor("#FFFFFF");
|
||||
} else if (checked) {
|
||||
# Green - checked
|
||||
element.setColor("#00FF00");
|
||||
} else {
|
||||
# Cyan - unchecked
|
||||
element.setColor("#00FFFF");
|
||||
}
|
||||
} else {
|
||||
print("Unknown value " ~ k);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
# We've gone off the end of the values list, so hide any further values.
|
||||
foreach (var k; me._textElementNames) {
|
||||
var name = me._pageName ~ k ~ i;
|
||||
var element = me._svg.getElementById(name);
|
||||
assert(element != nil, "Unable to find element " ~ name);
|
||||
element.setVisible(0);
|
||||
}
|
||||
foreach (var k; me._highlightElementNames) {
|
||||
var name = me._pageName ~ k ~ i;
|
||||
var element = me._svg.getElementById(name);
|
||||
assert(element != nil, "Unable to find element " ~ name);
|
||||
element.setVisible(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((me._scrollThumbElement != nil) and (me._size < size(me._values))) {
|
||||
# Shift the scrollbar if it's relevant
|
||||
me._scrollThumbElement.setTranslation([
|
||||
me._scrollBaseTransform[0],
|
||||
me._scrollBaseTransform[1] + me._scrollHeight * (me._crsrIndex / (size(me._values) -1))
|
||||
]);
|
||||
}
|
||||
},
|
||||
|
||||
# Methods to add dynamic elements to the group. Must be called in the
|
||||
# scroll order, as they are simply appended to the end of the list of elements!
|
||||
addHighlightElement : func(name, value) {
|
||||
append(me._elements, HighlightElement.new(me._pageName, me._svg, name, value));
|
||||
},
|
||||
addTextElement : func(name, value) {
|
||||
append(me._elements, TextElement.new(me._pageName, me._svg, name, value));
|
||||
},
|
||||
|
||||
showCRSR : func() {
|
||||
if (size(me._values) == 0) return;
|
||||
me._crsrEnabled = 1;
|
||||
me.displayGroup();
|
||||
},
|
||||
hideCRSR : func() {
|
||||
if (me._crsrEnabled == 0) return;
|
||||
me.displayGroup();
|
||||
me._crsrEnabled = 0;
|
||||
},
|
||||
setCRSR : func(index) {
|
||||
me._crsrIndex = math.min(index, size(me._values) -1);
|
||||
me._crsrIndex = math.max(0, me._crsrIndex);
|
||||
},
|
||||
getCRSR : func() {
|
||||
return me._crsrIndex;
|
||||
},
|
||||
getCursorElementName : func() {
|
||||
if (me._crsrEnabled == -1) return nil;
|
||||
return me._elements[me._crsrIndex - me._pageIndex].name;
|
||||
},
|
||||
isCursorOnDataEntryElement : func() {
|
||||
if (me._crsrEnabled == -1) return 0;
|
||||
return isa(me._elements[me._crsrIndex - me._pageIndex], DataEntryElement);
|
||||
},
|
||||
enterElement : func() {
|
||||
if (me._crsrEnabled == 0) return;
|
||||
|
||||
# ENT on an element of the checklist simply toggles the item itself,
|
||||
# indicated by whether the check mark is visible or not.
|
||||
var name = me._pageName ~ "ItemTick" ~ (me._crsrIndex - me._pageIndex);
|
||||
var element = me._svg.getElementById(name);
|
||||
element.setVisible(! element.getVisible());
|
||||
return element.getVisible();
|
||||
},
|
||||
getValue : func() {
|
||||
if (me._crsrEnabled == -1) return nil;
|
||||
|
||||
# In this case, all we care about is whether this particular value is
|
||||
# checked or not.
|
||||
var name = me._pageName ~ "ItemTick" ~ (me._crsrIndex - me._pageIndex);
|
||||
var element = me._svg.getElementById(name);
|
||||
return element.getVisible();
|
||||
},
|
||||
setValue : func(idx, key, value) {
|
||||
me._values[idx][key] = value;
|
||||
},
|
||||
clearElement : func() {
|
||||
if (me._crsrEnabled == 0) return;
|
||||
me._elements[me._crsrIndex - me._pageIndex].clearElement();
|
||||
},
|
||||
incrSmall : func(value) {
|
||||
if (me._crsrEnabled == 0) return;
|
||||
|
||||
var incr_or_decr = (value > 0) ? 1 : -1;
|
||||
if (me._elements[me._crsrIndex - me._pageIndex].isInEdit()) {
|
||||
# We're editing, so pass to the element.
|
||||
me._elements[me._crsrIndex - me._pageIndex].incrSmall(val);
|
||||
} else {
|
||||
# Move to next selection element
|
||||
me._crsrIndex = me._crsrIndex + incr_or_decr;
|
||||
if (me._crsrIndex < 0 ) me._crsrIndex = 0;
|
||||
if (me._crsrIndex == size(me._values)) me._crsrIndex = size(me._values) -1;
|
||||
me.displayGroup();
|
||||
}
|
||||
},
|
||||
incrLarge : func(val) {
|
||||
if (me._crsrEnabled == 0) return;
|
||||
var incr_or_decr = (val > 0) ? 1 : -1;
|
||||
if (me._elements[me._crsrIndex - me._pageIndex].isInEdit()) {
|
||||
# We're editing, so pass to the element.
|
||||
me._elements[me._crsrIndex - me._pageIndex].incrLarge(val);
|
||||
} else {
|
||||
# Move to next selection element
|
||||
me._crsrIndex = me._crsrIndex + incr_or_decr;
|
||||
if (me._crsrIndex < 0 ) me._crsrIndex = 0;
|
||||
if (me._crsrIndex == size(me._values)) me._crsrIndex = size(me._values) -1;
|
||||
me.displayGroup();
|
||||
}
|
||||
},
|
||||
};
|
|
@ -0,0 +1,235 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist Controller
|
||||
var ChecklistController =
|
||||
{
|
||||
UIGROUP : {
|
||||
GROUP : 0,
|
||||
CHECKLIST: 1,
|
||||
ITEMS : 2,
|
||||
NEXT : 3,
|
||||
},
|
||||
|
||||
new : func (page, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [ ChecklistController, MFDPageController.new(page) ],
|
||||
_crsrToggle : 0,
|
||||
_recipient : nil,
|
||||
_page : page,
|
||||
_currentGroup : -1,
|
||||
_group_selected : nil,
|
||||
_list_selected : nil,
|
||||
_checklists : nil,
|
||||
};
|
||||
|
||||
obj.selectGroup(-1);
|
||||
return obj;
|
||||
},
|
||||
|
||||
selectGroup : func() {
|
||||
me.selectGroup(ChecklistController.UIGROUP.GROUP)
|
||||
},
|
||||
selectChecklist : func() {
|
||||
me.selectGroup(ChecklistController.UIGROUP.CHECKLIST);
|
||||
},
|
||||
selectItems : func() {
|
||||
me.selectGroup(ChecklistController.UIGROUP.ITEMS);
|
||||
},
|
||||
|
||||
getSelectedGroup : func() {
|
||||
return me._currentGroup;
|
||||
},
|
||||
|
||||
selectGroup : func(grp) {
|
||||
me._page.hideGroupSelect();
|
||||
me._page.hideChecklistSelect();
|
||||
|
||||
me._currentGroup = grp;
|
||||
if (grp == ChecklistController.UIGROUP.GROUP) {
|
||||
me._page.highlightTextElement("GroupName");
|
||||
} else {
|
||||
me._page.unhighlightTextElement("GroupName");
|
||||
}
|
||||
|
||||
if (grp == ChecklistController.UIGROUP.CHECKLIST) {
|
||||
me._page.highlightTextElement("Name");
|
||||
} else {
|
||||
me._page.unhighlightTextElement("Name");
|
||||
}
|
||||
|
||||
if (grp == ChecklistController.UIGROUP.ITEMS) {
|
||||
me._page.checklistDisplay.showCRSR();
|
||||
} else {
|
||||
me._page.checklistDisplay.hideCRSR();
|
||||
}
|
||||
|
||||
if (grp == ChecklistController.UIGROUP.NEXT) {
|
||||
me._page.highlightTextElement("Next");
|
||||
} else {
|
||||
me._page.unhighlightTextElement("Next");
|
||||
}
|
||||
},
|
||||
|
||||
# Input Handling
|
||||
handleCRSR : func() {
|
||||
me._crsrToggle = (! me._crsrToggle);
|
||||
if (me._crsrToggle) {
|
||||
me.selectGroup(0);
|
||||
} else {
|
||||
me.selectGroup(-1);
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
},
|
||||
handleFMSInner : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
# Either display the select group or scroll through whatever is the current list
|
||||
|
||||
if (me._currentGroup == ChecklistController.UIGROUP.GROUP) {
|
||||
if (me._page.isGroupSelectVisible()) {
|
||||
me._page.checklistGroupSelect.incrSmall(value);
|
||||
} else {
|
||||
me._page.displayGroupSelect();
|
||||
me._page.unhighlightTextElement("GroupName");
|
||||
}
|
||||
}
|
||||
|
||||
if (me._currentGroup == ChecklistController.UIGROUP.CHECKLIST) {
|
||||
if (me._page.isChecklistSelectVisible()) {
|
||||
me._page.checklistSelect.incrSmall(value);
|
||||
} else {
|
||||
me._page.displayChecklistSelect();
|
||||
me._page.unhighlightTextElement("Name");
|
||||
}
|
||||
}
|
||||
|
||||
if (me._currentGroup == ChecklistController.UIGROUP.ITEMS) {
|
||||
me._page.checklistDisplay.incrSmall(value);
|
||||
}
|
||||
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSInner(value);
|
||||
}
|
||||
},
|
||||
handleFMSOuter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
var incr_or_decr = (value > 0) ? 1 : -1;
|
||||
var idx = me._currentGroup + incr_or_decr;
|
||||
if (idx < 0) idx = 0;
|
||||
if (idx > (size(ChecklistController.UIGROUP) -1)) idx = size(ChecklistController.UIGROUP) -1;
|
||||
me.selectGroup(idx);
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSOuter(value);
|
||||
}
|
||||
},
|
||||
handleEnter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
if (me._currentGroup == ChecklistController.UIGROUP.GROUP) {
|
||||
# Load the new group, selecting the first checklist in the group
|
||||
me._group_selected = me._page.checklistGroupSelect.getValue();
|
||||
me._list_selected = keys(me._checklists[me._group_selected])[0];
|
||||
me._page.hideGroupSelect();
|
||||
me._page.displayChecklist(me._group_selected, me._list_selected, me._checklists);
|
||||
me._page.checklistDisplay.setCRSR(0);
|
||||
me.selectChecklist();
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
}
|
||||
|
||||
if (me._currentGroup == ChecklistController.UIGROUP.CHECKLIST) {
|
||||
# Load the selected checking from the group
|
||||
me._list_selected = me._page.checklistSelect.getValue();
|
||||
me._page.hideChecklistSelect();
|
||||
me._page.displayChecklist(me._group_selected, me._list_selected, me._checklists);
|
||||
me._page.checklistDisplay.setCRSR(0);
|
||||
me.selectItems();
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
}
|
||||
|
||||
if (me._currentGroup == ChecklistController.UIGROUP.ITEMS) {
|
||||
# Toggle the status of the selected Checklist item
|
||||
var idx = me._page.checklistDisplay.getCRSR();
|
||||
var checked = me._page.checklistDisplay.getValue();
|
||||
me._checklists[me._group_selected][me._list_selected][idx]["Checked"] = me._page.checklistDisplay.enterElement();
|
||||
me._page.displayChecklist(me._group_selected, me._list_selected, me._checklists);
|
||||
me._page.checklistDisplay.incrSmall(1);
|
||||
}
|
||||
|
||||
if (me._currentGroup == ChecklistController.UIGROUP.NEXT) {
|
||||
# Select the next checklist if there's one available
|
||||
var lists = keys(me._checklists[me._group_selected]);
|
||||
var idx = 0;
|
||||
for (i = 0; i < size(lists); i = i +1) {
|
||||
if (lists[i] == me._list_selected) idx = i + 1;
|
||||
}
|
||||
|
||||
if (idx < size(lists)) {
|
||||
me._list_selected = lists[idx];
|
||||
me._page.displayChecklist(me._group_selected, me._list_selected, me._checklists);
|
||||
me.selectItems();
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
}
|
||||
|
||||
return emesary.Transmitter.ReceiptStatus_NotProcessed;
|
||||
} else {
|
||||
return emesary.Transmitter.ReceiptStatus_NotProcessed;
|
||||
}
|
||||
},
|
||||
|
||||
# Retrieve the current set of checklists from the system.
|
||||
getChecklists : func() {
|
||||
var notification = notifications.PFDEventNotification.new(
|
||||
"MFD",
|
||||
me.getDeviceID(),
|
||||
notifications.PFDEventNotification.NavData,
|
||||
{Id: "GetChecklists", Value: nil});
|
||||
|
||||
var response = me._transmitter.NotifyAll(notification);
|
||||
if (! me._transmitter.IsFailed(response)) {
|
||||
me._checklists = notification.EventParameter.Value;
|
||||
}
|
||||
|
||||
me._page.displayChecklist("", "", nil);
|
||||
|
||||
# Find the first checklist of the first group to display;
|
||||
if ((me._checklists != nil) and size(keys(me._checklists)) != 0) {
|
||||
me._group_selected = keys(me._checklists)[0];
|
||||
if (size(keys(me._checklists[me._group_selected])) != 0) {
|
||||
me._list_selected = keys(me._checklists[me._group_selected])[0];
|
||||
me._page.displayChecklist(me._group_selected, me._list_selected, me._checklists);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
# Reset controller if required when the page is displayed or hidden
|
||||
ondisplay : func() {
|
||||
me.RegisterWithEmesary();
|
||||
|
||||
# Get the list of checklists if we don't already have it. This has to
|
||||
# be done here rather than in the Constructor because the appropriate
|
||||
# Emesary interface may not have been initialized in time.
|
||||
if (me._checklists == nil) me.getChecklists();
|
||||
},
|
||||
offdisplay : func() {
|
||||
me.DeRegisterWithEmesary();
|
||||
},
|
||||
|
||||
};
|
|
@ -14,11 +14,11 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist2 Options
|
||||
var Checklist2Options =
|
||||
# Checklist Options
|
||||
var ChecklistOptions =
|
||||
{
|
||||
new : func() {
|
||||
var obj = { parents : [Checklist2Options] };
|
||||
var obj = { parents : [ChecklistOptions] };
|
||||
obj.Options= {};
|
||||
obj.loadOptions();
|
||||
return obj;
|
|
@ -14,11 +14,11 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist3 Styles
|
||||
var Checklist3Styles =
|
||||
# Checklist Styles
|
||||
var ChecklistStyles =
|
||||
{
|
||||
new : func() {
|
||||
var obj = { parents : [ Checklist3Styles ]};
|
||||
var obj = { parents : [ ChecklistStyles ]};
|
||||
obj.Styles = {};
|
||||
obj.loadStyles();
|
||||
return obj;
|
|
@ -1,59 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist1
|
||||
var Checklist1 =
|
||||
{
|
||||
new : func (mfd, myCanvas, device, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [
|
||||
Checklist1,
|
||||
MFDPage.new(mfd, myCanvas, device, svg, "Checklist1", "LST - CHECKLIST 1")
|
||||
],
|
||||
};
|
||||
|
||||
obj.topMenu(device, obj, nil);
|
||||
|
||||
obj.setController(fg1000.Checklist1Controller.new(obj, svg));
|
||||
|
||||
return obj;
|
||||
},
|
||||
offdisplay : func() {
|
||||
me._group.setVisible(0);
|
||||
|
||||
# Reset the menu colours. Shouldn't have to do this here, but
|
||||
# there's not currently an obvious other location to do so.
|
||||
for(var i = 0; i < 12; i +=1) {
|
||||
var name = sprintf("SoftKey%d",i);
|
||||
me.device.svg.getElementById(name ~ "-bg").setColorFill(0.0,0.0,0.0);
|
||||
me.device.svg.getElementById(name).setColor(1.0,1.0,1.0);
|
||||
}
|
||||
me.getController().offdisplay();
|
||||
},
|
||||
ondisplay : func() {
|
||||
me._group.setVisible(1);
|
||||
me.mfd.setPageTitle(me.title);
|
||||
me.getController().ondisplay();
|
||||
},
|
||||
topMenu : func(device, pg, menuitem) {
|
||||
pg.clearMenu();
|
||||
pg.resetMenuColors();
|
||||
device.updateMenus();
|
||||
},
|
||||
|
||||
|
||||
};
|
|
@ -1,75 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist1 Controller
|
||||
var Checklist1Controller =
|
||||
{
|
||||
new : func (page, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [ Checklist1Controller, MFDPageController.new(page) ],
|
||||
_crsrToggle : 0,
|
||||
_recipient : nil,
|
||||
_page : page,
|
||||
};
|
||||
|
||||
return obj;
|
||||
},
|
||||
|
||||
|
||||
# Input Handling
|
||||
handleCRSR : func() {
|
||||
me._crsrToggle = (! me._crsrToggle);
|
||||
if (me._crsrToggle) {
|
||||
} else {
|
||||
me._page.hideCRSR();
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
},
|
||||
handleFMSInner : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
# Scroll through whatever is the current list
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSInner(value);
|
||||
}
|
||||
},
|
||||
handleFMSOuter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSOuter(value);
|
||||
}
|
||||
},
|
||||
handleEnter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
return emesary.Transmitter.ReceiptStatus_NotProcessed;
|
||||
}
|
||||
},
|
||||
|
||||
# Reset controller if required when the page is displayed or hidden
|
||||
ondisplay : func() {
|
||||
me.RegisterWithEmesary();
|
||||
},
|
||||
offdisplay : func() {
|
||||
me.DeRegisterWithEmesary();
|
||||
},
|
||||
|
||||
};
|
|
@ -1,44 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist1 Options
|
||||
var Checklist1Options =
|
||||
{
|
||||
new : func() {
|
||||
var obj = { parents : [Checklist1Options] };
|
||||
obj.Options= {};
|
||||
obj.loadOptions();
|
||||
return obj;
|
||||
},
|
||||
|
||||
getOption : func(type) {
|
||||
return me.Options[type];
|
||||
},
|
||||
|
||||
setOption : func(type, name, value) {
|
||||
me.Options[type][name] = value;
|
||||
},
|
||||
|
||||
loadOptions : func() {
|
||||
me.clearOptions();
|
||||
me.Options.APS = {};
|
||||
},
|
||||
|
||||
clearOptions : func() {
|
||||
me.Options = {};
|
||||
},
|
||||
|
||||
};
|
|
@ -1,44 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist1 Styles
|
||||
var Checklist1Styles =
|
||||
{
|
||||
new : func() {
|
||||
var obj = { parents : [ Checklist1Styles ]};
|
||||
obj.Styles = {};
|
||||
obj.loadStyles();
|
||||
return obj;
|
||||
},
|
||||
|
||||
getStyle : func(type) {
|
||||
return me.Styles[type];
|
||||
},
|
||||
|
||||
setStyle : func(type, name, value) {
|
||||
me.Styles[type][name] = value;
|
||||
},
|
||||
|
||||
loadStyles : func() {
|
||||
me. clearStyles();
|
||||
me.Styles.XXX = {};
|
||||
},
|
||||
|
||||
clearStyles : func() {
|
||||
me.Styles = {};
|
||||
},
|
||||
|
||||
};
|
|
@ -1,59 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist2
|
||||
var Checklist2 =
|
||||
{
|
||||
new : func (mfd, myCanvas, device, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [
|
||||
Checklist2,
|
||||
MFDPage.new(mfd, myCanvas, device, svg, "Checklist2", "LST - CHECKLIST 2")
|
||||
],
|
||||
};
|
||||
|
||||
obj.topMenu(device, obj, nil);
|
||||
|
||||
obj.setController(fg1000.Checklist2Controller.new(obj, svg));
|
||||
|
||||
return obj;
|
||||
},
|
||||
offdisplay : func() {
|
||||
me._group.setVisible(0);
|
||||
|
||||
# Reset the menu colours. Shouldn't have to do this here, but
|
||||
# there's not currently an obvious other location to do so.
|
||||
for(var i = 0; i < 12; i +=1) {
|
||||
var name = sprintf("SoftKey%d",i);
|
||||
me.device.svg.getElementById(name ~ "-bg").setColorFill(0.0,0.0,0.0);
|
||||
me.device.svg.getElementById(name).setColor(1.0,1.0,1.0);
|
||||
}
|
||||
me.getController().offdisplay();
|
||||
},
|
||||
ondisplay : func() {
|
||||
me._group.setVisible(1);
|
||||
me.mfd.setPageTitle(me.title);
|
||||
me.getController().ondisplay();
|
||||
},
|
||||
topMenu : func(device, pg, menuitem) {
|
||||
pg.clearMenu();
|
||||
pg.resetMenuColors();
|
||||
device.updateMenus();
|
||||
},
|
||||
|
||||
|
||||
};
|
|
@ -1,75 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist2 Controller
|
||||
var Checklist2Controller =
|
||||
{
|
||||
new : func (page, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [ Checklist2Controller, MFDPageController.new(page) ],
|
||||
_crsrToggle : 0,
|
||||
_recipient : nil,
|
||||
_page : page,
|
||||
};
|
||||
|
||||
return obj;
|
||||
},
|
||||
|
||||
|
||||
# Input Handling
|
||||
handleCRSR : func() {
|
||||
me._crsrToggle = (! me._crsrToggle);
|
||||
if (me._crsrToggle) {
|
||||
} else {
|
||||
me._page.hideCRSR();
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
},
|
||||
handleFMSInner : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
# Scroll through whatever is the current list
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSInner(value);
|
||||
}
|
||||
},
|
||||
handleFMSOuter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSOuter(value);
|
||||
}
|
||||
},
|
||||
handleEnter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
return emesary.Transmitter.ReceiptStatus_NotProcessed;
|
||||
}
|
||||
},
|
||||
|
||||
# Reset controller if required when the page is displayed or hidden
|
||||
ondisplay : func() {
|
||||
me.RegisterWithEmesary();
|
||||
},
|
||||
offdisplay : func() {
|
||||
me.DeRegisterWithEmesary();
|
||||
},
|
||||
|
||||
};
|
|
@ -1,44 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist2 Styles
|
||||
var Checklist2Styles =
|
||||
{
|
||||
new : func() {
|
||||
var obj = { parents : [ Checklist2Styles ]};
|
||||
obj.Styles = {};
|
||||
obj.loadStyles();
|
||||
return obj;
|
||||
},
|
||||
|
||||
getStyle : func(type) {
|
||||
return me.Styles[type];
|
||||
},
|
||||
|
||||
setStyle : func(type, name, value) {
|
||||
me.Styles[type][name] = value;
|
||||
},
|
||||
|
||||
loadStyles : func() {
|
||||
me. clearStyles();
|
||||
me.Styles.XXX = {};
|
||||
},
|
||||
|
||||
clearStyles : func() {
|
||||
me.Styles = {};
|
||||
},
|
||||
|
||||
};
|
|
@ -1,59 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist3
|
||||
var Checklist3 =
|
||||
{
|
||||
new : func (mfd, myCanvas, device, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [
|
||||
Checklist3,
|
||||
MFDPage.new(mfd, myCanvas, device, svg, "Checklist3", "LST - CHECKLIST 3")
|
||||
],
|
||||
};
|
||||
|
||||
obj.topMenu(device, obj, nil);
|
||||
|
||||
obj.setController(fg1000.Checklist3Controller.new(obj, svg));
|
||||
|
||||
return obj;
|
||||
},
|
||||
offdisplay : func() {
|
||||
me._group.setVisible(0);
|
||||
|
||||
# Reset the menu colours. Shouldn't have to do this here, but
|
||||
# there's not currently an obvious other location to do so.
|
||||
for(var i = 0; i < 12; i +=1) {
|
||||
var name = sprintf("SoftKey%d",i);
|
||||
me.device.svg.getElementById(name ~ "-bg").setColorFill(0.0,0.0,0.0);
|
||||
me.device.svg.getElementById(name).setColor(1.0,1.0,1.0);
|
||||
}
|
||||
me.getController().offdisplay();
|
||||
},
|
||||
ondisplay : func() {
|
||||
me._group.setVisible(1);
|
||||
me.mfd.setPageTitle(me.title);
|
||||
me.getController().ondisplay();
|
||||
},
|
||||
topMenu : func(device, pg, menuitem) {
|
||||
pg.clearMenu();
|
||||
pg.resetMenuColors();
|
||||
device.updateMenus();
|
||||
},
|
||||
|
||||
|
||||
};
|
|
@ -1,75 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist3 Controller
|
||||
var Checklist3Controller =
|
||||
{
|
||||
new : func (page, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [ Checklist3Controller, MFDPageController.new(page) ],
|
||||
_crsrToggle : 0,
|
||||
_recipient : nil,
|
||||
_page : page,
|
||||
};
|
||||
|
||||
return obj;
|
||||
},
|
||||
|
||||
|
||||
# Input Handling
|
||||
handleCRSR : func() {
|
||||
me._crsrToggle = (! me._crsrToggle);
|
||||
if (me._crsrToggle) {
|
||||
} else {
|
||||
me._page.hideCRSR();
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
},
|
||||
handleFMSInner : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
# Scroll through whatever is the current list
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSInner(value);
|
||||
}
|
||||
},
|
||||
handleFMSOuter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSOuter(value);
|
||||
}
|
||||
},
|
||||
handleEnter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
return emesary.Transmitter.ReceiptStatus_NotProcessed;
|
||||
}
|
||||
},
|
||||
|
||||
# Reset controller if required when the page is displayed or hidden
|
||||
ondisplay : func() {
|
||||
me.RegisterWithEmesary();
|
||||
},
|
||||
offdisplay : func() {
|
||||
me.DeRegisterWithEmesary();
|
||||
},
|
||||
|
||||
};
|
|
@ -1,44 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist3 Options
|
||||
var Checklist3Options =
|
||||
{
|
||||
new : func() {
|
||||
var obj = { parents : [Checklist3Options] };
|
||||
obj.Options= {};
|
||||
obj.loadOptions();
|
||||
return obj;
|
||||
},
|
||||
|
||||
getOption : func(type) {
|
||||
return me.Options[type];
|
||||
},
|
||||
|
||||
setOption : func(type, name, value) {
|
||||
me.Options[type][name] = value;
|
||||
},
|
||||
|
||||
loadOptions : func() {
|
||||
me.clearOptions();
|
||||
me.Options.APS = {};
|
||||
},
|
||||
|
||||
clearOptions : func() {
|
||||
me.Options = {};
|
||||
},
|
||||
|
||||
};
|
|
@ -1,59 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist4
|
||||
var Checklist4 =
|
||||
{
|
||||
new : func (mfd, myCanvas, device, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [
|
||||
Checklist4,
|
||||
MFDPage.new(mfd, myCanvas, device, svg, "Checklist4", "LST - CHECKLIST 4")
|
||||
],
|
||||
};
|
||||
|
||||
obj.topMenu(device, obj, nil);
|
||||
|
||||
obj.setController(fg1000.Checklist4Controller.new(obj, svg));
|
||||
|
||||
return obj;
|
||||
},
|
||||
offdisplay : func() {
|
||||
me._group.setVisible(0);
|
||||
|
||||
# Reset the menu colours. Shouldn't have to do this here, but
|
||||
# there's not currently an obvious other location to do so.
|
||||
for(var i = 0; i < 12; i +=1) {
|
||||
var name = sprintf("SoftKey%d",i);
|
||||
me.device.svg.getElementById(name ~ "-bg").setColorFill(0.0,0.0,0.0);
|
||||
me.device.svg.getElementById(name).setColor(1.0,1.0,1.0);
|
||||
}
|
||||
me.getController().offdisplay();
|
||||
},
|
||||
ondisplay : func() {
|
||||
me._group.setVisible(1);
|
||||
me.mfd.setPageTitle(me.title);
|
||||
me.getController().ondisplay();
|
||||
},
|
||||
topMenu : func(device, pg, menuitem) {
|
||||
pg.clearMenu();
|
||||
pg.resetMenuColors();
|
||||
device.updateMenus();
|
||||
},
|
||||
|
||||
|
||||
};
|
|
@ -1,75 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist4 Controller
|
||||
var Checklist4Controller =
|
||||
{
|
||||
new : func (page, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [ Checklist4Controller, MFDPageController.new(page) ],
|
||||
_crsrToggle : 0,
|
||||
_recipient : nil,
|
||||
_page : page,
|
||||
};
|
||||
|
||||
return obj;
|
||||
},
|
||||
|
||||
|
||||
# Input Handling
|
||||
handleCRSR : func() {
|
||||
me._crsrToggle = (! me._crsrToggle);
|
||||
if (me._crsrToggle) {
|
||||
} else {
|
||||
me._page.hideCRSR();
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
},
|
||||
handleFMSInner : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
# Scroll through whatever is the current list
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSInner(value);
|
||||
}
|
||||
},
|
||||
handleFMSOuter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSOuter(value);
|
||||
}
|
||||
},
|
||||
handleEnter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
return emesary.Transmitter.ReceiptStatus_NotProcessed;
|
||||
}
|
||||
},
|
||||
|
||||
# Reset controller if required when the page is displayed or hidden
|
||||
ondisplay : func() {
|
||||
me.RegisterWithEmesary();
|
||||
},
|
||||
offdisplay : func() {
|
||||
me.DeRegisterWithEmesary();
|
||||
},
|
||||
|
||||
};
|
|
@ -1,44 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist4 Options
|
||||
var Checklist4Options =
|
||||
{
|
||||
new : func() {
|
||||
var obj = { parents : [Checklist4Options] };
|
||||
obj.Options= {};
|
||||
obj.loadOptions();
|
||||
return obj;
|
||||
},
|
||||
|
||||
getOption : func(type) {
|
||||
return me.Options[type];
|
||||
},
|
||||
|
||||
setOption : func(type, name, value) {
|
||||
me.Options[type][name] = value;
|
||||
},
|
||||
|
||||
loadOptions : func() {
|
||||
me.clearOptions();
|
||||
me.Options.APS = {};
|
||||
},
|
||||
|
||||
clearOptions : func() {
|
||||
me.Options = {};
|
||||
},
|
||||
|
||||
};
|
|
@ -1,44 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist4 Styles
|
||||
var Checklist4Styles =
|
||||
{
|
||||
new : func() {
|
||||
var obj = { parents : [ Checklist4Styles ]};
|
||||
obj.Styles = {};
|
||||
obj.loadStyles();
|
||||
return obj;
|
||||
},
|
||||
|
||||
getStyle : func(type) {
|
||||
return me.Styles[type];
|
||||
},
|
||||
|
||||
setStyle : func(type, name, value) {
|
||||
me.Styles[type][name] = value;
|
||||
},
|
||||
|
||||
loadStyles : func() {
|
||||
me. clearStyles();
|
||||
me.Styles.XXX = {};
|
||||
},
|
||||
|
||||
clearStyles : func() {
|
||||
me.Styles = {};
|
||||
},
|
||||
|
||||
};
|
|
@ -1,59 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist5
|
||||
var Checklist5 =
|
||||
{
|
||||
new : func (mfd, myCanvas, device, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [
|
||||
Checklist5,
|
||||
MFDPage.new(mfd, myCanvas, device, svg, "Checklist5", "LST - CHECKLIST 5")
|
||||
],
|
||||
};
|
||||
|
||||
obj.topMenu(device, obj, nil);
|
||||
|
||||
obj.setController(fg1000.Checklist5Controller.new(obj, svg));
|
||||
|
||||
return obj;
|
||||
},
|
||||
offdisplay : func() {
|
||||
me._group.setVisible(0);
|
||||
|
||||
# Reset the menu colours. Shouldn't have to do this here, but
|
||||
# there's not currently an obvious other location to do so.
|
||||
for(var i = 0; i < 12; i +=1) {
|
||||
var name = sprintf("SoftKey%d",i);
|
||||
me.device.svg.getElementById(name ~ "-bg").setColorFill(0.0,0.0,0.0);
|
||||
me.device.svg.getElementById(name).setColor(1.0,1.0,1.0);
|
||||
}
|
||||
me.getController().offdisplay();
|
||||
},
|
||||
ondisplay : func() {
|
||||
me._group.setVisible(1);
|
||||
me.mfd.setPageTitle(me.title);
|
||||
me.getController().ondisplay();
|
||||
},
|
||||
topMenu : func(device, pg, menuitem) {
|
||||
pg.clearMenu();
|
||||
pg.resetMenuColors();
|
||||
device.updateMenus();
|
||||
},
|
||||
|
||||
|
||||
};
|
|
@ -1,75 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist5 Controller
|
||||
var Checklist5Controller =
|
||||
{
|
||||
new : func (page, svg)
|
||||
{
|
||||
var obj = {
|
||||
parents : [ Checklist5Controller, MFDPageController.new(page) ],
|
||||
_crsrToggle : 0,
|
||||
_recipient : nil,
|
||||
_page : page,
|
||||
};
|
||||
|
||||
return obj;
|
||||
},
|
||||
|
||||
|
||||
# Input Handling
|
||||
handleCRSR : func() {
|
||||
me._crsrToggle = (! me._crsrToggle);
|
||||
if (me._crsrToggle) {
|
||||
} else {
|
||||
me._page.hideCRSR();
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
},
|
||||
handleFMSInner : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
# Scroll through whatever is the current list
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSInner(value);
|
||||
}
|
||||
},
|
||||
handleFMSOuter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
# Pass to the page group controller to display and scroll through the page group menu
|
||||
return me._page.mfd.SurroundController.handleFMSOuter(value);
|
||||
}
|
||||
},
|
||||
handleEnter : func(value) {
|
||||
if (me._crsrToggle == 1) {
|
||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||
} else {
|
||||
return emesary.Transmitter.ReceiptStatus_NotProcessed;
|
||||
}
|
||||
},
|
||||
|
||||
# Reset controller if required when the page is displayed or hidden
|
||||
ondisplay : func() {
|
||||
me.RegisterWithEmesary();
|
||||
},
|
||||
offdisplay : func() {
|
||||
me.DeRegisterWithEmesary();
|
||||
},
|
||||
|
||||
};
|
|
@ -1,44 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist5 Options
|
||||
var Checklist5Options =
|
||||
{
|
||||
new : func() {
|
||||
var obj = { parents : [Checklist5Options] };
|
||||
obj.Options= {};
|
||||
obj.loadOptions();
|
||||
return obj;
|
||||
},
|
||||
|
||||
getOption : func(type) {
|
||||
return me.Options[type];
|
||||
},
|
||||
|
||||
setOption : func(type, name, value) {
|
||||
me.Options[type][name] = value;
|
||||
},
|
||||
|
||||
loadOptions : func() {
|
||||
me.clearOptions();
|
||||
me.Options.APS = {};
|
||||
},
|
||||
|
||||
clearOptions : func() {
|
||||
me.Options = {};
|
||||
},
|
||||
|
||||
};
|
|
@ -1,44 +0,0 @@
|
|||
# Copyright 2018 Stuart Buchanan
|
||||
# This file is part of FlightGear.
|
||||
#
|
||||
# Foobar is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FlightGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Checklist5 Styles
|
||||
var Checklist5Styles =
|
||||
{
|
||||
new : func() {
|
||||
var obj = { parents : [ Checklist5Styles ]};
|
||||
obj.Styles = {};
|
||||
obj.loadStyles();
|
||||
return obj;
|
||||
},
|
||||
|
||||
getStyle : func(type) {
|
||||
return me.Styles[type];
|
||||
},
|
||||
|
||||
setStyle : func(type, name, value) {
|
||||
me.Styles[type][name] = value;
|
||||
},
|
||||
|
||||
loadStyles : func() {
|
||||
me. clearStyles();
|
||||
me.Styles.XXX = {};
|
||||
},
|
||||
|
||||
clearStyles : func() {
|
||||
me.Styles = {};
|
||||
},
|
||||
|
||||
};
|
|
@ -45,7 +45,7 @@ var PAGE_GROUPS = [
|
|||
|
||||
{ label: "LstGroupLabel",
|
||||
group: "LstPageGroup",
|
||||
pages: [ "Checklist1", "Checklist2", "Checklist3", "Checklist4", "Checklist5"],
|
||||
pages: [ "Checklist"],
|
||||
},
|
||||
|
||||
{ label: "NrstGroupLabel",
|
||||
|
|
Loading…
Add table
Reference in a new issue