diff --git a/Aircraft/Instruments-3d/FG1000/Models/fascia.png b/Aircraft/Instruments-3d/FG1000/Models/fascia.png new file mode 100644 index 000000000..a0141e0d3 Binary files /dev/null and b/Aircraft/Instruments-3d/FG1000/Models/fascia.png differ diff --git a/Aircraft/Instruments-3d/FG1000/Models/fascia.svg b/Aircraft/Instruments-3d/FG1000/Models/fascia.svg new file mode 100644 index 000000000..41c2ec3ac --- /dev/null +++ b/Aircraft/Instruments-3d/FG1000/Models/fascia.svg @@ -0,0 +1,4543 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + PUSH CRSR + + + MENU + + + + FPL + + + + + PROC + + + + + + + D + + + + + + + + + CLR + + + + + + ENT + + + FMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + - + + + + + + + + + + + + + + + + + RANGE + + + PUSH + PAN + + + + + + + + + + + + + + + + + + HDG + NAV + ALT + + 1-2 + PUSH + + + PUSH + HDG SYNC + + + + + + + + + + + + + + + + + + + + + PUSH + CRS CTR + + EMERG + COM + + + 1-2 + PUSH + + + + VOL + PUSH + SQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CRS + BARO + + + - + - + + + VOL + PUSH + ID + + DFLT MAP + + diff --git a/Aircraft/Instruments-3d/FG1000/Models/surrounds.svg b/Aircraft/Instruments-3d/FG1000/Models/surrounds.svg new file mode 100644 index 000000000..963d61c1b --- /dev/null +++ b/Aircraft/Instruments-3d/FG1000/Models/surrounds.svg @@ -0,0 +1,17918 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BC + + + + APR + + + + NAV + + + FD + + + XFR + + + ALT + + + VS + + + FLC + + + SPD + + + VNV + + + YD + + + AP + + + BANK + + + + + + + + + + HDG + HDG + CRS1 + ALT SEL + + + + + + + + + + + + CRS2 + PUSH SYNC + PUSH DIR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DN + UP + + + + PUSH DIR + + + A + + + B + + + C + + + D + + + E + + + F + + + K + + + J + + + + HDG + + + + H + + + G + + + L + + + M + + + N + + + O + + + P + + + Q + + + V + + + U + + + T + + + S + + + R + + + Z + + + Y + + + X + + + W + + + BKSP + + + SPC + + + CLR + + + + + ENT + + + + I + + + + + MENU + + + FPL + + + PROC + + + + + 9 + + + + + 0 + + + + + + + + + + + + + +/- + + + + + + + + + + + + + + 9 + 8 + 7 + + + + + 9 + + + + + + + + + + + + + 6 + 5 + 4 + + + + + 9 + + + + + + + + + + + + + 3 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DFLTMAP + + + + + + D + + + + + + + + + + + + + - + + - + - + + + + + + + + + + + + + + + + + RANGE + PUSH + PAN + + + + + + + + + + + + + + + + + + SOFTKEY SELECT + PUSH CRSR + + . + - + + + + + + + + + + + + + + + + + SEL + + + + + + A + + + + + + + + + + + + + + + + + + + + SEL + + + + + + + + + + + + + + + SEL + + + + + + + + + + + + + SEL + + + + + + + + + + + + + SEL + + + + + + + + + + + + + + + + SEL + + + + + + + + + + + + + + SEL + + + + + + + + + + + + + SEL + + + + + + + + + + + + + + SEL + + + + + + + + + + + + + SEL + + + + + + + 9 + + + + + 0 + + + + + + + + + + +/- + + + + + + + + + + + + + 9 + 8 + 7 + + + + + 9 + + + + + + + + + + + + + 6 + 5 + 4 + + + + + 9 + + + + + + + + + + + + + 3 + 2 + 1 + + + + + + + + + + + + B + + + + + C + + + + + D + + + + + E + + + + + F + + + + + K + + + + + J + + + + + H + + + + + G + + + + + L + + + + + M + + + + + N + + + + + O + + + + + P + + + + + Q + + + + + V + + + + + U + + + + + T + + + + + S + + + + + R + + + + + Z + + + + + Y + + + + + X + + + + + W + + + + + BKSP + + + + + SPC + + + + + CLR + + + + ENT + + + + + + I + + + + + MENU + + + FPL + + + PROC + + + + + 9 + + + 0 + + + + + + + + + + +/- + + + + + + + + + + + + + 9 + 8 + 7 + + + + + 9 + + + + + + + + + + + + + 6 + 5 + 4 + + + + + 9 + + + + + + + + + + + + + 3 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DFLTMAP + + + + + + + + + - + + - + - + + + + + + + + + + + + + + + + + RANGE + PUSH + PAN + + + + + + + + + + + + + + + + + SOFTKEY SELECT + PUSH CRSR + + . + - + + + + + + A + + + + + + + + + + + + + + + + PUSH CRSR + + + MENU + + + + FPL + + + + + PROC + + + + + + + D + + + + + + + + + CLR + + + + + + ENT + + + FMS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + + + + + + + + + + + + + + + + + RANGE + + + PUSH + PAN + + + + + + + + + + + + + + + + + + HDG + NAV + ALT + + 1-2 + PUSH + + + PUSH + HDG SYNC + + + + + + + + + + + + + + + + + + + + + PUSH + CRS CTR + + EMERG + COM + + + 1-2 + PUSH + + + + VOL + PUSH + SQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CRS + BARO + + + - + - + + + diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/MFD.nas b/Aircraft/Instruments-3d/FG1000/Nasal/MFD.nas index 6f6470383..a58b57835 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/MFD.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/MFD.nas @@ -72,6 +72,8 @@ var MFD = }; obj._svg = myCanvas.createGroup("softkeys"); + obj._svg.set("clip-frame", canvas.Element.LOCAL); + obj._svg.set("clip", "rect(0px, 1024px, 768px, 0px)"); var fontmapper = func (family, weight) { #if( family == "Liberation Sans" and weight == "narrow" ) { @@ -126,17 +128,6 @@ var MFD = obj.EIS.ondisplay(); obj._MFDDevice.selectPage(obj.NavigationMap); - - # Add a wheel controller., which we will attach to the zoom. - myCanvas.addEventListener("wheel", func(e) - { - if (e.deltaY >0) { - obj._MFDDevice.current_page.controller.handleFMSInner(1); - } else { - obj._MFDDevice.current_page.controller.handleFMSInner(-1); - } - }); - return obj; }, getDevice : func () { diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPageController.nas b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPageController.nas index 3d803bf33..d81449447 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPageController.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPageController.nas @@ -24,7 +24,7 @@ new : func (page) # handleNavVol : func (value) { return me.page.mfd.SurroundController.handleNavVol(value); }, -handleNavVolToggle : func (value) { return me.page.mfd.SurroundController.handleNavVolToggle(value); }, +handleNavID : func (value) { return me.page.mfd.SurroundController.handleNavID(value); }, handleNavFreqTransfer : func (value) { return me.page.mfd.SurroundController.handleNavFreqTransfer(value); }, handleNavOuter : func (value) { return me.page.mfd.SurroundController.handleNavOuter(value); }, handleNavInner : func (value) { return me.page.mfd.SurroundController.handleNavInner(value); }, @@ -88,7 +88,7 @@ RegisterWithEmesary : func() #printf("Button pressed " ~ id ~ " " ~ value); if (id == fg1000.FASCIA.NAV_VOL) return controller.handleNavVol(value); - if (id == fg1000.FASCIA.NAV_VOL_TOGGLE) return controller.handleNavVolToggle(value); + if (id == fg1000.FASCIA.NAV_ID) return controller.handleNavID(value); if (id == fg1000.FASCIA.NAV_FREQ_TRANSFER) return controller.handleNavFreqTransfer(value); if (id == fg1000.FASCIA.NAV_OUTER) return controller.handleNavOuter(value); if (id == fg1000.FASCIA.NAV_INNER) return controller.handleNavInner(value); diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/NavigationMap/NavigationMap.nas b/Aircraft/Instruments-3d/FG1000/Nasal/NavigationMap/NavigationMap.nas index 0d37e4c59..20edc6cb0 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/NavigationMap/NavigationMap.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/NavigationMap/NavigationMap.nas @@ -11,6 +11,7 @@ var NavigationMap = }; obj.MFDMap = obj._group.createChild("map"); + obj.MFDMap.setScreenRange(689/2.0); # Labels for map range and orientation. Two sets - one for the full display diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/Surround/SurroundController.nas b/Aircraft/Instruments-3d/FG1000/Nasal/Surround/SurroundController.nas index af4795935..dc2741358 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/Surround/SurroundController.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/Surround/SurroundController.nas @@ -78,7 +78,7 @@ var SurroundController = return emesary.Transmitter.ReceiptStatus_Finished; }, - handleNavVolToggle : func (value) { + handleNavID : func (value) { var data={}; if (me._navselected == 1) { diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/constants.nas b/Aircraft/Instruments-3d/FG1000/Nasal/constants.nas index f42339b14..2c501ed17 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/constants.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/constants.nas @@ -74,7 +74,7 @@ var MAX_NAV_FREQ = 118.000; # Constants for the hard-buttons on the fascia var FASCIA = { NAV_VOL : 0, - NAV_VOL_TOGGLE : 1, + NAV_ID : 1, NAV_FREQ_TRANSFER :2, NAV_OUTER : 3, NAV_INNER : 4, diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/gui.nas b/Aircraft/Instruments-3d/FG1000/Nasal/gui.nas new file mode 100644 index 000000000..a275b3b94 --- /dev/null +++ b/Aircraft/Instruments-3d/FG1000/Nasal/gui.nas @@ -0,0 +1,219 @@ + +io.include("constants.nas"); + +var MFDGUI = +{ + + # List of UI hotspots and their mapping to Emesary bridge notifications + WHEEL_HOT_SPOTS : [ + { notification: fg1000.FASCIA.NAV_VOL, shift: 0, top_left: [65, 45], bottom_right: [112, 90] }, + { notification: fg1000.FASCIA.NAV_INNER, shift: 0, top_left: [45, 168], bottom_right: [135, 250] }, + { notification: fg1000.FASCIA.NAV_OUTER, shift: 1, top_left: [45, 168], bottom_right: [135, 250] }, + { notification: fg1000.FASCIA.HEADING, shift: 0, top_left: [45, 338], bottom_right: [135, 411] }, + { notification: fg1000.FASCIA.ALT_INNER, shift: 0, top_left: [45, 800], bottom_right: [135, 880] }, + { notification: fg1000.FASCIA.ALT_OUTER, shift: 1, top_left: [45, 800], bottom_right: [135, 880] }, + + + { notification: fg1000.FASCIA.COM_VOL, shift: 0, top_left: [1290, 45], bottom_right: [1340, 90] }, + { notification: fg1000.FASCIA.COM_INNER, shift: 0, top_left: [1275, 170], bottom_right: [1355, 245] }, + { notification: fg1000.FASCIA.COM_OUTER, shift: 1, top_left: [1275, 170], bottom_right: [1355, 245] }, + + { notification: fg1000.FASCIA.CRS, shift: 0, top_left: [1275, 331], bottom_right: [1355, 410] }, + { notification: fg1000.FASCIA.BARO, shift: 1, top_left: [1275, 331], bottom_right: [1355, 410] }, + + { notification: fg1000.FASCIA.RANGE, shift: 0, top_left: [1275, 497], bottom_right: [1355, 554] }, + + { notification: fg1000.FASCIA.FMS_INNER, shift: 0, top_left: [1275, 800], bottom_right: [1355, 880] }, + { notification: fg1000.FASCIA.FMS_OUTER, shift: 1, top_left: [1275, 800], bottom_right: [1355, 880] }, + ], + + CLICK_HOT_SPOTS : [ + { notification: fg1000.FASCIA.NAV_ID, shift: 0, value: 1, top_left: [65, 47], bottom_right: [112, 90] }, + { notification: fg1000.FASCIA.NAV_FREQ_TRANSFER, shift: 0, value: 1, top_left: [100, 102], bottom_right: [150, 138] }, + { notification: fg1000.FASCIA.NAV_TOGGLE, shift: 0, value: 1, top_left: [45, 168], bottom_right: [135, 250] }, + { notification: fg1000.FASCIA.HEADING_PRESS, shift: 0, value: 1, top_left: [45, 338], bottom_right: [135, 411] }, + + { notification: fg1000.FASCIA.COM_VOL_TOGGLE, shift: 0, value: 1, top_left: [1290, 45], bottom_right: [1340, 90] }, + { notification: fg1000.FASCIA.COM_FREQ_TRANSFER, shift: 0, value: 1, top_left: [1250, 100], bottom_right: [1300, 140] }, + { notification: fg1000.FASCIA.COM_FREQ_TRANSFER_HOLD, shift: 1, value: 1, top_left: [1250, 100], bottom_right: [1300, 140] }, + { notification: fg1000.FASCIA.CRS_CENTER, shift: 0, value: 1, top_left: [1275, 331], bottom_right: [1355, 410] }, + + { notification: fg1000.FASCIA.JOYSTICK_PRESS, shift: 0, value: 1, top_left: [1295, 500], bottom_right: [1345, 550] }, + + { notification: fg1000.FASCIA.JOYSTICK_HORIZONTAL, shift: 0, value: -1, top_left: [1255, 500], bottom_right: [1285, 550] }, + { notification: fg1000.FASCIA.JOYSTICK_HORIZONTAL, shift: 0, value: 1, top_left: [1345, 500], bottom_right: [1380, 550] }, + + { notification: fg1000.FASCIA.JOYSTICK_VERTICAL, shift: 0, value: -1, top_left: [1295, 465], bottom_right: [1345, 500] }, + { notification: fg1000.FASCIA.JOYSTICK_VERTICAL, shift: 0, value: 1, top_left: [1295, 550], bottom_right: [1345, 585] }, + + { notification: fg1000.FASCIA.DTO, shift: 0, value: 1, top_left: [1255, 620], bottom_right: [1305, 660] }, + { notification: fg1000.FASCIA.FPL, shift: 0, value: 1, top_left: [1255, 670], bottom_right: [1305, 710] }, + { notification: fg1000.FASCIA.CLR, shift: 0, value: 1, top_left: [1255, 720], bottom_right: [1305, 760] }, + { notification: fg1000.FASCIA.CLR_HOLD, shift: 1, value: 1, top_left: [1255, 720], bottom_right: [1305, 760] }, + + { notification: fg1000.FASCIA.MENU, shift: 0, value: 1, top_left: [1325, 620], bottom_right: [1380, 660] }, + { notification: fg1000.FASCIA.PROC, shift: 0, value: 1, top_left: [1325, 670], bottom_right: [1380, 710] }, + { notification: fg1000.FASCIA.ENT, shift: 0, value: 1, top_left: [1325, 720], bottom_right: [1380, 760] }, + + { notification: fg1000.FASCIA.FMS_CRSR, shift: 0, value: 1, top_left: [1275, 800], bottom_right: [1355, 880] }, + ], + + SOFTKEY_HOTSPOTS : [ + { Id: 1, top_left: [205, 830], bottom_right: [265, 875] }, + { Id: 2, top_left: [290, 830], bottom_right: [350, 875] }, + { Id: 3, top_left: [375, 830], bottom_right: [435, 875] }, + { Id: 4, top_left: [460, 830], bottom_right: [520, 875] }, + { Id: 5, top_left: [545, 830], bottom_right: [605, 875] }, + { Id: 6, top_left: [630, 830], bottom_right: [690, 875] }, + { Id: 7, top_left: [715, 830], bottom_right: [775, 875] }, + { Id: 8, top_left: [800, 830], bottom_right: [860, 875] }, + { Id: 9, top_left: [885, 830], bottom_right: [945, 875] }, + { Id: 10, top_left: [970, 830], bottom_right: [1030, 875] }, + { Id: 11, top_left: [1055, 830], bottom_right: [1115, 875] }, + { Id: 12, top_left: [1145, 830], bottom_right: [1200, 875] }, + ], + + new : func() + { + var obj = { + parents : [ MFDGUI ], + mfd : nil, + eisPublisher : nil, + navcomPublisher : nil, + navcomUpdater : nil, + navdataInterface : nil, + width : 1407, + height : 918, + }; + + obj.window = canvas.Window.new([obj.width,obj.height],"dialog").set('title',"FG1000 MFD"); + + obj.window.del = func() { + # Over-ride the window.del function so we clean up when the user closes the window + # Use call method to ensure we have the correct closure. + call(obj.cleanup, [], obj); + }; + + # creating the top-level/root group which will contain all other elements/group + obj.myCanvas = obj.window.createCanvas(); + obj.root = obj.myCanvas.createGroup(); + + var nasal_dir = getprop("/sim/fg-root") ~ "/Aircraft/Instruments-3d/FG1000/Nasal/"; + io.load_nasal(nasal_dir ~ 'MFD.nas', "fg1000"); + io.load_nasal(nasal_dir ~ 'Interfaces/PropertyPublisher.nas', "fg1000"); + io.load_nasal(nasal_dir ~ 'Interfaces/PropertyUpdater.nas', "fg1000"); + io.load_nasal(nasal_dir ~ 'Interfaces/GenericEISPublisher.nas', "fg1000"); + io.load_nasal(nasal_dir ~ 'Interfaces/GenericNavComPublisher.nas', "fg1000"); + io.load_nasal(nasal_dir ~ 'Interfaces/GenericNavComUpdater.nas', "fg1000"); + io.load_nasal(nasal_dir ~ 'Interfaces/NavDataInterface.nas', "fg1000"); + + # Now create the MFD itself + obj.mfd = fg1000.MFD.new(obj.myCanvas); + obj.mfd._svg.setTranslation(186,45); + obj.mfd._svg.set("z-index", 150); + + # Create the surround fascia, which is just a PNG image; + var child = obj.root.createChild("image") + .setFile("Aircraft/Instruments-3d/FG1000/Models/fascia.png") + .set("z-index", 100) + .setTranslation(0, 0) + .setSize(obj.width,obj.height); + + obj.eisPublisher = fg1000.GenericEISPublisher.new(); + obj.eisPublisher.start(); + + obj.navcomPublisher = fg1000.GenericNavComPublisher.new(); + obj.navcomPublisher.start(); + + obj.navcomUpdater = fg1000.GenericNavComUpdater.new(obj.mfd.getDevice()); + obj.navcomUpdater.start(); + + obj.navdataInterface = fg1000.NavDataInterface.new(obj.mfd.getDevice()); + obj.navdataInterface.start(); + + # Add a event listener for the mouse wheel, which is used for turning the + # knobs. + obj.myCanvas.addEventListener("wheel", func(e) + { + print("WHEEL: Local " ~ math.round(e.localX) ~ ", " ~ math.round(e.localY)); + + foreach(var hotspot; MFDGUI.WHEEL_HOT_SPOTS) { + if ((e.localX > hotspot.top_left[0]) and (e.localX < hotspot.bottom_right[0]) and + (e.localY > hotspot.top_left[1]) and (e.localY < hotspot.bottom_right[1]) and + (e.shiftKey == hotspot.shift)) + { + # We've found the hotspot, so send a notification to deal with it + var notification = notifications.PFDEventNotification.new( + "MFD", + 1, + notifications.PFDEventNotification.HardKeyPushed, + { Id: hotspot.notification, Value: e.deltaY } + ); + emesary.GlobalTransmitter.NotifyAll(notification); + break; + } + } + }); + + # Add a event listener for the mouse click, which is used for buttons + + obj.myCanvas.addEventListener("click", func(e) + { + print("CLICK: Local " ~ math.round(e.localX) ~ ", " ~ math.round(e.localY)); + + foreach(var hotspot; MFDGUI.CLICK_HOT_SPOTS) { + if ((e.localX > hotspot.top_left[0]) and (e.localX < hotspot.bottom_right[0]) and + (e.localY > hotspot.top_left[1]) and (e.localY < hotspot.bottom_right[1]) and + (e.shiftKey == hotspot.shift)) + { + # We've found the hotspot, so send a notification to deal with it + var notification = notifications.PFDEventNotification.new( + "MFD", + 1, + notifications.PFDEventNotification.HardKeyPushed, + { Id: hotspot.notification, Value: hotspot.value } + ); + emesary.GlobalTransmitter.NotifyAll(notification); + break; + } + } + + foreach(var hotspot; MFDGUI.SOFTKEY_HOTSPOTS) { + if ((e.localX > hotspot.top_left[0]) and (e.localX < hotspot.bottom_right[0]) and + (e.localY > hotspot.top_left[1]) and (e.localY < hotspot.bottom_right[1])) + { + # We've found the hotspot, so send a notification to deal with it + var notification = notifications.PFDEventNotification.new( + "MFD", + 1, + notifications.PFDEventNotification.SoftKeyPushed, + hotspot.Id + ); + emesary.GlobalTransmitter.NotifyAll(notification); + break; + } + } + }); + + return obj; + }, + + cleanup : func() + { + me.mfd.del(); + me.eisPublisher.stop(); + me.eisPublisher = nil; + + me.navcomPublisher.stop(); + me.navcomPublisher = nil; + + me.navcomUpdater.stop(); + me.navcomUpdater = nil; + + me.navdataInterface.stop(); + me.navdataInterface =nil; + + # Clean up the window itself + call(canvas.Window.del, [], me.window); + }, +}; diff --git a/gui/dialogs/fg1000.xml b/gui/dialogs/fg1000.xml deleted file mode 100644 index cf98bf166..000000000 --- a/gui/dialogs/fg1000.xml +++ /dev/null @@ -1,1255 +0,0 @@ - - - - fg1000 - vbox - true - 3 - - - 1.0 - - - - - - - - - - hbox - 1 - 1 - - - - - - 1 - - - - - - - - hbox - true - fill - - - - vbox - center - top - - - vol - - 30 - /gui/dialogs/fg1000/nav-vol - dialog-apply - - nasal - - - - - - - - - - hbox - center - 0 - - - - - - - - - - - - - - hdg - 20 - /gui/dialogs/fg1000/hdg - dialog-apply - - - - - - - table - - - - - - - - - - - - - - - - - - - - - - - hbox - center - 0 - - - - - - - - - - - - - - - vbox - true - - - - canvas-map - center - center - false - 1024 - 768 - 1024 - 768 - - - hbox - true - fill - fill - - - - - hbox - true - fill - top - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - vbox - center - top - - - com-vol - - 30 - /gui/dialogs/fg1000/com-vol - dialog-apply - - - - - - - - hbox - center - 0 - - - - - - - - - - - - - - - baro - 20 - /gui/dialogs/fg1000/baro - dialog-apply - - - - - - - - crs - 20 - /gui/dialogs/fg1000/crs - dialog-apply - - - - - - - - - - - hbox - center - 0 - - - - - - - table - center - 0 - - - - - - - - - - table - center - - - - - - - - - - - - - - hbox - center - 0 - - - - - - - - - - - - diff --git a/gui/menubar.xml b/gui/menubar.xml index 56283a292..094611321 100644 --- a/gui/menubar.xml +++ b/gui/menubar.xml @@ -824,8 +824,12 @@ fg1000 - dialog-show - fg1000 + nasal +