small windowing fix

This commit is contained in:
April Ayres-Griffiths 2019-03-31 19:57:43 +11:00
parent ab6c8b5c12
commit eab2b42af5
10 changed files with 269 additions and 88 deletions

View File

@ -1,7 +1,7 @@
object GUIForm: TGUIForm
Left = 492
Left = 2022
Height = 491
Top = 44
Top = 124
Width = 807
AlphaBlendValue = 128
Caption = 'MicroM8 Simple GUI Prototype'
@ -140,6 +140,52 @@ object GUIForm: TGUIForm
OnClick = MenuItem2Click
end
end
object miVideo: TMenuItem
Caption = 'Video'
object miScanLineInt: TMenuItem
Caption = 'Scanline Intensity'
object miSLI0: TMenuItem
Caption = '0'
OnClick = miSLIClick
end
object miSLI1: TMenuItem
Caption = '1'
OnClick = miSLIClick
end
object miSLI2: TMenuItem
Caption = '2'
OnClick = miSLIClick
end
object miSLI3: TMenuItem
Caption = '3'
OnClick = miSLIClick
end
object miSLI4: TMenuItem
Caption = '4'
OnClick = miSLIClick
end
object miSLI5: TMenuItem
Caption = '5'
OnClick = miSLIClick
end
object miSLI6: TMenuItem
Caption = '6'
OnClick = miSLIClick
end
object miSLI7: TMenuItem
Caption = '7'
OnClick = miSLIClick
end
object miSLI8: TMenuItem
Caption = '8'
OnClick = miSLIClick
end
object miSLI9: TMenuItem
Caption = '9'
OnClick = miSLIClick
end
end
end
end
object ImageList1: TImageList
Height = 48

View File

@ -26,6 +26,18 @@ type
MenuItem11: TMenuItem;
MenuItem12: TMenuItem;
MenuItem13: TMenuItem;
miSLI9: TMenuItem;
miSLI8: TMenuItem;
miSLI7: TMenuItem;
miSLI6: TMenuItem;
miSLI5: TMenuItem;
miSLI4: TMenuItem;
miSLI3: TMenuItem;
miSLI2: TMenuItem;
miSLI1: TMenuItem;
miSLI0: TMenuItem;
miScanLineInt: TMenuItem;
miVideo: TMenuItem;
miIntLOGO: TMenuItem;
miIntINT: TMenuItem;
miIntFP: TMenuItem;
@ -78,6 +90,7 @@ type
procedure miIntFPClick(Sender: TObject);
procedure miIntINTClick(Sender: TObject);
procedure miIntLOGOClick(Sender: TObject);
procedure miSLIClick(Sender: TObject);
procedure miSPEjectClick(Sender: TObject);
procedure miSPFileClick(Sender: TObject);
procedure UnFreeze;
@ -125,7 +138,7 @@ end;
procedure TGUIForm.AppActivate(Sender: TObject);
begin
StatusBar1.SimpleText := 'App has gained focus!';
//StatusBar1.SimpleText := 'App has gained focus!';
if MillisecondsBetween(Now(), lastHideTime) < 1000 then
exit;
ShowM8;
@ -134,11 +147,14 @@ end;
procedure TGUIForm.AppDeactivate(Sender: TObject);
begin
// if we have deactivated because of a click on the main window
// then sort it...
if MillisecondsBetween(Now(), lastShowTime) < 1000 then
exit;
RepaintWindow;
HideM8;
StatusBar1.SimpleText := 'App has lost focus!';
StatusBar1.SimpleText := GetTitleOfActiveWindow;
//Memo1.Lines.Add('app is deactivating');
end;
@ -204,6 +220,11 @@ begin
self.hc.Get('http://localhost:38911/api/control/interpreter/logo');
end;
procedure TGUIForm.miSLIClick(Sender: TObject);
begin
self.hc.Get('http://localhost:38911/api/control/input/meta/key/i/value/'+TMenuItem(Sender).Caption);
end;
procedure TGUIForm.miSPEjectClick(Sender: TObject);
begin
self.hc.Get('http://localhost:38911/api/control/hardware/disk/eject/2');
@ -419,8 +440,8 @@ begin
// exit;
if WindowState = wsMinimized then
exit;
if hidden then
exit;
//if hidden then
// exit;
if GetTitleOfActiveWindow = 'microM8' then
begin
//Application.Restore;
@ -428,7 +449,7 @@ begin
{$IFDEF WINDOWS}
SetForegroundWindow(Application.MainForm.Handle);
{$ENDIF}
StatusBar1.SimpleText := 'App is refocussing';
//StatusBar1.SimpleText := 'App is refocussing';
lastShowTime := Now();
end;
end;
@ -542,7 +563,7 @@ begin
else if ssCtrl in Shift then
begin
if Key = 67 then
Result = 3
Result := 3
else
Result := CTRL_A + Integer(Key-64);
end

View File

@ -12,7 +12,7 @@
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="76"/>
<UsageCount Value="82"/>
</Unit0>
<Unit1>
<Filename Value="main.pas"/>
@ -21,9 +21,9 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="174"/>
<CursorPos X="53" Y="190"/>
<UsageCount Value="76"/>
<TopLine Value="81"/>
<CursorPos X="54" Y="100"/>
<UsageCount Value="82"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
@ -32,130 +32,130 @@
<EditorIndex Value="1"/>
<TopLine Value="576"/>
<CursorPos X="49" Y="591"/>
<UsageCount Value="15"/>
<UsageCount Value="18"/>
<Loaded Value="True"/>
</Unit2>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="main.pas"/>
<Caret Line="134" Column="31" TopLine="110"/>
<Caret Line="497" Column="9" TopLine="469"/>
</Position1>
<Position2>
<Filename Value="main.pas"/>
<Caret Line="312" Column="29" TopLine="333"/>
<Caret Line="91" Column="35" TopLine="119"/>
</Position2>
<Position3>
<Filename Value="main.pas"/>
<Caret Line="69" Column="14" TopLine="47"/>
<Caret Line="320" Column="47" TopLine="305"/>
</Position3>
<Position4>
<Filename Value="main.pas"/>
<Caret Line="11" Column="11"/>
<Caret Line="311" Column="19" TopLine="291"/>
</Position4>
<Position5>
<Filename Value="main.pas"/>
<Caret Line="44" Column="48" TopLine="60"/>
<Caret Line="488" Column="25" TopLine="462"/>
</Position5>
<Position6>
<Filename Value="main.pas"/>
<Caret Line="181" Column="14" TopLine="159"/>
<Caret Line="487" Column="14" TopLine="465"/>
</Position6>
<Position7>
<Filename Value="main.pas"/>
<Caret Line="146" Column="36" TopLine="118"/>
<Caret Line="468" Column="42" TopLine="444"/>
</Position7>
<Position8>
<Filename Value="main.pas"/>
<Caret Line="104" Column="9" TopLine="82"/>
<Caret Line="469" Column="41" TopLine="450"/>
</Position8>
<Position9>
<Filename Value="main.pas"/>
<Caret Line="78" Column="21" TopLine="93"/>
<Caret Line="464" Column="10" TopLine="451"/>
</Position9>
<Position10>
<Filename Value="main.pas"/>
<Caret Line="139" Column="27" TopLine="123"/>
<Caret Line="471" Column="6" TopLine="444"/>
</Position10>
<Position11>
<Filename Value="main.pas"/>
<Caret Line="107" Column="45" TopLine="83"/>
<Caret Line="477" Column="37" TopLine="451"/>
</Position11>
<Position12>
<Filename Value="main.pas"/>
<Caret Line="114" Column="44" TopLine="97"/>
<Caret Line="460" Column="16" TopLine="440"/>
</Position12>
<Position13>
<Filename Value="main.pas"/>
<Caret Line="113" Column="44" TopLine="96"/>
<Caret Line="527" Column="55" TopLine="495"/>
</Position13>
<Position14>
<Filename Value="main.pas"/>
<Caret Line="389" Column="5" TopLine="255"/>
<Caret Line="458" Column="19" TopLine="443"/>
</Position14>
<Position15>
<Filename Value="main.pas"/>
<Caret Line="396" Column="5" TopLine="356"/>
<Caret Line="571" Column="53" TopLine="548"/>
</Position15>
<Position16>
<Filename Value="main.pas"/>
<Caret Line="136" Column="5" TopLine="106"/>
<Caret Line="458" Column="24" TopLine="489"/>
</Position16>
<Position17>
<Filename Value="main.pas"/>
<Caret Line="77" Column="15" TopLine="47"/>
<Caret Line="539" Column="41" TopLine="502"/>
</Position17>
<Position18>
<Filename Value="main.pas"/>
<Caret Line="137" Column="29" TopLine="117"/>
<Caret Line="540" Column="41" TopLine="503"/>
</Position18>
<Position19>
<Filename Value="main.pas"/>
<Caret Line="142" Column="17" TopLine="109"/>
<Caret Line="541" Column="41" TopLine="504"/>
</Position19>
<Position20>
<Filename Value="main.pas"/>
<Caret Line="254" Column="67" TopLine="228"/>
<Caret Line="542" Column="41" TopLine="505"/>
</Position20>
<Position21>
<Filename Value="main.pas"/>
<Caret Line="286" Column="35" TopLine="255"/>
<Caret Line="543" Column="41" TopLine="506"/>
</Position21>
<Position22>
<Filename Value="main.pas"/>
<Caret Line="308" Column="3" TopLine="306"/>
<Caret Line="544" Column="41" TopLine="507"/>
</Position22>
<Position23>
<Filename Value="main.pas"/>
<Caret Line="315" Column="3" TopLine="313"/>
<Caret Line="545" Column="41" TopLine="508"/>
</Position23>
<Position24>
<Filename Value="main.pas"/>
<Caret Line="162" Column="53" TopLine="135"/>
<Caret Line="546" Column="41" TopLine="509"/>
</Position24>
<Position25>
<Filename Value="main.pas"/>
<Caret Line="158" Column="27" TopLine="125"/>
<Caret Line="547" Column="41" TopLine="510"/>
</Position25>
<Position26>
<Filename Value="main.pas"/>
<Caret Line="160" Column="27" TopLine="127"/>
<Caret Line="548" Column="41" TopLine="511"/>
</Position26>
<Position27>
<Filename Value="main.pas"/>
<Caret Line="187" Column="33" TopLine="156"/>
<Caret Line="549" Column="41" TopLine="512"/>
</Position27>
<Position28>
<Filename Value="main.pas"/>
<Caret Line="188" Column="33" TopLine="157"/>
<Caret Line="550" Column="41" TopLine="513"/>
</Position28>
<Position29>
<Filename Value="main.pas"/>
<Caret Line="189" Column="33" TopLine="158"/>
<Caret Line="557" Column="41" TopLine="520"/>
</Position29>
<Position30>
<Filename Value="main.pas"/>
<Caret Line="196" Column="33" TopLine="160"/>
<Caret Line="233" Column="68" TopLine="219"/>
</Position30>
</JumpHistory>
<RunParams>

View File

@ -1,7 +1,7 @@
object GUIForm: TGUIForm
Left = 492
Left = 2022
Height = 491
Top = 44
Top = 124
Width = 807
AlphaBlendValue = 128
Caption = 'MicroM8 Simple GUI Prototype'
@ -140,6 +140,52 @@ object GUIForm: TGUIForm
OnClick = MenuItem2Click
end
end
object miVideo: TMenuItem
Caption = 'Video'
object miScanLineInt: TMenuItem
Caption = 'Scanline Intensity'
object miSLI0: TMenuItem
Caption = '0'
OnClick = miSLIClick
end
object miSLI1: TMenuItem
Caption = '1'
OnClick = miSLIClick
end
object miSLI2: TMenuItem
Caption = '2'
OnClick = miSLIClick
end
object miSLI3: TMenuItem
Caption = '3'
OnClick = miSLIClick
end
object miSLI4: TMenuItem
Caption = '4'
OnClick = miSLIClick
end
object miSLI5: TMenuItem
Caption = '5'
OnClick = miSLIClick
end
object miSLI6: TMenuItem
Caption = '6'
OnClick = miSLIClick
end
object miSLI7: TMenuItem
Caption = '7'
OnClick = miSLIClick
end
object miSLI8: TMenuItem
Caption = '8'
OnClick = miSLIClick
end
object miSLI9: TMenuItem
Caption = '9'
OnClick = miSLIClick
end
end
end
end
object ImageList1: TImageList
Height = 48

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,7 +1,7 @@
object GUIForm: TGUIForm
Left = 492
Left = 2022
Height = 491
Top = 44
Top = 124
Width = 807
AlphaBlendValue = 128
Caption = 'MicroM8 Simple GUI Prototype'
@ -140,6 +140,52 @@ object GUIForm: TGUIForm
OnClick = MenuItem2Click
end
end
object miVideo: TMenuItem
Caption = 'Video'
object miScanLineInt: TMenuItem
Caption = 'Scanline Intensity'
object miSLI0: TMenuItem
Caption = '0'
OnClick = miSLIClick
end
object miSLI1: TMenuItem
Caption = '1'
OnClick = miSLIClick
end
object miSLI2: TMenuItem
Caption = '2'
OnClick = miSLIClick
end
object miSLI3: TMenuItem
Caption = '3'
OnClick = miSLIClick
end
object miSLI4: TMenuItem
Caption = '4'
OnClick = miSLIClick
end
object miSLI5: TMenuItem
Caption = '5'
OnClick = miSLIClick
end
object miSLI6: TMenuItem
Caption = '6'
OnClick = miSLIClick
end
object miSLI7: TMenuItem
Caption = '7'
OnClick = miSLIClick
end
object miSLI8: TMenuItem
Caption = '8'
OnClick = miSLIClick
end
object miSLI9: TMenuItem
Caption = '9'
OnClick = miSLIClick
end
end
end
end
object ImageList1: TImageList
Height = 48

View File

@ -26,6 +26,18 @@ type
MenuItem11: TMenuItem;
MenuItem12: TMenuItem;
MenuItem13: TMenuItem;
miSLI9: TMenuItem;
miSLI8: TMenuItem;
miSLI7: TMenuItem;
miSLI6: TMenuItem;
miSLI5: TMenuItem;
miSLI4: TMenuItem;
miSLI3: TMenuItem;
miSLI2: TMenuItem;
miSLI1: TMenuItem;
miSLI0: TMenuItem;
miScanLineInt: TMenuItem;
miVideo: TMenuItem;
miIntLOGO: TMenuItem;
miIntINT: TMenuItem;
miIntFP: TMenuItem;
@ -78,6 +90,7 @@ type
procedure miIntFPClick(Sender: TObject);
procedure miIntINTClick(Sender: TObject);
procedure miIntLOGOClick(Sender: TObject);
procedure miSLIClick(Sender: TObject);
procedure miSPEjectClick(Sender: TObject);
procedure miSPFileClick(Sender: TObject);
procedure UnFreeze;
@ -125,7 +138,7 @@ end;
procedure TGUIForm.AppActivate(Sender: TObject);
begin
StatusBar1.SimpleText := 'App has gained focus!';
//StatusBar1.SimpleText := 'App has gained focus!';
if MillisecondsBetween(Now(), lastHideTime) < 1000 then
exit;
ShowM8;
@ -134,11 +147,15 @@ end;
procedure TGUIForm.AppDeactivate(Sender: TObject);
begin
// if we have deactivated because of a click on the main window
// then sort it...
if MillisecondsBetween(Now(), lastShowTime) < 1000 then
exit;
RepaintWindow;
HideM8;
StatusBar1.SimpleText := 'App has lost focus!';
if GetTitleOfActiveWindow <> 'microM8' then
HideM8;
StatusBar1.SimpleText := GetTitleOfActiveWindow;
//Memo1.Lines.Add('app is deactivating');
end;
@ -204,6 +221,11 @@ begin
self.hc.Get('http://localhost:38911/api/control/interpreter/logo');
end;
procedure TGUIForm.miSLIClick(Sender: TObject);
begin
self.hc.Get('http://localhost:38911/api/control/input/meta/key/i/value/'+TMenuItem(Sender).Caption);
end;
procedure TGUIForm.miSPEjectClick(Sender: TObject);
begin
self.hc.Get('http://localhost:38911/api/control/hardware/disk/eject/2');
@ -419,8 +441,8 @@ begin
// exit;
if WindowState = wsMinimized then
exit;
if hidden then
exit;
//if hidden then
// exit;
if GetTitleOfActiveWindow = 'microM8' then
begin
//Application.Restore;
@ -428,7 +450,7 @@ begin
{$IFDEF WINDOWS}
SetForegroundWindow(Application.MainForm.Handle);
{$ENDIF}
StatusBar1.SimpleText := 'App is refocussing';
//StatusBar1.SimpleText := 'App is refocussing';
lastShowTime := Now();
end;
end;

70
poc.lps
View File

@ -12,7 +12,7 @@
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="77"/>
<UsageCount Value="82"/>
</Unit0>
<Unit1>
<Filename Value="main.pas"/>
@ -21,9 +21,9 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="145"/>
<CursorPos X="23" Y="161"/>
<UsageCount Value="77"/>
<TopLine Value="399"/>
<CursorPos X="99" Y="417"/>
<UsageCount Value="82"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
@ -32,130 +32,130 @@
<EditorIndex Value="1"/>
<TopLine Value="576"/>
<CursorPos X="49" Y="591"/>
<UsageCount Value="16"/>
<UsageCount Value="18"/>
<Loaded Value="True"/>
</Unit2>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="main.pas"/>
<Caret Line="69" Column="14" TopLine="47"/>
<Caret Line="91" Column="35" TopLine="119"/>
</Position1>
<Position2>
<Filename Value="main.pas"/>
<Caret Line="11" Column="11"/>
<Caret Line="320" Column="47" TopLine="305"/>
</Position2>
<Position3>
<Filename Value="main.pas"/>
<Caret Line="44" Column="48" TopLine="60"/>
<Caret Line="311" Column="19" TopLine="291"/>
</Position3>
<Position4>
<Filename Value="main.pas"/>
<Caret Line="181" Column="14" TopLine="159"/>
<Caret Line="488" Column="25" TopLine="462"/>
</Position4>
<Position5>
<Filename Value="main.pas"/>
<Caret Line="146" Column="36" TopLine="118"/>
<Caret Line="487" Column="14" TopLine="465"/>
</Position5>
<Position6>
<Filename Value="main.pas"/>
<Caret Line="104" Column="9" TopLine="82"/>
<Caret Line="468" Column="42" TopLine="444"/>
</Position6>
<Position7>
<Filename Value="main.pas"/>
<Caret Line="78" Column="21" TopLine="93"/>
<Caret Line="469" Column="41" TopLine="450"/>
</Position7>
<Position8>
<Filename Value="main.pas"/>
<Caret Line="139" Column="27" TopLine="123"/>
<Caret Line="464" Column="10" TopLine="451"/>
</Position8>
<Position9>
<Filename Value="main.pas"/>
<Caret Line="107" Column="45" TopLine="83"/>
<Caret Line="471" Column="6" TopLine="444"/>
</Position9>
<Position10>
<Filename Value="main.pas"/>
<Caret Line="114" Column="44" TopLine="97"/>
<Caret Line="477" Column="37" TopLine="451"/>
</Position10>
<Position11>
<Filename Value="main.pas"/>
<Caret Line="113" Column="44" TopLine="96"/>
<Caret Line="460" Column="16" TopLine="440"/>
</Position11>
<Position12>
<Filename Value="main.pas"/>
<Caret Line="389" Column="5" TopLine="255"/>
<Caret Line="527" Column="55" TopLine="495"/>
</Position12>
<Position13>
<Filename Value="main.pas"/>
<Caret Line="396" Column="5" TopLine="356"/>
<Caret Line="458" Column="19" TopLine="443"/>
</Position13>
<Position14>
<Filename Value="main.pas"/>
<Caret Line="136" Column="5" TopLine="106"/>
<Caret Line="571" Column="53" TopLine="548"/>
</Position14>
<Position15>
<Filename Value="main.pas"/>
<Caret Line="77" Column="15" TopLine="47"/>
<Caret Line="458" Column="24" TopLine="489"/>
</Position15>
<Position16>
<Filename Value="main.pas"/>
<Caret Line="137" Column="29" TopLine="117"/>
<Caret Line="539" Column="41" TopLine="502"/>
</Position16>
<Position17>
<Filename Value="main.pas"/>
<Caret Line="142" Column="17" TopLine="109"/>
<Caret Line="540" Column="41" TopLine="503"/>
</Position17>
<Position18>
<Filename Value="main.pas"/>
<Caret Line="254" Column="67" TopLine="228"/>
<Caret Line="541" Column="41" TopLine="504"/>
</Position18>
<Position19>
<Filename Value="main.pas"/>
<Caret Line="286" Column="35" TopLine="255"/>
<Caret Line="542" Column="41" TopLine="505"/>
</Position19>
<Position20>
<Filename Value="main.pas"/>
<Caret Line="308" Column="3" TopLine="306"/>
<Caret Line="543" Column="41" TopLine="506"/>
</Position20>
<Position21>
<Filename Value="main.pas"/>
<Caret Line="315" Column="3" TopLine="313"/>
<Caret Line="544" Column="41" TopLine="507"/>
</Position21>
<Position22>
<Filename Value="main.pas"/>
<Caret Line="162" Column="53" TopLine="135"/>
<Caret Line="545" Column="41" TopLine="508"/>
</Position22>
<Position23>
<Filename Value="main.pas"/>
<Caret Line="158" Column="27" TopLine="125"/>
<Caret Line="546" Column="41" TopLine="509"/>
</Position23>
<Position24>
<Filename Value="main.pas"/>
<Caret Line="160" Column="27" TopLine="127"/>
<Caret Line="547" Column="41" TopLine="510"/>
</Position24>
<Position25>
<Filename Value="main.pas"/>
<Caret Line="187" Column="33" TopLine="156"/>
<Caret Line="548" Column="41" TopLine="511"/>
</Position25>
<Position26>
<Filename Value="main.pas"/>
<Caret Line="188" Column="33" TopLine="157"/>
<Caret Line="549" Column="41" TopLine="512"/>
</Position26>
<Position27>
<Filename Value="main.pas"/>
<Caret Line="189" Column="33" TopLine="158"/>
<Caret Line="550" Column="41" TopLine="513"/>
</Position27>
<Position28>
<Filename Value="main.pas"/>
<Caret Line="196" Column="33" TopLine="160"/>
<Caret Line="557" Column="41" TopLine="520"/>
</Position28>
<Position29>
<Filename Value="main.pas"/>
<Caret Line="200" Column="48" TopLine="174"/>
<Caret Line="233" Column="68" TopLine="219"/>
</Position29>
<Position30>
<Filename Value="main.pas"/>
<Caret Line="207" Column="48" TopLine="176"/>
<Caret Line="100" Column="54" TopLine="81"/>
</Position30>
</JumpHistory>
<RunParams>