diff --git a/backup/main.lfm b/backup/main.lfm index e18f375..f0dddc3 100644 --- a/backup/main.lfm +++ b/backup/main.lfm @@ -1,13 +1,13 @@ object GUIForm: TGUIForm - Left = 2270 - Height = 574 - Top = 247 - Width = 945 + Left = 2260 + Height = 668 + Top = 311 + Width = 1014 AlphaBlendValue = 128 Caption = 'microM8 GUI' - ClientHeight = 549 - ClientWidth = 945 - Constraints.MinWidth = 945 + ClientHeight = 648 + ClientWidth = 1014 + Constraints.MinWidth = 1014 DoubleBuffered = False Menu = MainMenu1 OnChangeBounds = FormChangeBounds @@ -27,16 +27,16 @@ object GUIForm: TGUIForm LCLVersion = '2.0.0.4' object StatusBar1: TStatusBar Left = 0 - Height = 19 - Top = 530 - Width = 945 + Height = 23 + Top = 625 + Width = 1014 Panels = <> end object ToolBar1: TToolBar Left = 0 Height = 36 Top = 0 - Width = 945 + Width = 1014 ButtonHeight = 32 ButtonWidth = 32 Caption = 'ToolBar1' @@ -44,89 +44,123 @@ object GUIForm: TGUIForm TabOrder = 1 object tbTintMode: TToolButton Left = 1 + Hint = 'Tint mode' Top = 2 Caption = 'tbTintMode' ImageIndex = 0 OnClick = tbTintModeClick + ParentShowHint = False + ShowHint = True end object tbRMVoxels: TToolButton Tag = 1 Left = 549 + Hint = 'Voxel Render' Top = 2 Caption = 'Voxels' Down = True Grouped = True ImageIndex = 4 OnClick = tbRMClick + ParentShowHint = False + PopupMenu = RecordingMenu + ShowHint = True Style = tbsCheck end object tbRMDots: TToolButton Left = 585 + Hint = 'Dot Render' Top = 2 Caption = 'Dots' Grouped = True ImageIndex = 5 OnClick = tbRMClick + ParentShowHint = False + ShowHint = True Style = tbsCheck end object tbRMRaster: TToolButton Tag = 2 Left = 621 + Hint = 'Raster Render' Top = 2 Caption = 'Raster' Grouped = True ImageIndex = 6 OnClick = tbRMClick + ParentShowHint = False + ShowHint = True Style = tbsCheck end object tbRMColor: TToolButton Left = 657 + Hint = 'Toggle Color/Mono' Top = 2 Caption = 'tbRMColor' ImageIndex = 7 OnClick = tbRMColorClick + ParentShowHint = False + ShowHint = True end - object ToolButton4: TToolButton + object tbRECState: TToolButton Left = 725 + Hint = 'Start Recording' Top = 2 - Caption = 'ToolButton4' + Caption = 'tbRECState' + DropdownMenu = RecordingMenu ImageIndex = 9 - OnClick = miRECStartFileClick + ParentShowHint = False + ShowHint = True end object ToolButton5: TToolButton Left = 761 + Hint = 'Rewind' Top = 2 Caption = 'ToolButton5' ImageIndex = 12 OnClick = miRECRewindClick + ParentShowHint = False + ShowHint = True end object ToolButton6: TToolButton Left = 797 + Hint = 'Forwards' Top = 2 Caption = 'ToolButton6' ImageIndex = 13 OnClick = miRECPlayClick + ParentShowHint = False + ShowHint = True end object ToolButton7: TToolButton Left = 833 + Hint = 'Resume' Top = 2 Caption = 'ToolButton7' ImageIndex = 14 OnClick = miRECResumeClick + ParentShowHint = False + ShowHint = True end object ToolButton8: TToolButton Left = 869 + Hint = 'Stop Recording' Top = 2 Caption = 'ToolButton8' ImageIndex = 15 OnClick = miRECStopClick + ParentShowHint = False + ShowHint = True end object ToolButton9: TToolButton Left = 905 + Hint = 'Pause' Top = 2 Caption = 'ToolButton9' ImageIndex = 16 OnClick = ToolButton9Click + ParentShowHint = False + ShowHint = True end object ToolButton10: TToolButton Left = 693 @@ -136,31 +170,43 @@ object GUIForm: TGUIForm end object tbJoystickAxisSwitch: TToolButton Left = 37 + Hint = 'Swap Joystick Axis' Top = 2 Caption = 'tbJoystickAxisSwitch' ImageIndex = 21 OnClick = tbJoystickAxisSwitchClick + ParentShowHint = False + ShowHint = True end object tbCapsMode: TToolButton Left = 73 + Hint = 'Toggle CAPS mode' Top = 2 Caption = 'tbCapsMode' ImageIndex = 17 OnClick = tbCapsModeClick + ParentShowHint = False + ShowHint = True end object tbScanlines: TToolButton Left = 109 + Hint = 'Toggle Interlacing' Top = 2 Caption = 'tbScanlines' ImageIndex = 19 OnClick = tbScanlinesClick + ParentShowHint = False + ShowHint = True end object tbWebDebugger: TToolButton Left = 145 + Hint = 'Web Debugger' Top = 2 Caption = 'tbWebDebugger' ImageIndex = 28 OnClick = miToolsWebDebuggerClick + ParentShowHint = False + ShowHint = True end object ToolButton15: TToolButton Left = 181 @@ -170,19 +216,23 @@ object GUIForm: TGUIForm end object tbVolDown: TToolButton Left = 213 + Hint = 'Volume Down' Top = 2 Caption = 'tbVolDown' ImageIndex = 23 OnClick = tbVolDownClick + ParentShowHint = False + ShowHint = True end object tbMasterVolume: TTrackBar Left = 249 - Height = 38 + Height = 32 Top = 2 Width = 64 OnChange = tbMasterVolumeChange Position = 0 ScalePos = trBottom + TabStop = False TickMarks = tmBoth TickStyle = tsManual OnKeyDown = FormKeyDown @@ -191,10 +241,13 @@ object GUIForm: TGUIForm end object tbVolUp: TToolButton Left = 313 + Hint = 'Volume Up' Top = 2 Caption = 'tbVolUp' ImageIndex = 24 OnClick = tbVolUpClick + ParentShowHint = False + ShowHint = True end object ToolButton3: TToolButton Left = 349 @@ -204,20 +257,24 @@ object GUIForm: TGUIForm end object tbSpeedDown: TToolButton Left = 381 + Hint = 'CPU Speed Down' Top = 2 Caption = 'tbSpeedDown' ImageIndex = 25 OnClick = tbSpeedDownClick + ParentShowHint = False + ShowHint = True end object TrackBar2: TTrackBar Left = 417 - Height = 38 + Height = 32 Top = 2 Width = 64 Max = 4 OnChange = TrackBar2Change Position = 0 ScalePos = trBottom + TabStop = False TickMarks = tmBoth TickStyle = tsManual OnKeyDown = FormKeyDown @@ -226,10 +283,13 @@ object GUIForm: TGUIForm end object tbSpeedUp: TToolButton Left = 481 + Hint = 'CPU Speed Up' Top = 2 Caption = 'tbSpeedUp' ImageIndex = 26 OnClick = tbSpeedUpClick + ParentShowHint = False + ShowHint = True end object ToolButton18: TToolButton Left = 517 @@ -237,35 +297,51 @@ object GUIForm: TGUIForm Caption = 'ToolButton18' Enabled = False end + object ToolButton1: TToolButton + Left = 941 + Top = 2 + Caption = 'ToolButton1' + Enabled = False + end + object tbFullscreen: TToolButton + Left = 973 + Hint = 'Fullscreen' + Top = 2 + Caption = 'tbFullscreen' + ImageIndex = 29 + OnClick = tbFullscreenClick + ParentShowHint = False + ShowHint = True + end end object pnlContainer: TPanel Left = 0 - Height = 494 + Height = 589 Top = 36 - Width = 945 + Width = 1014 Align = alClient BevelOuter = bvNone - ClientHeight = 494 - ClientWidth = 945 + ClientHeight = 589 + ClientWidth = 1014 Color = clAqua ParentColor = False TabOrder = 2 object sidecarPanel: TPanel - Left = 775 - Height = 494 + Left = 844 + Height = 589 Top = 0 Width = 170 Align = alRight BevelOuter = bvNone Caption = 'sidecarPanel' - ClientHeight = 494 + ClientHeight = 589 ClientWidth = 170 Color = clBlack ParentColor = False TabOrder = 0 object Image1: TImage Left = 0 - Height = 494 + Height = 589 Top = 0 Width = 170 Align = alClient @@ -5358,13 +5434,13 @@ object GUIForm: TGUIForm end object embedPanel: TPanel Left = 0 - Height = 494 + Height = 589 Top = 0 - Width = 775 + Width = 844 Align = alClient BevelOuter = bvNone - ClientHeight = 494 - ClientWidth = 775 + ClientHeight = 589 + ClientWidth = 844 Color = clBlack Font.Color = clWhite ParentColor = False @@ -5372,9 +5448,9 @@ object GUIForm: TGUIForm TabOrder = 1 object backdrop: TImage Left = 0 - Height = 494 + Height = 589 Top = 0 - Width = 775 + Width = 844 Align = alClient OnClick = backdropClick Stretch = True @@ -5432,41 +5508,49 @@ object GUIForm: TGUIForm OnClick = miVMClick object miVM1: TMenuItem Caption = '1' + RadioItem = True ShortCut = 24625 OnClick = miVM1Click end object miVM2: TMenuItem Caption = '2' + RadioItem = True ShortCut = 24626 OnClick = miVM1Click end object miVM3: TMenuItem Caption = '3' + RadioItem = True ShortCut = 24627 OnClick = miVM1Click end object miVM4: TMenuItem Caption = '4' + RadioItem = True ShortCut = 24628 OnClick = miVM1Click end object miVM5: TMenuItem Caption = '5' + RadioItem = True ShortCut = 24629 OnClick = miVM1Click end object miVM6: TMenuItem Caption = '6' + RadioItem = True ShortCut = 24630 OnClick = miVM1Click end object miVM7: TMenuItem Caption = '7' + RadioItem = True ShortCut = 24631 OnClick = miVM1Click end object miVM8: TMenuItem Caption = '8' + RadioItem = True ShortCut = 24632 OnClick = miVM1Click end @@ -5848,6 +5932,14 @@ object GUIForm: TGUIForm ShortCut = 32781 OnClick = MenuItem14Click end + object N10: TMenuItem + Caption = '-' + end + object miVideoScreenshot: TMenuItem + Caption = 'Take Screenshot' + ShortCut = 24796 + OnClick = miVideoScreenshotClick + end end object Input: TMenuItem Caption = 'Input' @@ -6275,10 +6367,12 @@ object GUIForm: TGUIForm end object miRECRewind: TMenuItem Caption = 'Rewind' + ShortCut = 24795 OnClick = miRECRewindClick end object miRECPlay: TMenuItem Caption = 'Play' + ShortCut = 24797 OnClick = miRECPlayClick end object miRECResume: TMenuItem @@ -6314,15 +6408,25 @@ object GUIForm: TGUIForm end object miTools: TMenuItem Caption = 'Tools' + OnClick = miToolsClick object miToolsTracker: TMenuItem Caption = 'microTracker' OnClick = miToolsTrackerClick end object miToolsWebDebugger: TMenuItem Caption = 'Web Debugger' + ShortCut = 24642 OnClick = miToolsWebDebuggerClick end end + object miHelp: TMenuItem + Caption = 'Help' + object miMMHelp: TMenuItem + Caption = 'microM8 Help' + ShortCut = 24648 + OnClick = miMMHelpClick + end + end end object ToolbarIcons: TImageList Height = 32 @@ -6331,7 +6435,7 @@ object GUIForm: TGUIForm left = 96 top = 48 Bitmap = { - 4C691D0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D + 4C691E0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D B100B16DB100B16DB100B16DB100B16DB100B16DB100B16DB100AD72BB0E8C68 D54C6E5CEA805A52F69F5353FFB15353FFB15A52F69F6E5CEA808C68D54CAD72 BB0EB16DB100B16DB100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF @@ -10043,7 +10147,135 @@ object GUIForm: TGUIForm ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED002D99B33C28C6 ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6 ED002B9EBB3528C6ED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00 + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0070107137660068DD660068F76600 + 68F7660068F7660068F7660068F7660068F7660068F7660068F7660068D06600 + 68226600680066006800660068006600680066006800660068006600681A6600 + 68C9660068F7660068F7660068F7660068F7660068F7660068F7660068F76600 + 68F7660068E266006842FFFFFF00FFFFFF00701071CD660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 6891660068006600680066006800660068006600680066006800660068816600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068DDFFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 6871660068006600680066006800660068006600680066006800660068616600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068BD6600688E6600688E6600688E660068686600 + 6802660068006600680066006800660068006600680066006800660068016600 + 68616600688E6600688E6600688E660068B6660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068EF660068346600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 680066006800660068006600682A660068E8660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068EE6600683466006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600682A660068E8660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68C6660068E8660068FF660068FF660068FF660068EE66006834660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600682A660068E8660068FF660068FF660068FF660068EE660068BF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A26600682A660068E8660068FF660068FF660068FF660068EE660068346600 + 6800660068006600680066006800660068006600680066006800660068006600 + 682A660068E8660068FF660068FF660068FF660068EE66006834660068926600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A1660068006600682A660068E8660068FF660068FF660068FF660068EE6600 + 68346600680066006800660068006600680066006800660068006600682A6600 + 68E8660068FF660068FF660068FF660068EE6600683466006800660068916600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A266006800660068006600682A660068E8660068FF660068FF660068FF6600 + 68EE66006825660068006600680066006800660068006600681C660068E86600 + 68FF660068FF660068FF660068EE660068346600680066006800660068926600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071BE660068FF660068FF6600 + 687D6600680066006800660068006600682A660068E8660068FF660068FF6600 + 68FF660068776600680066006800660068006600680066006867660068FF6600 + 68FF660068FF660068EE660068346600680066006800660068006600686D6600 + 68FF660068FF660068CEFFFFFF00FFFFFF007010711C660068906600687C6600 + 6807660068006600680066006800660068006600682A660068E8660068FF6600 + 68F9660068346600680066006800660068006600680066006828660068F56600 + 68FF660068EE660068348C408E008C408E008C408E008C408E008C408E038C40 + 8E768C408E948C408E23FFFFFF00FFFFFF007010710066006800660068006600 + 68006600680066006800660068006600680066006800660068206600687B6600 + 683A660068006600680066006800660068006600680066006800660068326600 + 687C6600682666006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006803660068336600 + 680E6600680066006800660068006600680066006800660068006600680C6600 + 68346600680566006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00701071036600684C660068386600 + 6800660068006600680066006800660068006600680C660068C0660068FF6600 + 68ED6600682F6600680066006800660068006600680066006825660068E76600 + 68FF660068CA66006811BC90BD00BC90BD00BC90BD00BC90BD00BC90BD00BC90 + BD32BC90BD4FBC90BD06FFFFFF00FFFFFF007010719A660068FF660068FF6600 + 68596600680066006800660068006600680C660068C2660068FF660068FF6600 + 68FF6600688D660068006600680066006800660068006600687D660068FF6600 + 68FF660068FF660068CC660068116600680066006800660068006600684A6600 + 68FE660068FF660068AAFFFFFF00FFFFFF00701071E2660068FF660068FF6600 + 689F66006800660068006600680C660068C2660068FF660068FF660068FF6600 + 68FE6600684B660068006600680066006800660068006600683D660068FC6600 + 68FF660068FF660068FF660068CC6600681166006800660068006600688F6600 + 68FF660068FF660068F2FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A1660068006600680C660068C2660068FF660068FF660068FF660068FE7B24 + 7D67D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00833084596600 + 68FC660068FF660068FF660068FF660068CC6600681166006800660068916600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A16600680C660068C2660068FF660068FF660068FF660068FE660068678330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 6859660068FC660068FF660068FF660068FF660068CC66006811660068916600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68AD660068C2660068FF660068FF660068FF660068FE66006867660068008330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 680066006859660068FC660068FF660068FF660068FF660068CC660068A36600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FE6600686766006800660068008330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 68006600680066006859660068FC660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FE660068676600680066006800660068008330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 6800660068006600680066006859660068FC660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068BD660068606600686066006860660068428330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 683D660068606600686066006860660068B3660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330 + 846DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E5E6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071DE660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330 + 84ACFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E9C6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068EEFFFFFF00FFFFFF0070107157660068F5660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068F78330 + 8448FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E3C6600 + 68F3660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068F866006865FFFFFF00FFFFFF00E5D3E500E3D0E30FE3D0E325E3D0 + E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E30FE8D9 + E800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EADCEA00E3D0 + E30DE3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0 + E325E3D0E312E3D0E300FFFFFF00 } end object DiskMenu: TPopupMenu @@ -10164,4 +10396,42 @@ object GUIForm: TGUIForm left = 24 top = 216 end + object RecordingMenu: TPopupMenu + Images = ToolbarIcons + ImagesWidth = 32 + left = 96 + top = 216 + object miStartDiskRec: TMenuItem + Caption = 'Start Disk Recording' + ImageIndex = 10 + SubMenuImages = ToolbarIcons + OnClick = miRECStartFileClick + end + object miStartLiveRewindRecord: TMenuItem + Caption = 'Enable Live Rewind' + ImageIndex = 11 + SubMenuImages = ToolbarIcons + OnClick = miRECLiveRewindClick + end + end + object ProfileMenu: TPopupMenu + left = 168 + top = 216 + object miPMApple2eEnh: TMenuItem + Caption = 'Apple //e Enhanced' + OnClick = miPRFIIeEnhancedClick + end + object miPMApple2eEnhCPM: TMenuItem + Caption = 'Apple //e Enhanced (Softcard)' + OnClick = miPRFIIeEnhancedSoftcardClick + end + object miPMApple2e: TMenuItem + Caption = 'Apple //e' + OnClick = miPRFIIeClick + end + object miPMApple2plus: TMenuItem + Caption = 'Apple ][+' + OnClick = miPRFIIplusClick + end + end end diff --git a/backup/main.pas b/backup/main.pas index d2e420f..82c0aab 100644 --- a/backup/main.pas +++ b/backup/main.pas @@ -24,6 +24,16 @@ type MenuItem14: TMenuItem; MenuItem17: TMenuItem; MenuItem18: TMenuItem; + miVideoScreenshot: TMenuItem; + N10: TMenuItem; + miPMApple2plus: TMenuItem; + miPMApple2e: TMenuItem; + miPMApple2eEnhCPM: TMenuItem; + miPMApple2eEnh: TMenuItem; + miStartLiveRewindRecord: TMenuItem; + miStartDiskRec: TMenuItem; + miMMHelp: TMenuItem; + miHelp: TMenuItem; miVM8: TMenuItem; miVM7: TMenuItem; miVM6: TMenuItem; @@ -66,6 +76,8 @@ type Image1: TImage; odFreezeFiles: TOpenDialog; pnlContainer: TPanel; + ProfileMenu: TPopupMenu; + RecordingMenu: TPopupMenu; sdFreezeFiles: TSaveDialog; SideImages: TImageList; miWarp400: TMenuItem; @@ -174,6 +186,7 @@ type sidecarPanel: TPanel; FSTimer: TTimer; tbVolDown: TToolButton; + ToolButton1: TToolButton; ToolButton10: TToolButton; tbJoystickAxisSwitch: TToolButton; tbCapsMode: TToolButton; @@ -184,8 +197,9 @@ type tbSpeedUp: TToolButton; ToolButton18: TToolButton; tbVolUp: TToolButton; + tbFullscreen: TToolButton; ToolButton3: TToolButton; - ToolButton4: TToolButton; + tbRECState: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; @@ -368,6 +382,7 @@ type procedure miJSAxisSwapClick(Sender: TObject); procedure miJSXRevClick(Sender: TObject); procedure miJSYRevClick(Sender: TObject); + procedure miMMHelpClick(Sender: TObject); procedure miMonoDotsClick(Sender: TObject); procedure miMonoRasterClick(Sender: TObject); procedure miMonoVoxelsClick(Sender: TObject); @@ -409,17 +424,20 @@ type procedure miSVOL000Click(Sender: TObject); procedure miTintModeClick(Sender: TObject); procedure miTMNoneClick(Sender: TObject); + procedure miToolsClick(Sender: TObject); procedure miToolsTrackerClick(Sender: TObject); procedure miToolsWebDebuggerClick(Sender: TObject); procedure miVCRClick(Sender: TObject); procedure miVD1Click(Sender: TObject); procedure miVDClick(Sender: TObject); + procedure miVideoScreenshotClick(Sender: TObject); procedure miVM1Click(Sender: TObject); procedure miVMClick(Sender: TObject); procedure miWarp25Click(Sender: TObject); procedure MouseTimerTimer(Sender: TObject); procedure sidecarPanelResize(Sender: TObject); procedure tbCapsModeClick(Sender: TObject); + procedure tbFullscreenClick(Sender: TObject); procedure tbJoystickAxisSwitchClick(Sender: TObject); procedure tbRMClick(Sender: TObject); procedure tbRMColorClick(Sender: TObject); @@ -467,6 +485,7 @@ type procedure UpdateWarpSlider; procedure UpdateAllCaps; procedure UpdateScanlines; + procedure UpdateRecordState; function IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean; function IsMouseBtnDown: Boolean; private @@ -564,7 +583,7 @@ begin RepaintWindow; if GetTitleOfActiveWindow <> 'microM8' then HideM8; - StatusBar1.SimpleText := GetTitleOfActiveWindow; + //StatusBar1.SimpleText := GetTitleOfActiveWindow; //Memo1.Lines.Add('app is deactivating'); end; @@ -609,7 +628,7 @@ begin if (y >= 0) and (y < sideCarPanel.Height) then begin bi := y div Round(sideCarPanel.Height / 5); - StatusBar1.SimpleText := IntToStr(bi); + //StatusBar1.SimpleText := IntToStr(bi); Image1.PopupMenu := nil; case bi of 0: begin @@ -670,7 +689,16 @@ begin end; 4: begin - SimpleGet(baseUrl + '/api/control/system/reboot'); + + if Button = mbRight then + begin + ProfileMenu.PopUp(Mouse.CursorPos.X, Mouse.CursorPos.Y); + end + else + begin + SimpleGet(baseUrl + '/api/control/system/reboot'); + end; + end; end; @@ -800,7 +828,7 @@ var begin // DHGR Enhanced menu value := GetConfig('video/init.video.dhgrhighbit'); - StatusBar1.SimpleText := value; + //.SimpleText := value; if value <> '' then begin case value of @@ -906,7 +934,7 @@ var begin // GR Render Mode menu value := GetConfig('video/init.video.grmode'); - StatusBar1.SimpleText := value; + // StatusBar1.SimpleText := value; if value <> '' then begin case value of @@ -978,7 +1006,7 @@ begin MM_MOUSE_OFF = 4 } value := GetConfig('input/init.mouse'); - StatusBar1.SimpleText := value; + //StatusBar1.SimpleText := value; if value <> '' then begin case value of @@ -1045,6 +1073,11 @@ begin UpdateConfig( 'input/init.joystick.reversey', '1', true ); end; +procedure TGUIForm.miMMHelpClick(Sender: TObject); +begin + SimpleGet(baseUrl + '/api/control/system/help'); +end; + procedure TGUIForm.miMonoDotsClick(Sender: TObject); begin UpdateConfig( 'video/init.video.hgrmode', '3', true ); @@ -1119,7 +1152,7 @@ end; procedure TGUIForm.miPRFIIplusClick(Sender: TObject); begin - SimpleGet( baseUrl+'/api/control/system/profile/set/apple2plus' ); + SimpleGet( baseUrl+'/api/control/system/profile/set/apple2-plus' ); end; procedure TGUIForm.miPrinterPDFClick(Sender: TObject); @@ -1246,7 +1279,7 @@ var begin // SHR Render Mode menu value := GetConfig('video/init.video.scanline'); - StatusBar1.SimpleText := value; + //StatusBar1.SimpleText := value; if value <> '' then begin case value of @@ -1296,7 +1329,7 @@ var begin // SHR Render Mode menu value := GetConfig('video/init.video.shrmode'); - StatusBar1.SimpleText := value; + //StatusBar1.SimpleText := value; if value <> '' then begin case value of @@ -1468,6 +1501,11 @@ begin UpdateTintMode; end; +procedure TGUIForm.miToolsClick(Sender: TObject); +begin + +end; + procedure TGUIForm.miToolsTrackerClick(Sender: TObject); begin LaunchCommand( 'fp', '/local', '@music.edit{}' ); @@ -1510,6 +1548,17 @@ begin end; end; +procedure TGUIForm.miVideoScreenshotClick(Sender: TObject); +var + s: string; +begin + s := SimpleGet(baseUrl+'/api/control/window/screenshot'); + if s <> '' then + StatusBar1.SimpleText := 'Screenshot saved: ' + s; + + SendKey( $e092, $e092, 1, 0 ); +end; + procedure TGUIForm.miVM1Click(Sender: TObject); begin SimpleGet(baseUrl+'/api/control/vm/'+TMenuItem(sender).Caption); @@ -1571,6 +1620,12 @@ begin UpdateAllCaps; end; +procedure TGUIForm.tbFullscreenClick(Sender: TObject); +begin + UpdateConfig('video/current.fullscreen', '1', false); + isFS := true; +end; + procedure TGUIForm.UpdateAllCaps; begin case GetConfig( 'input/init.uppercase' ) of @@ -1731,6 +1786,24 @@ begin SimpleGet(baseUrl+'/api/control/pause'); end; +procedure TGUIForm.UpdateRecordState; +begin + case SimpleGet(baseUrl+'/api/control/recorder' ) of + '0': begin + tbRECState.ImageIndex := 9; + tbRECState.Caption := 'Start Recording'; + end; + '1': begin + tbRECState.ImageIndex := 11; + tbRECState.Caption := 'Live Rewind Active'; + end; + '2': begin + tbRECState.ImageIndex := 10; + tbRECState.Caption := 'Disk Recording Active'; + end; + end; +end; + procedure TGUIForm.ToolTimerTimer(Sender: TObject); begin UpdateRenderMode; @@ -1741,6 +1814,7 @@ begin UpdateWarpSlider; UpdateAllCaps; UpdateScanlines; + UpdateRecordState; end; procedure TGUIForm.tbMasterVolumeChange(Sender: TObject); @@ -1839,7 +1913,7 @@ begin if S.Size > 0 then begin filename := GetUserDir + PathSeparator + 'microm8scrn.png'; - StatusBar1.SimpleText:='Got '+IntToStr(S.Size)+' bytes of PNG data'; + //StatusBar1.SimpleText:='Got '+IntToStr(S.Size)+' bytes of PNG data'; S.SaveToFile(filename); backdrop.Picture.LoadFromFile(filename); S.Free; @@ -1880,7 +1954,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/window/position',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -1894,7 +1968,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -1910,7 +1984,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -1924,7 +1998,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -1939,7 +2013,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/input/mouseevent',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -1994,7 +2068,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/input/keyevent',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -2013,7 +2087,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/hardware/disk/insert',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=json; + //self.StatusBar1.SimpleText:=json; Respo.Destroy; end; @@ -2033,7 +2107,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=json; + //self.StatusBar1.SimpleText:=json; Respo.Destroy; end; @@ -2048,7 +2122,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo); Result := Respo.DataString; - self.StatusBar1.SimpleText:=json; + //self.StatusBar1.SimpleText:=json; Respo.Destroy; end; @@ -2069,7 +2143,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/system/freeze/save',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=json; + //self.StatusBar1.SimpleText:=json; Respo.Destroy; end; @@ -2087,7 +2161,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/system/freeze/restore',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=json; + //self.StatusBar1.SimpleText:=json; Respo.Destroy; end; @@ -2095,14 +2169,14 @@ procedure TGUIForm.tbDisk1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin DiskMenu.Tag := TToolButton(Sender).Tag; - StatusBar1.SimpleText := 'Disk 1'; + //StatusBar1.SimpleText := 'Disk 1'; end; procedure TGUIForm.tbDisk2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin DiskMenu.Tag := TToolButton(Sender).Tag; - StatusBar1.SimpleText := 'Disk 2'; + //StatusBar1.SimpleText := 'Disk 2'; end; procedure TGUIForm.ToolButton5Click(Sender: TObject); @@ -2185,8 +2259,10 @@ begin if GetTitleOfActiveWindow = 'microM8' then begin + {$IFNDEF WINDOWS} if IsMouseBtnDown then exit; + {$ENDIF} //Application.Restore; Application.BringToFront; @@ -2209,10 +2285,22 @@ begin inPopup := true; end; +{$IFDEF WINDOWS} +const + EXENAME: string = 'microm8.exe'; +{$ELSE} +const + EXENAME: string = 'microm8'; +{$ENDIF} + + procedure TGUIForm.FormCreate(Sender: TObject); begin self.httpc := TFPHttpClient.Create(Nil); + //ShowMessage( ExtractFilePath(Application.ExeName) + EXENAME ); + MicroM8Process.Executable := ExtractFilePath(Application.ExeName) + EXENAME; + //if SimpleGet( baseUrl+'/api/control/health' ) <> 'ok' then //begin MicroM8Process.Active := true; @@ -2324,7 +2412,9 @@ begin end; VK_A..VK_Z: begin - if ssShift in Shift then + if (ssCtrl in Shift) and (ssShift in Shift) then + Result := Integer(Key) + else if ssShift in Shift then Result := Integer(Key) else if ssCtrl in Shift then begin @@ -2369,7 +2459,7 @@ end; procedure TGUIForm.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin SendKey( MapKeyCode(Key, Shift), 0, 0, MapShiftState(Key, Shift) ); - StatusBar1.SimpleText := 'keycode ' + IntToStr(Key); + //StatusBar1.SimpleText := 'keycode ' + IntToStr(Key); end; procedure TGUIForm.FormResize(Sender: TObject); @@ -2439,7 +2529,7 @@ var begin // HGR Render Mode menu value := GetConfig('video/init.video.hgrmode'); - StatusBar1.SimpleText := value; + //StatusBar1.SimpleText := value; if value <> '' then begin case value of @@ -2459,7 +2549,7 @@ var begin // DHGR Render Mode menu value := GetConfig('video/init.video.dhgrmode'); - StatusBar1.SimpleText := value; + //StatusBar1.SimpleText := value; if value <> '' then begin case value of diff --git a/backup/poc.lps b/backup/poc.lps index 1d34234..d1b4f77 100644 --- a/backup/poc.lps +++ b/backup/poc.lps @@ -4,7 +4,7 @@ - + @@ -21,8 +21,8 @@ - - + + @@ -43,129 +43,137 @@ - + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/lib/x86_64-win64/main.lfm b/lib/x86_64-win64/main.lfm index 0d0ba82..f0dddc3 100644 --- a/lib/x86_64-win64/main.lfm +++ b/lib/x86_64-win64/main.lfm @@ -1,13 +1,13 @@ object GUIForm: TGUIForm - Left = 2072 - Height = 574 - Top = 321 - Width = 945 + Left = 2260 + Height = 668 + Top = 311 + Width = 1014 AlphaBlendValue = 128 Caption = 'microM8 GUI' - ClientHeight = 554 - ClientWidth = 945 - Constraints.MinWidth = 945 + ClientHeight = 648 + ClientWidth = 1014 + Constraints.MinWidth = 1014 DoubleBuffered = False Menu = MainMenu1 OnChangeBounds = FormChangeBounds @@ -28,15 +28,15 @@ object GUIForm: TGUIForm object StatusBar1: TStatusBar Left = 0 Height = 23 - Top = 531 - Width = 945 + Top = 625 + Width = 1014 Panels = <> end object ToolBar1: TToolBar Left = 0 Height = 36 Top = 0 - Width = 945 + Width = 1014 ButtonHeight = 32 ButtonWidth = 32 Caption = 'ToolBar1' @@ -44,89 +44,123 @@ object GUIForm: TGUIForm TabOrder = 1 object tbTintMode: TToolButton Left = 1 + Hint = 'Tint mode' Top = 2 Caption = 'tbTintMode' ImageIndex = 0 OnClick = tbTintModeClick + ParentShowHint = False + ShowHint = True end object tbRMVoxels: TToolButton Tag = 1 Left = 549 + Hint = 'Voxel Render' Top = 2 Caption = 'Voxels' Down = True Grouped = True ImageIndex = 4 OnClick = tbRMClick + ParentShowHint = False + PopupMenu = RecordingMenu + ShowHint = True Style = tbsCheck end object tbRMDots: TToolButton Left = 585 + Hint = 'Dot Render' Top = 2 Caption = 'Dots' Grouped = True ImageIndex = 5 OnClick = tbRMClick + ParentShowHint = False + ShowHint = True Style = tbsCheck end object tbRMRaster: TToolButton Tag = 2 Left = 621 + Hint = 'Raster Render' Top = 2 Caption = 'Raster' Grouped = True ImageIndex = 6 OnClick = tbRMClick + ParentShowHint = False + ShowHint = True Style = tbsCheck end object tbRMColor: TToolButton Left = 657 + Hint = 'Toggle Color/Mono' Top = 2 Caption = 'tbRMColor' ImageIndex = 7 OnClick = tbRMColorClick + ParentShowHint = False + ShowHint = True end - object ToolButton4: TToolButton + object tbRECState: TToolButton Left = 725 + Hint = 'Start Recording' Top = 2 - Caption = 'ToolButton4' + Caption = 'tbRECState' + DropdownMenu = RecordingMenu ImageIndex = 9 - OnClick = miRECStartFileClick + ParentShowHint = False + ShowHint = True end object ToolButton5: TToolButton Left = 761 + Hint = 'Rewind' Top = 2 Caption = 'ToolButton5' ImageIndex = 12 OnClick = miRECRewindClick + ParentShowHint = False + ShowHint = True end object ToolButton6: TToolButton Left = 797 + Hint = 'Forwards' Top = 2 Caption = 'ToolButton6' ImageIndex = 13 OnClick = miRECPlayClick + ParentShowHint = False + ShowHint = True end object ToolButton7: TToolButton Left = 833 + Hint = 'Resume' Top = 2 Caption = 'ToolButton7' ImageIndex = 14 OnClick = miRECResumeClick + ParentShowHint = False + ShowHint = True end object ToolButton8: TToolButton Left = 869 + Hint = 'Stop Recording' Top = 2 Caption = 'ToolButton8' ImageIndex = 15 OnClick = miRECStopClick + ParentShowHint = False + ShowHint = True end object ToolButton9: TToolButton Left = 905 + Hint = 'Pause' Top = 2 Caption = 'ToolButton9' ImageIndex = 16 OnClick = ToolButton9Click + ParentShowHint = False + ShowHint = True end object ToolButton10: TToolButton Left = 693 @@ -136,31 +170,43 @@ object GUIForm: TGUIForm end object tbJoystickAxisSwitch: TToolButton Left = 37 + Hint = 'Swap Joystick Axis' Top = 2 Caption = 'tbJoystickAxisSwitch' ImageIndex = 21 OnClick = tbJoystickAxisSwitchClick + ParentShowHint = False + ShowHint = True end object tbCapsMode: TToolButton Left = 73 + Hint = 'Toggle CAPS mode' Top = 2 Caption = 'tbCapsMode' ImageIndex = 17 OnClick = tbCapsModeClick + ParentShowHint = False + ShowHint = True end object tbScanlines: TToolButton Left = 109 + Hint = 'Toggle Interlacing' Top = 2 Caption = 'tbScanlines' ImageIndex = 19 OnClick = tbScanlinesClick + ParentShowHint = False + ShowHint = True end object tbWebDebugger: TToolButton Left = 145 + Hint = 'Web Debugger' Top = 2 Caption = 'tbWebDebugger' ImageIndex = 28 OnClick = miToolsWebDebuggerClick + ParentShowHint = False + ShowHint = True end object ToolButton15: TToolButton Left = 181 @@ -170,10 +216,13 @@ object GUIForm: TGUIForm end object tbVolDown: TToolButton Left = 213 + Hint = 'Volume Down' Top = 2 Caption = 'tbVolDown' ImageIndex = 23 OnClick = tbVolDownClick + ParentShowHint = False + ShowHint = True end object tbMasterVolume: TTrackBar Left = 249 @@ -182,17 +231,23 @@ object GUIForm: TGUIForm Width = 64 OnChange = tbMasterVolumeChange Position = 0 - TickStyle = tsNone + ScalePos = trBottom + TabStop = False + TickMarks = tmBoth + TickStyle = tsManual OnKeyDown = FormKeyDown OnKeyUp = FormKeyUp TabOrder = 0 end object tbVolUp: TToolButton Left = 313 + Hint = 'Volume Up' Top = 2 Caption = 'tbVolUp' ImageIndex = 24 OnClick = tbVolUpClick + ParentShowHint = False + ShowHint = True end object ToolButton3: TToolButton Left = 349 @@ -202,10 +257,13 @@ object GUIForm: TGUIForm end object tbSpeedDown: TToolButton Left = 381 + Hint = 'CPU Speed Down' Top = 2 Caption = 'tbSpeedDown' ImageIndex = 25 OnClick = tbSpeedDownClick + ParentShowHint = False + ShowHint = True end object TrackBar2: TTrackBar Left = 417 @@ -215,16 +273,23 @@ object GUIForm: TGUIForm Max = 4 OnChange = TrackBar2Change Position = 0 + ScalePos = trBottom + TabStop = False + TickMarks = tmBoth + TickStyle = tsManual OnKeyDown = FormKeyDown OnKeyUp = FormKeyUp TabOrder = 1 end object tbSpeedUp: TToolButton Left = 481 + Hint = 'CPU Speed Up' Top = 2 Caption = 'tbSpeedUp' ImageIndex = 26 OnClick = tbSpeedUpClick + ParentShowHint = False + ShowHint = True end object ToolButton18: TToolButton Left = 517 @@ -232,35 +297,51 @@ object GUIForm: TGUIForm Caption = 'ToolButton18' Enabled = False end + object ToolButton1: TToolButton + Left = 941 + Top = 2 + Caption = 'ToolButton1' + Enabled = False + end + object tbFullscreen: TToolButton + Left = 973 + Hint = 'Fullscreen' + Top = 2 + Caption = 'tbFullscreen' + ImageIndex = 29 + OnClick = tbFullscreenClick + ParentShowHint = False + ShowHint = True + end end object pnlContainer: TPanel Left = 0 - Height = 495 + Height = 589 Top = 36 - Width = 945 + Width = 1014 Align = alClient BevelOuter = bvNone - ClientHeight = 495 - ClientWidth = 945 + ClientHeight = 589 + ClientWidth = 1014 Color = clAqua ParentColor = False TabOrder = 2 object sidecarPanel: TPanel - Left = 775 - Height = 495 + Left = 844 + Height = 589 Top = 0 Width = 170 Align = alRight BevelOuter = bvNone Caption = 'sidecarPanel' - ClientHeight = 495 + ClientHeight = 589 ClientWidth = 170 Color = clBlack ParentColor = False TabOrder = 0 object Image1: TImage Left = 0 - Height = 495 + Height = 589 Top = 0 Width = 170 Align = alClient @@ -5353,13 +5434,13 @@ object GUIForm: TGUIForm end object embedPanel: TPanel Left = 0 - Height = 495 + Height = 589 Top = 0 - Width = 775 + Width = 844 Align = alClient BevelOuter = bvNone - ClientHeight = 495 - ClientWidth = 775 + ClientHeight = 589 + ClientWidth = 844 Color = clBlack Font.Color = clWhite ParentColor = False @@ -5367,9 +5448,9 @@ object GUIForm: TGUIForm TabOrder = 1 object backdrop: TImage Left = 0 - Height = 495 + Height = 589 Top = 0 - Width = 775 + Width = 844 Align = alClient OnClick = backdropClick Stretch = True @@ -5422,6 +5503,58 @@ object GUIForm: TGUIForm OnClick = miIntLOGOClick end end + object miVM: TMenuItem + Caption = 'VM' + OnClick = miVMClick + object miVM1: TMenuItem + Caption = '1' + RadioItem = True + ShortCut = 24625 + OnClick = miVM1Click + end + object miVM2: TMenuItem + Caption = '2' + RadioItem = True + ShortCut = 24626 + OnClick = miVM1Click + end + object miVM3: TMenuItem + Caption = '3' + RadioItem = True + ShortCut = 24627 + OnClick = miVM1Click + end + object miVM4: TMenuItem + Caption = '4' + RadioItem = True + ShortCut = 24628 + OnClick = miVM1Click + end + object miVM5: TMenuItem + Caption = '5' + RadioItem = True + ShortCut = 24629 + OnClick = miVM1Click + end + object miVM6: TMenuItem + Caption = '6' + RadioItem = True + ShortCut = 24630 + OnClick = miVM1Click + end + object miVM7: TMenuItem + Caption = '7' + RadioItem = True + ShortCut = 24631 + OnClick = miVM1Click + end + object miVM8: TMenuItem + Caption = '8' + RadioItem = True + ShortCut = 24632 + OnClick = miVM1Click + end + end object N7: TMenuItem Caption = '-' end @@ -5799,6 +5932,14 @@ object GUIForm: TGUIForm ShortCut = 32781 OnClick = MenuItem14Click end + object N10: TMenuItem + Caption = '-' + end + object miVideoScreenshot: TMenuItem + Caption = 'Take Screenshot' + ShortCut = 24796 + OnClick = miVideoScreenshotClick + end end object Input: TMenuItem Caption = 'Input' @@ -6226,10 +6367,12 @@ object GUIForm: TGUIForm end object miRECRewind: TMenuItem Caption = 'Rewind' + ShortCut = 24795 OnClick = miRECRewindClick end object miRECPlay: TMenuItem Caption = 'Play' + ShortCut = 24797 OnClick = miRECPlayClick end object miRECResume: TMenuItem @@ -6265,15 +6408,25 @@ object GUIForm: TGUIForm end object miTools: TMenuItem Caption = 'Tools' + OnClick = miToolsClick object miToolsTracker: TMenuItem Caption = 'microTracker' OnClick = miToolsTrackerClick end object miToolsWebDebugger: TMenuItem Caption = 'Web Debugger' + ShortCut = 24642 OnClick = miToolsWebDebuggerClick end end + object miHelp: TMenuItem + Caption = 'Help' + object miMMHelp: TMenuItem + Caption = 'microM8 Help' + ShortCut = 24648 + OnClick = miMMHelpClick + end + end end object ToolbarIcons: TImageList Height = 32 @@ -6282,7 +6435,7 @@ object GUIForm: TGUIForm left = 96 top = 48 Bitmap = { - 4C691D0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D + 4C691E0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D B100B16DB100B16DB100B16DB100B16DB100B16DB100B16DB100AD72BB0E8C68 D54C6E5CEA805A52F69F5353FFB15353FFB15A52F69F6E5CEA808C68D54CAD72 BB0EB16DB100B16DB100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF @@ -9994,7 +10147,135 @@ object GUIForm: TGUIForm ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED002D99B33C28C6 ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6 ED002B9EBB3528C6ED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00 + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0070107137660068DD660068F76600 + 68F7660068F7660068F7660068F7660068F7660068F7660068F7660068D06600 + 68226600680066006800660068006600680066006800660068006600681A6600 + 68C9660068F7660068F7660068F7660068F7660068F7660068F7660068F76600 + 68F7660068E266006842FFFFFF00FFFFFF00701071CD660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 6891660068006600680066006800660068006600680066006800660068816600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068DDFFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 6871660068006600680066006800660068006600680066006800660068616600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068BD6600688E6600688E6600688E660068686600 + 6802660068006600680066006800660068006600680066006800660068016600 + 68616600688E6600688E6600688E660068B6660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068EF660068346600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 680066006800660068006600682A660068E8660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068EE6600683466006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600682A660068E8660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68C6660068E8660068FF660068FF660068FF660068EE66006834660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600682A660068E8660068FF660068FF660068FF660068EE660068BF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A26600682A660068E8660068FF660068FF660068FF660068EE660068346600 + 6800660068006600680066006800660068006600680066006800660068006600 + 682A660068E8660068FF660068FF660068FF660068EE66006834660068926600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A1660068006600682A660068E8660068FF660068FF660068FF660068EE6600 + 68346600680066006800660068006600680066006800660068006600682A6600 + 68E8660068FF660068FF660068FF660068EE6600683466006800660068916600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A266006800660068006600682A660068E8660068FF660068FF660068FF6600 + 68EE66006825660068006600680066006800660068006600681C660068E86600 + 68FF660068FF660068FF660068EE660068346600680066006800660068926600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071BE660068FF660068FF6600 + 687D6600680066006800660068006600682A660068E8660068FF660068FF6600 + 68FF660068776600680066006800660068006600680066006867660068FF6600 + 68FF660068FF660068EE660068346600680066006800660068006600686D6600 + 68FF660068FF660068CEFFFFFF00FFFFFF007010711C660068906600687C6600 + 6807660068006600680066006800660068006600682A660068E8660068FF6600 + 68F9660068346600680066006800660068006600680066006828660068F56600 + 68FF660068EE660068348C408E008C408E008C408E008C408E008C408E038C40 + 8E768C408E948C408E23FFFFFF00FFFFFF007010710066006800660068006600 + 68006600680066006800660068006600680066006800660068206600687B6600 + 683A660068006600680066006800660068006600680066006800660068326600 + 687C6600682666006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006803660068336600 + 680E6600680066006800660068006600680066006800660068006600680C6600 + 68346600680566006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00701071036600684C660068386600 + 6800660068006600680066006800660068006600680C660068C0660068FF6600 + 68ED6600682F6600680066006800660068006600680066006825660068E76600 + 68FF660068CA66006811BC90BD00BC90BD00BC90BD00BC90BD00BC90BD00BC90 + BD32BC90BD4FBC90BD06FFFFFF00FFFFFF007010719A660068FF660068FF6600 + 68596600680066006800660068006600680C660068C2660068FF660068FF6600 + 68FF6600688D660068006600680066006800660068006600687D660068FF6600 + 68FF660068FF660068CC660068116600680066006800660068006600684A6600 + 68FE660068FF660068AAFFFFFF00FFFFFF00701071E2660068FF660068FF6600 + 689F66006800660068006600680C660068C2660068FF660068FF660068FF6600 + 68FE6600684B660068006600680066006800660068006600683D660068FC6600 + 68FF660068FF660068FF660068CC6600681166006800660068006600688F6600 + 68FF660068FF660068F2FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A1660068006600680C660068C2660068FF660068FF660068FF660068FE7B24 + 7D67D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00833084596600 + 68FC660068FF660068FF660068FF660068CC6600681166006800660068916600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A16600680C660068C2660068FF660068FF660068FF660068FE660068678330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 6859660068FC660068FF660068FF660068FF660068CC66006811660068916600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68AD660068C2660068FF660068FF660068FF660068FE66006867660068008330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 680066006859660068FC660068FF660068FF660068FF660068CC660068A36600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FE6600686766006800660068008330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 68006600680066006859660068FC660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FE660068676600680066006800660068008330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 6800660068006600680066006859660068FC660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068BD660068606600686066006860660068428330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 683D660068606600686066006860660068B3660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330 + 846DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E5E6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071DE660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330 + 84ACFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E9C6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068EEFFFFFF00FFFFFF0070107157660068F5660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068F78330 + 8448FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E3C6600 + 68F3660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068F866006865FFFFFF00FFFFFF00E5D3E500E3D0E30FE3D0E325E3D0 + E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E30FE8D9 + E800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EADCEA00E3D0 + E30DE3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0 + E325E3D0E312E3D0E300FFFFFF00 } end object DiskMenu: TPopupMenu @@ -10078,7 +10359,7 @@ object GUIForm: TGUIForm end object MicroM8Process: TAsyncProcess Active = False - Executable = 'C:/Users/aag65/Projects/octalyzer/GoPath/src/paleotronic.com/octalyzer/microM8.exe' + Executable = '/home/april/Projects/octalyzer/GoPath/src/paleotronic.com/octalyzer/microM8' Parameters.Strings = ( '-control-port' '-disable-border' @@ -10115,4 +10396,42 @@ object GUIForm: TGUIForm left = 24 top = 216 end + object RecordingMenu: TPopupMenu + Images = ToolbarIcons + ImagesWidth = 32 + left = 96 + top = 216 + object miStartDiskRec: TMenuItem + Caption = 'Start Disk Recording' + ImageIndex = 10 + SubMenuImages = ToolbarIcons + OnClick = miRECStartFileClick + end + object miStartLiveRewindRecord: TMenuItem + Caption = 'Enable Live Rewind' + ImageIndex = 11 + SubMenuImages = ToolbarIcons + OnClick = miRECLiveRewindClick + end + end + object ProfileMenu: TPopupMenu + left = 168 + top = 216 + object miPMApple2eEnh: TMenuItem + Caption = 'Apple //e Enhanced' + OnClick = miPRFIIeEnhancedClick + end + object miPMApple2eEnhCPM: TMenuItem + Caption = 'Apple //e Enhanced (Softcard)' + OnClick = miPRFIIeEnhancedSoftcardClick + end + object miPMApple2e: TMenuItem + Caption = 'Apple //e' + OnClick = miPRFIIeClick + end + object miPMApple2plus: TMenuItem + Caption = 'Apple ][+' + OnClick = miPRFIIplusClick + end + end end diff --git a/lib/x86_64-win64/main.o b/lib/x86_64-win64/main.o index 1f34f9a..a8701e6 100644 Binary files a/lib/x86_64-win64/main.o and b/lib/x86_64-win64/main.o differ diff --git a/lib/x86_64-win64/main.ppu b/lib/x86_64-win64/main.ppu index 2bab31c..1a47b37 100644 Binary files a/lib/x86_64-win64/main.ppu and b/lib/x86_64-win64/main.ppu differ diff --git a/lib/x86_64-win64/poc.compiled b/lib/x86_64-win64/poc.compiled index 0bddb09..91c4dcc 100644 --- a/lib/x86_64-win64/poc.compiled +++ b/lib/x86_64-win64/poc.compiled @@ -1,5 +1,5 @@ - + diff --git a/lib/x86_64-win64/poc.o b/lib/x86_64-win64/poc.o index 7317f31..44c961f 100644 Binary files a/lib/x86_64-win64/poc.o and b/lib/x86_64-win64/poc.o differ diff --git a/lib/x86_64-win64/poc.obj b/lib/x86_64-win64/poc.obj index 2f47a98..a26df9d 100644 Binary files a/lib/x86_64-win64/poc.obj and b/lib/x86_64-win64/poc.obj differ diff --git a/main.lfm b/main.lfm index cdd6f1e..f0dddc3 100644 --- a/main.lfm +++ b/main.lfm @@ -1,13 +1,13 @@ object GUIForm: TGUIForm - Left = 2270 - Height = 574 - Top = 247 - Width = 945 + Left = 2260 + Height = 668 + Top = 311 + Width = 1014 AlphaBlendValue = 128 Caption = 'microM8 GUI' - ClientHeight = 549 - ClientWidth = 945 - Constraints.MinWidth = 945 + ClientHeight = 648 + ClientWidth = 1014 + Constraints.MinWidth = 1014 DoubleBuffered = False Menu = MainMenu1 OnChangeBounds = FormChangeBounds @@ -27,16 +27,16 @@ object GUIForm: TGUIForm LCLVersion = '2.0.0.4' object StatusBar1: TStatusBar Left = 0 - Height = 19 - Top = 530 - Width = 945 + Height = 23 + Top = 625 + Width = 1014 Panels = <> end object ToolBar1: TToolBar Left = 0 Height = 36 Top = 0 - Width = 945 + Width = 1014 ButtonHeight = 32 ButtonWidth = 32 Caption = 'ToolBar1' @@ -44,89 +44,123 @@ object GUIForm: TGUIForm TabOrder = 1 object tbTintMode: TToolButton Left = 1 + Hint = 'Tint mode' Top = 2 Caption = 'tbTintMode' ImageIndex = 0 OnClick = tbTintModeClick + ParentShowHint = False + ShowHint = True end object tbRMVoxels: TToolButton Tag = 1 Left = 549 + Hint = 'Voxel Render' Top = 2 Caption = 'Voxels' Down = True Grouped = True ImageIndex = 4 OnClick = tbRMClick + ParentShowHint = False + PopupMenu = RecordingMenu + ShowHint = True Style = tbsCheck end object tbRMDots: TToolButton Left = 585 + Hint = 'Dot Render' Top = 2 Caption = 'Dots' Grouped = True ImageIndex = 5 OnClick = tbRMClick + ParentShowHint = False + ShowHint = True Style = tbsCheck end object tbRMRaster: TToolButton Tag = 2 Left = 621 + Hint = 'Raster Render' Top = 2 Caption = 'Raster' Grouped = True ImageIndex = 6 OnClick = tbRMClick + ParentShowHint = False + ShowHint = True Style = tbsCheck end object tbRMColor: TToolButton Left = 657 + Hint = 'Toggle Color/Mono' Top = 2 Caption = 'tbRMColor' ImageIndex = 7 OnClick = tbRMColorClick + ParentShowHint = False + ShowHint = True end - object ToolButton4: TToolButton + object tbRECState: TToolButton Left = 725 + Hint = 'Start Recording' Top = 2 - Caption = 'ToolButton4' + Caption = 'tbRECState' + DropdownMenu = RecordingMenu ImageIndex = 9 - OnClick = miRECStartFileClick + ParentShowHint = False + ShowHint = True end object ToolButton5: TToolButton Left = 761 + Hint = 'Rewind' Top = 2 Caption = 'ToolButton5' ImageIndex = 12 OnClick = miRECRewindClick + ParentShowHint = False + ShowHint = True end object ToolButton6: TToolButton Left = 797 + Hint = 'Forwards' Top = 2 Caption = 'ToolButton6' ImageIndex = 13 OnClick = miRECPlayClick + ParentShowHint = False + ShowHint = True end object ToolButton7: TToolButton Left = 833 + Hint = 'Resume' Top = 2 Caption = 'ToolButton7' ImageIndex = 14 OnClick = miRECResumeClick + ParentShowHint = False + ShowHint = True end object ToolButton8: TToolButton Left = 869 + Hint = 'Stop Recording' Top = 2 Caption = 'ToolButton8' ImageIndex = 15 OnClick = miRECStopClick + ParentShowHint = False + ShowHint = True end object ToolButton9: TToolButton Left = 905 + Hint = 'Pause' Top = 2 Caption = 'ToolButton9' ImageIndex = 16 OnClick = ToolButton9Click + ParentShowHint = False + ShowHint = True end object ToolButton10: TToolButton Left = 693 @@ -136,31 +170,43 @@ object GUIForm: TGUIForm end object tbJoystickAxisSwitch: TToolButton Left = 37 + Hint = 'Swap Joystick Axis' Top = 2 Caption = 'tbJoystickAxisSwitch' ImageIndex = 21 OnClick = tbJoystickAxisSwitchClick + ParentShowHint = False + ShowHint = True end object tbCapsMode: TToolButton Left = 73 + Hint = 'Toggle CAPS mode' Top = 2 Caption = 'tbCapsMode' ImageIndex = 17 OnClick = tbCapsModeClick + ParentShowHint = False + ShowHint = True end object tbScanlines: TToolButton Left = 109 + Hint = 'Toggle Interlacing' Top = 2 Caption = 'tbScanlines' ImageIndex = 19 OnClick = tbScanlinesClick + ParentShowHint = False + ShowHint = True end object tbWebDebugger: TToolButton Left = 145 + Hint = 'Web Debugger' Top = 2 Caption = 'tbWebDebugger' ImageIndex = 28 OnClick = miToolsWebDebuggerClick + ParentShowHint = False + ShowHint = True end object ToolButton15: TToolButton Left = 181 @@ -170,19 +216,23 @@ object GUIForm: TGUIForm end object tbVolDown: TToolButton Left = 213 + Hint = 'Volume Down' Top = 2 Caption = 'tbVolDown' ImageIndex = 23 OnClick = tbVolDownClick + ParentShowHint = False + ShowHint = True end object tbMasterVolume: TTrackBar Left = 249 - Height = 38 + Height = 32 Top = 2 Width = 64 OnChange = tbMasterVolumeChange Position = 0 ScalePos = trBottom + TabStop = False TickMarks = tmBoth TickStyle = tsManual OnKeyDown = FormKeyDown @@ -191,10 +241,13 @@ object GUIForm: TGUIForm end object tbVolUp: TToolButton Left = 313 + Hint = 'Volume Up' Top = 2 Caption = 'tbVolUp' ImageIndex = 24 OnClick = tbVolUpClick + ParentShowHint = False + ShowHint = True end object ToolButton3: TToolButton Left = 349 @@ -204,20 +257,24 @@ object GUIForm: TGUIForm end object tbSpeedDown: TToolButton Left = 381 + Hint = 'CPU Speed Down' Top = 2 Caption = 'tbSpeedDown' ImageIndex = 25 OnClick = tbSpeedDownClick + ParentShowHint = False + ShowHint = True end object TrackBar2: TTrackBar Left = 417 - Height = 38 + Height = 32 Top = 2 Width = 64 Max = 4 OnChange = TrackBar2Change Position = 0 ScalePos = trBottom + TabStop = False TickMarks = tmBoth TickStyle = tsManual OnKeyDown = FormKeyDown @@ -226,10 +283,13 @@ object GUIForm: TGUIForm end object tbSpeedUp: TToolButton Left = 481 + Hint = 'CPU Speed Up' Top = 2 Caption = 'tbSpeedUp' ImageIndex = 26 OnClick = tbSpeedUpClick + ParentShowHint = False + ShowHint = True end object ToolButton18: TToolButton Left = 517 @@ -237,35 +297,51 @@ object GUIForm: TGUIForm Caption = 'ToolButton18' Enabled = False end + object ToolButton1: TToolButton + Left = 941 + Top = 2 + Caption = 'ToolButton1' + Enabled = False + end + object tbFullscreen: TToolButton + Left = 973 + Hint = 'Fullscreen' + Top = 2 + Caption = 'tbFullscreen' + ImageIndex = 29 + OnClick = tbFullscreenClick + ParentShowHint = False + ShowHint = True + end end object pnlContainer: TPanel Left = 0 - Height = 494 + Height = 589 Top = 36 - Width = 945 + Width = 1014 Align = alClient BevelOuter = bvNone - ClientHeight = 494 - ClientWidth = 945 + ClientHeight = 589 + ClientWidth = 1014 Color = clAqua ParentColor = False TabOrder = 2 object sidecarPanel: TPanel - Left = 775 - Height = 494 + Left = 844 + Height = 589 Top = 0 Width = 170 Align = alRight BevelOuter = bvNone Caption = 'sidecarPanel' - ClientHeight = 494 + ClientHeight = 589 ClientWidth = 170 Color = clBlack ParentColor = False TabOrder = 0 object Image1: TImage Left = 0 - Height = 494 + Height = 589 Top = 0 Width = 170 Align = alClient @@ -5358,13 +5434,13 @@ object GUIForm: TGUIForm end object embedPanel: TPanel Left = 0 - Height = 494 + Height = 589 Top = 0 - Width = 775 + Width = 844 Align = alClient BevelOuter = bvNone - ClientHeight = 494 - ClientWidth = 775 + ClientHeight = 589 + ClientWidth = 844 Color = clBlack Font.Color = clWhite ParentColor = False @@ -5372,9 +5448,9 @@ object GUIForm: TGUIForm TabOrder = 1 object backdrop: TImage Left = 0 - Height = 494 + Height = 589 Top = 0 - Width = 775 + Width = 844 Align = alClient OnClick = backdropClick Stretch = True @@ -5856,6 +5932,14 @@ object GUIForm: TGUIForm ShortCut = 32781 OnClick = MenuItem14Click end + object N10: TMenuItem + Caption = '-' + end + object miVideoScreenshot: TMenuItem + Caption = 'Take Screenshot' + ShortCut = 24796 + OnClick = miVideoScreenshotClick + end end object Input: TMenuItem Caption = 'Input' @@ -6283,10 +6367,12 @@ object GUIForm: TGUIForm end object miRECRewind: TMenuItem Caption = 'Rewind' + ShortCut = 24795 OnClick = miRECRewindClick end object miRECPlay: TMenuItem Caption = 'Play' + ShortCut = 24797 OnClick = miRECPlayClick end object miRECResume: TMenuItem @@ -6322,15 +6408,25 @@ object GUIForm: TGUIForm end object miTools: TMenuItem Caption = 'Tools' + OnClick = miToolsClick object miToolsTracker: TMenuItem Caption = 'microTracker' OnClick = miToolsTrackerClick end object miToolsWebDebugger: TMenuItem Caption = 'Web Debugger' + ShortCut = 24642 OnClick = miToolsWebDebuggerClick end end + object miHelp: TMenuItem + Caption = 'Help' + object miMMHelp: TMenuItem + Caption = 'microM8 Help' + ShortCut = 24648 + OnClick = miMMHelpClick + end + end end object ToolbarIcons: TImageList Height = 32 @@ -6339,7 +6435,7 @@ object GUIForm: TGUIForm left = 96 top = 48 Bitmap = { - 4C691D0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D + 4C691E0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D B100B16DB100B16DB100B16DB100B16DB100B16DB100B16DB100AD72BB0E8C68 D54C6E5CEA805A52F69F5353FFB15353FFB15A52F69F6E5CEA808C68D54CAD72 BB0EB16DB100B16DB100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF @@ -10051,7 +10147,135 @@ object GUIForm: TGUIForm ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED002D99B33C28C6 ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6 ED002B9EBB3528C6ED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00 + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0070107137660068DD660068F76600 + 68F7660068F7660068F7660068F7660068F7660068F7660068F7660068D06600 + 68226600680066006800660068006600680066006800660068006600681A6600 + 68C9660068F7660068F7660068F7660068F7660068F7660068F7660068F76600 + 68F7660068E266006842FFFFFF00FFFFFF00701071CD660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 6891660068006600680066006800660068006600680066006800660068816600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068DDFFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 6871660068006600680066006800660068006600680066006800660068616600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068BD6600688E6600688E6600688E660068686600 + 6802660068006600680066006800660068006600680066006800660068016600 + 68616600688E6600688E6600688E660068B6660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068EF660068346600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 680066006800660068006600682A660068E8660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068EE6600683466006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600682A660068E8660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68C6660068E8660068FF660068FF660068FF660068EE66006834660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600682A660068E8660068FF660068FF660068FF660068EE660068BF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A26600682A660068E8660068FF660068FF660068FF660068EE660068346600 + 6800660068006600680066006800660068006600680066006800660068006600 + 682A660068E8660068FF660068FF660068FF660068EE66006834660068926600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A1660068006600682A660068E8660068FF660068FF660068FF660068EE6600 + 68346600680066006800660068006600680066006800660068006600682A6600 + 68E8660068FF660068FF660068FF660068EE6600683466006800660068916600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A266006800660068006600682A660068E8660068FF660068FF660068FF6600 + 68EE66006825660068006600680066006800660068006600681C660068E86600 + 68FF660068FF660068FF660068EE660068346600680066006800660068926600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071BE660068FF660068FF6600 + 687D6600680066006800660068006600682A660068E8660068FF660068FF6600 + 68FF660068776600680066006800660068006600680066006867660068FF6600 + 68FF660068FF660068EE660068346600680066006800660068006600686D6600 + 68FF660068FF660068CEFFFFFF00FFFFFF007010711C660068906600687C6600 + 6807660068006600680066006800660068006600682A660068E8660068FF6600 + 68F9660068346600680066006800660068006600680066006828660068F56600 + 68FF660068EE660068348C408E008C408E008C408E008C408E008C408E038C40 + 8E768C408E948C408E23FFFFFF00FFFFFF007010710066006800660068006600 + 68006600680066006800660068006600680066006800660068206600687B6600 + 683A660068006600680066006800660068006600680066006800660068326600 + 687C6600682666006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 6800660068006600680066006800660068006600680066006800660068006600 + 68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600 + 6800660068006600680066006800660068006600680066006803660068336600 + 680E6600680066006800660068006600680066006800660068006600680C6600 + 68346600680566006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00701071036600684C660068386600 + 6800660068006600680066006800660068006600680C660068C0660068FF6600 + 68ED6600682F6600680066006800660068006600680066006825660068E76600 + 68FF660068CA66006811BC90BD00BC90BD00BC90BD00BC90BD00BC90BD00BC90 + BD32BC90BD4FBC90BD06FFFFFF00FFFFFF007010719A660068FF660068FF6600 + 68596600680066006800660068006600680C660068C2660068FF660068FF6600 + 68FF6600688D660068006600680066006800660068006600687D660068FF6600 + 68FF660068FF660068CC660068116600680066006800660068006600684A6600 + 68FE660068FF660068AAFFFFFF00FFFFFF00701071E2660068FF660068FF6600 + 689F66006800660068006600680C660068C2660068FF660068FF660068FF6600 + 68FE6600684B660068006600680066006800660068006600683D660068FC6600 + 68FF660068FF660068FF660068CC6600681166006800660068006600688F6600 + 68FF660068FF660068F2FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A1660068006600680C660068C2660068FF660068FF660068FF660068FE7B24 + 7D67D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00833084596600 + 68FC660068FF660068FF660068FF660068CC6600681166006800660068916600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68A16600680C660068C2660068FF660068FF660068FF660068FE660068678330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 6859660068FC660068FF660068FF660068FF660068CC66006811660068916600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68AD660068C2660068FF660068FF660068FF660068FE66006867660068008330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 680066006859660068FC660068FF660068FF660068FF660068CC660068A36600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FE6600686766006800660068008330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 68006600680066006859660068FC660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FE660068676600680066006800660068008330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 6800660068006600680066006859660068FC660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068BD660068606600686066006860660068428330 + 8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600 + 683D660068606600686066006860660068B3660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330 + 846DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E5E6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068F4FFFFFF00FFFFFF00701071DE660068FF660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330 + 84ACFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E9C6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068FF660068EEFFFFFF00FFFFFF0070107157660068F5660068FF6600 + 68FF660068FF660068FF660068FF660068FF660068FF660068FF660068F78330 + 8448FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E3C6600 + 68F3660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600 + 68FF660068F866006865FFFFFF00FFFFFF00E5D3E500E3D0E30FE3D0E325E3D0 + E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E30FE8D9 + E800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EADCEA00E3D0 + E30DE3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0 + E325E3D0E312E3D0E300FFFFFF00 } end object DiskMenu: TPopupMenu @@ -10172,4 +10396,42 @@ object GUIForm: TGUIForm left = 24 top = 216 end + object RecordingMenu: TPopupMenu + Images = ToolbarIcons + ImagesWidth = 32 + left = 96 + top = 216 + object miStartDiskRec: TMenuItem + Caption = 'Start Disk Recording' + ImageIndex = 10 + SubMenuImages = ToolbarIcons + OnClick = miRECStartFileClick + end + object miStartLiveRewindRecord: TMenuItem + Caption = 'Enable Live Rewind' + ImageIndex = 11 + SubMenuImages = ToolbarIcons + OnClick = miRECLiveRewindClick + end + end + object ProfileMenu: TPopupMenu + left = 168 + top = 216 + object miPMApple2eEnh: TMenuItem + Caption = 'Apple //e Enhanced' + OnClick = miPRFIIeEnhancedClick + end + object miPMApple2eEnhCPM: TMenuItem + Caption = 'Apple //e Enhanced (Softcard)' + OnClick = miPRFIIeEnhancedSoftcardClick + end + object miPMApple2e: TMenuItem + Caption = 'Apple //e' + OnClick = miPRFIIeClick + end + object miPMApple2plus: TMenuItem + Caption = 'Apple ][+' + OnClick = miPRFIIplusClick + end + end end diff --git a/main.pas b/main.pas index d2e420f..4975bca 100644 --- a/main.pas +++ b/main.pas @@ -24,6 +24,16 @@ type MenuItem14: TMenuItem; MenuItem17: TMenuItem; MenuItem18: TMenuItem; + miVideoScreenshot: TMenuItem; + N10: TMenuItem; + miPMApple2plus: TMenuItem; + miPMApple2e: TMenuItem; + miPMApple2eEnhCPM: TMenuItem; + miPMApple2eEnh: TMenuItem; + miStartLiveRewindRecord: TMenuItem; + miStartDiskRec: TMenuItem; + miMMHelp: TMenuItem; + miHelp: TMenuItem; miVM8: TMenuItem; miVM7: TMenuItem; miVM6: TMenuItem; @@ -66,6 +76,8 @@ type Image1: TImage; odFreezeFiles: TOpenDialog; pnlContainer: TPanel; + ProfileMenu: TPopupMenu; + RecordingMenu: TPopupMenu; sdFreezeFiles: TSaveDialog; SideImages: TImageList; miWarp400: TMenuItem; @@ -174,6 +186,7 @@ type sidecarPanel: TPanel; FSTimer: TTimer; tbVolDown: TToolButton; + ToolButton1: TToolButton; ToolButton10: TToolButton; tbJoystickAxisSwitch: TToolButton; tbCapsMode: TToolButton; @@ -184,8 +197,9 @@ type tbSpeedUp: TToolButton; ToolButton18: TToolButton; tbVolUp: TToolButton; + tbFullscreen: TToolButton; ToolButton3: TToolButton; - ToolButton4: TToolButton; + tbRECState: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; @@ -368,6 +382,7 @@ type procedure miJSAxisSwapClick(Sender: TObject); procedure miJSXRevClick(Sender: TObject); procedure miJSYRevClick(Sender: TObject); + procedure miMMHelpClick(Sender: TObject); procedure miMonoDotsClick(Sender: TObject); procedure miMonoRasterClick(Sender: TObject); procedure miMonoVoxelsClick(Sender: TObject); @@ -409,17 +424,20 @@ type procedure miSVOL000Click(Sender: TObject); procedure miTintModeClick(Sender: TObject); procedure miTMNoneClick(Sender: TObject); + procedure miToolsClick(Sender: TObject); procedure miToolsTrackerClick(Sender: TObject); procedure miToolsWebDebuggerClick(Sender: TObject); procedure miVCRClick(Sender: TObject); procedure miVD1Click(Sender: TObject); procedure miVDClick(Sender: TObject); + procedure miVideoScreenshotClick(Sender: TObject); procedure miVM1Click(Sender: TObject); procedure miVMClick(Sender: TObject); procedure miWarp25Click(Sender: TObject); procedure MouseTimerTimer(Sender: TObject); procedure sidecarPanelResize(Sender: TObject); procedure tbCapsModeClick(Sender: TObject); + procedure tbFullscreenClick(Sender: TObject); procedure tbJoystickAxisSwitchClick(Sender: TObject); procedure tbRMClick(Sender: TObject); procedure tbRMColorClick(Sender: TObject); @@ -467,6 +485,7 @@ type procedure UpdateWarpSlider; procedure UpdateAllCaps; procedure UpdateScanlines; + procedure UpdateRecordState; function IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean; function IsMouseBtnDown: Boolean; private @@ -564,7 +583,7 @@ begin RepaintWindow; if GetTitleOfActiveWindow <> 'microM8' then HideM8; - StatusBar1.SimpleText := GetTitleOfActiveWindow; + //StatusBar1.SimpleText := GetTitleOfActiveWindow; //Memo1.Lines.Add('app is deactivating'); end; @@ -609,7 +628,7 @@ begin if (y >= 0) and (y < sideCarPanel.Height) then begin bi := y div Round(sideCarPanel.Height / 5); - StatusBar1.SimpleText := IntToStr(bi); + //StatusBar1.SimpleText := IntToStr(bi); Image1.PopupMenu := nil; case bi of 0: begin @@ -670,7 +689,16 @@ begin end; 4: begin - SimpleGet(baseUrl + '/api/control/system/reboot'); + + if Button = mbRight then + begin + ProfileMenu.PopUp(Mouse.CursorPos.X, Mouse.CursorPos.Y); + end + else + begin + SimpleGet(baseUrl + '/api/control/system/reboot'); + end; + end; end; @@ -800,7 +828,7 @@ var begin // DHGR Enhanced menu value := GetConfig('video/init.video.dhgrhighbit'); - StatusBar1.SimpleText := value; + //.SimpleText := value; if value <> '' then begin case value of @@ -906,7 +934,7 @@ var begin // GR Render Mode menu value := GetConfig('video/init.video.grmode'); - StatusBar1.SimpleText := value; + // StatusBar1.SimpleText := value; if value <> '' then begin case value of @@ -978,7 +1006,7 @@ begin MM_MOUSE_OFF = 4 } value := GetConfig('input/init.mouse'); - StatusBar1.SimpleText := value; + //StatusBar1.SimpleText := value; if value <> '' then begin case value of @@ -1045,6 +1073,11 @@ begin UpdateConfig( 'input/init.joystick.reversey', '1', true ); end; +procedure TGUIForm.miMMHelpClick(Sender: TObject); +begin + SimpleGet(baseUrl + '/api/control/system/help'); +end; + procedure TGUIForm.miMonoDotsClick(Sender: TObject); begin UpdateConfig( 'video/init.video.hgrmode', '3', true ); @@ -1119,7 +1152,7 @@ end; procedure TGUIForm.miPRFIIplusClick(Sender: TObject); begin - SimpleGet( baseUrl+'/api/control/system/profile/set/apple2plus' ); + SimpleGet( baseUrl+'/api/control/system/profile/set/apple2-plus' ); end; procedure TGUIForm.miPrinterPDFClick(Sender: TObject); @@ -1246,7 +1279,7 @@ var begin // SHR Render Mode menu value := GetConfig('video/init.video.scanline'); - StatusBar1.SimpleText := value; + //StatusBar1.SimpleText := value; if value <> '' then begin case value of @@ -1296,7 +1329,7 @@ var begin // SHR Render Mode menu value := GetConfig('video/init.video.shrmode'); - StatusBar1.SimpleText := value; + //StatusBar1.SimpleText := value; if value <> '' then begin case value of @@ -1468,6 +1501,11 @@ begin UpdateTintMode; end; +procedure TGUIForm.miToolsClick(Sender: TObject); +begin + +end; + procedure TGUIForm.miToolsTrackerClick(Sender: TObject); begin LaunchCommand( 'fp', '/local', '@music.edit{}' ); @@ -1510,6 +1548,11 @@ begin end; end; +procedure TGUIForm.miVideoScreenshotClick(Sender: TObject); +begin + SendKey( $e092, $e092, 1, 0 ); +end; + procedure TGUIForm.miVM1Click(Sender: TObject); begin SimpleGet(baseUrl+'/api/control/vm/'+TMenuItem(sender).Caption); @@ -1571,6 +1614,12 @@ begin UpdateAllCaps; end; +procedure TGUIForm.tbFullscreenClick(Sender: TObject); +begin + UpdateConfig('video/current.fullscreen', '1', false); + isFS := true; +end; + procedure TGUIForm.UpdateAllCaps; begin case GetConfig( 'input/init.uppercase' ) of @@ -1731,6 +1780,24 @@ begin SimpleGet(baseUrl+'/api/control/pause'); end; +procedure TGUIForm.UpdateRecordState; +begin + case SimpleGet(baseUrl+'/api/control/recorder' ) of + '0': begin + tbRECState.ImageIndex := 9; + tbRECState.Caption := 'Start Recording'; + end; + '1': begin + tbRECState.ImageIndex := 11; + tbRECState.Caption := 'Live Rewind Active'; + end; + '2': begin + tbRECState.ImageIndex := 10; + tbRECState.Caption := 'Disk Recording Active'; + end; + end; +end; + procedure TGUIForm.ToolTimerTimer(Sender: TObject); begin UpdateRenderMode; @@ -1741,6 +1808,7 @@ begin UpdateWarpSlider; UpdateAllCaps; UpdateScanlines; + UpdateRecordState; end; procedure TGUIForm.tbMasterVolumeChange(Sender: TObject); @@ -1839,7 +1907,7 @@ begin if S.Size > 0 then begin filename := GetUserDir + PathSeparator + 'microm8scrn.png'; - StatusBar1.SimpleText:='Got '+IntToStr(S.Size)+' bytes of PNG data'; + //StatusBar1.SimpleText:='Got '+IntToStr(S.Size)+' bytes of PNG data'; S.SaveToFile(filename); backdrop.Picture.LoadFromFile(filename); S.Free; @@ -1880,7 +1948,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/window/position',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -1894,7 +1962,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -1910,7 +1978,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -1924,7 +1992,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -1939,7 +2007,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/input/mouseevent',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -1994,7 +2062,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/input/keyevent',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=S; + //self.StatusBar1.SimpleText:=S; Respo.Destroy; end; @@ -2013,7 +2081,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/hardware/disk/insert',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=json; + //self.StatusBar1.SimpleText:=json; Respo.Destroy; end; @@ -2033,7 +2101,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=json; + //self.StatusBar1.SimpleText:=json; Respo.Destroy; end; @@ -2048,7 +2116,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo); Result := Respo.DataString; - self.StatusBar1.SimpleText:=json; + //self.StatusBar1.SimpleText:=json; Respo.Destroy; end; @@ -2069,7 +2137,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/system/freeze/save',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=json; + //self.StatusBar1.SimpleText:=json; Respo.Destroy; end; @@ -2087,7 +2155,7 @@ begin Respo := TStringStream.Create(''); SimpleFormPost(baseUrl + '/api/control/system/freeze/restore',json,Respo); S := Respo.DataString; - self.StatusBar1.SimpleText:=json; + //self.StatusBar1.SimpleText:=json; Respo.Destroy; end; @@ -2095,14 +2163,14 @@ procedure TGUIForm.tbDisk1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin DiskMenu.Tag := TToolButton(Sender).Tag; - StatusBar1.SimpleText := 'Disk 1'; + //StatusBar1.SimpleText := 'Disk 1'; end; procedure TGUIForm.tbDisk2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin DiskMenu.Tag := TToolButton(Sender).Tag; - StatusBar1.SimpleText := 'Disk 2'; + //StatusBar1.SimpleText := 'Disk 2'; end; procedure TGUIForm.ToolButton5Click(Sender: TObject); @@ -2185,8 +2253,10 @@ begin if GetTitleOfActiveWindow = 'microM8' then begin + {$IFNDEF WINDOWS} if IsMouseBtnDown then exit; + {$ENDIF} //Application.Restore; Application.BringToFront; @@ -2209,10 +2279,22 @@ begin inPopup := true; end; +{$IFDEF WINDOWS} +const + EXENAME: string = 'microm8.exe'; +{$ELSE} +const + EXENAME: string = 'microm8'; +{$ENDIF} + + procedure TGUIForm.FormCreate(Sender: TObject); begin self.httpc := TFPHttpClient.Create(Nil); + //ShowMessage( ExtractFilePath(Application.ExeName) + EXENAME ); + MicroM8Process.Executable := ExtractFilePath(Application.ExeName) + EXENAME; + //if SimpleGet( baseUrl+'/api/control/health' ) <> 'ok' then //begin MicroM8Process.Active := true; @@ -2324,7 +2406,9 @@ begin end; VK_A..VK_Z: begin - if ssShift in Shift then + if (ssCtrl in Shift) and (ssShift in Shift) then + Result := Integer(Key) + else if ssShift in Shift then Result := Integer(Key) else if ssCtrl in Shift then begin @@ -2369,7 +2453,7 @@ end; procedure TGUIForm.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin SendKey( MapKeyCode(Key, Shift), 0, 0, MapShiftState(Key, Shift) ); - StatusBar1.SimpleText := 'keycode ' + IntToStr(Key); + //StatusBar1.SimpleText := 'keycode ' + IntToStr(Key); end; procedure TGUIForm.FormResize(Sender: TObject); @@ -2439,7 +2523,7 @@ var begin // HGR Render Mode menu value := GetConfig('video/init.video.hgrmode'); - StatusBar1.SimpleText := value; + //StatusBar1.SimpleText := value; if value <> '' then begin case value of @@ -2459,7 +2543,7 @@ var begin // DHGR Render Mode menu value := GetConfig('video/init.video.dhgrmode'); - StatusBar1.SimpleText := value; + //StatusBar1.SimpleText := value; if value <> '' then begin case value of diff --git a/poc.lps b/poc.lps index a647d7d..784474c 100644 --- a/poc.lps +++ b/poc.lps @@ -4,7 +4,7 @@ - + @@ -21,8 +21,8 @@ - - + + @@ -43,129 +43,137 @@ - + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +