mirror of
https://github.com/moparisthebest/Simba
synced 2025-01-31 07:10:28 -05:00
IOManager branch compiles --- key/mouse methods need os implementation still
git-svn-id: http://www.villavu.com/repositories/merlijn/mufasa@437 3f818213-9676-44b0-a9b4-5e4c4e03d09d
This commit is contained in:
parent
9cd2a2d876
commit
0a41342cec
@ -10,7 +10,7 @@
|
||||
<TargetFileExt Value=""/>
|
||||
<Title Value="Simba"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<ActiveEditorIndexAtStart Value="1"/>
|
||||
<ActiveEditorIndexAtStart Value="0"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
@ -138,8 +138,8 @@
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="TestUnit"/>
|
||||
<ComponentState Value="1"/>
|
||||
<CursorPos X="64" Y="1539"/>
|
||||
<TopLine Value="1532"/>
|
||||
<CursorPos X="1" Y="1673"/>
|
||||
<TopLine Value="1656"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="202"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -215,7 +215,7 @@
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="Window"/>
|
||||
<CursorPos X="31" Y="59"/>
|
||||
<TopLine Value="42"/>
|
||||
<TopLine Value="174"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="201"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -249,7 +249,7 @@
|
||||
<UnitName Value="finder"/>
|
||||
<CursorPos X="10" Y="2000"/>
|
||||
<TopLine Value="1972"/>
|
||||
<EditorIndex Value="15"/>
|
||||
<EditorIndex Value="14"/>
|
||||
<UsageCount Value="201"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit27>
|
||||
@ -353,7 +353,7 @@
|
||||
<UnitName Value="bitmaps"/>
|
||||
<CursorPos X="22" Y="681"/>
|
||||
<TopLine Value="671"/>
|
||||
<EditorIndex Value="14"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit42>
|
||||
@ -368,7 +368,7 @@
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/colour.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<UsageCount Value="34"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit44>
|
||||
@ -490,7 +490,7 @@
|
||||
<UnitName Value="colour_conv"/>
|
||||
<CursorPos X="1" Y="332"/>
|
||||
<TopLine Value="290"/>
|
||||
<EditorIndex Value="16"/>
|
||||
<EditorIndex Value="15"/>
|
||||
<UsageCount Value="201"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit62>
|
||||
@ -504,7 +504,7 @@
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/other.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="45"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit64>
|
||||
@ -1600,7 +1600,7 @@
|
||||
<UnitName Value="framefunctionlist"/>
|
||||
<CursorPos X="26" Y="295"/>
|
||||
<TopLine Value="7"/>
|
||||
<UsageCount Value="147"/>
|
||||
<UsageCount Value="148"/>
|
||||
</Unit223>
|
||||
<Unit224>
|
||||
<Filename Value="../../../usr/local/share/lazarus/lcl/comctrls.pp"/>
|
||||
@ -1655,7 +1655,7 @@
|
||||
<UnitName Value="simpleanalyzer"/>
|
||||
<CursorPos X="52" Y="104"/>
|
||||
<TopLine Value="193"/>
|
||||
<UsageCount Value="134"/>
|
||||
<UsageCount Value="135"/>
|
||||
</Unit231>
|
||||
<Unit232>
|
||||
<Filename Value="../../Units/Misc/mPasLex.pas"/>
|
||||
@ -1715,7 +1715,7 @@
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
|
||||
<CursorPos X="30" Y="109"/>
|
||||
<TopLine Value="98"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="23"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit240>
|
||||
@ -1732,7 +1732,7 @@
|
||||
<UnitName Value="updater"/>
|
||||
<CursorPos X="38" Y="211"/>
|
||||
<TopLine Value="65"/>
|
||||
<UsageCount Value="107"/>
|
||||
<UsageCount Value="108"/>
|
||||
</Unit242>
|
||||
<Unit243>
|
||||
<Filename Value="updateform.pas"/>
|
||||
@ -1742,8 +1742,8 @@
|
||||
<UnitName Value="updateform"/>
|
||||
<CursorPos X="111" Y="102"/>
|
||||
<TopLine Value="81"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="102"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="103"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit243>
|
||||
<Unit244>
|
||||
@ -1865,7 +1865,7 @@
|
||||
<UnitName Value="simbasettings"/>
|
||||
<CursorPos X="26" Y="9"/>
|
||||
<TopLine Value="11"/>
|
||||
<UsageCount Value="65"/>
|
||||
<UsageCount Value="66"/>
|
||||
</Unit261>
|
||||
<Unit262>
|
||||
<Filename Value="../../Units/MMLAddon/settings.pas"/>
|
||||
@ -1910,7 +1910,7 @@
|
||||
<UnitName Value="reportbug"/>
|
||||
<CursorPos X="53" Y="23"/>
|
||||
<TopLine Value="21"/>
|
||||
<UsageCount Value="48"/>
|
||||
<UsageCount Value="49"/>
|
||||
</Unit267>
|
||||
<Unit268>
|
||||
<Filename Value="../../Units/Synapse/synsock.pas"/>
|
||||
@ -1967,7 +1967,7 @@
|
||||
<UnitName Value="newinternets"/>
|
||||
<CursorPos X="80" Y="2"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="44"/>
|
||||
<UsageCount Value="45"/>
|
||||
</Unit275>
|
||||
<Unit276>
|
||||
<Filename Value="reportbug.lrs"/>
|
||||
@ -2013,8 +2013,8 @@
|
||||
<Unit282>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<UnitName Value="IOManager"/>
|
||||
<CursorPos X="84" Y="329"/>
|
||||
<TopLine Value="318"/>
|
||||
<CursorPos X="1" Y="229"/>
|
||||
<TopLine Value="212"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="14"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -2022,8 +2022,8 @@
|
||||
<Unit283>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<UnitName Value="os_linux"/>
|
||||
<CursorPos X="1" Y="141"/>
|
||||
<TopLine Value="124"/>
|
||||
<CursorPos X="40" Y="41"/>
|
||||
<TopLine Value="12"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="14"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -2033,132 +2033,126 @@
|
||||
<UnitName Value="Mouse"/>
|
||||
<CursorPos X="21" Y="30"/>
|
||||
<TopLine Value="12"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="12"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit284>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<JumpHistory Count="29" HistoryIndex="28">
|
||||
<Position1>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="1275" Column="21" TopLine="1258"/>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<Caret Line="155" Column="48" TopLine="139"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="579" Column="45" TopLine="573"/>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<Caret Line="175" Column="5" TopLine="141"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="1277" Column="11" TopLine="1259"/>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<Caret Line="151" Column="34" TopLine="130"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="290" Column="11" TopLine="273"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="201" Column="24" TopLine="185"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="579" Column="62" TopLine="562"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="271" Column="33" TopLine="254"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="228" Column="22" TopLine="1"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="184" Column="39" TopLine="167"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="../../Units/MMLAddon/windowselector.pas"/>
|
||||
<Caret Line="139" Column="54" TopLine="116"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="288" Column="23" TopLine="271"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="32" Column="13" TopLine="23"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="291" Column="18" TopLine="274"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="49" Column="46" TopLine="32"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="298" Column="120" TopLine="281"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="59" Column="26" TopLine="42"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="302" Column="32" TopLine="285"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="49" Column="38" TopLine="32"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="173" Column="31" TopLine="156"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="59" Column="26" TopLine="42"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="308" Column="43" TopLine="291"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="83" Column="1" TopLine="66"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="384" Column="32" TopLine="367"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="85" Column="44" TopLine="68"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="413" Column="39" TopLine="397"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="109" Column="24" TopLine="92"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="449" Column="32" TopLine="418"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="283" Column="15" TopLine="129"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="109" Column="79" TopLine="93"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="115" Column="18" TopLine="97"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="236" Column="17" TopLine="220"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="118" Column="35" TopLine="101"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="327" Column="105" TopLine="311"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="../../Units/MMLAddon/windowselector.pas"/>
|
||||
<Caret Line="32" Column="39" TopLine="23"/>
|
||||
<Filename Value="../../Units/MMLCore/window.pas"/>
|
||||
<Caret Line="163" Column="1" TopLine="145"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="../../Units/MMLAddon/windowselector.pas"/>
|
||||
<Caret Line="196" Column="25" TopLine="86"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="322" Column="32" TopLine="309"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="../../Units/MMLAddon/windowselector.pas"/>
|
||||
<Caret Line="143" Column="25" TopLine="115"/>
|
||||
<Caret Line="99" Column="39" TopLine="82"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="37" Column="60" TopLine="16"/>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<Caret Line="40" Column="49" TopLine="12"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="576" Column="53" TopLine="562"/>
|
||||
<Filename Value="../../Units/MMLAddon/windowselector.pas"/>
|
||||
<Caret Line="51" Column="26" TopLine="33"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="1273" Column="85" TopLine="1256"/>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<Caret Line="47" Column="30" TopLine="23"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="309" Column="12" TopLine="298"/>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<Caret Line="32" Column="15" TopLine="23"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="1275" Column="46" TopLine="1257"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="167" Column="21" TopLine="150"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="1548" Column="9" TopLine="1531"/>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<Caret Line="154" Column="25" TopLine="144"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="1304" Column="10" TopLine="1287"/>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<Caret Line="41" Column="40" TopLine="12"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="1548" Column="10" TopLine="1531"/>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="229" Column="1" TopLine="212"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
<Caret Line="229" Column="22" TopLine="206"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
@ -3,7 +3,7 @@ unit IOManager;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, mufasatypes;
|
||||
Classes, SysUtils, mufasatypes, graphics, LCLType, bitmaps, LCLIntf;
|
||||
|
||||
type
|
||||
|
||||
@ -40,7 +40,7 @@ interface
|
||||
TRawTarget = class(TTarget)
|
||||
public
|
||||
constructor Create(rgb: prgb32; w,h: integer);
|
||||
destructor Destory; override;
|
||||
destructor Destroy; override;
|
||||
|
||||
procedure GetTargetDimensions(var w, h: integer); override;
|
||||
function ReturnData(xs, ys, width, height: Integer): TRetData; override;
|
||||
@ -65,7 +65,7 @@ interface
|
||||
procedure SendString(str: PChar); override; abstract;
|
||||
procedure HoldKey(key: integer); override; abstract;
|
||||
procedure ReleaseKey(key: integer); override; abstract;
|
||||
function IsKeyHeld(key: integer): boolean; override; abstract;\
|
||||
function IsKeyHeld(key: integer): boolean; override; abstract;
|
||||
end;
|
||||
|
||||
{ Contains the pointers to a non-internal target implementation using the EIOS specification.
|
||||
@ -104,10 +104,9 @@ interface
|
||||
TEIOS_Target = class(TTarget)
|
||||
public
|
||||
constructor Create(client: TEIOS_Client; initval: pointer);
|
||||
destructor Destory; override;
|
||||
destructor Destroy; override;
|
||||
|
||||
procedure GetTargetDimensions(var w, h: integer); override;
|
||||
function GetColor(x,y : integer) : TColor; override;
|
||||
function ReturnData(xs, ys, width, height: Integer): TRetData; override;
|
||||
|
||||
procedure GetMousePosition(var x,y: integer); override;
|
||||
@ -152,8 +151,8 @@ interface
|
||||
function GetClient(name: string): TEIOS_Client;
|
||||
|
||||
private
|
||||
function FindClient(name:string): integer;
|
||||
plugs: array of TEIOS_LoadedPlugin;
|
||||
function FindClient(name:string): integer;
|
||||
end;
|
||||
|
||||
{ This class specifies the object that will go in the ThreadVar to give the script access
|
||||
@ -170,7 +169,7 @@ interface
|
||||
|
||||
procedure SetDesktop; virtual; abstract;
|
||||
function SetTarget(ArrPtr: PRGB32; Size: TPoint): integer; overload;
|
||||
function SetTarget(Bitmap : TMufasaBitmap) : integer; overload;
|
||||
function SetTarget(bmp : TMufasaBitmap) : integer; overload;
|
||||
function SetTarget(name: string; initargs: pointer): integer; overload;
|
||||
function TargetValid: Boolean;
|
||||
|
||||
@ -179,9 +178,10 @@ interface
|
||||
procedure FreeReturnData;
|
||||
|
||||
procedure GetDimensions(var W, H: Integer);
|
||||
procedure ActivateClient;
|
||||
|
||||
property Frozen: boolean read IsFrozen;
|
||||
procedure SetFrozen(frozen: boolean);
|
||||
function IsFrozen: boolean;
|
||||
procedure SetFrozen(makefrozen: boolean);
|
||||
|
||||
procedure GetMousePos(var X, Y: Integer);
|
||||
procedure SetMousePos(X, Y: Integer);
|
||||
@ -198,7 +198,7 @@ interface
|
||||
protected
|
||||
controller: TEIOS_Controller;
|
||||
keymouse: TTarget;
|
||||
image: TTarget
|
||||
image: TTarget;
|
||||
frozen: TTarget;
|
||||
freezebuffer: prgb32;
|
||||
bothsame: boolean;
|
||||
@ -233,8 +233,8 @@ implementation
|
||||
begin
|
||||
if bothsame then keymouse.Destroy() else
|
||||
begin
|
||||
keymouse.Destroy();
|
||||
image.Destroy();
|
||||
keymouse.Free();
|
||||
image.Free();
|
||||
end;
|
||||
if frozen <> nil then frozen.Destroy();
|
||||
if controller <> nil then controller.Destroy();
|
||||
@ -244,13 +244,13 @@ implementation
|
||||
begin
|
||||
if frozen <> nil then
|
||||
raise Exception.Create('You cannot set a target when Frozen');
|
||||
if not(bothsame) then image.Destroy();
|
||||
if not(bothsame) then image.Free();
|
||||
image:= target;
|
||||
bothsame:= false;
|
||||
end;
|
||||
procedure TIOManager_Abstract.SetKeyMouseTarget(target: TTarget);
|
||||
begin
|
||||
if not(bothsame) then keymouse.Destroy();
|
||||
if not(bothsame) then keymouse.Free();
|
||||
keymouse:= target;
|
||||
bothsame:= false;
|
||||
end;
|
||||
@ -260,8 +260,8 @@ implementation
|
||||
raise Exception.Create('You cannot set a target when Frozen');
|
||||
if bothsame then image.Destroy() else
|
||||
begin
|
||||
image.Destroy();
|
||||
keymouse.Destroy();
|
||||
image.Free();
|
||||
keymouse.Free();
|
||||
end;
|
||||
image:= target;
|
||||
keymouse:= target;
|
||||
@ -285,17 +285,22 @@ implementation
|
||||
end else if frozen = nil then
|
||||
begin
|
||||
frozen:= image;
|
||||
frozen.GetDimensions(w,h);
|
||||
frozen.GetTargetDimensions(w,h);
|
||||
buffer:= frozen.ReturnData(0,0,w,h);
|
||||
GetMem(freezebuffer, w * h * sizeof(TRGB32));
|
||||
Move(PtrReturn.Ptr[0], freezebuffer[0], w*h*sizeof(TRGB32));
|
||||
Move(buffer.Ptr[0], freezebuffer[0], w*h*sizeof(TRGB32));
|
||||
frozen.FreeReturnData;
|
||||
image:= TRawTarget.Create(freezebuffer,w,h);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
function TIOManager_Abstract.IsFrozen: boolean;
|
||||
begin
|
||||
result:= frozen <> nil;
|
||||
end;
|
||||
|
||||
function TIOManager_Abstract.GetColor(x,y : integer) : TColor; begin result:= image.GetColor(x,y); end;
|
||||
function TIOManager_Abstract.ReturnData(xs,yx,width,height: integer): TRetData; begin result:= image.ReturnData(xs,yx,width,height); end;
|
||||
function TIOManager_Abstract.ReturnData(xs,ys,width,height: integer): TRetData; begin result:= image.ReturnData(xs,ys,width,height); end;
|
||||
procedure TIOManager_Abstract.FreeReturnData; begin image.freeReturnData(); end;
|
||||
|
||||
function TIOManager_Abstract.SetTarget(ArrPtr: PRGB32; Size: TPoint): integer; begin SetImageTarget(TRawTarget.Create(ArrPtr,Size.X,Size.Y)); end;
|
||||
@ -303,9 +308,9 @@ implementation
|
||||
function TIOManager_Abstract.SetTarget(name: string; initargs: pointer): integer;
|
||||
var
|
||||
client: TEIOS_Client;
|
||||
begin
|
||||
begin
|
||||
if not controller.ClientExists(name) then raise Exception.Create('EIOS Client by specified name does not exist');
|
||||
client:= controller.GetClient(name);
|
||||
if client = nil then raise Exception.Create('EIOS Client by specified name does not exist');
|
||||
SetBothTargets(TEIOS_Target.Create(client, initargs));
|
||||
end;
|
||||
|
||||
@ -313,6 +318,21 @@ implementation
|
||||
begin
|
||||
result:= (keymouse <> nil) and (image <> nil);
|
||||
end;
|
||||
|
||||
procedure TIOManager_Abstract.GetDimensions(var W, H: Integer); begin image.GetTargetDimensions(w,h) end;
|
||||
procedure TIOManager_Abstract.ActivateClient; begin {lolwat} end;
|
||||
|
||||
procedure TIOManager_Abstract.GetMousePos(var X, Y: Integer); begin keymouse.GetMousePosition(x,y) end;
|
||||
procedure TIOManager_Abstract.SetMousePos(X, Y: Integer); begin keymouse.MoveMouse(x,y); end;
|
||||
procedure TIOManager_Abstract.MouseButtonAction(x,y : integer; mClick: TClickType; mPress: TMousePress); begin {lolwat} end;
|
||||
procedure TIOManager_Abstract.MouseButtonActionSilent(x,y : integer; mClick: TClickType; mPress: TMousePress); begin {lolwat} end;
|
||||
procedure TIOManager_Abstract.ClickMouse(X, Y: Integer; mClick: TClickType); begin {lolwat} end;
|
||||
|
||||
procedure TIOManager_Abstract.KeyUp(key: Word); begin keymouse.ReleaseKey(key) end;
|
||||
procedure TIOManager_Abstract.KeyDown(key: Word); begin keymouse.HoldKey(key) end;
|
||||
procedure TIOManager_Abstract.PressKey(key: Word); begin {lolwat} end;
|
||||
procedure TIOManager_Abstract.SendText(text: string); begin keymouse.SendString(PChar(@text[1])); end;
|
||||
function TIOManager_Abstract.isKeyDown(key: Word): Boolean; begin result:= keymouse.IsKeyHeld(key); end;
|
||||
|
||||
//***implementation*** TTarget
|
||||
|
||||
@ -381,7 +401,7 @@ implementation
|
||||
self.h:= h;
|
||||
end;
|
||||
|
||||
destructor TRawTarget.Destory;
|
||||
destructor TRawTarget.Destroy;
|
||||
begin
|
||||
{do nothing}
|
||||
inherited Destroy;
|
||||
@ -410,7 +430,7 @@ implementation
|
||||
//Load plugins from plugins folder
|
||||
end;
|
||||
|
||||
destructor TEIOS_Controller.Destroy
|
||||
destructor TEIOS_Controller.Destroy;
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
@ -447,8 +467,6 @@ implementation
|
||||
i:= FindClient(name);
|
||||
if i >= 0 then
|
||||
result:= plugs[i].client
|
||||
else
|
||||
result:= nil;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -6,7 +6,9 @@ interface
|
||||
Classes, SysUtils, mufasatypes, xlib, x, xutil, IOManager;
|
||||
|
||||
type
|
||||
|
||||
|
||||
TNativeWindow = x.TWindow;
|
||||
|
||||
TWindow = class(TWindow_Abstract)
|
||||
public
|
||||
constructor Create(display: PDisplay; screennum: integer; window: x.TWindow);
|
||||
@ -35,12 +37,12 @@ interface
|
||||
TIOManager = class(TIOManager_Abstract)
|
||||
public
|
||||
constructor Create(plugin_dir: string);
|
||||
destructor Destroy; override;
|
||||
function SetTarget(target: x.TWindow): integer; overload;
|
||||
procedure SetDesktop;
|
||||
function SetTarget(target: TNativeWindow): integer; overload;
|
||||
procedure SetDesktop; override;
|
||||
private
|
||||
procedure NativeInit; override;
|
||||
procedure NativeFree; override;
|
||||
public
|
||||
display: PDisplay;
|
||||
screennum: integer;
|
||||
desktop: x.TWindow;
|
||||
@ -49,6 +51,8 @@ interface
|
||||
|
||||
implementation
|
||||
|
||||
uses windowutil, GraphType;
|
||||
|
||||
//***implementation*** TWindow
|
||||
|
||||
constructor TWindow.Create(display: PDisplay; screennum: integer; window: x.TWindow);
|
||||
@ -77,7 +81,7 @@ implementation
|
||||
if XGetWindowAttributes(display, window, @Attrib) <> 0 Then
|
||||
begin
|
||||
{ I don't think we need this XTranslateCoordinates... :D }
|
||||
XTranslateCoordinates(display, seld.window, RootWindow(display, screennum), 0,0, @newx, @newy, @childwindow);
|
||||
XTranslateCoordinates(display, window, RootWindow(display, screennum), 0,0, @newx, @newy, @childwindow);
|
||||
W := Attrib.Width;
|
||||
H := Attrib.Height;
|
||||
end else
|
||||
@ -92,8 +96,9 @@ implementation
|
||||
function TWindow.ReturnData(xs, ys, width, height: Integer): TRetData;
|
||||
var
|
||||
Old_Handler: TXErrorHandler;
|
||||
w,h: integer;
|
||||
begin
|
||||
GetDimensions(w,h);
|
||||
GetTargetDimensions(w,h);
|
||||
if (xs < 0) or (xs + width > w) or (ys < 0) or (ys + height > h) then
|
||||
raise Exception.CreateFMT('TMWindow.ReturnData: The parameters passed are wrong; xs,ys %d,%d width,height %d,%d',[xs,ys,width,height]);
|
||||
if dirty then
|
||||
@ -142,7 +147,12 @@ implementation
|
||||
function TWindow.IsKeyHeld(key: integer): boolean; begin end;
|
||||
|
||||
//***implementation*** IOManager
|
||||
|
||||
|
||||
constructor TIOManager.Create(plugin_dir: string);
|
||||
begin
|
||||
inherited Create(plugin_dir);
|
||||
end;
|
||||
|
||||
procedure TIOManager.NativeInit;
|
||||
begin
|
||||
display := XOpenDisplay(nil);
|
||||
@ -150,7 +160,6 @@ implementation
|
||||
begin
|
||||
// throw Exception
|
||||
end;
|
||||
screen := XDefaultScreenOfDisplay(display);
|
||||
screennum:= DefaultScreen(display);
|
||||
desktop:= RootWindow(display,screennum)
|
||||
end;
|
||||
@ -170,4 +179,4 @@ implementation
|
||||
SetBothTargets(TWindow.Create(display, screennum, target))
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user