mirror of
https://github.com/paleotronic/microm8-gui.git
synced 2025-02-05 14:33:37 +00:00
toolbuttons
This commit is contained in:
parent
407c37545a
commit
2482c7c0a1
3212
backup/main.lfm
3212
backup/main.lfm
File diff suppressed because it is too large
Load Diff
170
backup/main.pas
170
backup/main.pas
@ -18,8 +18,15 @@ type
|
|||||||
{ TGUIForm }
|
{ TGUIForm }
|
||||||
|
|
||||||
TGUIForm = class(TForm)
|
TGUIForm = class(TForm)
|
||||||
BackdropImage: TImage;
|
backdrop: TImage;
|
||||||
ImageList1: TImageList;
|
N2: TMenuItem;
|
||||||
|
miTintOff: TMenuItem;
|
||||||
|
miTintGrey: TMenuItem;
|
||||||
|
miTintGreen: TMenuItem;
|
||||||
|
miTintAmber: TMenuItem;
|
||||||
|
ToolTimer: TTimer;
|
||||||
|
TintMode: TPopupMenu;
|
||||||
|
ToolbarIcons: TImageList;
|
||||||
MainMenu1: TMainMenu;
|
MainMenu1: TMainMenu;
|
||||||
MenuItem1: TMenuItem;
|
MenuItem1: TMenuItem;
|
||||||
MenuItem10: TMenuItem;
|
MenuItem10: TMenuItem;
|
||||||
@ -100,7 +107,14 @@ type
|
|||||||
CheckTimer: TTimer;
|
CheckTimer: TTimer;
|
||||||
MouseTimer: TTimer;
|
MouseTimer: TTimer;
|
||||||
ToolBar1: TToolBar;
|
ToolBar1: TToolBar;
|
||||||
procedure BackdropImageClick(Sender: TObject);
|
tbTintMode: TToolButton;
|
||||||
|
tbRMVoxels: TToolButton;
|
||||||
|
tbRMDots: TToolButton;
|
||||||
|
tbRMRaster: TToolButton;
|
||||||
|
ToolButton1: TToolButton;
|
||||||
|
ToolButton2: TToolButton;
|
||||||
|
tbRMColor: TToolButton;
|
||||||
|
procedure backdropClick(Sender: TObject);
|
||||||
procedure Button1Click(Sender: TObject);
|
procedure Button1Click(Sender: TObject);
|
||||||
procedure CheckTimerTimer(Sender: TObject);
|
procedure CheckTimerTimer(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
@ -164,6 +178,11 @@ type
|
|||||||
procedure miSPEjectClick(Sender: TObject);
|
procedure miSPEjectClick(Sender: TObject);
|
||||||
procedure miSPFileClick(Sender: TObject);
|
procedure miSPFileClick(Sender: TObject);
|
||||||
procedure MouseTimerTimer(Sender: TObject);
|
procedure MouseTimerTimer(Sender: TObject);
|
||||||
|
procedure tbRMClick(Sender: TObject);
|
||||||
|
procedure tbRMColorClick(Sender: TObject);
|
||||||
|
procedure tbTintModeClick(Sender: TObject);
|
||||||
|
procedure ToolTimerTimer(Sender: TObject);
|
||||||
|
procedure UpdateRenderMode;
|
||||||
procedure UnFreeze;
|
procedure UnFreeze;
|
||||||
procedure HideM8;
|
procedure HideM8;
|
||||||
procedure menuRebootVMClick(Sender: TObject);
|
procedure menuRebootVMClick(Sender: TObject);
|
||||||
@ -171,6 +190,7 @@ type
|
|||||||
procedure RebootVM;
|
procedure RebootVM;
|
||||||
procedure ReposWindow;
|
procedure ReposWindow;
|
||||||
procedure RepaintWindow;
|
procedure RepaintWindow;
|
||||||
|
procedure UpdateColorMode;
|
||||||
function GetTitleOfActiveWindow: string;
|
function GetTitleOfActiveWindow: string;
|
||||||
procedure SendKey(key: Integer; ScanCode: Integer; KeyAction: Integer; Mods: Integer);
|
procedure SendKey(key: Integer; ScanCode: Integer; KeyAction: Integer; Mods: Integer);
|
||||||
procedure tbDisk1MouseDown(Sender: TObject; Button: TMouseButton;
|
procedure tbDisk1MouseDown(Sender: TObject; Button: TMouseButton;
|
||||||
@ -200,6 +220,9 @@ var
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
const
|
||||||
|
baseUrl: string = 'http://localhost:38911';
|
||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
{ TGUIForm }
|
{ TGUIForm }
|
||||||
@ -236,12 +259,12 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.RebootVM;
|
procedure TGUIForm.RebootVM;
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/system/reboot');
|
self.hc.Get(baseUrl + '/api/control/system/reboot');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.Freeze;
|
procedure TGUIForm.Freeze;
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/window/freeze');
|
self.hc.Get(baseUrl + '/api/control/window/freeze');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miColorDotsClick(Sender: TObject);
|
procedure TGUIForm.miColorDotsClick(Sender: TObject);
|
||||||
@ -261,7 +284,7 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.miD1BlankClick(Sender: TObject);
|
procedure TGUIForm.miD1BlankClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/hardware/disk/eject/0');
|
self.hc.Get(baseUrl + '/api/control/hardware/disk/eject/0');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miD1FileClick(Sender: TObject);
|
procedure TGUIForm.miD1FileClick(Sender: TObject);
|
||||||
@ -277,7 +300,7 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.miD2BlankClick(Sender: TObject);
|
procedure TGUIForm.miD2BlankClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/hardware/disk/eject/1');
|
self.hc.Get(baseUrl + '/api/control/hardware/disk/eject/1');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miD2FileClick(Sender: TObject);
|
procedure TGUIForm.miD2FileClick(Sender: TObject);
|
||||||
@ -361,7 +384,7 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.miFileCatClick(Sender: TObject);
|
procedure TGUIForm.miFileCatClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/system/catalog');
|
self.hc.Get(baseUrl + '/api/control/system/catalog');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miGRRasterClick(Sender: TObject);
|
procedure TGUIForm.miGRRasterClick(Sender: TObject);
|
||||||
@ -449,17 +472,17 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.miIntFPClick(Sender: TObject);
|
procedure TGUIForm.miIntFPClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/interpreter/fp');
|
self.hc.Get(baseUrl + '/api/control/interpreter/fp');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miIntINTClick(Sender: TObject);
|
procedure TGUIForm.miIntINTClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/interpreter/int');
|
self.hc.Get(baseUrl + '/api/control/interpreter/int');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miIntLOGOClick(Sender: TObject);
|
procedure TGUIForm.miIntLOGOClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/interpreter/logo');
|
self.hc.Get(baseUrl + '/api/control/interpreter/logo');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miMonoDotsClick(Sender: TObject);
|
procedure TGUIForm.miMonoDotsClick(Sender: TObject);
|
||||||
@ -538,13 +561,13 @@ procedure TGUIForm.miSLIClick(Sender: TObject);
|
|||||||
const
|
const
|
||||||
values: Array[0..9] of string = ('1', '0.88', '0.77', '0.66', '0.55', '0.44', '0.33', '0.22', '0.11', '0');
|
values: Array[0..9] of string = ('1', '0.88', '0.77', '0.66', '0.55', '0.44', '0.33', '0.22', '0.11', '0');
|
||||||
begin
|
begin
|
||||||
// self.hc.Get('http://localhost:38911/api/control/input/meta/key/i/value/'+TMenuItem(Sender).Caption);
|
// self.hc.Get(baseUrl + '/api/control/input/meta/key/i/value/'+TMenuItem(Sender).Caption);
|
||||||
UpdateConfig( 'video/init.video.scanline', values[StrToInt(TMenuItem(Sender).Caption)], true );
|
UpdateConfig( 'video/init.video.scanline', values[StrToInt(TMenuItem(Sender).Caption)], true );
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miSPEjectClick(Sender: TObject);
|
procedure TGUIForm.miSPEjectClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/hardware/disk/eject/2');
|
self.hc.Get(baseUrl + '/api/control/hardware/disk/eject/2');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miSPFileClick(Sender: TObject);
|
procedure TGUIForm.miSPFileClick(Sender: TObject);
|
||||||
@ -581,9 +604,101 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.UpdateRenderMode;
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
t := StrToInt( GetConfig( 'video/current.rendermode' ) );
|
||||||
|
case t of
|
||||||
|
0: tbRMDots.Down := true;
|
||||||
|
3: tbRMDots.Down := true;
|
||||||
|
1: tbRMVoxels.Down := true;
|
||||||
|
4: tbRMVoxels.Down := true;
|
||||||
|
2: tbRMRaster.Down := true;
|
||||||
|
5: tbRMVoxels.Down := true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TGUIForm.tbRMClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
t := StrToInt( GetConfig( 'video/current.rendermode' ) );
|
||||||
|
|
||||||
|
case TToolButton(sender).Tag of
|
||||||
|
0:
|
||||||
|
if t >= 3 then
|
||||||
|
t := 3
|
||||||
|
else
|
||||||
|
t := 0;
|
||||||
|
1:
|
||||||
|
if t >= 3 then
|
||||||
|
t := 4
|
||||||
|
else
|
||||||
|
t := 1;
|
||||||
|
2:
|
||||||
|
if t >= 3 then
|
||||||
|
t := 5
|
||||||
|
else
|
||||||
|
t := 2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
UpdateConfig( 'video/current.rendermode', IntToStr(t), false );
|
||||||
|
UpdateRenderMode;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.UpdateColorMode;
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
t := StrToInt( GetConfig( 'video/current.rendermode' ) );
|
||||||
|
tbRMColor.ImageIndex := 7 + (t div 3);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.tbRMColorClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
{ increment video tint }
|
||||||
|
t := StrToInt( GetConfig( 'video/current.rendermode' ) );
|
||||||
|
|
||||||
|
if t >= 3 then
|
||||||
|
t := t - 3
|
||||||
|
else
|
||||||
|
t := t + 3;
|
||||||
|
|
||||||
|
UpdateConfig( 'video/current.rendermode', IntToStr(t), false );
|
||||||
|
UpdateColorMode;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.tbTintModeClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
{ increment video tint }
|
||||||
|
t := StrToInt( GetConfig( 'video/init.video.tintmode' ) );
|
||||||
|
inc(t);
|
||||||
|
if t > 3 then
|
||||||
|
t := 0;
|
||||||
|
UpdateConfig( 'video/init.video.tintmode', IntToStr(t), false );
|
||||||
|
t := StrToInt( GetConfig( 'video/init.video.tintmode' ) );
|
||||||
|
tbTintMode.ImageIndex := t;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.ToolTimerTimer(Sender: TObject);
|
||||||
|
begin
|
||||||
|
UpdateRenderMode;
|
||||||
|
UpdateColorMode;
|
||||||
|
UpdateTintMode;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.UnFreeze;
|
procedure TGUIForm.UnFreeze;
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/window/unfreeze');
|
self.hc.Get(baseUrl + '/api/control/window/unfreeze');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.HideM8;
|
procedure TGUIForm.HideM8;
|
||||||
@ -591,7 +706,7 @@ begin
|
|||||||
if hidden then
|
if hidden then
|
||||||
exit;
|
exit;
|
||||||
//Memo1.Lines.Add('hiding m8 window');
|
//Memo1.Lines.Add('hiding m8 window');
|
||||||
self.hc.Get('http://localhost:38911/api/control/window/hide');
|
self.hc.Get(baseUrl + '/api/control/window/hide');
|
||||||
lastHideTime := Now();
|
lastHideTime := Now();
|
||||||
hidden := true;
|
hidden := true;
|
||||||
end;
|
end;
|
||||||
@ -606,7 +721,7 @@ begin
|
|||||||
if not hidden then
|
if not hidden then
|
||||||
exit;
|
exit;
|
||||||
//Memo1.Lines.Add('showing m8 window');
|
//Memo1.Lines.Add('showing m8 window');
|
||||||
self.hc.Get('http://localhost:38911/api/control/window/show');
|
self.hc.Get(baseUrl + '/api/control/window/show');
|
||||||
lastShowTime := Now();
|
lastShowTime := Now();
|
||||||
hidden := false;
|
hidden := false;
|
||||||
end;
|
end;
|
||||||
@ -617,13 +732,13 @@ var
|
|||||||
filename: string;
|
filename: string;
|
||||||
begin
|
begin
|
||||||
S := TMemoryStream.Create();
|
S := TMemoryStream.Create();
|
||||||
self.hc.Get('http://localhost:38911/api/control/window/screen', S);
|
self.hc.Get(baseUrl + '/api/control/window/screen', S);
|
||||||
if S.Size > 0 then
|
if S.Size > 0 then
|
||||||
begin
|
begin
|
||||||
filename := GetUserDir + PathSeparator + 'microm8scrn.png';
|
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);
|
S.SaveToFile(filename);
|
||||||
BackdropImage.Picture.LoadFromFile(filename);
|
backdrop.Picture.LoadFromFile(filename);
|
||||||
S.Free;
|
S.Free;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -657,7 +772,7 @@ begin
|
|||||||
',"h":'+IntToStr(h) +
|
',"h":'+IntToStr(h) +
|
||||||
'}';
|
'}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/window/position',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/window/position',json,Respo);
|
||||||
S := Respo.DataString;
|
S := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=S;
|
self.StatusBar1.SimpleText:=S;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -668,14 +783,11 @@ var
|
|||||||
json, S: string;
|
json, S: string;
|
||||||
Respo: TStringStream;
|
Respo: TStringStream;
|
||||||
begin
|
begin
|
||||||
if key = 8 then
|
|
||||||
key := 127;
|
|
||||||
|
|
||||||
json := '{"x":' + IntToStr(x) +
|
json := '{"x":' + IntToStr(x) +
|
||||||
',"y":'+IntToStr(y) +
|
',"y":'+IntToStr(y) +
|
||||||
'}';
|
'}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/input/mouseevent',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/input/mouseevent',json,Respo);
|
||||||
S := Respo.DataString;
|
S := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=S;
|
self.StatusBar1.SimpleText:=S;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -695,7 +807,7 @@ begin
|
|||||||
',"modifiers":'+IntToStr(Mods) +
|
',"modifiers":'+IntToStr(Mods) +
|
||||||
'}';
|
'}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/input/keyevent',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/input/keyevent',json,Respo);
|
||||||
S := Respo.DataString;
|
S := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=S;
|
self.StatusBar1.SimpleText:=S;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -714,7 +826,7 @@ begin
|
|||||||
'","drive":'+IntToStr(Drive) +
|
'","drive":'+IntToStr(Drive) +
|
||||||
'}';
|
'}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/hardware/disk/insert',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/hardware/disk/insert',json,Respo);
|
||||||
S := Respo.DataString;
|
S := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=json;
|
self.StatusBar1.SimpleText:=json;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -734,7 +846,7 @@ begin
|
|||||||
'","persist":'+ pval +
|
'","persist":'+ pval +
|
||||||
'}';
|
'}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/settings/update',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo);
|
||||||
S := Respo.DataString;
|
S := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=json;
|
self.StatusBar1.SimpleText:=json;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -749,7 +861,7 @@ begin
|
|||||||
json := '{"path":"' + path +
|
json := '{"path":"' + path +
|
||||||
'"}';
|
'"}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/settings/get',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo);
|
||||||
Result := Respo.DataString;
|
Result := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=json;
|
self.StatusBar1.SimpleText:=json;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -793,7 +905,7 @@ begin
|
|||||||
self.ReposWindow;
|
self.ReposWindow;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.BackdropImageClick(Sender: TObject);
|
procedure TGUIForm.backdropClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
|
||||||
end;
|
end;
|
||||||
@ -821,7 +933,7 @@ function TGUIForm.GetTitleOfActiveWindow: string;
|
|||||||
var s: string;
|
var s: string;
|
||||||
begin
|
begin
|
||||||
Result := '';
|
Result := '';
|
||||||
s := self.hc.Get('http://localhost:38911/api/control/window/focused');
|
s := self.hc.Get(baseUrl + '/api/control/window/focused');
|
||||||
if s = '1' then
|
if s = '1' then
|
||||||
Result := 'microM8';
|
Result := 'microM8';
|
||||||
end;
|
end;
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<WindowIndex Value="-1"/>
|
<WindowIndex Value="-1"/>
|
||||||
<TopLine Value="-1"/>
|
<TopLine Value="-1"/>
|
||||||
<CursorPos X="-1" Y="-1"/>
|
<CursorPos X="-1" Y="-1"/>
|
||||||
<UsageCount Value="176"/>
|
<UsageCount Value="323"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
@ -21,141 +21,140 @@
|
|||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<IsVisibleTab Value="True"/>
|
<IsVisibleTab Value="True"/>
|
||||||
<TopLine Value="387"/>
|
<TopLine Value="782"/>
|
||||||
<CursorPos X="34" Y="412"/>
|
<CursorPos X="21" Y="799"/>
|
||||||
<UsageCount Value="176"/>
|
<UsageCount Value="323"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<LoadedDesigner Value="True"/>
|
<LoadedDesigner Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
<Unit2>
|
<Unit2>
|
||||||
<Filename Value="C:\lazarus\lcl\include\picture.inc"/>
|
<Filename Value="C:\lazarus\lcl\include\picture.inc"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="-1"/>
|
||||||
<TopLine Value="576"/>
|
<TopLine Value="576"/>
|
||||||
<CursorPos X="49" Y="591"/>
|
<CursorPos X="49" Y="591"/>
|
||||||
<UsageCount Value="65"/>
|
<UsageCount Value="136"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit2>
|
</Unit2>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="30" HistoryIndex="29">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="292" Column="78" TopLine="255"/>
|
<Caret Line="620" Column="46" TopLine="602"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="293" Column="78" TopLine="256"/>
|
<Caret Line="621" Column="46" TopLine="603"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="294" Column="78" TopLine="257"/>
|
<Caret Line="622" Column="46" TopLine="604"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="295" Column="78" TopLine="258"/>
|
<Caret Line="623" Column="46" TopLine="605"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="296" Column="78" TopLine="259"/>
|
<Caret Line="624" Column="46" TopLine="606"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="297" Column="78" TopLine="260"/>
|
<Caret Line="213" Column="30" TopLine="190"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="300" Column="78" TopLine="263"/>
|
<Caret Line="467" Column="98" TopLine="448"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="305" Column="16" TopLine="300"/>
|
<Caret Line="232" Column="76" TopLine="237"/>
|
||||||
</Position8>
|
</Position8>
|
||||||
<Position9>
|
<Position9>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="583" Column="44" TopLine="562"/>
|
<Caret Line="233" Column="76" TopLine="233"/>
|
||||||
</Position9>
|
</Position9>
|
||||||
<Position10>
|
<Position10>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="564" Column="43" TopLine="545"/>
|
<Caret Line="234" Column="76" TopLine="234"/>
|
||||||
</Position10>
|
</Position10>
|
||||||
<Position11>
|
<Position11>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="569" Column="44" TopLine="545"/>
|
<Caret Line="235" Column="76" TopLine="235"/>
|
||||||
</Position11>
|
</Position11>
|
||||||
<Position12>
|
<Position12>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="356" Column="5" TopLine="347"/>
|
<Caret Line="236" Column="76" TopLine="236"/>
|
||||||
</Position12>
|
</Position12>
|
||||||
<Position13>
|
<Position13>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="283" Column="34" TopLine="270"/>
|
<Caret Line="238" Column="76" TopLine="238"/>
|
||||||
</Position13>
|
</Position13>
|
||||||
<Position14>
|
<Position14>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="281" TopLine="267"/>
|
<Caret Line="612" Column="33" TopLine="583"/>
|
||||||
</Position14>
|
</Position14>
|
||||||
<Position15>
|
<Position15>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="873" TopLine="850"/>
|
<Caret Line="610" Column="66" TopLine="591"/>
|
||||||
</Position15>
|
</Position15>
|
||||||
<Position16>
|
<Position16>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="882" Column="18" TopLine="850"/>
|
<Caret Line="692" TopLine="674"/>
|
||||||
</Position16>
|
</Position16>
|
||||||
<Position17>
|
<Position17>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="874" TopLine="864"/>
|
<Caret Line="614" Column="24" TopLine="599"/>
|
||||||
</Position17>
|
</Position17>
|
||||||
<Position18>
|
<Position18>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="371" Column="17" TopLine="360"/>
|
<Caret Line="192" Column="30" TopLine="174"/>
|
||||||
</Position18>
|
</Position18>
|
||||||
<Position19>
|
<Position19>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="374" Column="30" TopLine="361"/>
|
<Caret Line="618" Column="40" TopLine="600"/>
|
||||||
</Position19>
|
</Position19>
|
||||||
<Position20>
|
<Position20>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="426" TopLine="411"/>
|
<Caret Line="183" Column="36" TopLine="158"/>
|
||||||
</Position20>
|
</Position20>
|
||||||
<Position21>
|
<Position21>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="422" Column="51" TopLine="411"/>
|
<Caret Line="822" TopLine="804"/>
|
||||||
</Position21>
|
</Position21>
|
||||||
<Position22>
|
<Position22>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="475" Column="21" TopLine="445"/>
|
<Caret Line="820" Column="5" TopLine="804"/>
|
||||||
</Position22>
|
</Position22>
|
||||||
<Position23>
|
<Position23>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="439" Column="13" TopLine="420"/>
|
<Caret Line="794" Column="29" TopLine="787"/>
|
||||||
</Position23>
|
</Position23>
|
||||||
<Position24>
|
<Position24>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="427" TopLine="419"/>
|
<Caret Line="820" Column="5" TopLine="804"/>
|
||||||
</Position24>
|
</Position24>
|
||||||
<Position25>
|
<Position25>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="401" Column="12" TopLine="383"/>
|
<Caret Line="179" Column="42" TopLine="157"/>
|
||||||
</Position25>
|
</Position25>
|
||||||
<Position26>
|
<Position26>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="405" Column="30" TopLine="383"/>
|
<Caret Line="793" Column="48" TopLine="820"/>
|
||||||
</Position26>
|
</Position26>
|
||||||
<Position27>
|
<Position27>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="388" Column="3" TopLine="384"/>
|
<Caret Line="821" TopLine="802"/>
|
||||||
</Position27>
|
</Position27>
|
||||||
<Position28>
|
<Position28>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="394" Column="3" TopLine="385"/>
|
<Caret Line="811" Column="20" TopLine="785"/>
|
||||||
</Position28>
|
</Position28>
|
||||||
<Position29>
|
<Position29>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="400" Column="3" TopLine="386"/>
|
<Caret Line="810" Column="6" TopLine="780"/>
|
||||||
</Position29>
|
</Position29>
|
||||||
<Position30>
|
<Position30>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="406" Column="3" TopLine="387"/>
|
<Caret Line="799" Column="28" TopLine="780"/>
|
||||||
</Position30>
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
<RunParams>
|
<RunParams>
|
||||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
175
main.pas
175
main.pas
@ -18,8 +18,15 @@ type
|
|||||||
{ TGUIForm }
|
{ TGUIForm }
|
||||||
|
|
||||||
TGUIForm = class(TForm)
|
TGUIForm = class(TForm)
|
||||||
BackdropImage: TImage;
|
backdrop: TImage;
|
||||||
ImageList1: TImageList;
|
N2: TMenuItem;
|
||||||
|
miTintOff: TMenuItem;
|
||||||
|
miTintGrey: TMenuItem;
|
||||||
|
miTintGreen: TMenuItem;
|
||||||
|
miTintAmber: TMenuItem;
|
||||||
|
ToolTimer: TTimer;
|
||||||
|
TintMode: TPopupMenu;
|
||||||
|
ToolbarIcons: TImageList;
|
||||||
MainMenu1: TMainMenu;
|
MainMenu1: TMainMenu;
|
||||||
MenuItem1: TMenuItem;
|
MenuItem1: TMenuItem;
|
||||||
MenuItem10: TMenuItem;
|
MenuItem10: TMenuItem;
|
||||||
@ -100,7 +107,14 @@ type
|
|||||||
CheckTimer: TTimer;
|
CheckTimer: TTimer;
|
||||||
MouseTimer: TTimer;
|
MouseTimer: TTimer;
|
||||||
ToolBar1: TToolBar;
|
ToolBar1: TToolBar;
|
||||||
procedure BackdropImageClick(Sender: TObject);
|
tbTintMode: TToolButton;
|
||||||
|
tbRMVoxels: TToolButton;
|
||||||
|
tbRMDots: TToolButton;
|
||||||
|
tbRMRaster: TToolButton;
|
||||||
|
ToolButton1: TToolButton;
|
||||||
|
ToolButton2: TToolButton;
|
||||||
|
tbRMColor: TToolButton;
|
||||||
|
procedure backdropClick(Sender: TObject);
|
||||||
procedure Button1Click(Sender: TObject);
|
procedure Button1Click(Sender: TObject);
|
||||||
procedure CheckTimerTimer(Sender: TObject);
|
procedure CheckTimerTimer(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
@ -164,6 +178,11 @@ type
|
|||||||
procedure miSPEjectClick(Sender: TObject);
|
procedure miSPEjectClick(Sender: TObject);
|
||||||
procedure miSPFileClick(Sender: TObject);
|
procedure miSPFileClick(Sender: TObject);
|
||||||
procedure MouseTimerTimer(Sender: TObject);
|
procedure MouseTimerTimer(Sender: TObject);
|
||||||
|
procedure tbRMClick(Sender: TObject);
|
||||||
|
procedure tbRMColorClick(Sender: TObject);
|
||||||
|
procedure tbTintModeClick(Sender: TObject);
|
||||||
|
procedure ToolTimerTimer(Sender: TObject);
|
||||||
|
procedure UpdateRenderMode;
|
||||||
procedure UnFreeze;
|
procedure UnFreeze;
|
||||||
procedure HideM8;
|
procedure HideM8;
|
||||||
procedure menuRebootVMClick(Sender: TObject);
|
procedure menuRebootVMClick(Sender: TObject);
|
||||||
@ -171,6 +190,8 @@ type
|
|||||||
procedure RebootVM;
|
procedure RebootVM;
|
||||||
procedure ReposWindow;
|
procedure ReposWindow;
|
||||||
procedure RepaintWindow;
|
procedure RepaintWindow;
|
||||||
|
procedure UpdateColorMode;
|
||||||
|
procedure UpdateTintMode;
|
||||||
function GetTitleOfActiveWindow: string;
|
function GetTitleOfActiveWindow: string;
|
||||||
procedure SendKey(key: Integer; ScanCode: Integer; KeyAction: Integer; Mods: Integer);
|
procedure SendKey(key: Integer; ScanCode: Integer; KeyAction: Integer; Mods: Integer);
|
||||||
procedure tbDisk1MouseDown(Sender: TObject; Button: TMouseButton;
|
procedure tbDisk1MouseDown(Sender: TObject; Button: TMouseButton;
|
||||||
@ -200,6 +221,9 @@ var
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
const
|
||||||
|
baseUrl: string = 'http://localhost:38911';
|
||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
{ TGUIForm }
|
{ TGUIForm }
|
||||||
@ -236,12 +260,12 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.RebootVM;
|
procedure TGUIForm.RebootVM;
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/system/reboot');
|
self.hc.Get(baseUrl + '/api/control/system/reboot');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.Freeze;
|
procedure TGUIForm.Freeze;
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/window/freeze');
|
self.hc.Get(baseUrl + '/api/control/window/freeze');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miColorDotsClick(Sender: TObject);
|
procedure TGUIForm.miColorDotsClick(Sender: TObject);
|
||||||
@ -261,7 +285,7 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.miD1BlankClick(Sender: TObject);
|
procedure TGUIForm.miD1BlankClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/hardware/disk/eject/0');
|
self.hc.Get(baseUrl + '/api/control/hardware/disk/eject/0');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miD1FileClick(Sender: TObject);
|
procedure TGUIForm.miD1FileClick(Sender: TObject);
|
||||||
@ -277,7 +301,7 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.miD2BlankClick(Sender: TObject);
|
procedure TGUIForm.miD2BlankClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/hardware/disk/eject/1');
|
self.hc.Get(baseUrl + '/api/control/hardware/disk/eject/1');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miD2FileClick(Sender: TObject);
|
procedure TGUIForm.miD2FileClick(Sender: TObject);
|
||||||
@ -361,7 +385,7 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.miFileCatClick(Sender: TObject);
|
procedure TGUIForm.miFileCatClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/system/catalog');
|
self.hc.Get(baseUrl + '/api/control/system/catalog');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miGRRasterClick(Sender: TObject);
|
procedure TGUIForm.miGRRasterClick(Sender: TObject);
|
||||||
@ -449,17 +473,17 @@ end;
|
|||||||
|
|
||||||
procedure TGUIForm.miIntFPClick(Sender: TObject);
|
procedure TGUIForm.miIntFPClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/interpreter/fp');
|
self.hc.Get(baseUrl + '/api/control/interpreter/fp');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miIntINTClick(Sender: TObject);
|
procedure TGUIForm.miIntINTClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/interpreter/int');
|
self.hc.Get(baseUrl + '/api/control/interpreter/int');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miIntLOGOClick(Sender: TObject);
|
procedure TGUIForm.miIntLOGOClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/interpreter/logo');
|
self.hc.Get(baseUrl + '/api/control/interpreter/logo');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miMonoDotsClick(Sender: TObject);
|
procedure TGUIForm.miMonoDotsClick(Sender: TObject);
|
||||||
@ -538,13 +562,13 @@ procedure TGUIForm.miSLIClick(Sender: TObject);
|
|||||||
const
|
const
|
||||||
values: Array[0..9] of string = ('1', '0.88', '0.77', '0.66', '0.55', '0.44', '0.33', '0.22', '0.11', '0');
|
values: Array[0..9] of string = ('1', '0.88', '0.77', '0.66', '0.55', '0.44', '0.33', '0.22', '0.11', '0');
|
||||||
begin
|
begin
|
||||||
// self.hc.Get('http://localhost:38911/api/control/input/meta/key/i/value/'+TMenuItem(Sender).Caption);
|
// self.hc.Get(baseUrl + '/api/control/input/meta/key/i/value/'+TMenuItem(Sender).Caption);
|
||||||
UpdateConfig( 'video/init.video.scanline', values[StrToInt(TMenuItem(Sender).Caption)], true );
|
UpdateConfig( 'video/init.video.scanline', values[StrToInt(TMenuItem(Sender).Caption)], true );
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miSPEjectClick(Sender: TObject);
|
procedure TGUIForm.miSPEjectClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/hardware/disk/eject/2');
|
self.hc.Get(baseUrl + '/api/control/hardware/disk/eject/2');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.miSPFileClick(Sender: TObject);
|
procedure TGUIForm.miSPFileClick(Sender: TObject);
|
||||||
@ -581,9 +605,108 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.UpdateRenderMode;
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
t := StrToInt( GetConfig( 'video/current.rendermode' ) );
|
||||||
|
case t of
|
||||||
|
0: tbRMDots.Down := true;
|
||||||
|
3: tbRMDots.Down := true;
|
||||||
|
1: tbRMVoxels.Down := true;
|
||||||
|
4: tbRMVoxels.Down := true;
|
||||||
|
2: tbRMRaster.Down := true;
|
||||||
|
5: tbRMVoxels.Down := true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TGUIForm.tbRMClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
t := StrToInt( GetConfig( 'video/current.rendermode' ) );
|
||||||
|
|
||||||
|
case TToolButton(sender).Tag of
|
||||||
|
0:
|
||||||
|
if t >= 3 then
|
||||||
|
t := 3
|
||||||
|
else
|
||||||
|
t := 0;
|
||||||
|
1:
|
||||||
|
if t >= 3 then
|
||||||
|
t := 4
|
||||||
|
else
|
||||||
|
t := 1;
|
||||||
|
2:
|
||||||
|
if t >= 3 then
|
||||||
|
t := 5
|
||||||
|
else
|
||||||
|
t := 2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
UpdateConfig( 'video/current.rendermode', IntToStr(t), false );
|
||||||
|
UpdateRenderMode;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.UpdateColorMode;
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
t := StrToInt( GetConfig( 'video/current.rendermode' ) );
|
||||||
|
tbRMColor.ImageIndex := 7 + (t div 3);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.tbRMColorClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
{ increment video tint }
|
||||||
|
t := StrToInt( GetConfig( 'video/current.rendermode' ) );
|
||||||
|
|
||||||
|
if t >= 3 then
|
||||||
|
t := t - 3
|
||||||
|
else
|
||||||
|
t := t + 3;
|
||||||
|
|
||||||
|
UpdateConfig( 'video/current.rendermode', IntToStr(t), false );
|
||||||
|
UpdateColorMode;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.UpdateTintMode;
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
t := StrToInt( GetConfig( 'video/init.video.tintmode' ) );
|
||||||
|
tbTintMode.ImageIndex := t;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.tbTintModeClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
{ increment video tint }
|
||||||
|
t := StrToInt( GetConfig( 'video/init.video.tintmode' ) );
|
||||||
|
inc(t);
|
||||||
|
if t > 3 then
|
||||||
|
t := 0;
|
||||||
|
UpdateConfig( 'video/init.video.tintmode', IntToStr(t), false );
|
||||||
|
UpdateTintMode;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TGUIForm.ToolTimerTimer(Sender: TObject);
|
||||||
|
begin
|
||||||
|
UpdateRenderMode;
|
||||||
|
UpdateColorMode;
|
||||||
|
UpdateTintMode;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.UnFreeze;
|
procedure TGUIForm.UnFreeze;
|
||||||
begin
|
begin
|
||||||
self.hc.Get('http://localhost:38911/api/control/window/unfreeze');
|
self.hc.Get(baseUrl + '/api/control/window/unfreeze');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.HideM8;
|
procedure TGUIForm.HideM8;
|
||||||
@ -591,7 +714,7 @@ begin
|
|||||||
if hidden then
|
if hidden then
|
||||||
exit;
|
exit;
|
||||||
//Memo1.Lines.Add('hiding m8 window');
|
//Memo1.Lines.Add('hiding m8 window');
|
||||||
self.hc.Get('http://localhost:38911/api/control/window/hide');
|
self.hc.Get(baseUrl + '/api/control/window/hide');
|
||||||
lastHideTime := Now();
|
lastHideTime := Now();
|
||||||
hidden := true;
|
hidden := true;
|
||||||
end;
|
end;
|
||||||
@ -606,7 +729,7 @@ begin
|
|||||||
if not hidden then
|
if not hidden then
|
||||||
exit;
|
exit;
|
||||||
//Memo1.Lines.Add('showing m8 window');
|
//Memo1.Lines.Add('showing m8 window');
|
||||||
self.hc.Get('http://localhost:38911/api/control/window/show');
|
self.hc.Get(baseUrl + '/api/control/window/show');
|
||||||
lastShowTime := Now();
|
lastShowTime := Now();
|
||||||
hidden := false;
|
hidden := false;
|
||||||
end;
|
end;
|
||||||
@ -617,13 +740,13 @@ var
|
|||||||
filename: string;
|
filename: string;
|
||||||
begin
|
begin
|
||||||
S := TMemoryStream.Create();
|
S := TMemoryStream.Create();
|
||||||
self.hc.Get('http://localhost:38911/api/control/window/screen', S);
|
self.hc.Get(baseUrl + '/api/control/window/screen', S);
|
||||||
if S.Size > 0 then
|
if S.Size > 0 then
|
||||||
begin
|
begin
|
||||||
filename := GetUserDir + PathSeparator + 'microm8scrn.png';
|
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);
|
S.SaveToFile(filename);
|
||||||
BackdropImage.Picture.LoadFromFile(filename);
|
backdrop.Picture.LoadFromFile(filename);
|
||||||
S.Free;
|
S.Free;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -657,7 +780,7 @@ begin
|
|||||||
',"h":'+IntToStr(h) +
|
',"h":'+IntToStr(h) +
|
||||||
'}';
|
'}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/window/position',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/window/position',json,Respo);
|
||||||
S := Respo.DataString;
|
S := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=S;
|
self.StatusBar1.SimpleText:=S;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -672,7 +795,7 @@ begin
|
|||||||
',"y":'+IntToStr(y) +
|
',"y":'+IntToStr(y) +
|
||||||
'}';
|
'}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/input/mouseevent',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/input/mouseevent',json,Respo);
|
||||||
S := Respo.DataString;
|
S := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=S;
|
self.StatusBar1.SimpleText:=S;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -692,7 +815,7 @@ begin
|
|||||||
',"modifiers":'+IntToStr(Mods) +
|
',"modifiers":'+IntToStr(Mods) +
|
||||||
'}';
|
'}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/input/keyevent',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/input/keyevent',json,Respo);
|
||||||
S := Respo.DataString;
|
S := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=S;
|
self.StatusBar1.SimpleText:=S;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -711,7 +834,7 @@ begin
|
|||||||
'","drive":'+IntToStr(Drive) +
|
'","drive":'+IntToStr(Drive) +
|
||||||
'}';
|
'}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/hardware/disk/insert',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/hardware/disk/insert',json,Respo);
|
||||||
S := Respo.DataString;
|
S := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=json;
|
self.StatusBar1.SimpleText:=json;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -731,7 +854,7 @@ begin
|
|||||||
'","persist":'+ pval +
|
'","persist":'+ pval +
|
||||||
'}';
|
'}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/settings/update',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo);
|
||||||
S := Respo.DataString;
|
S := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=json;
|
self.StatusBar1.SimpleText:=json;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -746,7 +869,7 @@ begin
|
|||||||
json := '{"path":"' + path +
|
json := '{"path":"' + path +
|
||||||
'"}';
|
'"}';
|
||||||
Respo := TStringStream.Create('');
|
Respo := TStringStream.Create('');
|
||||||
self.hc.SimpleFormPost('http://localhost:38911/api/control/settings/get',json,Respo);
|
self.hc.SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo);
|
||||||
Result := Respo.DataString;
|
Result := Respo.DataString;
|
||||||
self.StatusBar1.SimpleText:=json;
|
self.StatusBar1.SimpleText:=json;
|
||||||
Respo.Destroy;
|
Respo.Destroy;
|
||||||
@ -790,7 +913,7 @@ begin
|
|||||||
self.ReposWindow;
|
self.ReposWindow;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGUIForm.BackdropImageClick(Sender: TObject);
|
procedure TGUIForm.backdropClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
|
||||||
end;
|
end;
|
||||||
@ -818,7 +941,7 @@ function TGUIForm.GetTitleOfActiveWindow: string;
|
|||||||
var s: string;
|
var s: string;
|
||||||
begin
|
begin
|
||||||
Result := '';
|
Result := '';
|
||||||
s := self.hc.Get('http://localhost:38911/api/control/window/focused');
|
s := self.hc.Get(baseUrl + '/api/control/window/focused');
|
||||||
if s = '1' then
|
if s = '1' then
|
||||||
Result := 'microM8';
|
Result := 'microM8';
|
||||||
end;
|
end;
|
||||||
|
73
poc.lps
73
poc.lps
@ -12,7 +12,7 @@
|
|||||||
<WindowIndex Value="-1"/>
|
<WindowIndex Value="-1"/>
|
||||||
<TopLine Value="-1"/>
|
<TopLine Value="-1"/>
|
||||||
<CursorPos X="-1" Y="-1"/>
|
<CursorPos X="-1" Y="-1"/>
|
||||||
<UsageCount Value="178"/>
|
<UsageCount Value="323"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
@ -21,141 +21,140 @@
|
|||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<IsVisibleTab Value="True"/>
|
<IsVisibleTab Value="True"/>
|
||||||
<TopLine Value="553"/>
|
<TopLine Value="239"/>
|
||||||
<CursorPos X="22" Y="572"/>
|
<CursorPos X="5" Y="260"/>
|
||||||
<UsageCount Value="178"/>
|
<UsageCount Value="323"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<LoadedDesigner Value="True"/>
|
<LoadedDesigner Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
<Unit2>
|
<Unit2>
|
||||||
<Filename Value="C:\lazarus\lcl\include\picture.inc"/>
|
<Filename Value="C:\lazarus\lcl\include\picture.inc"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="-1"/>
|
||||||
<TopLine Value="576"/>
|
<TopLine Value="576"/>
|
||||||
<CursorPos X="49" Y="591"/>
|
<CursorPos X="49" Y="591"/>
|
||||||
<UsageCount Value="66"/>
|
<UsageCount Value="136"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit2>
|
</Unit2>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="30" HistoryIndex="29">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="297" Column="78" TopLine="260"/>
|
<Caret Line="820" Column="5" TopLine="804"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="300" Column="78" TopLine="263"/>
|
<Caret Line="179" Column="42" TopLine="157"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="305" Column="16" TopLine="300"/>
|
<Caret Line="793" Column="48" TopLine="820"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="583" Column="44" TopLine="562"/>
|
<Caret Line="821" TopLine="802"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="564" Column="43" TopLine="545"/>
|
<Caret Line="811" Column="20" TopLine="785"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="569" Column="44" TopLine="545"/>
|
<Caret Line="810" Column="6" TopLine="780"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="356" Column="5" TopLine="347"/>
|
<Caret Line="799" Column="21" TopLine="782"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="283" Column="34" TopLine="270"/>
|
<Caret Line="837" Column="20" TopLine="818"/>
|
||||||
</Position8>
|
</Position8>
|
||||||
<Position9>
|
<Position9>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="281" TopLine="267"/>
|
<Caret Line="772" Column="20" TopLine="753"/>
|
||||||
</Position9>
|
</Position9>
|
||||||
<Position10>
|
<Position10>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="873" TopLine="850"/>
|
<Caret Line="777" Column="20" TopLine="758"/>
|
||||||
</Position10>
|
</Position10>
|
||||||
<Position11>
|
<Position11>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="882" Column="18" TopLine="850"/>
|
<Caret Line="182" Column="23" TopLine="167"/>
|
||||||
</Position11>
|
</Position11>
|
||||||
<Position12>
|
<Position12>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="874" TopLine="864"/>
|
<Caret Line="772" Column="20" TopLine="754"/>
|
||||||
</Position12>
|
</Position12>
|
||||||
<Position13>
|
<Position13>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="371" Column="17" TopLine="360"/>
|
<Caret Line="837" Column="28" TopLine="812"/>
|
||||||
</Position13>
|
</Position13>
|
||||||
<Position14>
|
<Position14>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="374" Column="30" TopLine="361"/>
|
<Caret Line="839" Column="59" TopLine="812"/>
|
||||||
</Position14>
|
</Position14>
|
||||||
<Position15>
|
<Position15>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="426" TopLine="411"/>
|
<Caret Line="182" Column="23" TopLine="164"/>
|
||||||
</Position15>
|
</Position15>
|
||||||
<Position16>
|
<Position16>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="422" Column="51" TopLine="411"/>
|
<Caret Line="770" Column="5" TopLine="741"/>
|
||||||
</Position16>
|
</Position16>
|
||||||
<Position17>
|
<Position17>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="475" Column="21" TopLine="445"/>
|
<Caret Line="837" Column="26" TopLine="818"/>
|
||||||
</Position17>
|
</Position17>
|
||||||
<Position18>
|
<Position18>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="439" Column="13" TopLine="420"/>
|
<Caret Line="1108" Column="9" TopLine="1077"/>
|
||||||
</Position18>
|
</Position18>
|
||||||
<Position19>
|
<Position19>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="427" TopLine="419"/>
|
<Caret Line="1268" Column="12" TopLine="1237"/>
|
||||||
</Position19>
|
</Position19>
|
||||||
<Position20>
|
<Position20>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="401" Column="12" TopLine="383"/>
|
<Caret Line="183" Column="21" TopLine="165"/>
|
||||||
</Position20>
|
</Position20>
|
||||||
<Position21>
|
<Position21>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="405" Column="30" TopLine="383"/>
|
<Caret Line="250" Column="15" TopLine="219"/>
|
||||||
</Position21>
|
</Position21>
|
||||||
<Position22>
|
<Position22>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="388" Column="3" TopLine="384"/>
|
<Caret Line="443" Column="12" TopLine="412"/>
|
||||||
</Position22>
|
</Position22>
|
||||||
<Position23>
|
<Position23>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="394" Column="3" TopLine="385"/>
|
<Caret Line="459" Column="9" TopLine="428"/>
|
||||||
</Position23>
|
</Position23>
|
||||||
<Position24>
|
<Position24>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="400" Column="3" TopLine="386"/>
|
<Caret Line="726" Column="9" TopLine="695"/>
|
||||||
</Position24>
|
</Position24>
|
||||||
<Position25>
|
<Position25>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="406" Column="3" TopLine="387"/>
|
<Caret Line="770" Column="5" TopLine="741"/>
|
||||||
</Position25>
|
</Position25>
|
||||||
<Position26>
|
<Position26>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="412" Column="34" TopLine="387"/>
|
<Caret Line="842" Column="37" TopLine="834"/>
|
||||||
</Position26>
|
</Position26>
|
||||||
<Position27>
|
<Position27>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="14" Column="19"/>
|
<Caret Line="770" Column="5" TopLine="753"/>
|
||||||
</Position27>
|
</Position27>
|
||||||
<Position28>
|
<Position28>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="189" Column="36" TopLine="167"/>
|
<Caret Line="847" Column="33" TopLine="822"/>
|
||||||
</Position28>
|
</Position28>
|
||||||
<Position29>
|
<Position29>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="577" Column="80" TopLine="559"/>
|
<Caret Line="258" Column="5" TopLine="237"/>
|
||||||
</Position29>
|
</Position29>
|
||||||
<Position30>
|
<Position30>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="572" Column="23" TopLine="553"/>
|
<Caret Line="259" Column="5" TopLine="238"/>
|
||||||
</Position30>
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
<RunParams>
|
<RunParams>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user