mirror of
https://github.com/paleotronic/microm8-gui.git
synced 2025-02-18 07:31:07 +00:00
sidecar drag and drop
This commit is contained in:
parent
581d3bb7f5
commit
a54d35f784
@ -1,11 +1,12 @@
|
||||
object GUIForm: TGUIForm
|
||||
Left = 275
|
||||
Height = 683
|
||||
Top = 109
|
||||
Left = 290
|
||||
Height = 650
|
||||
Top = 130
|
||||
Width = 1078
|
||||
AllowDropFiles = True
|
||||
AlphaBlendValue = 128
|
||||
Caption = 'microM8 GUI'
|
||||
ClientHeight = 663
|
||||
ClientHeight = 630
|
||||
ClientWidth = 1078
|
||||
Constraints.MinWidth = 1078
|
||||
DoubleBuffered = False
|
||||
@ -15,6 +16,7 @@ object GUIForm: TGUIForm
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
OnDeactivate = FormDeactivate
|
||||
OnDropFiles = FormDropFiles
|
||||
OnHide = FormHide
|
||||
OnKeyDown = FormKeyDown
|
||||
OnKeyPress = FormKeyPress
|
||||
@ -30,7 +32,7 @@ object GUIForm: TGUIForm
|
||||
object StatusBar1: TStatusBar
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 640
|
||||
Top = 607
|
||||
Width = 1078
|
||||
Panels = <>
|
||||
end
|
||||
@ -327,38 +329,39 @@ object GUIForm: TGUIForm
|
||||
end
|
||||
object pnlContainer: TPanel
|
||||
Left = 0
|
||||
Height = 604
|
||||
Height = 571
|
||||
Top = 36
|
||||
Width = 1078
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 604
|
||||
ClientHeight = 571
|
||||
ClientWidth = 1078
|
||||
ParentColor = False
|
||||
TabOrder = 2
|
||||
object sidecarPanel: TPanel
|
||||
Left = 908
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 170
|
||||
Align = alRight
|
||||
BevelOuter = bvNone
|
||||
Caption = 'sidecarPanel'
|
||||
ClientHeight = 567
|
||||
ClientHeight = 534
|
||||
ClientWidth = 170
|
||||
Color = clBlack
|
||||
ParentColor = False
|
||||
TabOrder = 0
|
||||
object Image1: TImage
|
||||
Left = 0
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 170
|
||||
Align = alClient
|
||||
OnClick = Image1Click
|
||||
OnDblClick = Image1DblClick
|
||||
OnDragDrop = Image1DragDrop
|
||||
OnMouseDown = Image1MouseDown
|
||||
OnMouseLeave = Image1MouseLeave
|
||||
OnMouseMove = Image1MouseMove
|
||||
OnMouseUp = Image1MouseUp
|
||||
Picture.Data = {
|
||||
1754506F727461626C654E6574776F726B477261706869636B7A020089504E47
|
||||
@ -5444,12 +5447,12 @@ object GUIForm: TGUIForm
|
||||
end
|
||||
object embedPanel: TPanel
|
||||
Left = 0
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 908
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 567
|
||||
ClientHeight = 534
|
||||
ClientWidth = 908
|
||||
Color = clBlack
|
||||
Font.Color = clWhite
|
||||
@ -5461,7 +5464,7 @@ object GUIForm: TGUIForm
|
||||
OnMouseUp = FormMouseUp
|
||||
object backdrop: TImage
|
||||
Left = 0
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 908
|
||||
Align = alClient
|
||||
@ -5474,7 +5477,7 @@ object GUIForm: TGUIForm
|
||||
object pnlMemory: TPanel
|
||||
Left = 0
|
||||
Height = 37
|
||||
Top = 567
|
||||
Top = 534
|
||||
Width = 1078
|
||||
Align = alBottom
|
||||
ClientHeight = 37
|
||||
|
@ -345,6 +345,7 @@ type
|
||||
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDeactivate(Sender: TObject);
|
||||
procedure FormDropFiles(Sender: TObject; const FileNames: array of String);
|
||||
procedure FormHide(Sender: TObject);
|
||||
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
procedure FormKeyPress(Sender: TObject; var Key: char);
|
||||
@ -363,6 +364,9 @@ type
|
||||
procedure Image1DragDrop(Sender, Source: TObject; X, Y: Integer);
|
||||
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
procedure Image1MouseLeave(Sender: TObject);
|
||||
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer
|
||||
);
|
||||
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
procedure InputClick(Sender: TObject);
|
||||
@ -588,6 +592,7 @@ type
|
||||
VolDrag, WarpDrag: boolean;
|
||||
Caps: boolean;
|
||||
NeedsRestart, Quitting: boolean;
|
||||
sbx, sby, sbButton: longint;
|
||||
public
|
||||
procedure AppActivate(Sender: TObject);
|
||||
procedure AppDeactivate(Sender: TObject);
|
||||
@ -737,6 +742,19 @@ begin
|
||||
// nothing much
|
||||
end;
|
||||
|
||||
procedure TGUIForm.Image1MouseLeave(Sender: TObject);
|
||||
begin
|
||||
sbx := -1;
|
||||
sby := -1;
|
||||
end;
|
||||
|
||||
procedure TGUIForm.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||||
Y: Integer);
|
||||
begin
|
||||
sbx := x;
|
||||
sby := y;
|
||||
end;
|
||||
|
||||
procedure TGUIForm.Image1MouseUp(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
var
|
||||
@ -1894,6 +1912,22 @@ begin
|
||||
//StatusBar1.SimpleText := StatusBar1.SimpleText + ' (in window)';
|
||||
SendMouseState( x - longint(p.X), y - longint(p.Y) );
|
||||
end;
|
||||
|
||||
{ Now see if we are over the sidecar }
|
||||
p := sidecarPanel.ClientToScreen(q);
|
||||
if (x >= longint(p.X)) and (x < longint(p.X)+longint(sidecarPanel.Width)) and
|
||||
(y >= longint(p.Y)) and (y < longint(p.Y)+longint(sidecarPanel.Height)) then
|
||||
begin
|
||||
sbx := x - p.X;
|
||||
sby := y - p.Y;
|
||||
sbButton := sby div Round(sidecarPanel.Height/5);
|
||||
end
|
||||
else
|
||||
begin
|
||||
sbx := -1;
|
||||
sby := -1;
|
||||
sbButton := -1;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2835,6 +2869,37 @@ begin
|
||||
lastFocusLostTime:=Now();
|
||||
end;
|
||||
|
||||
procedure TGUIForm.FormDropFiles(Sender: TObject;
|
||||
const FileNames: array of String);
|
||||
var
|
||||
filename, ext: string;
|
||||
begin
|
||||
//StatusBar1.SimpleText := IntToStr(sbButton) + ':' + FileNames[0];
|
||||
filename := FileNames[0];
|
||||
ext := ExtractFileExt(filename);
|
||||
case sbButton of
|
||||
0, 1: begin
|
||||
case ext of
|
||||
'.dsk', '.do', '.po', '.woz', '.nib': begin
|
||||
// insert disk here
|
||||
InsertDisk( 'local:'+filename, sbButton );
|
||||
ShowM8;
|
||||
SendOSDMessage('Disk Insert to Drive '+IntToStr(sbButton+1));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
3: begin
|
||||
case ext of
|
||||
'.po', '.2mg', '.hdv': begin
|
||||
// insert smartport here
|
||||
InsertDisk( 'local:'+filename, 2 );
|
||||
ShowM8;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TGUIForm.FormHide(Sender: TObject);
|
||||
begin
|
||||
RepaintWindow;
|
||||
@ -3174,13 +3239,13 @@ end;
|
||||
procedure TGUIForm.FSTimerTimer(Sender: TObject);
|
||||
begin
|
||||
isFS := (GetConfig( 'video/current.fullscreen' ) = '1');
|
||||
if not hidden then
|
||||
begin
|
||||
Caption := 'microM8 GUI';
|
||||
SimpleGet(baseUrl+'/api/control/system/heartbeat');
|
||||
end
|
||||
else
|
||||
Caption := 'microM8 GUI (hide)';
|
||||
//if not hidden then
|
||||
//begin
|
||||
// Caption := 'microM8 GUI';
|
||||
// SimpleGet(baseUrl+'/api/control/system/heartbeat');
|
||||
//end
|
||||
//else
|
||||
// Caption := 'microM8 GUI (hide)';
|
||||
end;
|
||||
|
||||
procedure TGUIForm.InputClick(Sender: TObject);
|
||||
|
@ -21,8 +21,8 @@
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<IsVisibleTab Value="True"/>
|
||||
<TopLine Value="3070"/>
|
||||
<CursorPos X="54" Y="3090"/>
|
||||
<TopLine Value="1923"/>
|
||||
<CursorPos X="61" Y="1927"/>
|
||||
<UsageCount Value="323"/>
|
||||
<Loaded Value="True"/>
|
||||
<LoadedDesigner Value="True"/>
|
||||
@ -43,7 +43,7 @@
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="576"/>
|
||||
<CursorPos X="49" Y="591"/>
|
||||
<UsageCount Value="100"/>
|
||||
<UsageCount Value="99"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="C:\lazarus\components\lazutils\utf8process.pp"/>
|
||||
@ -51,7 +51,7 @@
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="636"/>
|
||||
<CursorPos Y="654"/>
|
||||
<UsageCount Value="5"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="images\memory.pas"/>
|
||||
@ -61,129 +61,129 @@
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="40"/>
|
||||
<CursorPos X="17" Y="44"/>
|
||||
<UsageCount Value="14"/>
|
||||
<UsageCount Value="13"/>
|
||||
</Unit5>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="3151" Column="3" TopLine="3134"/>
|
||||
<Caret Line="978" Column="38" TopLine="961"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="999" Column="10" TopLine="997"/>
|
||||
<Caret Line="2868" Column="26" TopLine="2848"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1110" Column="45" TopLine="1103"/>
|
||||
<Caret Line="593" Column="38" TopLine="572"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1109" Column="20" TopLine="1098"/>
|
||||
<Caret Line="2987" Column="48" TopLine="2978"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="396" Column="15" TopLine="385"/>
|
||||
<Caret Line="582" Column="20" TopLine="572"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1109" Column="20" TopLine="1104"/>
|
||||
<Caret Line="2809" Column="66" TopLine="2788"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="396" Column="29" TopLine="385"/>
|
||||
<Caret Line="2998" Column="6" TopLine="2978"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="978" Column="38" TopLine="961"/>
|
||||
<Caret Line="3039" Column="26" TopLine="3026"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2868" Column="26" TopLine="2848"/>
|
||||
<Caret Line="3035" Column="34" TopLine="3024"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="593" Column="38" TopLine="572"/>
|
||||
<Caret Line="335" Column="59" TopLine="318"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2987" Column="48" TopLine="2978"/>
|
||||
<Caret Line="3046" Column="36" TopLine="3032"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="582" Column="20" TopLine="572"/>
|
||||
<Caret Line="2882" Column="27" TopLine="2867"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2809" Column="66" TopLine="2788"/>
|
||||
<Caret Line="2888" Column="23" TopLine="2877"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2998" Column="6" TopLine="2978"/>
|
||||
<Caret Line="706" Column="34" TopLine="732"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="3039" Column="26" TopLine="3026"/>
|
||||
<Caret Line="2752" Column="28" TopLine="2729"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="3035" Column="34" TopLine="3024"/>
|
||||
<Caret Line="1788" Column="61" TopLine="1785"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="335" Column="59" TopLine="318"/>
|
||||
<Caret Line="2341" Column="6" TopLine="2313"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="3046" Column="36" TopLine="3032"/>
|
||||
<Caret Line="1801" Column="28" TopLine="1786"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2882" Column="27" TopLine="2867"/>
|
||||
<Caret Line="2900" Column="14" TopLine="2888"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2888" Column="23" TopLine="2877"/>
|
||||
<Caret Line="1897" Column="16" TopLine="1894"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="706" Column="34" TopLine="732"/>
|
||||
<Caret Line="426" Column="15" TopLine="408"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2752" Column="28" TopLine="2729"/>
|
||||
<Caret Line="1183" TopLine="1178"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1788" Column="61" TopLine="1785"/>
|
||||
<Caret Line="1923" Column="42" TopLine="1895"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2341" Column="6" TopLine="2313"/>
|
||||
<Caret Line="2892" Column="43" TopLine="2879"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1801" Column="28" TopLine="1786"/>
|
||||
<Caret Line="2899" Column="43" TopLine="2886"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2900" Column="14" TopLine="2888"/>
|
||||
<Caret Line="1833" Column="87" TopLine="1829"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1897" Column="16" TopLine="1894"/>
|
||||
<Caret Line="1839" Column="38" TopLine="1820"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="426" Column="15" TopLine="408"/>
|
||||
<Caret Line="1098" Column="15" TopLine="1092"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1183" TopLine="1178"/>
|
||||
<Caret Line="1925" Column="3" TopLine="1923"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1923" Column="42" TopLine="1895"/>
|
||||
<Caret Line="3205" Column="13" TopLine="3198"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
<RunParams>
|
||||
|
@ -1,11 +1,12 @@
|
||||
object GUIForm: TGUIForm
|
||||
Left = 275
|
||||
Height = 683
|
||||
Top = 109
|
||||
Left = 290
|
||||
Height = 650
|
||||
Top = 130
|
||||
Width = 1078
|
||||
AllowDropFiles = True
|
||||
AlphaBlendValue = 128
|
||||
Caption = 'microM8 GUI'
|
||||
ClientHeight = 663
|
||||
ClientHeight = 630
|
||||
ClientWidth = 1078
|
||||
Constraints.MinWidth = 1078
|
||||
DoubleBuffered = False
|
||||
@ -15,6 +16,7 @@ object GUIForm: TGUIForm
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
OnDeactivate = FormDeactivate
|
||||
OnDropFiles = FormDropFiles
|
||||
OnHide = FormHide
|
||||
OnKeyDown = FormKeyDown
|
||||
OnKeyPress = FormKeyPress
|
||||
@ -30,7 +32,7 @@ object GUIForm: TGUIForm
|
||||
object StatusBar1: TStatusBar
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 640
|
||||
Top = 607
|
||||
Width = 1078
|
||||
Panels = <>
|
||||
end
|
||||
@ -327,38 +329,39 @@ object GUIForm: TGUIForm
|
||||
end
|
||||
object pnlContainer: TPanel
|
||||
Left = 0
|
||||
Height = 604
|
||||
Height = 571
|
||||
Top = 36
|
||||
Width = 1078
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 604
|
||||
ClientHeight = 571
|
||||
ClientWidth = 1078
|
||||
ParentColor = False
|
||||
TabOrder = 2
|
||||
object sidecarPanel: TPanel
|
||||
Left = 908
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 170
|
||||
Align = alRight
|
||||
BevelOuter = bvNone
|
||||
Caption = 'sidecarPanel'
|
||||
ClientHeight = 567
|
||||
ClientHeight = 534
|
||||
ClientWidth = 170
|
||||
Color = clBlack
|
||||
ParentColor = False
|
||||
TabOrder = 0
|
||||
object Image1: TImage
|
||||
Left = 0
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 170
|
||||
Align = alClient
|
||||
OnClick = Image1Click
|
||||
OnDblClick = Image1DblClick
|
||||
OnDragDrop = Image1DragDrop
|
||||
OnMouseDown = Image1MouseDown
|
||||
OnMouseLeave = Image1MouseLeave
|
||||
OnMouseMove = Image1MouseMove
|
||||
OnMouseUp = Image1MouseUp
|
||||
Picture.Data = {
|
||||
1754506F727461626C654E6574776F726B477261706869636B7A020089504E47
|
||||
@ -5444,12 +5447,12 @@ object GUIForm: TGUIForm
|
||||
end
|
||||
object embedPanel: TPanel
|
||||
Left = 0
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 908
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 567
|
||||
ClientHeight = 534
|
||||
ClientWidth = 908
|
||||
Color = clBlack
|
||||
Font.Color = clWhite
|
||||
@ -5461,7 +5464,7 @@ object GUIForm: TGUIForm
|
||||
OnMouseUp = FormMouseUp
|
||||
object backdrop: TImage
|
||||
Left = 0
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 908
|
||||
Align = alClient
|
||||
@ -5474,7 +5477,7 @@ object GUIForm: TGUIForm
|
||||
object pnlMemory: TPanel
|
||||
Left = 0
|
||||
Height = 37
|
||||
Top = 567
|
||||
Top = 534
|
||||
Width = 1078
|
||||
Align = alBottom
|
||||
ClientHeight = 37
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
33
main.lfm
33
main.lfm
@ -1,11 +1,12 @@
|
||||
object GUIForm: TGUIForm
|
||||
Left = 275
|
||||
Height = 683
|
||||
Top = 109
|
||||
Left = 290
|
||||
Height = 650
|
||||
Top = 130
|
||||
Width = 1078
|
||||
AllowDropFiles = True
|
||||
AlphaBlendValue = 128
|
||||
Caption = 'microM8 GUI'
|
||||
ClientHeight = 663
|
||||
ClientHeight = 630
|
||||
ClientWidth = 1078
|
||||
Constraints.MinWidth = 1078
|
||||
DoubleBuffered = False
|
||||
@ -15,6 +16,7 @@ object GUIForm: TGUIForm
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
OnDeactivate = FormDeactivate
|
||||
OnDropFiles = FormDropFiles
|
||||
OnHide = FormHide
|
||||
OnKeyDown = FormKeyDown
|
||||
OnKeyPress = FormKeyPress
|
||||
@ -30,7 +32,7 @@ object GUIForm: TGUIForm
|
||||
object StatusBar1: TStatusBar
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 640
|
||||
Top = 607
|
||||
Width = 1078
|
||||
Panels = <>
|
||||
end
|
||||
@ -327,38 +329,39 @@ object GUIForm: TGUIForm
|
||||
end
|
||||
object pnlContainer: TPanel
|
||||
Left = 0
|
||||
Height = 604
|
||||
Height = 571
|
||||
Top = 36
|
||||
Width = 1078
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 604
|
||||
ClientHeight = 571
|
||||
ClientWidth = 1078
|
||||
ParentColor = False
|
||||
TabOrder = 2
|
||||
object sidecarPanel: TPanel
|
||||
Left = 908
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 170
|
||||
Align = alRight
|
||||
BevelOuter = bvNone
|
||||
Caption = 'sidecarPanel'
|
||||
ClientHeight = 567
|
||||
ClientHeight = 534
|
||||
ClientWidth = 170
|
||||
Color = clBlack
|
||||
ParentColor = False
|
||||
TabOrder = 0
|
||||
object Image1: TImage
|
||||
Left = 0
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 170
|
||||
Align = alClient
|
||||
OnClick = Image1Click
|
||||
OnDblClick = Image1DblClick
|
||||
OnDragDrop = Image1DragDrop
|
||||
OnMouseDown = Image1MouseDown
|
||||
OnMouseLeave = Image1MouseLeave
|
||||
OnMouseMove = Image1MouseMove
|
||||
OnMouseUp = Image1MouseUp
|
||||
Picture.Data = {
|
||||
1754506F727461626C654E6574776F726B477261706869636B7A020089504E47
|
||||
@ -5444,12 +5447,12 @@ object GUIForm: TGUIForm
|
||||
end
|
||||
object embedPanel: TPanel
|
||||
Left = 0
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 908
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 567
|
||||
ClientHeight = 534
|
||||
ClientWidth = 908
|
||||
Color = clBlack
|
||||
Font.Color = clWhite
|
||||
@ -5461,7 +5464,7 @@ object GUIForm: TGUIForm
|
||||
OnMouseUp = FormMouseUp
|
||||
object backdrop: TImage
|
||||
Left = 0
|
||||
Height = 567
|
||||
Height = 534
|
||||
Top = 0
|
||||
Width = 908
|
||||
Align = alClient
|
||||
@ -5474,7 +5477,7 @@ object GUIForm: TGUIForm
|
||||
object pnlMemory: TPanel
|
||||
Left = 0
|
||||
Height = 37
|
||||
Top = 567
|
||||
Top = 534
|
||||
Width = 1078
|
||||
Align = alBottom
|
||||
ClientHeight = 37
|
||||
|
66
main.pas
66
main.pas
@ -345,6 +345,7 @@ type
|
||||
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDeactivate(Sender: TObject);
|
||||
procedure FormDropFiles(Sender: TObject; const FileNames: array of String);
|
||||
procedure FormHide(Sender: TObject);
|
||||
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
procedure FormKeyPress(Sender: TObject; var Key: char);
|
||||
@ -363,6 +364,9 @@ type
|
||||
procedure Image1DragDrop(Sender, Source: TObject; X, Y: Integer);
|
||||
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
procedure Image1MouseLeave(Sender: TObject);
|
||||
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer
|
||||
);
|
||||
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
procedure InputClick(Sender: TObject);
|
||||
@ -588,6 +592,7 @@ type
|
||||
VolDrag, WarpDrag: boolean;
|
||||
Caps: boolean;
|
||||
NeedsRestart, Quitting: boolean;
|
||||
sbx, sby, sbButton: longint;
|
||||
public
|
||||
procedure AppActivate(Sender: TObject);
|
||||
procedure AppDeactivate(Sender: TObject);
|
||||
@ -737,6 +742,19 @@ begin
|
||||
// nothing much
|
||||
end;
|
||||
|
||||
procedure TGUIForm.Image1MouseLeave(Sender: TObject);
|
||||
begin
|
||||
sbx := -1;
|
||||
sby := -1;
|
||||
end;
|
||||
|
||||
procedure TGUIForm.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||||
Y: Integer);
|
||||
begin
|
||||
sbx := x;
|
||||
sby := y;
|
||||
end;
|
||||
|
||||
procedure TGUIForm.Image1MouseUp(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
var
|
||||
@ -1894,6 +1912,22 @@ begin
|
||||
//StatusBar1.SimpleText := StatusBar1.SimpleText + ' (in window)';
|
||||
SendMouseState( x - longint(p.X), y - longint(p.Y) );
|
||||
end;
|
||||
|
||||
{ Now see if we are over the sidecar }
|
||||
p := sidecarPanel.ClientToScreen(q);
|
||||
if (x >= longint(p.X)) and (x < longint(p.X)+longint(sidecarPanel.Width)) and
|
||||
(y >= longint(p.Y)) and (y < longint(p.Y)+longint(sidecarPanel.Height)) then
|
||||
begin
|
||||
sbx := x - p.X;
|
||||
sby := y - p.Y;
|
||||
sbButton := sby div Round(sidecarPanel.Height/5);
|
||||
end
|
||||
else
|
||||
begin
|
||||
sbx := -1;
|
||||
sby := -1;
|
||||
sbButton := -1;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2835,6 +2869,38 @@ begin
|
||||
lastFocusLostTime:=Now();
|
||||
end;
|
||||
|
||||
procedure TGUIForm.FormDropFiles(Sender: TObject;
|
||||
const FileNames: array of String);
|
||||
var
|
||||
filename, ext: string;
|
||||
begin
|
||||
//StatusBar1.SimpleText := IntToStr(sbButton) + ':' + FileNames[0];
|
||||
filename := FileNames[0];
|
||||
ext := ExtractFileExt(filename);
|
||||
case sbButton of
|
||||
0, 1: begin
|
||||
case ext of
|
||||
'.dsk', '.do', '.po', '.woz', '.nib': begin
|
||||
// insert disk here
|
||||
InsertDisk( 'local:'+filename, sbButton );
|
||||
ShowM8;
|
||||
SendOSDMessage('Disk Insert to Drive '+IntToStr(sbButton+1));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
3: begin
|
||||
case ext of
|
||||
'.po', '.2mg', '.hdv': begin
|
||||
// insert smartport here
|
||||
InsertDisk( 'local:'+filename, 2 );
|
||||
ShowM8;
|
||||
SendOSDMessage('SmartPort Volume Connected');
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TGUIForm.FormHide(Sender: TObject);
|
||||
begin
|
||||
RepaintWindow;
|
||||
|
70
poc.lps
70
poc.lps
@ -21,8 +21,8 @@
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<IsVisibleTab Value="True"/>
|
||||
<TopLine Value="1923"/>
|
||||
<CursorPos X="61" Y="1927"/>
|
||||
<TopLine Value="871"/>
|
||||
<CursorPos X="4" Y="873"/>
|
||||
<UsageCount Value="323"/>
|
||||
<Loaded Value="True"/>
|
||||
<LoadedDesigner Value="True"/>
|
||||
@ -43,7 +43,7 @@
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="576"/>
|
||||
<CursorPos X="49" Y="591"/>
|
||||
<UsageCount Value="99"/>
|
||||
<UsageCount Value="96"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="C:\lazarus\components\lazutils\utf8process.pp"/>
|
||||
@ -51,7 +51,7 @@
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="636"/>
|
||||
<CursorPos Y="654"/>
|
||||
<UsageCount Value="4"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="images\memory.pas"/>
|
||||
@ -61,129 +61,129 @@
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="40"/>
|
||||
<CursorPos X="17" Y="44"/>
|
||||
<UsageCount Value="13"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit5>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="978" Column="38" TopLine="961"/>
|
||||
<Caret Line="2998" Column="6" TopLine="2978"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2868" Column="26" TopLine="2848"/>
|
||||
<Caret Line="3039" Column="26" TopLine="3026"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="593" Column="38" TopLine="572"/>
|
||||
<Caret Line="3035" Column="34" TopLine="3024"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2987" Column="48" TopLine="2978"/>
|
||||
<Caret Line="335" Column="59" TopLine="318"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="582" Column="20" TopLine="572"/>
|
||||
<Caret Line="3046" Column="36" TopLine="3032"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2809" Column="66" TopLine="2788"/>
|
||||
<Caret Line="2882" Column="27" TopLine="2867"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2998" Column="6" TopLine="2978"/>
|
||||
<Caret Line="2888" Column="23" TopLine="2877"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="3039" Column="26" TopLine="3026"/>
|
||||
<Caret Line="706" Column="34" TopLine="732"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="3035" Column="34" TopLine="3024"/>
|
||||
<Caret Line="2752" Column="28" TopLine="2729"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="335" Column="59" TopLine="318"/>
|
||||
<Caret Line="1788" Column="61" TopLine="1785"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="3046" Column="36" TopLine="3032"/>
|
||||
<Caret Line="2341" Column="6" TopLine="2313"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2882" Column="27" TopLine="2867"/>
|
||||
<Caret Line="1801" Column="28" TopLine="1786"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2888" Column="23" TopLine="2877"/>
|
||||
<Caret Line="2900" Column="14" TopLine="2888"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="706" Column="34" TopLine="732"/>
|
||||
<Caret Line="1897" Column="16" TopLine="1894"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2752" Column="28" TopLine="2729"/>
|
||||
<Caret Line="426" Column="15" TopLine="408"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1788" Column="61" TopLine="1785"/>
|
||||
<Caret Line="1183" TopLine="1178"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2341" Column="6" TopLine="2313"/>
|
||||
<Caret Line="1923" Column="42" TopLine="1895"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1801" Column="28" TopLine="1786"/>
|
||||
<Caret Line="2892" Column="43" TopLine="2879"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2900" Column="14" TopLine="2888"/>
|
||||
<Caret Line="2899" Column="43" TopLine="2886"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1897" Column="16" TopLine="1894"/>
|
||||
<Caret Line="1833" Column="87" TopLine="1829"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="426" Column="15" TopLine="408"/>
|
||||
<Caret Line="1839" Column="38" TopLine="1820"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1183" TopLine="1178"/>
|
||||
<Caret Line="1098" Column="15" TopLine="1092"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1923" Column="42" TopLine="1895"/>
|
||||
<Caret Line="1925" Column="3" TopLine="1923"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2892" Column="43" TopLine="2879"/>
|
||||
<Caret Line="3205" Column="13" TopLine="3198"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="2899" Column="43" TopLine="2886"/>
|
||||
<Caret Line="3279" Column="24" TopLine="3223"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1833" Column="87" TopLine="1829"/>
|
||||
<Caret Line="581" Column="11" TopLine="563"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1839" Column="38" TopLine="1820"/>
|
||||
<Caret Line="2250" Column="17" TopLine="2231"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1098" Column="15" TopLine="1092"/>
|
||||
<Caret Line="2255" Column="14" TopLine="2231"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1925" Column="3" TopLine="1923"/>
|
||||
<Caret Line="2265" Column="21" TopLine="2234"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="3205" Column="13" TopLine="3198"/>
|
||||
<Caret Line="3202" Column="9" TopLine="3174"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
<RunParams>
|
||||
|
Loading…
x
Reference in New Issue
Block a user