From 88478a167075cfc81e87fcdd3bf652f226f32e3d Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Sat, 28 Sep 2019 21:52:42 -0700 Subject: [PATCH] Upgrade to std.mi from Winamp 5.66 (#936) * Upgrade to std.mi from Winamp 5.66 * Add missing type annotation * Update usage data --- modern/resources/maki-skin-data.json | 718 ++++---- modern/src/initialize.js | 4 +- .../__snapshots__/objects.test.js.snap | 117 +- .../src/maki-interpreter/objectData/std.json | 1513 ++++++++++++++--- modern/src/maki-interpreter/parser.test.js | 2 +- .../tools/extract-object-types.js | 3 +- .../maki-interpreter/tools/parse-mi.test.js | 3 +- modern/src/runtime/AlbumArtLayer.ts | 31 + modern/src/runtime/BitList.ts | 36 + modern/src/runtime/Browser.ts | 30 + modern/src/runtime/Container.ts | 16 + modern/src/runtime/Frame.ts | 29 + modern/src/runtime/GroupList.ts | 5 + modern/src/runtime/GuiList.ts | 45 + modern/src/runtime/GuiObject.ts | 25 + modern/src/runtime/Layer.ts | 5 + modern/src/runtime/Layout.ts | 2 +- modern/src/runtime/List.ts | 6 + modern/src/runtime/Map.ts | 5 + modern/src/runtime/Menu.ts | 79 + modern/src/runtime/System.ts | 269 +++ .../runtime/{Component.ts => WindowHolder.ts} | 11 +- modern/src/runtime/index.ts | 14 +- 23 files changed, 2362 insertions(+), 606 deletions(-) create mode 100644 modern/src/runtime/AlbumArtLayer.ts create mode 100644 modern/src/runtime/BitList.ts create mode 100644 modern/src/runtime/Frame.ts create mode 100644 modern/src/runtime/Menu.ts rename modern/src/runtime/{Component.ts => WindowHolder.ts} (84%) diff --git a/modern/resources/maki-skin-data.json b/modern/resources/maki-skin-data.json index ff9a7195..f4b2a61f 100644 --- a/modern/resources/maki-skin-data.json +++ b/modern/resources/maki-skin-data.json @@ -1,129 +1,155 @@ { "totalCalls": { - "System.getprivateint": 7334, - "System.getcontainer": 5506, - "Container.getlayout": 5870, - "GuiObject.findobject": 32475, + "System.getprivateint": 7737, + "System.getcontainer": 5668, + "Container.getlayout": 6027, + "GuiObject.findobject": 34005, "Object.onnotify": 100, - "System.setprivateint": 7802, - "Timer.setdelay": 6056, - "Timer.start": 9871, - "Timer.stop": 8584, - "System.getscriptgroup": 7565, - "System.messagebox": 8990, - "GuiObject.setalpha": 10731, + "System.setprivateint": 8183, + "Timer.setdelay": 6261, + "Timer.start": 10235, + "Timer.stop": 9015, + "System.getscriptgroup": 7947, + "System.messagebox": 9803, + "GuiObject.setalpha": 10896, "PlDir.showcurrentlyplayingentry": 364, - "System.integertostring": 11635, - "Text.setalternatetext": 2680, - "System.getplayitemlength": 5317, - "System.integertotime": 2615, - "GuiObject.getalpha": 1246, + "System.integertostring": 12384, + "Text.setalternatetext": 2706, + "System.getplayitemlength": 5361, + "System.integertotime": 2674, + "GuiObject.getalpha": 1292, "System.windowmenu": 189, - "System.getruntimeversion": 4568, - "Group.getobject": 24853, - "GuiObject.getwidth": 2119, - "GuiObject.setxmlparam": 46982, - "Map.loadmap": 2784, - "System.getvolume": 2099, + "System.getruntimeversion": 4853, + "Group.getobject": 25931, + "GuiObject.getwidth": 2223, + "GuiObject.setxmlparam": 49128, + "Map.loadmap": 2828, + "System.getvolume": 2165, "System.onvolumechanged": 172, - "System.getposition": 2126, + "System.getposition": 2158, "System.onseek": 125, "Layer.setregionfrommap": 2283, - "System.navigateurl": 1823, - "System.getparam": 2582, - "System.gettoken": 14032, - "System.onsetxuiparam": 1111, - "System.newgroup": 1030, - "GuiObject.init": 1034, - "System.getplayitemstring": 988, - "System.strleft": 2159, - "Map.getvalue": 2540, - "System.seekto": 860, - "Region.loadfrommap": 1368, - "GuiObject.gettop": 3834, - "GuiObject.getleft": 3895, + "System.navigateurl": 1910, + "System.getparam": 2660, + "System.gettoken": 14421, + "System.onsetxuiparam": 1143, + "System.newgroup": 1057, + "GuiObject.init": 1069, + "System.getplayitemstring": 1070, + "System.strleft": 2220, + "Map.getvalue": 2574, + "System.seekto": 864, + "Region.loadfrommap": 1386, + "GuiObject.gettop": 3984, + "GuiObject.getleft": 4048, "Region.offset": 940, - "Layer.setregion": 1432, - "System.setvolume": 2057, + "Layer.setregion": 1450, + "System.setvolume": 2121, "Map.getwidth": 520, "Map.getheight": 293, - "GuiObject.hide": 35256, - "AnimatedLayer.setstartframe": 793, - "AnimatedLayer.gotoframe": 3417, - "GuiObject.settargety": 4120, - "GuiObject.gototarget": 10819, - "GuiObject.show": 17772, - "Button.getactivated": 991, - "GuiObject.getxmlparam": 5471, - "GuiObject.settargeta": 6427, - "GuiObject.settargetspeed": 9620, - "Text.settext": 15866, - "System.getskinname": 6989, + "GuiObject.hide": 35820, + "AnimatedLayer.setstartframe": 843, + "AnimatedLayer.gotoframe": 3497, + "GuiObject.settargety": 4286, + "GuiObject.gototarget": 11908, + "GuiObject.show": 18226, + "System.getskinname": 7727, + "System.gettimeofday": 6630, + "Button.leftclick": 897, + "Timer.getdelay": 144, + "System.integer": 421, + "System.getplayitemmetadatastring": 2363, + "Text.settext": 16356, + "System.stringtointeger": 5710, + "System.getplayitemdisplaytitle": 98, + "GuiObject.getautowidth": 656, + "GuiObject.canceltarget": 345, + "GuiObject.ismouseoverrect": 63, + "GuiObject.settargeta": 6624, + "GuiObject.getguix": 141, + "GuiObject.settargetx": 4838, + "GuiObject.settargetspeed": 10727, + "GuiObject.getparentlayout": 593, + "Object.getid": 112, + "GuiObject.getguiy": 98, + "GuiObject.sendaction": 74, + "System.translate": 5, + "System.onplay": 7, + "Config.newitem": 1690, + "Config.getitem": 1066, + "ConfigItem.newattribute": 11956, + "ConfigAttribute.setdata": 5143, + "ConfigAttribute.getdata": 5747, + "ConfigAttribute.ondatachanged": 206, + "Layout.beforeredock": 75, + "Layout.snapadjust": 132, + "Layout.redock": 75, + "Layout.getcontainer": 47, + "System.strsearch": 1810, + "GuiObject.isactive": 122, + "GuiObject.isvisible": 919, + "Container.switchtolayout": 426, + "System.getstatus": 2760, + "GuiObject.clienttoscreenx": 143, + "GuiObject.screentoclientx": 143, + "Button.getactivated": 1015, + "GuiObject.getxmlparam": 5693, "CheckBox.setchecked": 1192, - "GuiObject.isgoingtotarget": 748, - "System.strupper": 220, - "System.stringtointeger": 5420, - "Button.setactivated": 2340, - "GuiObject.getheight": 1779, - "System.strlower": 1249, - "System.getprivatestring": 1233, - "System.setprivatestring": 521, + "GuiObject.isgoingtotarget": 776, + "System.strupper": 226, + "Button.setactivated": 2350, + "GuiObject.getheight": 1919, + "System.strlower": 1275, + "System.getprivatestring": 1239, + "System.setprivatestring": 523, "System.geteqpreamp": 300, "System.geteqband": 2348, - "System.seteqband": 6353, - "System.seteqpreamp": 156, - "Button.leftclick": 875, - "LayoutStatus.callme": 385, + "System.seteqband": 6439, + "System.seteqpreamp": 164, + "LayoutStatus.callme": 391, "System.play": 163, - "System.getleftvumeter": 677, - "System.getrightvumeter": 621, + "System.getleftvumeter": 693, + "System.getrightvumeter": 637, "AnimatedLayer.isstopped": 20, - "AnimatedLayer.setendframe": 745, - "AnimatedLayer.play": 1385, - "Slider.setposition": 2296, + "AnimatedLayer.setendframe": 795, + "AnimatedLayer.play": 1435, + "Slider.setposition": 2460, "CheckBox.ischecked": 1014, - "System.getviewportheight": 664, - "System.floattostring": 634, + "System.getviewportheight": 698, + "System.floattostring": 664, "Container.show": 267, - "System.isvideofullscreen": 118, - "System.isminimized": 180, - "System.getplaylistlength": 990, - "System.getplaylistindex": 1614, - "System.getplayitemmetadatastring": 2192, - "System.isvideo": 245, - "System.getviewportwidth": 796, - "Text.gettext": 1539, - "System.strlen": 2050, - "GuiObject.getautowidth": 610, - "GuiObject.settargetw": 658, - "GuiObject.settargetx": 4049, - "System.getstatus": 2695, + "System.isvideofullscreen": 122, + "System.isminimized": 188, + "System.getplaylistlength": 994, + "System.getplaylistindex": 1618, + "System.isvideo": 263, + "System.getviewportwidth": 832, + "Text.gettext": 1543, + "System.strlen": 2148, + "GuiObject.settargetw": 672, "System.integertolongtime": 299, - "System.strmid": 681, - "System.getvisband": 124, - "PopupMenu.addcommand": 4744, - "PopupMenu.addseparator": 559, - "PopupMenu.popatmouse": 752, - "System.getmouseposx": 361, - "System.getmouseposy": 325, - "System.getviewportleft": 482, - "System.getviewporttop": 470, - "Text.gettextwidth": 468, - "GuiObject.resize": 1212, - "System.gettimeofday": 6080, - "System.getsonginfotext": 1265, - "System.strsearch": 1779, + "System.strmid": 693, + "System.getvisband": 172, + "PopupMenu.addcommand": 4974, + "PopupMenu.addseparator": 571, + "PopupMenu.popatmouse": 800, + "System.getmouseposx": 375, + "System.getmouseposy": 355, + "System.getviewportleft": 502, + "System.getviewporttop": 490, + "Text.gettextwidth": 482, + "GuiObject.resize": 1364, + "System.getsonginfotext": 1293, "Button.setactivatednocallback": 493, - "Slider.getposition": 1216, - "Slider.onsetposition": 88, + "Slider.getposition": 1238, + "Slider.onsetposition": 94, "GuiObject.onmousemove": 690, - "Map.inregion": 1097, - "Timer.isrunning": 493, - "AnimatedLayer.setspeed": 530, - "AnimatedLayer.getlength": 761, + "Map.inregion": 1113, + "Timer.isrunning": 567, + "AnimatedLayer.setspeed": 588, + "AnimatedLayer.getlength": 777, "System.geteq": 63, "System.oneqchanged": 14, - "Object.getid": 103, "AnimatedLayer.setautoreplay": 128, "ToggleButton.ontoggle": 183, "AnimatedLayer.stop": 945, @@ -156,74 +182,54 @@ "CfgGroup.cfggetfloat": 28, "CfgGroup.cfgsetstring": 28, "CfgGroup.cfggetstring": 28, - "GuiObject.getparentlayout": 538, - "GuiObject.clienttoscreenx": 138, - "GuiObject.screentoclientx": 138, - "ConfigAttribute.getdata": 5481, - "System.random": 195, + "System.random": 231, "Button.onactivate": 108, "AnimatedLayer.isplaying": 89, "System.sqr": 32, "Slider.lock": 4, "Slider.unlock": 4, - "Config.newitem": 1466, - "Config.getitem": 996, - "ConfigItem.newattribute": 10806, - "ConfigAttribute.setdata": 4675, - "ConfigAttribute.ondatachanged": 171, - "Container.getcurlayout": 98, - "Layout.istransparencysafe": 55, - "GuiObject.canceltarget": 317, - "System.restoreapplication": 138, - "System.activateapplication": 136, - "Container.close": 73, - "System.newdynamiccontainer": 230, - "System.isdesktopalphaavailable": 50, - "GuiObject.settargeth": 371, - "System.debugstring": 38, - "System.getplayitemdisplaytitle": 89, - "GuiObject.onleftbuttonup": 66, - "Container.toggle": 138, + "Container.getcurlayout": 102, + "Layout.istransparencysafe": 63, + "System.restoreapplication": 146, + "System.activateapplication": 144, + "Container.close": 77, + "System.newdynamiccontainer": 248, + "System.isdesktopalphaavailable": 54, + "GuiObject.settargeth": 397, + "System.debugstring": 44, + "GuiObject.onleftbuttonup": 84, + "Container.toggle": 154, "Layout.center": 6, - "ConfigItem.getattribute": 877, + "ConfigItem.getattribute": 931, "Vis.getmode": 63, - "Vis.setmode": 450, - "Container.switchtolayout": 412, + "Vis.setmode": 498, "AnimatedLayer.getendframe": 77, "System.oneqpreampchanged": 28, "System.oneqbandchanged": 28, "System.triggeraction": 20, "PopupMenu.checkcommand": 7075, "Button.onleftclick": 30, - "Layout.beforeredock": 70, - "Layout.redock": 70, - "System.getpath": 75, - "System.urlencode": 85, + "System.getpath": 117, + "System.urlencode": 87, "System.removepath": 136, - "System.strright": 871, + "System.strright": 897, "GuiObject.ismouseover": 20, - "GuiObject.getguiw": 17, - "GuiObject.getguix": 106, - "GuiObject.getguiy": 79, - "GuiObject.getguih": 24, - "GuiObject.ismouseoverrect": 54, - "GuiObject.isvisible": 860, - "Container.hide": 78, + "GuiObject.getguiw": 39, + "GuiObject.getguih": 40, + "Container.hide": 80, "System.switchskin": 445, "System.chr": 1028, - "PopupMenu.addsubmenu": 277, - "System.iskeydown": 145, + "PopupMenu.addsubmenu": 299, + "System.iskeydown": 151, "CfgGroup.cfggetguid": 64, "System.setclipboardtext": 64, - "AnimatedLayer.getcurframe": 290, + "AnimatedLayer.getcurframe": 338, "ToggleButton.getcurcfgval": 55, "System.getextension": 59, - "Timer.getdelay": 139, - "System.integer": 396, - "Layout.setscale": 206, - "GuiObject.setfocus": 71, + "Layout.setscale": 220, + "GuiObject.setfocus": 103, "System.newgroupaslayout": 50, - "System.isappactive": 31, + "System.isappactive": 39, "Layer.fx_setalphamode": 61, "Layer.fx_setspeed": 67, "System.previous": 46, @@ -234,33 +240,52 @@ "System.getviewporttopfrompoint": 11, "System.getviewportwidthfrompoint": 11, "System.getviewportheightfrompoint": 11, - "Config.getitembyguid": 36, + "Config.getitembyguid": 48, "Text.ontextchanged": 8, - "System.playfile": 174, + "System.playfile": 182, "GuiObject.bringtofront": 25, "PopupMenu.popatxy": 28, - "System.sin": 46, + "System.sin": 58, "System.getdate": 21, "System.formatdate": 8, - "System.popmainbrowser": 8, + "Timer.getskipped": 7, + "System.cos": 73, + "System.getalbumart": 22, + "System.getmonitorheight": 4, + "System.getmonitorwidth": 6, + "Layer.isinvalid": 8, + "Timer.ontimer": 91, + "GuiObject.setenabled": 624, + "System.istransparencyavailable": 2, + "PlEdit.getnumtracks": 82, + "GuiObject.getautoheight": 4, + "PlEdit.getcurrentindex": 8, + "PlEdit.gettitle": 4, + "PlEdit.getlength": 4, + "PlEdit.playtrack": 12, + "PlEdit.removetrack": 4, + "System.onkeydown": 2, + "PlEdit.movedown": 2, + "PlEdit.moveup": 2, + "PlDir.getnumitems": 4, + "PlDir.getitemname": 4, + "PlEdit.getrating": 24, + "PlDir.playitem": 4, + "PlEdit.setrating": 4, + "System.popmainbrowser": 10, "System.onshownotification": 7, - "Timer.ontimer": 85, "System.pow": 34, "System.seteq": 86, "System.getwac": 35, - "System.cos": 59, "System.atan2": 38, "Group.islayout": 2, "Group.getnumobjects": 10, "Group.enumobject": 10, "System.isobjectvalid": 2, "Object.getclassname": 8, - "System.minimizeapplication": 8, - "Layout.snapadjust": 122, - "GuiObject.onresize": 26, + "System.minimizeapplication": 14, + "GuiObject.onresize": 30, "GuiObject.onsetvisible": 8, - "Layout.getcontainer": 30, - "GuiObject.setenabled": 548, "AnimatedLayer.getstartframe": 32, "System.getcurappleft": 30, "System.getcurapptop": 30, @@ -280,23 +305,25 @@ "System.getdatemin": 4, "GuiObject.clienttoscreeny": 8, "System.asin": 4, - "System.ontitlechange": 7, + "System.ontitlechange": 11, + "System.navigateurlbrowser": 8, "System.getcurappwidth": 6, "System.getcurappheight": 6, - "GuiObject.isactive": 33, "System.eject": 14, - "System.onplay": 2, - "GuiObject.sendaction": 20, "System.isnamedwindowvisible": 16, "System.showwindow": 14, "AnimatedLayer.onframe": 10, - "Timer.getskipped": 5, "Group.getmouseposx": 6, "Group.getmouseposy": 146, - "GuiObject.getparent": 14, + "GuiObject.getparent": 18, "Map.getregion": 3, "Layout.getscale": 14, "GuiObject.ontargetreached": 3, + "AlbumArtLayer.refresh": 4, + "System.getviewportheightfromguiobject": 10, + "System.getviewportwidthfromguiobject": 10, + "System.getviewporttopfromguiobject": 10, + "System.getviewportleftfromguiobject": 10, "Layout.setredrawonresize": 2, "AnimatedLayer.getdirection": 3, "GuiObject.runmodal": 1, @@ -307,130 +334,156 @@ "System.hidenamedwindow": 2 }, "foundInSkins": { - "System.getprivateint": 1123, - "System.getcontainer": 1020, - "Container.getlayout": 977, - "GuiObject.findobject": 1243, + "System.getprivateint": 1158, + "System.getcontainer": 1055, + "Container.getlayout": 1006, + "GuiObject.findobject": 1278, "Object.onnotify": 54, - "System.setprivateint": 1121, - "Timer.setdelay": 1296, - "Timer.start": 1296, - "Timer.stop": 1151, - "System.getscriptgroup": 1399, - "System.messagebox": 1644, - "GuiObject.setalpha": 632, + "System.setprivateint": 1156, + "Timer.setdelay": 1331, + "Timer.start": 1331, + "Timer.stop": 1186, + "System.getscriptgroup": 1434, + "System.messagebox": 1679, + "GuiObject.setalpha": 653, "PlDir.showcurrentlyplayingentry": 346, - "System.integertostring": 1318, - "Text.setalternatetext": 575, - "System.getplayitemlength": 1115, - "System.integertotime": 702, - "GuiObject.getalpha": 424, + "System.integertostring": 1353, + "Text.setalternatetext": 589, + "System.getplayitemlength": 1129, + "System.integertotime": 727, + "GuiObject.getalpha": 436, "System.windowmenu": 185, - "System.getruntimeversion": 1069, - "Group.getobject": 1111, - "GuiObject.getwidth": 367, - "GuiObject.setxmlparam": 1195, - "Map.loadmap": 1067, - "System.getvolume": 939, + "System.getruntimeversion": 1104, + "Group.getobject": 1146, + "GuiObject.getwidth": 382, + "GuiObject.setxmlparam": 1230, + "Map.loadmap": 1089, + "System.getvolume": 974, "System.onvolumechanged": 77, - "System.getposition": 721, + "System.getposition": 735, "System.onseek": 68, "Layer.setregionfrommap": 349, - "System.navigateurl": 819, - "System.getparam": 1302, - "System.gettoken": 1160, - "System.onsetxuiparam": 1014, - "System.newgroup": 1024, - "GuiObject.init": 1024, - "System.getplayitemstring": 506, - "System.strleft": 440, - "Map.getvalue": 764, - "System.seekto": 566, - "Region.loadfrommap": 417, - "GuiObject.gettop": 801, - "GuiObject.getleft": 887, + "System.navigateurl": 846, + "System.getparam": 1331, + "System.gettoken": 1189, + "System.onsetxuiparam": 1041, + "System.newgroup": 1051, + "GuiObject.init": 1053, + "System.getplayitemstring": 532, + "System.strleft": 453, + "Map.getvalue": 786, + "System.seekto": 570, + "Region.loadfrommap": 431, + "GuiObject.gettop": 831, + "GuiObject.getleft": 922, "Region.offset": 205, - "Layer.setregion": 427, - "System.setvolume": 796, + "Layer.setregion": 441, + "System.setvolume": 825, "Map.getwidth": 326, "Map.getheight": 254, - "GuiObject.hide": 978, - "AnimatedLayer.setstartframe": 275, - "AnimatedLayer.gotoframe": 503, - "GuiObject.settargety": 558, - "GuiObject.gototarget": 773, - "GuiObject.show": 977, - "Button.getactivated": 170, - "GuiObject.getxmlparam": 318, - "GuiObject.settargeta": 401, - "GuiObject.settargetspeed": 753, - "Text.settext": 754, - "System.getskinname": 857, + "GuiObject.hide": 1003, + "AnimatedLayer.setstartframe": 281, + "AnimatedLayer.gotoframe": 521, + "GuiObject.settargety": 572, + "GuiObject.gototarget": 796, + "GuiObject.show": 1002, + "System.getskinname": 892, + "System.gettimeofday": 902, + "Button.leftclick": 263, + "Timer.getdelay": 130, + "System.integer": 123, + "System.getplayitemmetadatastring": 248, + "Text.settext": 789, + "System.stringtointeger": 610, + "System.getplayitemdisplaytitle": 66, + "GuiObject.getautowidth": 221, + "GuiObject.canceltarget": 85, + "GuiObject.ismouseoverrect": 31, + "GuiObject.settargeta": 422, + "GuiObject.getguix": 39, + "GuiObject.settargetx": 565, + "GuiObject.settargetspeed": 776, + "GuiObject.getparentlayout": 276, + "Object.getid": 62, + "GuiObject.getguiy": 35, + "GuiObject.sendaction": 10, + "System.translate": 5, + "System.onplay": 7, + "Config.newitem": 155, + "Config.getitem": 241, + "ConfigItem.newattribute": 165, + "ConfigAttribute.setdata": 196, + "ConfigAttribute.getdata": 257, + "ConfigAttribute.ondatachanged": 73, + "Layout.beforeredock": 25, + "Layout.snapadjust": 31, + "Layout.redock": 25, + "Layout.getcontainer": 25, + "System.strsearch": 419, + "GuiObject.isactive": 19, + "GuiObject.isvisible": 230, + "Container.switchtolayout": 117, + "System.getstatus": 720, + "GuiObject.clienttoscreenx": 141, + "GuiObject.screentoclientx": 139, + "Button.getactivated": 174, + "GuiObject.getxmlparam": 346, "CheckBox.setchecked": 85, - "GuiObject.isgoingtotarget": 217, - "System.strupper": 118, - "System.stringtointeger": 589, - "Button.setactivated": 295, - "GuiObject.getheight": 395, - "System.strlower": 243, - "System.getprivatestring": 149, - "System.setprivatestring": 147, + "GuiObject.isgoingtotarget": 227, + "System.strupper": 122, + "Button.setactivated": 301, + "GuiObject.getheight": 419, + "System.strlower": 249, + "System.getprivatestring": 151, + "System.setprivatestring": 149, "System.geteqpreamp": 267, "System.geteqband": 311, - "System.seteqband": 180, - "System.seteqpreamp": 108, - "Button.leftclick": 254, - "LayoutStatus.callme": 385, + "System.seteqband": 186, + "System.seteqpreamp": 112, + "LayoutStatus.callme": 391, "System.play": 90, - "System.getleftvumeter": 395, - "System.getrightvumeter": 347, + "System.getleftvumeter": 407, + "System.getrightvumeter": 359, "AnimatedLayer.isstopped": 14, - "AnimatedLayer.setendframe": 251, - "AnimatedLayer.play": 342, - "Slider.setposition": 251, + "AnimatedLayer.setendframe": 257, + "AnimatedLayer.play": 348, + "Slider.setposition": 257, "CheckBox.ischecked": 77, - "System.getviewportheight": 328, - "System.floattostring": 137, + "System.getviewportheight": 348, + "System.floattostring": 151, "Container.show": 218, - "System.isvideofullscreen": 110, - "System.isminimized": 129, - "System.getplaylistlength": 127, - "System.getplaylistindex": 131, - "System.getplayitemmetadatastring": 229, - "System.isvideo": 99, - "System.getviewportwidth": 334, - "Text.gettext": 196, - "System.strlen": 377, - "GuiObject.getautowidth": 210, - "GuiObject.settargetw": 145, - "GuiObject.settargetx": 548, - "System.getstatus": 697, + "System.isvideofullscreen": 114, + "System.isminimized": 133, + "System.getplaylistlength": 131, + "System.getplaylistindex": 135, + "System.isvideo": 103, + "System.getviewportwidth": 354, + "Text.gettext": 198, + "System.strlen": 389, + "GuiObject.settargetw": 151, "System.integertolongtime": 190, - "System.strmid": 128, - "System.getvisband": 34, - "PopupMenu.addcommand": 395, - "PopupMenu.addseparator": 161, - "PopupMenu.popatmouse": 367, - "System.getmouseposx": 245, - "System.getmouseposy": 241, - "System.getviewportleft": 261, - "System.getviewporttop": 261, - "Text.gettextwidth": 223, - "GuiObject.resize": 377, - "System.gettimeofday": 867, - "System.getsonginfotext": 320, - "System.strsearch": 410, + "System.strmid": 132, + "System.getvisband": 38, + "PopupMenu.addcommand": 419, + "PopupMenu.addseparator": 171, + "PopupMenu.popatmouse": 391, + "System.getmouseposx": 259, + "System.getmouseposy": 257, + "System.getviewportleft": 277, + "System.getviewporttop": 277, + "Text.gettextwidth": 237, + "GuiObject.resize": 403, + "System.getsonginfotext": 328, "Button.setactivatednocallback": 99, - "Slider.getposition": 210, - "Slider.onsetposition": 63, + "Slider.getposition": 218, + "Slider.onsetposition": 65, "GuiObject.onmousemove": 224, - "Map.inregion": 385, - "Timer.isrunning": 63, - "AnimatedLayer.setspeed": 187, - "AnimatedLayer.getlength": 383, + "Map.inregion": 393, + "Timer.isrunning": 69, + "AnimatedLayer.setspeed": 193, + "AnimatedLayer.getlength": 395, "System.geteq": 49, "System.oneqchanged": 14, - "Object.getid": 53, "AnimatedLayer.setautoreplay": 44, "ToggleButton.ontoggle": 48, "AnimatedLayer.stop": 158, @@ -463,74 +516,54 @@ "CfgGroup.cfggetfloat": 28, "CfgGroup.cfgsetstring": 28, "CfgGroup.cfggetstring": 28, - "GuiObject.getparentlayout": 259, - "GuiObject.clienttoscreenx": 136, - "GuiObject.screentoclientx": 134, - "ConfigAttribute.getdata": 248, - "System.random": 47, + "System.random": 49, "Button.onactivate": 52, "AnimatedLayer.isplaying": 47, "System.sqr": 8, "Slider.lock": 4, "Slider.unlock": 4, - "Config.newitem": 146, - "Config.getitem": 232, - "ConfigItem.newattribute": 156, - "ConfigAttribute.setdata": 187, - "ConfigAttribute.ondatachanged": 64, - "Container.getcurlayout": 46, - "Layout.istransparencysafe": 30, - "GuiObject.canceltarget": 76, - "System.restoreapplication": 67, - "System.activateapplication": 65, - "Container.close": 54, - "System.newdynamiccontainer": 80, - "System.isdesktopalphaavailable": 28, - "GuiObject.settargeth": 58, - "System.debugstring": 24, - "System.getplayitemdisplaytitle": 57, - "GuiObject.onleftbuttonup": 45, - "Container.toggle": 60, + "Container.getcurlayout": 50, + "Layout.istransparencysafe": 34, + "System.restoreapplication": 71, + "System.activateapplication": 69, + "Container.close": 58, + "System.newdynamiccontainer": 86, + "System.isdesktopalphaavailable": 32, + "GuiObject.settargeth": 64, + "System.debugstring": 28, + "GuiObject.onleftbuttonup": 47, + "Container.toggle": 74, "Layout.center": 6, - "ConfigItem.getattribute": 169, + "ConfigItem.getattribute": 173, "Vis.getmode": 32, - "Vis.setmode": 99, - "Container.switchtolayout": 110, + "Vis.setmode": 101, "AnimatedLayer.getendframe": 63, "System.oneqpreampchanged": 28, "System.oneqbandchanged": 28, "System.triggeraction": 8, "PopupMenu.checkcommand": 157, "Button.onleftclick": 17, - "Layout.beforeredock": 20, - "Layout.redock": 20, - "System.getpath": 65, - "System.urlencode": 61, + "System.getpath": 87, + "System.urlencode": 63, "System.removepath": 54, - "System.strright": 100, + "System.strright": 106, "GuiObject.ismouseover": 8, - "GuiObject.getguiw": 9, - "GuiObject.getguix": 28, - "GuiObject.getguiy": 20, - "GuiObject.getguih": 9, - "GuiObject.ismouseoverrect": 24, - "GuiObject.isvisible": 217, - "Container.hide": 58, + "GuiObject.getguiw": 15, + "GuiObject.getguih": 13, + "Container.hide": 60, "System.switchskin": 226, "System.chr": 48, - "PopupMenu.addsubmenu": 68, - "System.iskeydown": 23, + "PopupMenu.addsubmenu": 74, + "System.iskeydown": 25, "CfgGroup.cfggetguid": 16, "System.setclipboardtext": 16, - "AnimatedLayer.getcurframe": 61, + "AnimatedLayer.getcurframe": 65, "ToggleButton.getcurcfgval": 23, "System.getextension": 24, - "Timer.getdelay": 125, - "System.integer": 118, - "Layout.setscale": 48, - "GuiObject.setfocus": 42, + "Layout.setscale": 52, + "GuiObject.setfocus": 44, "System.newgroupaslayout": 50, - "System.isappactive": 31, + "System.isappactive": 33, "Layer.fx_setalphamode": 27, "Layer.fx_setspeed": 35, "System.previous": 42, @@ -541,33 +574,52 @@ "System.getviewporttopfrompoint": 11, "System.getviewportwidthfrompoint": 11, "System.getviewportheightfrompoint": 11, - "Config.getitembyguid": 10, + "Config.getitembyguid": 12, "Text.ontextchanged": 8, - "System.playfile": 72, + "System.playfile": 80, "GuiObject.bringtofront": 21, "PopupMenu.popatxy": 28, - "System.sin": 11, + "System.sin": 13, "System.getdate": 17, "System.formatdate": 8, - "System.popmainbrowser": 4, + "Timer.getskipped": 7, + "System.cos": 9, + "System.getalbumart": 22, + "System.getmonitorheight": 2, + "System.getmonitorwidth": 2, + "Layer.isinvalid": 6, + "Timer.ontimer": 59, + "GuiObject.setenabled": 8, + "System.istransparencyavailable": 2, + "PlEdit.getnumtracks": 4, + "GuiObject.getautoheight": 4, + "PlEdit.getcurrentindex": 4, + "PlEdit.gettitle": 4, + "PlEdit.getlength": 4, + "PlEdit.playtrack": 4, + "PlEdit.removetrack": 4, + "System.onkeydown": 2, + "PlEdit.movedown": 2, + "PlEdit.moveup": 2, + "PlDir.getnumitems": 4, + "PlDir.getitemname": 4, + "PlEdit.getrating": 4, + "PlDir.playitem": 4, + "PlEdit.setrating": 4, + "System.popmainbrowser": 6, "System.onshownotification": 7, - "Timer.ontimer": 57, "System.pow": 20, "System.seteq": 24, "System.getwac": 21, - "System.cos": 7, "System.atan2": 6, "Group.islayout": 2, "Group.getnumobjects": 6, "Group.enumobject": 6, "System.isobjectvalid": 2, "Object.getclassname": 4, - "System.minimizeapplication": 4, - "Layout.snapadjust": 26, - "GuiObject.onresize": 21, + "System.minimizeapplication": 6, + "GuiObject.onresize": 25, "GuiObject.onsetvisible": 8, - "Layout.getcontainer": 18, - "GuiObject.setenabled": 6, "AnimatedLayer.getstartframe": 16, "System.getcurappleft": 7, "System.getcurapptop": 7, @@ -587,23 +639,25 @@ "System.getdatemin": 4, "GuiObject.clienttoscreeny": 6, "System.asin": 4, - "System.ontitlechange": 7, + "System.ontitlechange": 9, + "System.navigateurlbrowser": 2, "System.getcurappwidth": 3, "System.getcurappheight": 3, - "GuiObject.isactive": 8, "System.eject": 14, - "System.onplay": 2, - "GuiObject.sendaction": 3, "System.isnamedwindowvisible": 5, "System.showwindow": 5, "AnimatedLayer.onframe": 2, - "Timer.getskipped": 5, "Group.getmouseposx": 6, "Group.getmouseposy": 10, - "GuiObject.getparent": 9, + "GuiObject.getparent": 13, "Map.getregion": 3, "Layout.getscale": 4, "GuiObject.ontargetreached": 3, + "AlbumArtLayer.refresh": 2, + "System.getviewportheightfromguiobject": 2, + "System.getviewportwidthfromguiobject": 2, + "System.getviewporttopfromguiobject": 2, + "System.getviewportleftfromguiobject": 2, "Layout.setredrawonresize": 1, "AnimatedLayer.getdirection": 1, "GuiObject.runmodal": 1, diff --git a/modern/src/initialize.js b/modern/src/initialize.js index a409d1dc..0f0a30d3 100644 --- a/modern/src/initialize.js +++ b/modern/src/initialize.js @@ -17,7 +17,7 @@ import Slider from "./runtime/Slider"; import Vis from "./runtime/Vis"; import EqVis from "./runtime/EqVis"; import AnimatedLayer from "./runtime/AnimatedLayer"; -import Component from "./runtime/Component"; +import WindowHolder from "./runtime/WindowHolder"; async function prepareMakiImage(node, zip, file) { let { h, w } = node.attributes; @@ -100,7 +100,7 @@ const parsers = { await Utils.loadFont(fontUrl, fontFamily); return new MakiObject(node, parent, { fontFamily }); }, - component: (node, parent) => new Component(node, parent, undefined), + component: (node, parent) => new WindowHolder(node, parent, undefined), text: (node, parent) => new Text(node, parent, undefined), togglebutton: (node, parent) => new ToggleButton(node, parent, undefined), status: (node, parent) => new Status(node, parent, undefined), diff --git a/modern/src/maki-interpreter/__snapshots__/objects.test.js.snap b/modern/src/maki-interpreter/__snapshots__/objects.test.js.snap index 1bbd9cf4..73f28b72 100644 --- a/modern/src/maki-interpreter/__snapshots__/objects.test.js.snap +++ b/modern/src/maki-interpreter/__snapshots__/objects.test.js.snap @@ -88,6 +88,58 @@ System.isdesktopalphaavailable System.istransparencyavailable System.getsonginfotext System.getvisband +System.onviewportchanged +System.onurlchange +System.oneqfreqchanged +System.enumembedguid +System.getmetadatastring +System.getcurrenttrackrating +System.oncurrenttrackrated +System.setcurrenttrackrating +System.getdecodername +System.getalbumart +System.downloadmedia +System.downloadurl +System.ondownloadfinished +System.getdownloadpath +System.setdownloadpath +System.enqueuefile +System.urldecode +System.parseatf +System.log10 +System.ln +System.getviewportwidthfromguiobject +System.getmonitorwidth +System.getmonitorwidthfrompoint +System.getmonitorwidthfromguiobject +System.onmousemove +System.getviewportheightfromguiobject +System.getmonitorheight +System.getmonitorheightfrompoint +System.getmonitorheightfromguiobject +System.getmonitorleft +System.getmonitorleftfromguiobject +System.getmonitorleftfrompoint +System.getmonitortop +System.getmonitortopfromguiobject +System.getmonitortopfrompoint +System.getviewportleftfromguiobject +System.getviewporttopfromguiobject +System.navigateurlbrowser +System.onopenurl +System.translate +System.getstring +System.getlanguageid +System.selectfolder +System.hasvideosupport +System.clearplaylist +System.getsonginfotexttranslated +System.iswa2componentvisible +System.hidewa2component +System.isproversion +System.getwinampversion +System.getbuildnumber +System.getfilesize Wac.getguid Wac.getname Wac.sendcommand @@ -102,6 +154,7 @@ Map.getheight Map.getvalue Map.inregion Map.getregion +Map.getargbvalue Region.loadfrommap Region.offset Region.add @@ -156,6 +209,11 @@ GuiObject.ismouseoverrect GuiObject.getinterface GuiObject.sendaction GuiObject.onaction +GuiObject.onmousewheelup +GuiObject.onmousewheeldown +GuiObject.ondragenter +GuiObject.ondragover +GuiObject.ondragleave Button.setactivated Button.getactivated Button.setactivatednocallback @@ -177,6 +235,9 @@ Container.toggle Container.isdynamic Container.setname Container.getcurlayout +Container.getname +Container.getguid +Container.onaddcontent Layout.getscale Layout.setscale Layout.setdesktopalpha @@ -192,6 +253,7 @@ Layout.beforeredock Layout.redock Layout.istransparencysafe Layout.islayoutanimationsafe +List.finditem2 Layer.setregion Layer.setregionfrommap Layer.fx_oninit @@ -224,16 +286,18 @@ Layer.fx_getalphamode Layer.fx_setgridsize Layer.fx_update Layer.fx_restart +Layer.isinvalid Text.setalternatetext Text.settext Text.gettext Text.gettextwidth -Component.getguid -Component.getwac -Component.setregionfrommap -Component.setregion -Component.setacceptwac -Component.getcontent +WindowHolder.getguid +WindowHolder.getwac +WindowHolder.setregionfrommap +WindowHolder.setregion +WindowHolder.setacceptwac +WindowHolder.getcontent +WindowHolder.getcomponentname ComponentBucket.getmaxheight ComponentBucket.getmaxwidth ComponentBucket.setscroll @@ -264,11 +328,18 @@ Browser.stop Browser.refresh Browser.home Browser.settargetname +Browser.ondocumentready +Browser.getdocumenttitle +Browser.onnavigateerror +Browser.setcancelieerrorpage +Browser.scrape +Browser.onmedialink GroupList.instantiate GroupList.getnumitems GroupList.enumitem GroupList.removeall GroupList.scrolltopercent +GroupList.setredraw CfgGroup.cfggetint CfgGroup.cfgsetint CfgGroup.cfggetstring @@ -373,6 +444,15 @@ GuiList.moveitem GuiList.onrightclick GuiList.oncolumndblclick GuiList.oncolumnlabelclick +GuiList.setitemicon +GuiList.getitemicon +GuiList.setshowicons +GuiList.getshowicons +GuiList.seticonwidth +GuiList.seticonheight +GuiList.geticonwidth +GuiList.geticonheight +GuiList.oniconleftclick GuiTree.onwantautocontextmenu GuiTree.onmousewheelup GuiTree.onmousewheeldown @@ -475,6 +555,9 @@ Form.getcontentsheight Form.newcell Form.nextrow Form.deleteall +Frame.getposition +Frame.setposition +Frame.onsetposition PlEdit.getnumtracks PlEdit.getcurrentindex PlEdit.getnumselectedtracks @@ -495,5 +578,25 @@ PlEdit.gettitle PlEdit.getlength PlEdit.getmetadata PlEdit.getfilename -PlEdit.onpleditmodified" +PlEdit.onpleditmodified +AlbumArtLayer.refresh +AlbumArtLayer.isloading +AlbumArtLayer.onalbumartloaded +BitList.getitem +BitList.setitem +BitList.setsize +BitList.getsize +Menu.setmenugroup +Menu.getmenugroup +Menu.setmenu +Menu.getmenu +Menu.spawnmenu +Menu.cancelmenu +Menu.setnormalid +Menu.setdownid +Menu.sethoverid +Menu.onopenmenu +Menu.onclosemenu +Menu.nextmenu +Menu.previousmenu" `; diff --git a/modern/src/maki-interpreter/objectData/std.json b/modern/src/maki-interpreter/objectData/std.json index 080f42fd..3b71bd72 100644 --- a/modern/src/maki-interpreter/objectData/std.json +++ b/modern/src/maki-interpreter/objectData/std.json @@ -127,6 +127,20 @@ ] ] }, + { + "result": "", + "name": "onViewPortChanged", + "parameters": [ + [ + "int", + "width" + ], + [ + "int", + "height" + ] + ] + }, { "result": "", "name": "onStop", @@ -167,6 +181,16 @@ ] ] }, + { + "result": "", + "name": "onUrlChange", + "parameters": [ + [ + "String", + "url" + ] + ] + }, { "result": "", "name": "onInfoChange", @@ -221,6 +245,16 @@ ] ] }, + { + "result": "", + "name": "onEqFreqChanged", + "parameters": [ + [ + "int", + "isiso" + ] + ] + }, { "result": "", "name": "onVolumeChanged", @@ -296,6 +330,16 @@ ] ] }, + { + "result": "String", + "name": "enumEmbedGUID", + "parameters": [ + [ + "int", + "num" + ] + ] + }, { "result": "Wac", "name": "getWac", @@ -348,11 +392,50 @@ ] ] }, + { + "result": "String", + "name": "getMetaDataString", + "parameters": [ + [ + "String", + "filename" + ], + [ + "String", + "metadataname" + ] + ] + }, { "result": "String", "name": "getPlayItemDisplayTitle", "parameters": [] }, + { + "result": "Int", + "name": "getCurrentTrackRating", + "parameters": [] + }, + { + "result": "", + "name": "onCurrentTrackRated", + "parameters": [ + [ + "int", + "rating" + ] + ] + }, + { + "result": "", + "name": "setCurrentTrackRating", + "parameters": [ + [ + "int", + "rating" + ] + ] + }, { "result": "String", "name": "getExtFamily", @@ -363,6 +446,16 @@ ] ] }, + { + "result": "String", + "name": "getDecoderName", + "parameters": [ + [ + "string", + "playitem" + ] + ] + }, { "result": "", "name": "playFile", @@ -373,6 +466,99 @@ ] ] }, + { + "result": "Int", + "name": "getAlbumArt", + "parameters": [ + [ + "String", + "playitem" + ] + ] + }, + { + "result": "", + "name": "downloadMedia", + "parameters": [ + [ + "String", + "url" + ], + [ + "String", + "destinationPath" + ], + [ + "boolean", + "wantAddToML" + ], + [ + "boolean", + "notifyDownloadsList" + ] + ] + }, + { + "result": "", + "name": "downloadURL", + "parameters": [ + [ + "String", + "url" + ], + [ + "String", + "destination_filename" + ], + [ + "String", + "progress_dialog_title" + ] + ] + }, + { + "result": "", + "name": "onDownloadFinished", + "parameters": [ + [ + "String", + "url" + ], + [ + "boolean", + "success" + ], + [ + "String", + "filename" + ] + ] + }, + { + "result": "String", + "name": "getDownloadPath", + "parameters": [] + }, + { + "result": "", + "name": "setDownloadPath", + "parameters": [ + [ + "String", + "new_path" + ] + ] + }, + { + "result": "", + "name": "enqueueFile", + "parameters": [ + [ + "String", + "playitem" + ] + ] + }, { "result": "Int", "name": "getLeftVuMeter", @@ -726,7 +912,7 @@ }, { "result": "String", - "name": "Strleft", + "name": "strleft", "parameters": [ [ "string", @@ -806,6 +992,26 @@ ] ] }, + { + "result": "string", + "name": "urlDecode", + "parameters": [ + [ + "string", + "url" + ] + ] + }, + { + "result": "string", + "name": "parseATF", + "parameters": [ + [ + "string", + "topass" + ] + ] + }, { "result": "string", "name": "removePath", @@ -952,6 +1158,26 @@ ] ] }, + { + "result": "double", + "name": "log10", + "parameters": [ + [ + "double", + "value" + ] + ] + }, + { + "result": "double", + "name": "ln", + "parameters": [ + [ + "double", + "value" + ] + ] + }, { "result": "double", "name": "sqrt", @@ -1115,6 +1341,16 @@ "name": "getViewportWidth", "parameters": [] }, + { + "result": "Int", + "name": "getViewportWidthFromGuiObject", + "parameters": [ + [ + "GuiObject", + "g" + ] + ] + }, { "result": "Int", "name": "getViewportWidthFromPoint", @@ -1129,11 +1365,64 @@ ] ] }, + { + "result": "Int", + "name": "getMonitorWidth", + "parameters": [] + }, + { + "result": "Int", + "name": "getMonitorWidthFromPoint", + "parameters": [ + [ + "int", + "x" + ], + [ + "int", + "y" + ] + ] + }, + { + "result": "Int", + "name": "getMonitorWidthFromGuiObject", + "parameters": [ + [ + "GuiObject", + "g" + ] + ] + }, + { + "result": "", + "name": "onMouseMove", + "parameters": [ + [ + "int", + "x" + ], + [ + "int", + "y" + ] + ] + }, { "result": "Int", "name": "getViewportHeight", "parameters": [] }, + { + "result": "Int", + "name": "getViewportHeightFromGuiObject", + "parameters": [ + [ + "GuiObject", + "g" + ] + ] + }, { "result": "Int", "name": "getViewportHeightFromPoint", @@ -1148,11 +1437,108 @@ ] ] }, + { + "result": "Int", + "name": "getMonitorHeight", + "parameters": [] + }, + { + "result": "Int", + "name": "getMonitorHeightFromPoint", + "parameters": [ + [ + "int", + "x" + ], + [ + "int", + "y" + ] + ] + }, + { + "result": "Int", + "name": "getMonitorHeightFromGuiObject", + "parameters": [ + [ + "GuiObject", + "g" + ] + ] + }, + { + "result": "Int", + "name": "getMonitorLeft", + "parameters": [] + }, + { + "result": "Int", + "name": "getMonitorLeftFromGuiObject", + "parameters": [ + [ + "GuiObject", + "g" + ] + ] + }, + { + "result": "Int", + "name": "getMonitorLeftFromPoint", + "parameters": [ + [ + "int", + "x" + ], + [ + "int", + "y" + ] + ] + }, + { + "result": "Int", + "name": "getMonitorTop", + "parameters": [] + }, + { + "result": "Int", + "name": "getMonitorTopFromGuiObject", + "parameters": [ + [ + "GuiObject", + "g" + ] + ] + }, + { + "result": "Int", + "name": "getMonitorTopFromPoint", + "parameters": [ + [ + "int", + "x" + ], + [ + "int", + "y" + ] + ] + }, { "result": "Int", "name": "getViewportLeft", "parameters": [] }, + { + "result": "Int", + "name": "getViewportLeftFromGuiObject", + "parameters": [ + [ + "GuiObject", + "g" + ] + ] + }, { "result": "Int", "name": "getViewportLeftFromPoint", @@ -1172,6 +1558,16 @@ "name": "getViewportTop", "parameters": [] }, + { + "result": "Int", + "name": "getViewportTopFromGuiObject", + "parameters": [ + [ + "GuiObject", + "g" + ] + ] + }, { "result": "Int", "name": "getViewportTopFromPoint", @@ -1219,7 +1615,7 @@ ] }, { - "result": "Component", + "result": "WindowHolder", "name": "onLookForComponent", "parameters": [ [ @@ -1303,6 +1699,26 @@ ] ] }, + { + "result": "", + "name": "navigateUrlBrowser", + "parameters": [ + [ + "String", + "url" + ] + ] + }, + { + "result": "Boolean", + "name": "onOpenURL", + "parameters": [ + [ + "string", + "url" + ] + ] + }, { "result": "Boolean", "name": "isObjectValid", @@ -1397,6 +1813,35 @@ ] ] }, + { + "result": "String", + "name": "translate", + "parameters": [ + [ + "String", + "str" + ] + ] + }, + { + "result": "String", + "name": "getString", + "parameters": [ + [ + "String", + "table" + ], + [ + "int", + "id" + ] + ] + }, + { + "result": "String", + "name": "getLanguageId", + "parameters": [] + }, { "result": "String", "name": "selectFile", @@ -1415,6 +1860,24 @@ ] ] }, + { + "result": "String", + "name": "selectFolder", + "parameters": [ + [ + "String", + "wnd_title" + ], + [ + "String", + "wnd_info" + ], + [ + "String", + "default_path" + ] + ] + }, { "result": "", "name": "systemMenu", @@ -1520,6 +1983,11 @@ "name": "invokeDebugger", "parameters": [] }, + { + "result": "int", + "name": "hasVideoSupport", + "parameters": [] + }, { "result": "Int", "name": "isVideo", @@ -1570,6 +2038,11 @@ "name": "getPlaylistIndex", "parameters": [] }, + { + "result": "", + "name": "clearPlaylist", + "parameters": [] + }, { "result": "Boolean", "name": "isDesktopAlphaAvailable", @@ -1590,6 +2063,11 @@ "name": "getSongInfoText", "parameters": [] }, + { + "result": "String", + "name": "getSongInfoTextTranslated", + "parameters": [] + }, { "result": "Int", "name": "getVisBand", @@ -1608,6 +2086,51 @@ "result": "Double", "name": "getRuntimeVersion", "parameters": [] + }, + { + "result": "Int", + "name": "isWa2ComponentVisible", + "parameters": [ + [ + "String", + "guid" + ] + ] + }, + { + "result": "", + "name": "hideWa2Component", + "parameters": [ + [ + "String", + "guid" + ] + ] + }, + { + "result": "boolean", + "name": "isProVersion", + "parameters": [] + }, + { + "result": "String", + "name": "getWinampVersion", + "parameters": [] + }, + { + "result": "Int", + "name": "getBuildNumber", + "parameters": [] + }, + { + "result": "int", + "name": "getFileSize", + "parameters": [ + [ + "String", + "fullfilename" + ] + ] } ], "name": "System" @@ -1743,10 +2266,38 @@ ] ] }, + { + "result": "String", + "name": "getName", + "parameters": [] + }, + { + "result": "String", + "name": "getGuid", + "parameters": [] + }, { "result": "Layout", "name": "getCurLayout", "parameters": [] + }, + { + "result": "", + "name": "onAddContent", + "parameters": [ + [ + "GuiObject", + "wnd" + ], + [ + "String", + "id" + ], + [ + "String", + "guid" + ] + ] } ], "name": "Container" @@ -1890,6 +2441,20 @@ ] ] }, + { + "result": "Int", + "name": "findItem2", + "parameters": [ + [ + "Any", + "_object" + ], + [ + "int", + "startItem" + ] + ] + }, { "result": "int", "name": "getNumItems", @@ -1903,6 +2468,51 @@ ], "name": "List" }, + "87C65778E74349fe85F909CC532AFD56": { + "parent": "Object", + "functions": [ + { + "result": "boolean", + "name": "getItem", + "parameters": [ + [ + "int", + "n" + ] + ] + }, + { + "result": "", + "name": "setItem", + "parameters": [ + [ + "int", + "n" + ], + [ + "boolean", + "val" + ] + ] + }, + { + "result": "", + "name": "setSize", + "parameters": [ + [ + "int", + "s" + ] + ] + }, + { + "result": "int", + "name": "getSize", + "parameters": [] + } + ], + "name": "BitList" + }, "38603665461B42a7AA75D83F6667BF73": { "parent": "Object", "functions": [ @@ -1920,6 +2530,24 @@ ] ] }, + { + "result": "Int", + "name": "getARGBValue", + "parameters": [ + [ + "int", + "x" + ], + [ + "int", + "y" + ], + [ + "int", + "channel" + ] + ] + }, { "result": "Boolean", "name": "inRegion", @@ -2373,6 +3001,34 @@ ] ] }, + { + "result": "int", + "name": "onMouseWheelUp", + "parameters": [ + [ + "int", + "clicked" + ], + [ + "int", + "lines" + ] + ] + }, + { + "result": "int", + "name": "onMouseWheelDown", + "parameters": [ + [ + "int", + "clicked" + ], + [ + "int", + "lines" + ] + ] + }, { "result": "", "name": "onMouseMove", @@ -2893,6 +3549,30 @@ ] ] }, + { + "result": "", + "name": "onDragEnter", + "parameters": [] + }, + { + "result": "", + "name": "onDragOver", + "parameters": [ + [ + "int", + "x" + ], + [ + "int", + "y" + ] + ] + }, + { + "result": "", + "name": "onDragLeave", + "parameters": [] + }, { "result": "", "name": "onKeyDown", @@ -3052,7 +3732,12 @@ { "result": "", "name": "onDock", - "parameters": [] + "parameters": [ + [ + "int", + "side" + ] + ] }, { "result": "", @@ -3234,36 +3919,6 @@ "403ABCC06F224bd68BA410C829932547": { "parent": "GuiObject", "functions": [ - { - "result": "", - "name": "onGetWac", - "parameters": [ - [ - "Wac", - "wacobj" - ] - ] - }, - { - "result": "", - "name": "onGiveUpWac", - "parameters": [ - [ - "Wac", - "wacobj" - ] - ] - }, - { - "result": "String", - "name": "getGuid", - "parameters": [] - }, - { - "result": "Wac", - "name": "getWac", - "parameters": [] - }, { "result": "", "name": "setRegionFromMap", @@ -3292,6 +3947,46 @@ ] ] }, + { + "result": "GuiObject", + "name": "getContent", + "parameters": [] + }, + { + "result": "String", + "name": "getGuid", + "parameters": [] + }, + { + "result": "String", + "name": "getComponentName", + "parameters": [] + }, + { + "result": "", + "name": "onGetWac", + "parameters": [ + [ + "Wac", + "wacobj" + ] + ] + }, + { + "result": "", + "name": "onGiveUpWac", + "parameters": [ + [ + "Wac", + "wacobj" + ] + ] + }, + { + "result": "Wac", + "name": "getWac", + "parameters": [] + }, { "result": "", "name": "setAcceptWac", @@ -3301,14 +3996,9 @@ "onoff" ] ] - }, - { - "result": "GuiObject", - "name": "getContent", - "parameters": [] } ], - "name": "Component" + "name": "WindowHolder" }, "97AA3E4DF4D04fa8817B0AF22A454983": { "parent": "GuiObject", @@ -3619,6 +4309,60 @@ "url" ] ] + }, + { + "result": "", + "name": "onDocumentReady", + "parameters": [ + [ + "String", + "url" + ] + ] + }, + { + "result": "String", + "name": "getDocumentTitle", + "parameters": [] + }, + { + "result": "", + "name": "onNavigateError", + "parameters": [ + [ + "String", + "url" + ], + [ + "int", + "code" + ] + ] + }, + { + "result": "", + "name": "setCancelIEErrorPage", + "parameters": [ + [ + "boolean", + "cancel" + ] + ] + }, + { + "result": "", + "name": "scrape", + "parameters": [] + }, + { + "result": "string", + "name": "onMediaLink", + "parameters": [ + [ + "string", + "url" + ] + ] } ], "name": "Browser" @@ -4052,6 +4796,11 @@ "result": "", "name": "fx_restart", "parameters": [] + }, + { + "result": "Boolean", + "name": "isInvalid", + "parameters": [] } ], "name": "Layer" @@ -4273,6 +5022,32 @@ ], "name": "AnimatedLayer" }, + "6DCB05E48AC448c2B19349F0910EF54A": { + "parent": "Layer", + "functions": [ + { + "result": "", + "name": "refresh", + "parameters": [] + }, + { + "result": "", + "name": "isLoading", + "parameters": [] + }, + { + "result": "", + "name": "onAlbumArtLoaded", + "parameters": [ + [ + "boolean", + "success" + ] + ] + } + ], + "name": "AlbumArtLayer" + }, "B4DCCFFF81FE4bcc961B720FD5BE0FFF": { "parent": "Button", "functions": [ @@ -4282,9 +5057,14 @@ "parameters": [ [ "Boolean", - "unknown_arg_name" + "onoff" ] ] + }, + { + "result": "int", + "name": "getCurCfgVal", + "parameters": [] } ], "name": "ToggleButton" @@ -4335,6 +5115,16 @@ "percent" ] ] + }, + { + "result": "", + "name": "setRedraw", + "parameters": [ + [ + "int", + "redraw" + ] + ] } ], "name": "GroupList" @@ -4363,7 +5153,7 @@ "parameters": [] }, { - "result": "Int", + "result": "Float", "name": "cfgGetFloat", "parameters": [] }, @@ -4649,91 +5439,6 @@ "6129FEC1DAB74d51916501CA0C1B70DB": { "parent": "GuiObject", "functions": [ - { - "result": "Int", - "name": "getNumItems", - "parameters": [] - }, - { - "result": "Int", - "name": "getWantAutoDeselect", - "parameters": [] - }, - { - "result": "", - "name": "setWantAutoDeselect", - "parameters": [ - [ - "Int", - "want" - ] - ] - }, - { - "result": "", - "name": "onSetVisible", - "parameters": [ - [ - "Int", - "show" - ] - ] - }, - { - "result": "", - "name": "setAutoSort", - "parameters": [ - [ - "Int", - "dosort" - ] - ] - }, - { - "result": "", - "name": "next", - "parameters": [] - }, - { - "result": "", - "name": "selectCurrent", - "parameters": [] - }, - { - "result": "", - "name": "selectFirstEntry", - "parameters": [] - }, - { - "result": "", - "name": "previous", - "parameters": [] - }, - { - "result": "", - "name": "pagedown", - "parameters": [] - }, - { - "result": "", - "name": "pageup", - "parameters": [] - }, - { - "result": "", - "name": "home", - "parameters": [] - }, - { - "result": "", - "name": "end", - "parameters": [] - }, - { - "result": "", - "name": "reset", - "parameters": [] - }, { "result": "Int", "name": "addColumn", @@ -4841,13 +5546,18 @@ }, { "result": "", - "name": "setMinimumSize", - "parameters": [ - [ - "Int", - "size" - ] - ] + "name": "invalidateColumns", + "parameters": [] + }, + { + "result": "Int", + "name": "getNumItems", + "parameters": [] + }, + { + "result": "Int", + "name": "getItemCount", + "parameters": [] }, { "result": "Int", @@ -4925,6 +5635,20 @@ ] ] }, + { + "result": "String", + "name": "getSubitemText", + "parameters": [ + [ + "Int", + "pos" + ], + [ + "Int", + "subpos" + ] + ] + }, { "result": "", "name": "setItemLabel", @@ -4941,7 +5665,7 @@ }, { "result": "Int", - "name": "getItemSelected", + "name": "invalidateItem", "parameters": [ [ "Int", @@ -4951,22 +5675,31 @@ }, { "result": "Int", - "name": "isItemFocused", - "parameters": [ - [ - "Int", - "pos" - ] - ] + "name": "getFirstItemVisible", + "parameters": [] }, { "result": "Int", - "name": "getItemFocused", + "name": "getLastItemVisible", "parameters": [] }, { "result": "", - "name": "setItemFocused", + "name": "setItemIcon", + "parameters": [ + [ + "Int", + "pos" + ], + [ + "String", + "bitmapId" + ] + ] + }, + { + "result": "String", + "name": "getItemIcon", "parameters": [ [ "Int", @@ -4974,6 +5707,166 @@ ] ] }, + { + "result": "", + "name": "setMinimumSize", + "parameters": [ + [ + "Int", + "size" + ] + ] + }, + { + "result": "Int", + "name": "getWantAutoDeselect", + "parameters": [] + }, + { + "result": "", + "name": "setWantAutoDeselect", + "parameters": [ + [ + "Int", + "want" + ] + ] + }, + { + "result": "", + "name": "onSetVisible", + "parameters": [ + [ + "Int", + "show" + ] + ] + }, + { + "result": "", + "name": "setAutoSort", + "parameters": [ + [ + "Int", + "dosort" + ] + ] + }, + { + "result": "Int", + "name": "setFontSize", + "parameters": [ + [ + "Int", + "size" + ] + ] + }, + { + "result": "Int", + "name": "getFontSize", + "parameters": [] + }, + { + "result": "Int", + "name": "getHeaderHeight", + "parameters": [] + }, + { + "result": "Int", + "name": "getPreventMultipleSelection", + "parameters": [] + }, + { + "result": "Int", + "name": "setPreventMultipleSelection", + "parameters": [ + [ + "Int", + "val" + ] + ] + }, + { + "result": "", + "name": "setShowIcons", + "parameters": [ + [ + "int", + "showThem" + ] + ] + }, + { + "result": "Int", + "name": "getShowIcons", + "parameters": [] + }, + { + "result": "Int", + "name": "setIconWidth", + "parameters": [ + [ + "int", + "width" + ] + ] + }, + { + "result": "Int", + "name": "setIconHeight", + "parameters": [ + [ + "int", + "width" + ] + ] + }, + { + "result": "", + "name": "getIconWidth", + "parameters": [] + }, + { + "result": "", + "name": "getIconHeight", + "parameters": [] + }, + { + "result": "", + "name": "next", + "parameters": [] + }, + { + "result": "", + "name": "previous", + "parameters": [] + }, + { + "result": "", + "name": "pagedown", + "parameters": [] + }, + { + "result": "", + "name": "pageup", + "parameters": [] + }, + { + "result": "", + "name": "home", + "parameters": [] + }, + { + "result": "", + "name": "end", + "parameters": [] + }, + { + "result": "", + "name": "reset", + "parameters": [] + }, { "result": "", "name": "ensureItemVisible", @@ -4984,11 +5877,6 @@ ] ] }, - { - "result": "", - "name": "invalidateColumns", - "parameters": [] - }, { "result": "Int", "name": "scrollAbsolute", @@ -5050,16 +5938,67 @@ ] }, { - "result": "String", - "name": "getSubitemText", + "result": "", + "name": "jumpToNext", + "parameters": [ + [ + "Int", + "c" + ] + ] + }, + { + "result": "", + "name": "scrollToItem", "parameters": [ [ "Int", "pos" - ], + ] + ] + }, + { + "result": "", + "name": "selectCurrent", + "parameters": [] + }, + { + "result": "", + "name": "selectFirstEntry", + "parameters": [] + }, + { + "result": "Int", + "name": "getItemSelected", + "parameters": [ [ "Int", - "subpos" + "pos" + ] + ] + }, + { + "result": "Int", + "name": "isItemFocused", + "parameters": [ + [ + "Int", + "pos" + ] + ] + }, + { + "result": "Int", + "name": "getItemFocused", + "parameters": [] + }, + { + "result": "", + "name": "setItemFocused", + "parameters": [ + [ + "Int", + "pos" ] ] }, @@ -5093,101 +6032,6 @@ "name": "invertSelection", "parameters": [] }, - { - "result": "Int", - "name": "invalidateItem", - "parameters": [ - [ - "Int", - "pos" - ] - ] - }, - { - "result": "Int", - "name": "getFirstItemVisible", - "parameters": [] - }, - { - "result": "Int", - "name": "getLastItemVisible", - "parameters": [] - }, - { - "result": "Int", - "name": "setFontSize", - "parameters": [ - [ - "Int", - "size" - ] - ] - }, - { - "result": "Int", - "name": "getFontSize", - "parameters": [] - }, - { - "result": "", - "name": "jumpToNext", - "parameters": [ - [ - "Int", - "c" - ] - ] - }, - { - "result": "", - "name": "scrollToItem", - "parameters": [ - [ - "Int", - "pos" - ] - ] - }, - { - "result": "", - "name": "resort", - "parameters": [] - }, - { - "result": "Int", - "name": "getSortDirection", - "parameters": [] - }, - { - "result": "Int", - "name": "getSortColumn", - "parameters": [] - }, - { - "result": "", - "name": "setSortColumn", - "parameters": [ - [ - "Int", - "col" - ] - ] - }, - { - "result": "", - "name": "setSortDirection", - "parameters": [ - [ - "Int", - "dir" - ] - ] - }, - { - "result": "Int", - "name": "getItemCount", - "parameters": [] - }, { "result": "", "name": "setSelectionStart", @@ -5237,22 +6081,37 @@ ] }, { - "result": "Int", - "name": "getHeaderHeight", + "result": "", + "name": "resort", "parameters": [] }, { "result": "Int", - "name": "getPreventMultipleSelection", + "name": "getSortDirection", "parameters": [] }, { "result": "Int", - "name": "setPreventMultipleSelection", + "name": "getSortColumn", + "parameters": [] + }, + { + "result": "", + "name": "setSortColumn", "parameters": [ [ "Int", - "val" + "col" + ] + ] + }, + { + "result": "", + "name": "setSortDirection", + "parameters": [ + [ + "Int", + "dir" ] ] }, @@ -5369,6 +6228,24 @@ "selected" ] ] + }, + { + "result": "Int", + "name": "onIconLeftClick", + "parameters": [ + [ + "int", + "itemnum" + ], + [ + "int", + "x" + ], + [ + "int", + "y" + ] + ] } ], "name": "GuiList" @@ -6230,5 +7107,137 @@ } ], "name": "Form" + }, + "E2BBC14D84F64173BDB3B2EB2F665550": { + "parent": "GuiObject", + "functions": [ + { + "result": "Int", + "name": "getPosition", + "parameters": [] + }, + { + "result": "", + "name": "setPosition", + "parameters": [ + [ + "Int", + "position" + ] + ] + }, + { + "result": "", + "name": "onSetPosition", + "parameters": [ + [ + "Int", + "position" + ] + ] + } + ], + "name": "Frame" + }, + "73C00594961F401B9B1B672427AC4165": { + "parent": "GuiObject", + "functions": [ + { + "result": "", + "name": "setMenuGroup", + "parameters": [ + [ + "String", + "groupId" + ] + ] + }, + { + "result": "String", + "name": "getMenuGroup", + "parameters": [] + }, + { + "result": "", + "name": "setMenu", + "parameters": [ + [ + "String", + "menuId" + ] + ] + }, + { + "result": "String", + "name": "getMenu", + "parameters": [] + }, + { + "result": "", + "name": "spawnMenu", + "parameters": [ + [ + "int", + "monitor" + ] + ] + }, + { + "result": "", + "name": "cancelMenu", + "parameters": [] + }, + { + "result": "", + "name": "setNormalId", + "parameters": [ + [ + "String", + "id" + ] + ] + }, + { + "result": "", + "name": "setDownId", + "parameters": [ + [ + "String", + "id" + ] + ] + }, + { + "result": "", + "name": "setHoverId", + "parameters": [ + [ + "String", + "id" + ] + ] + }, + { + "result": "", + "name": "onOpenMenu", + "parameters": [] + }, + { + "result": "", + "name": "onCloseMenu", + "parameters": [] + }, + { + "result": "", + "name": "nextMenu", + "parameters": [] + }, + { + "result": "", + "name": "previousMenu", + "parameters": [] + } + ], + "name": "Menu" } } \ No newline at end of file diff --git a/modern/src/maki-interpreter/parser.test.js b/modern/src/maki-interpreter/parser.test.js index f5e5fa8c..0bb5162f 100644 --- a/modern/src/maki-interpreter/parser.test.js +++ b/modern/src/maki-interpreter/parser.test.js @@ -72,7 +72,7 @@ describe("standardframe.maki", () => { "GuiObject", "Group", "Layout", - "Component", + "WindowHolder", "ComponentBucket", "Edit", "Slider", diff --git a/modern/src/maki-interpreter/tools/extract-object-types.js b/modern/src/maki-interpreter/tools/extract-object-types.js index b0b4a388..0ecbabbf 100644 --- a/modern/src/maki-interpreter/tools/extract-object-types.js +++ b/modern/src/maki-interpreter/tools/extract-object-types.js @@ -4,13 +4,12 @@ import fs from "fs"; const compilers = path.join(__dirname, "../../../resources/maki_compiler/"); -const lib502 = path.join(compilers, "v1.1.13 (Winamp 5.02)/lib/"); const lib566 = path.join(compilers, "v1.2.0 (Winamp 5.66)/lib/"); const files = { pldir: path.join(lib566, "pldir.mi"), config: path.join(lib566, "config.mi"), - std: path.join(lib502, "std.mi"), + std: path.join(lib566, "std.mi"), }; Object.keys(files).forEach(name => { diff --git a/modern/src/maki-interpreter/tools/parse-mi.test.js b/modern/src/maki-interpreter/tools/parse-mi.test.js index f3b26bdd..d70457a7 100644 --- a/modern/src/maki-interpreter/tools/parse-mi.test.js +++ b/modern/src/maki-interpreter/tools/parse-mi.test.js @@ -10,11 +10,10 @@ import path from "path"; const compilers = path.join(__dirname, "../../../resources/maki_compiler/"); -const lib502 = path.join(compilers, "v1.1.13 (Winamp 5.02)/lib/"); const lib566 = path.join(compilers, "v1.2.0 (Winamp 5.66)/lib/"); test("std.mi", () => { - const parsedObjects = parseFile(path.join(lib502, "std.mi")); + const parsedObjects = parseFile(path.join(lib566, "std.mi")); expect(parsedObjects).toEqual(std); }); diff --git a/modern/src/runtime/AlbumArtLayer.ts b/modern/src/runtime/AlbumArtLayer.ts new file mode 100644 index 00000000..ee9c40ee --- /dev/null +++ b/modern/src/runtime/AlbumArtLayer.ts @@ -0,0 +1,31 @@ +import { unimplementedWarning } from "../utils"; +import Layer from "./Layer"; + +class AlbumArtLayer extends Layer { + /** + * getClassName() + * + * Returns the class name for the object. + * @ret The class name. + */ + getclassname() { + return "AlbumArtLayer"; + } + + refresh() { + unimplementedWarning("refresh"); + return; + } + + isloading() { + unimplementedWarning("isloading"); + return; + } + + onalbumartloaded(success: boolean) { + unimplementedWarning("onalbumartloaded"); + return; + } +} + +export default AlbumArtLayer; diff --git a/modern/src/runtime/BitList.ts b/modern/src/runtime/BitList.ts new file mode 100644 index 00000000..870070ef --- /dev/null +++ b/modern/src/runtime/BitList.ts @@ -0,0 +1,36 @@ +import { unimplementedWarning } from "../utils"; +import MakiObject from "./MakiObject"; + +class BitList extends MakiObject { + /** + * getClassName() + * + * Returns the class name for the object. + * @ret The class name. + */ + getclassname() { + return "BitList"; + } + + getitem(n: number) { + unimplementedWarning("getitem"); + return; + } + + setitem(n: number, val: boolean) { + unimplementedWarning("setitem"); + return; + } + + setsize(s: number) { + unimplementedWarning("setsize"); + return; + } + + getsize() { + unimplementedWarning("getsize"); + return; + } +} + +export default BitList; diff --git a/modern/src/runtime/Browser.ts b/modern/src/runtime/Browser.ts index 5bd811f3..f1c7873a 100644 --- a/modern/src/runtime/Browser.ts +++ b/modern/src/runtime/Browser.ts @@ -54,6 +54,36 @@ class Browser extends GuiObject { ondocumentcomplete(url: string): void { this.js_trigger("onDocumentComplete", url); } + + ondocumentready(url: string) { + unimplementedWarning("ondocumentready"); + return; + } + + getdocumenttitle() { + unimplementedWarning("getdocumenttitle"); + return; + } + + onnavigateerror(url: string, code: number) { + unimplementedWarning("onnavigateerror"); + return; + } + + setcancelieerrorpage(cancel: boolean) { + unimplementedWarning("setcancelieerrorpage"); + return; + } + + scrape() { + unimplementedWarning("scrape"); + return; + } + + onmedialink(url: string) { + unimplementedWarning("onmedialink"); + return; + } } export default Browser; diff --git a/modern/src/runtime/Container.ts b/modern/src/runtime/Container.ts index 902f5f2c..c2de5f41 100644 --- a/modern/src/runtime/Container.ts +++ b/modern/src/runtime/Container.ts @@ -1,4 +1,5 @@ import MakiObject from "./MakiObject"; +import GuiObject from "./GuiObject"; import { findDescendantByTypeAndId, unimplementedWarning } from "../utils"; import { XmlNode } from "../types"; import Layout from "./Layout"; @@ -99,6 +100,21 @@ class Container extends MakiObject { return childNode.getclassname() === "Layout"; }); } + + getname() { + unimplementedWarning("getname"); + return; + } + + getguid() { + unimplementedWarning("getguid"); + return; + } + + onaddcontent(wnd: GuiObject, id: string, guid: string) { + unimplementedWarning("onaddcontent"); + return; + } } export default Container; diff --git a/modern/src/runtime/Frame.ts b/modern/src/runtime/Frame.ts new file mode 100644 index 00000000..ebcdc74d --- /dev/null +++ b/modern/src/runtime/Frame.ts @@ -0,0 +1,29 @@ +import GuiObject from "./GuiObject"; +import * as Utils from "../utils"; + +export default class Frame extends GuiObject { + /** + * getClassName() + * + * Returns the class name for the object. + * @ret The class name. + */ + getclassname() { + return "Frame"; + } + + getposition() { + Utils.unimplementedWarning("getposition"); + return; + } + + setposition(position: number) { + Utils.unimplementedWarning("setposition"); + return; + } + + onsetposition(position: number) { + Utils.unimplementedWarning("onsetposition"); + return; + } +} diff --git a/modern/src/runtime/GroupList.ts b/modern/src/runtime/GroupList.ts index dd03058b..52857387 100644 --- a/modern/src/runtime/GroupList.ts +++ b/modern/src/runtime/GroupList.ts @@ -36,6 +36,11 @@ class GroupList extends GuiObject { unimplementedWarning("scrolltopercent"); return; } + + setredraw(redraw: number) { + unimplementedWarning("setredraw"); + return; + } } export default GroupList; diff --git a/modern/src/runtime/GuiList.ts b/modern/src/runtime/GuiList.ts index c2ef6dc6..51dfce62 100644 --- a/modern/src/runtime/GuiList.ts +++ b/modern/src/runtime/GuiList.ts @@ -411,6 +411,51 @@ class GuiList extends GuiObject { onitemselection(itemnum: number, selected: number): void { this.js_trigger("onItemSelection", itemnum, selected); } + + setitemicon(pos: number, bitmapId: string) { + unimplementedWarning("setitemicon"); + return; + } + + getitemicon(pos: number) { + unimplementedWarning("getitemicon"); + return; + } + + setshowicons(showThem: number) { + unimplementedWarning("setshowicons"); + return; + } + + getshowicons() { + unimplementedWarning("getshowicons"); + return; + } + + seticonwidth(width: number) { + unimplementedWarning("seticonwidth"); + return; + } + + seticonheight(width: number) { + unimplementedWarning("seticonheight"); + return; + } + + geticonwidth() { + unimplementedWarning("geticonwidth"); + return; + } + + geticonheight() { + unimplementedWarning("geticonheight"); + return; + } + + oniconleftclick(itemnum: number, x: number, y: number) { + unimplementedWarning("oniconleftclick"); + return; + } } export default GuiList; diff --git a/modern/src/runtime/GuiObject.ts b/modern/src/runtime/GuiObject.ts index ee209110..88a2af7c 100644 --- a/modern/src/runtime/GuiObject.ts +++ b/modern/src/runtime/GuiObject.ts @@ -544,6 +544,31 @@ class GuiObject extends MakiObject { // TODO: not sure what we shuld return return 0; } + + onmousewheelup(clicked: number, lines: number) { + unimplementedWarning("onmousewheelup"); + return; + } + + onmousewheeldown(clicked: number, lines: number) { + unimplementedWarning("onmousewheeldown"); + return; + } + + ondragenter() { + unimplementedWarning("ondragenter"); + return; + } + + ondragover(x: number, y: number) { + unimplementedWarning("ondragover"); + return; + } + + ondragleave() { + unimplementedWarning("ondragleave"); + return; + } } export default GuiObject; diff --git a/modern/src/runtime/Layer.ts b/modern/src/runtime/Layer.ts index b896b97d..fc122d09 100644 --- a/modern/src/runtime/Layer.ts +++ b/modern/src/runtime/Layer.ts @@ -179,6 +179,11 @@ class Layer extends GuiObject { unimplementedWarning("fx_restart"); return; } + + isinvalid() { + unimplementedWarning("isinvalid"); + return; + } } export default Layer; diff --git a/modern/src/runtime/Layout.ts b/modern/src/runtime/Layout.ts index 58543ccd..de36ceb4 100644 --- a/modern/src/runtime/Layout.ts +++ b/modern/src/runtime/Layout.ts @@ -18,7 +18,7 @@ class Layout extends Group { return findParentNodeOfType(self, new Set(["container"])); } - ondock(): void { + ondock(side: number): void { this.js_trigger("onDock"); } diff --git a/modern/src/runtime/List.ts b/modern/src/runtime/List.ts index fa5804e7..90582005 100644 --- a/modern/src/runtime/List.ts +++ b/modern/src/runtime/List.ts @@ -1,5 +1,6 @@ import MakiObject from "./MakiObject"; import { XmlNode } from "../types"; +import * as Utils from "../utils"; class List extends MakiObject { _list: Array; @@ -42,6 +43,11 @@ class List extends MakiObject { removeall(): void { this._list = []; } + + finditem2(_object: any, startItem: number) { + Utils.unimplementedWarning("finditem2"); + return; + } } export default List; diff --git a/modern/src/runtime/Map.ts b/modern/src/runtime/Map.ts index 451b94f5..6231d764 100644 --- a/modern/src/runtime/Map.ts +++ b/modern/src/runtime/Map.ts @@ -40,6 +40,11 @@ class Map extends MakiObject { unimplementedWarning("getregion"); return; } + + getargbvalue(x: number, y: number, channel: number) { + unimplementedWarning("getargbvalue"); + return; + } } export default Map; diff --git a/modern/src/runtime/Menu.ts b/modern/src/runtime/Menu.ts new file mode 100644 index 00000000..1e97b8b0 --- /dev/null +++ b/modern/src/runtime/Menu.ts @@ -0,0 +1,79 @@ +import GuiObject from "./GuiObject"; +import { unimplementedWarning } from "../utils"; + +export default class Menu extends GuiObject { + /** + * getClassName() + * + * Returns the class name for the object. + * @ret The class name. + */ + getclassname() { + return "Menu"; + } + + setmenugroup(groupId: string) { + unimplementedWarning("setmenugroup"); + return; + } + + getmenugroup() { + unimplementedWarning("getmenugroup"); + return; + } + + setmenu(menuId: string) { + unimplementedWarning("setmenu"); + return; + } + + getmenu() { + unimplementedWarning("getmenu"); + return; + } + + spawnmenu(monitor: number) { + unimplementedWarning("spawnmenu"); + return; + } + + cancelmenu() { + unimplementedWarning("cancelmenu"); + return; + } + + setnormalid(id: string) { + unimplementedWarning("setnormalid"); + return; + } + + setdownid(id: string) { + unimplementedWarning("setdownid"); + return; + } + + sethoverid(id: string) { + unimplementedWarning("sethoverid"); + return; + } + + onopenmenu() { + unimplementedWarning("onopenmenu"); + return; + } + + onclosemenu() { + unimplementedWarning("onclosemenu"); + return; + } + + nextmenu() { + unimplementedWarning("nextmenu"); + return; + } + + previousmenu() { + unimplementedWarning("previousmenu"); + return; + } +} diff --git a/modern/src/runtime/System.ts b/modern/src/runtime/System.ts index f46eccc1..08cd4f77 100644 --- a/modern/src/runtime/System.ts +++ b/modern/src/runtime/System.ts @@ -946,6 +946,275 @@ class System extends MakiObject { unimplementedWarning("getvisband"); return; } + + onviewportchanged(width: number, height: number) { + unimplementedWarning("onviewportchanged"); + return; + } + + onurlchange(url: string) { + unimplementedWarning("onurlchange"); + return; + } + + oneqfreqchanged(isiso: number) { + unimplementedWarning("oneqfreqchanged"); + return; + } + + enumembedguid(num: number) { + unimplementedWarning("enumembedguid"); + return; + } + + getmetadatastring(filename: string, metadataname: string) { + unimplementedWarning("getmetadatastring"); + return; + } + + getcurrenttrackrating() { + unimplementedWarning("getcurrenttrackrating"); + return; + } + + oncurrenttrackrated(rating: number) { + unimplementedWarning("oncurrenttrackrated"); + return; + } + + setcurrenttrackrating(rating: number) { + unimplementedWarning("setcurrenttrackrating"); + return; + } + + getdecodername(playitem: string) { + unimplementedWarning("getdecodername"); + return; + } + + getalbumart(playitem: string) { + unimplementedWarning("getalbumart"); + return; + } + + downloadmedia( + url: string, + destinationPath: string, + wantAddToML: boolean, + notifyDownloadsList: boolean + ) { + unimplementedWarning("downloadmedia"); + return; + } + + downloadurl( + url: string, + destination_filename: string, + progress_dialog_title: string + ) { + unimplementedWarning("downloadurl"); + return; + } + + ondownloadfinished(url: string, success: boolean, filename: string) { + unimplementedWarning("ondownloadfinished"); + return; + } + + getdownloadpath() { + unimplementedWarning("getdownloadpath"); + return; + } + + setdownloadpath(new_path: string) { + unimplementedWarning("setdownloadpath"); + return; + } + + enqueuefile(playitem: string) { + unimplementedWarning("enqueuefile"); + return; + } + + urldecode(url: string) { + unimplementedWarning("urldecode"); + return; + } + + parseatf(topass: string) { + unimplementedWarning("parseatf"); + return; + } + + log10(value: number) { + unimplementedWarning("log10"); + return; + } + + ln(value: number) { + unimplementedWarning("ln"); + return; + } + + getviewportwidthfromguiobject(g) { + unimplementedWarning("getviewportwidthfromguiobject"); + return; + } + + getmonitorwidth() { + unimplementedWarning("getmonitorwidth"); + return; + } + + getmonitorwidthfrompoint(x: number, y: number) { + unimplementedWarning("getmonitorwidthfrompoint"); + return; + } + + getmonitorwidthfromguiobject(g) { + unimplementedWarning("getmonitorwidthfromguiobject"); + return; + } + + onmousemove(x: number, y: number) { + unimplementedWarning("onmousemove"); + return; + } + + getviewportheightfromguiobject(g) { + unimplementedWarning("getviewportheightfromguiobject"); + return; + } + + getmonitorheight() { + unimplementedWarning("getmonitorheight"); + return; + } + + getmonitorheightfrompoint(x: number, y: number) { + unimplementedWarning("getmonitorheightfrompoint"); + return; + } + + getmonitorheightfromguiobject(g) { + unimplementedWarning("getmonitorheightfromguiobject"); + return; + } + + getmonitorleft() { + unimplementedWarning("getmonitorleft"); + return; + } + + getmonitorleftfromguiobject(g) { + unimplementedWarning("getmonitorleftfromguiobject"); + return; + } + + getmonitorleftfrompoint(x: number, y: number) { + unimplementedWarning("getmonitorleftfrompoint"); + return; + } + + getmonitortop() { + unimplementedWarning("getmonitortop"); + return; + } + + getmonitortopfromguiobject(g) { + unimplementedWarning("getmonitortopfromguiobject"); + return; + } + + getmonitortopfrompoint(x: number, y: number) { + unimplementedWarning("getmonitortopfrompoint"); + return; + } + + getviewportleftfromguiobject(g) { + unimplementedWarning("getviewportleftfromguiobject"); + return; + } + + getviewporttopfromguiobject(g) { + unimplementedWarning("getviewporttopfromguiobject"); + return; + } + + navigateurlbrowser(url: string) { + unimplementedWarning("navigateurlbrowser"); + return; + } + + onopenurl(url: string) { + unimplementedWarning("onopenurl"); + return; + } + + translate(str: string) { + unimplementedWarning("translate"); + return; + } + + getstring(table: string, id: number) { + unimplementedWarning("getstring"); + return; + } + + getlanguageid() { + unimplementedWarning("getlanguageid"); + return; + } + + selectfolder(wnd_title: string, wnd_info: string, default_path: string) { + unimplementedWarning("selectfolder"); + return; + } + + hasvideosupport() { + unimplementedWarning("hasvideosupport"); + return; + } + + clearplaylist() { + unimplementedWarning("clearplaylist"); + return; + } + + getsonginfotexttranslated() { + unimplementedWarning("getsonginfotexttranslated"); + return; + } + + iswa2componentvisible(guid: string) { + unimplementedWarning("iswa2componentvisible"); + return; + } + + hidewa2component(guid: string) { + unimplementedWarning("hidewa2component"); + return; + } + + isproversion() { + unimplementedWarning("isproversion"); + return; + } + + getwinampversion() { + unimplementedWarning("getwinampversion"); + return; + } + + getbuildnumber() { + unimplementedWarning("getbuildnumber"); + return; + } + + getfilesize(fullfilename: string) { + unimplementedWarning("getfilesize"); + return; + } } export default System; diff --git a/modern/src/runtime/Component.ts b/modern/src/runtime/WindowHolder.ts similarity index 84% rename from modern/src/runtime/Component.ts rename to modern/src/runtime/WindowHolder.ts index 8ba17f30..11ae2cba 100644 --- a/modern/src/runtime/Component.ts +++ b/modern/src/runtime/WindowHolder.ts @@ -4,7 +4,7 @@ import Wac from "./Wac"; import MakiMap from "./Map"; import Region from "./Region"; -class Component extends GuiObject { +class WindowHolder extends GuiObject { /** * getClassName() * @@ -12,7 +12,7 @@ class Component extends GuiObject { * @ret The class name. */ getclassname() { - return "Component"; + return "WindowHolder"; } ongetwac(wacobj: Wac): void { @@ -52,6 +52,11 @@ class Component extends GuiObject { unimplementedWarning("getcontent"); return; } + + getcomponentname() { + unimplementedWarning("getcomponentname"); + return; + } } -export default Component; +export default WindowHolder; diff --git a/modern/src/runtime/index.ts b/modern/src/runtime/index.ts index 647594b3..5a077908 100644 --- a/modern/src/runtime/index.ts +++ b/modern/src/runtime/index.ts @@ -16,7 +16,7 @@ import MakiMap from "./Map"; import Region from "./Region"; import Timer from "./Timer"; import AnimatedLayer from "./AnimatedLayer"; -import Component from "./Component"; +import WindowHolder from "./WindowHolder"; import ComponentBucket from "./ComponentBucket"; import Edit from "./Edit"; import Slider from "./Slider"; @@ -43,6 +43,10 @@ import PlDir from "./PlDir"; import FeedWatcher from "./FeedWatcher"; import Form from "./Form"; import PlEdit from "./PlEdit"; +import Frame from "./Frame"; +import Menu from "./Menu"; +import BitList from "./BitList"; +import AlbumArtLayer from "./AlbumArtLayer"; const runtime = { "516549714a510d87b5a6e391e7f33532": MakiObject, @@ -63,7 +67,7 @@ const runtime = { "5ab9fa1545579a7d5765c8aba97cc6a6": Layer, "0f08c9404b23af39c4b8f38059bb7e8f": Status, efaa867241fa310ea985dcb74bcb5b52: Text, - "403abcc04bd66f22c810a48b47259329": Component, + "403abcc04bd66f22c810a48b47259329": WindowHolder, "97aa3e4d4fa8f4d0f20a7b818349452a": ComponentBucket, "64e4bbfa49d981f45ba8c0b0fdbcc32e": Edit, "62b65e3f408d375e8176ea8d771bb94a": Slider, @@ -89,17 +93,19 @@ const runtime = { "61a7abad41f67d7980e1d0b1f4a40386": PlDir, a5376fa1411a4e94ec05f6830a5fea5e: FeedWatcher, "2d2d13764cb9be0ae6570cbcf599c9e4": Form, + e2bbc14d417384f6ebb2b3bd5055662f: Frame, "345beebc49210229b66cbe90d9799aa4": PlEdit, + "6dcb05e448c28ac4f04993b14af50e91": AlbumArtLayer, + "87c6577849fee743cc09f98556fd2a53": BitList, + "73c00594401b961f24671b9b6541ac27": Menu, /* // https://github.com/captbaritone/webamp/pull/933#issuecomment-535690208 a5376fa1411a4e94ec05f6830a5fea5e: FeedWatcher, - 6dcb05e448c28ac4f04993b14af50e91: AlbumArtLayer, aee235ff498febd1e0d7af961a54d4da: ColorMgr, b8e867b04da72715db53baa5acfefca1: Application, f857beca41f18e197e093e97039f6439: CoreAdmin, 2825a91b4245d4885970f1aa7b4388cf: Core, - e2bbc14d417384f6ebb2b3bd5055662f: Frame, 836f8b2e4db4e0d10a0d7f93d1dcc804: File, */