1
0
mirror of https://github.com/moparisthebest/Simba synced 2025-01-30 23:00:18 -05:00

Incorperated the Majority of the framework, but OS specific key and mouse commands still need native implementation, as well as some possible method restructuring related to that in the TTarget class

git-svn-id: http://www.villavu.com/repositories/merlijn/mufasa@432 3f818213-9676-44b0-a9b4-5e4c4e03d09d
This commit is contained in:
BenLand100 2010-01-20 18:28:38 +00:00
parent d6474cda3d
commit 548861f380
17 changed files with 314 additions and 277 deletions

View File

@ -31,3 +31,5 @@ clean:
$(binary):
$(CC) $(flags) $(units) $(lazarusunits) -o$(binary) $(defines) project1.lpr
-Fu/usr/local/share/lazarus/ideintf/units/x86_64-linux/

View File

@ -10,7 +10,7 @@
<TargetFileExt Value=""/>
<Title Value="Simba"/>
<UseXPManifest Value="True"/>
<ActiveEditorIndexAtStart Value="0"/>
<ActiveEditorIndexAtStart Value="1"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
@ -36,7 +36,7 @@
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="282">
<Units Count="285">
<Unit0>
<Filename Value="project1.lpr"/>
<IsPartOfProject Value="True"/>
@ -137,8 +137,9 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="TestUnit"/>
<CursorPos X="11" Y="42"/>
<TopLine Value="27"/>
<ComponentState Value="1"/>
<CursorPos X="64" Y="1539"/>
<TopLine Value="1532"/>
<EditorIndex Value="0"/>
<UsageCount Value="202"/>
<Loaded Value="True"/>
@ -187,9 +188,11 @@
<Filename Value="../../Units/MMLCore/client.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="Client"/>
<CursorPos X="35" Y="64"/>
<TopLine Value="46"/>
<CursorPos X="47" Y="33"/>
<TopLine Value="16"/>
<EditorIndex Value="3"/>
<UsageCount Value="201"/>
<Loaded Value="True"/>
</Unit20>
<Unit21>
<Filename Value="../../Units/MMLCore/mufasatypes.pas"/>
@ -211,9 +214,11 @@
<Filename Value="../../Units/MMLCore/window.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="Window"/>
<CursorPos X="71" Y="29"/>
<TopLine Value="363"/>
<CursorPos X="31" Y="59"/>
<TopLine Value="42"/>
<EditorIndex Value="8"/>
<UsageCount Value="201"/>
<Loaded Value="True"/>
</Unit23>
<Unit24>
<Filename Value="../../../cogat/Units/CogatUnits/comptypes.pas"/>
@ -232,17 +237,19 @@
<Unit26>
<Filename Value="../../Units/MMLCore/input.pas"/>
<UnitName Value="Input"/>
<CursorPos X="17" Y="286"/>
<TopLine Value="266"/>
<UsageCount Value="85"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="4"/>
<UsageCount Value="88"/>
<Loaded Value="True"/>
</Unit26>
<Unit27>
<Filename Value="../../Units/MMLCore/finder.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="finder"/>
<CursorPos X="9" Y="90"/>
<TopLine Value="86"/>
<EditorIndex Value="6"/>
<CursorPos X="10" Y="2000"/>
<TopLine Value="1972"/>
<EditorIndex Value="15"/>
<UsageCount Value="201"/>
<Loaded Value="True"/>
</Unit27>
@ -344,9 +351,9 @@
<Filename Value="../../Units/MMLCore/bitmaps.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="bitmaps"/>
<CursorPos X="50" Y="119"/>
<TopLine Value="113"/>
<EditorIndex Value="5"/>
<CursorPos X="22" Y="681"/>
<TopLine Value="671"/>
<EditorIndex Value="14"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit42>
@ -359,10 +366,10 @@
</Unit43>
<Unit44>
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/colour.inc"/>
<CursorPos X="47" Y="47"/>
<TopLine Value="47"/>
<EditorIndex Value="4"/>
<UsageCount Value="30"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="13"/>
<UsageCount Value="34"/>
<Loaded Value="True"/>
</Unit44>
<Unit45>
@ -482,8 +489,8 @@
<IsPartOfProject Value="True"/>
<UnitName Value="colour_conv"/>
<CursorPos X="1" Y="332"/>
<TopLine Value="302"/>
<EditorIndex Value="7"/>
<TopLine Value="290"/>
<EditorIndex Value="16"/>
<UsageCount Value="201"/>
<Loaded Value="True"/>
</Unit62>
@ -495,10 +502,10 @@
</Unit63>
<Unit64>
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/other.inc"/>
<CursorPos X="53" Y="13"/>
<TopLine Value="75"/>
<EditorIndex Value="2"/>
<UsageCount Value="41"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="11"/>
<UsageCount Value="45"/>
<Loaded Value="True"/>
</Unit64>
<Unit65>
@ -599,9 +606,11 @@
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="colourpicker"/>
<CursorPos X="22" Y="228"/>
<TopLine Value="1"/>
<CursorPos X="22" Y="229"/>
<TopLine Value="217"/>
<EditorIndex Value="1"/>
<UsageCount Value="201"/>
<Loaded Value="True"/>
</Unit79>
<Unit80>
<Filename Value="../../../cogat/Units/CogatUnits/compdragger.pas"/>
@ -624,9 +633,11 @@
<Filename Value="../../Units/MMLAddon/windowselector.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="windowselector"/>
<CursorPos X="54" Y="139"/>
<TopLine Value="116"/>
<CursorPos X="39" Y="99"/>
<TopLine Value="82"/>
<EditorIndex Value="2"/>
<UsageCount Value="201"/>
<Loaded Value="True"/>
</Unit82>
<Unit83>
<Filename Value="../../../usr/lib64/fpc/2.2.4/source/rtl/objpas/classes/classesh.inc"/>
@ -709,9 +720,11 @@
<Filename Value="../../Units/MMLCore/ocr.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="ocr"/>
<CursorPos X="73" Y="142"/>
<TopLine Value="142"/>
<CursorPos X="51" Y="474"/>
<TopLine Value="457"/>
<EditorIndex Value="6"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit94>
<Unit95>
<Filename Value="../../Units/PascalScript/uPSR_extctrls.pas"/>
@ -1194,7 +1207,6 @@
<ComponentName Value="ColourHistoryForm"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="colourhistory"/>
<ComponentState Value="1"/>
<CursorPos X="43" Y="16"/>
<TopLine Value="1"/>
<UsageCount Value="200"/>
@ -1586,10 +1598,9 @@
<ComponentName Value="FunctionListFrame"/>
<ResourceBaseClass Value="Frame"/>
<UnitName Value="framefunctionlist"/>
<ComponentState Value="1"/>
<CursorPos X="26" Y="295"/>
<TopLine Value="7"/>
<UsageCount Value="141"/>
<UsageCount Value="147"/>
</Unit223>
<Unit224>
<Filename Value="../../../usr/local/share/lazarus/lcl/comctrls.pp"/>
@ -1644,7 +1655,7 @@
<UnitName Value="simpleanalyzer"/>
<CursorPos X="52" Y="104"/>
<TopLine Value="193"/>
<UsageCount Value="128"/>
<UsageCount Value="134"/>
</Unit231>
<Unit232>
<Filename Value="../../Units/Misc/mPasLex.pas"/>
@ -1704,8 +1715,8 @@
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
<CursorPos X="30" Y="109"/>
<TopLine Value="98"/>
<EditorIndex Value="3"/>
<UsageCount Value="19"/>
<EditorIndex Value="12"/>
<UsageCount Value="23"/>
<Loaded Value="True"/>
</Unit240>
<Unit241>
@ -1721,7 +1732,7 @@
<UnitName Value="updater"/>
<CursorPos X="38" Y="211"/>
<TopLine Value="65"/>
<UsageCount Value="101"/>
<UsageCount Value="107"/>
</Unit242>
<Unit243>
<Filename Value="updateform.pas"/>
@ -1731,8 +1742,8 @@
<UnitName Value="updateform"/>
<CursorPos X="111" Y="102"/>
<TopLine Value="81"/>
<EditorIndex Value="1"/>
<UsageCount Value="96"/>
<EditorIndex Value="10"/>
<UsageCount Value="102"/>
<Loaded Value="True"/>
</Unit243>
<Unit244>
@ -1854,7 +1865,7 @@
<UnitName Value="simbasettings"/>
<CursorPos X="26" Y="9"/>
<TopLine Value="11"/>
<UsageCount Value="59"/>
<UsageCount Value="65"/>
</Unit261>
<Unit262>
<Filename Value="../../Units/MMLAddon/settings.pas"/>
@ -1897,10 +1908,9 @@
<ComponentName Value="FormReportBug"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="reportbug"/>
<ComponentState Value="1"/>
<CursorPos X="53" Y="23"/>
<TopLine Value="21"/>
<UsageCount Value="42"/>
<UsageCount Value="48"/>
</Unit267>
<Unit268>
<Filename Value="../../Units/Synapse/synsock.pas"/>
@ -1957,7 +1967,7 @@
<UnitName Value="newinternets"/>
<CursorPos X="80" Y="2"/>
<TopLine Value="1"/>
<UsageCount Value="38"/>
<UsageCount Value="44"/>
</Unit275>
<Unit276>
<Filename Value="reportbug.lrs"/>
@ -2000,127 +2010,154 @@
<TopLine Value="511"/>
<UsageCount Value="15"/>
</Unit281>
<Unit282>
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
<UnitName Value="IOManager"/>
<CursorPos X="84" Y="329"/>
<TopLine Value="318"/>
<EditorIndex Value="5"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit282>
<Unit283>
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
<UnitName Value="os_linux"/>
<CursorPos X="1" Y="141"/>
<TopLine Value="124"/>
<EditorIndex Value="7"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit283>
<Unit284>
<Filename Value="../../../../custom-installs/freepascal/rtl/unix/mouse.pp"/>
<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">
<Position1>
<Filename Value="testunit.pas"/>
<Caret Line="205" Column="33" TopLine="28"/>
<Caret Line="1275" Column="21" TopLine="1258"/>
</Position1>
<Position2>
<Filename Value="testunit.pas"/>
<Caret Line="196" Column="74" TopLine="45"/>
<Caret Line="579" Column="45" TopLine="573"/>
</Position2>
<Position3>
<Filename Value="testunit.pas"/>
<Caret Line="195" Column="74" TopLine="170"/>
<Caret Line="1277" Column="11" TopLine="1259"/>
</Position3>
<Position4>
<Filename Value="testunit.pas"/>
<Caret Line="231" Column="15" TopLine="218"/>
<Caret Line="290" Column="11" TopLine="273"/>
</Position4>
<Position5>
<Filename Value="testunit.pas"/>
<Caret Line="336" Column="24" TopLine="318"/>
<Caret Line="579" Column="62" TopLine="562"/>
</Position5>
<Position6>
<Filename Value="testunit.pas"/>
<Caret Line="474" Column="16" TopLine="459"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="228" Column="22" TopLine="1"/>
</Position6>
<Position7>
<Filename Value="testunit.pas"/>
<Caret Line="486" Column="22" TopLine="459"/>
<Filename Value="../../Units/MMLAddon/windowselector.pas"/>
<Caret Line="139" Column="54" TopLine="116"/>
</Position7>
<Position8>
<Filename Value="../../Units/MMLCore/finder.pas"/>
<Caret Line="61" Column="25" TopLine="61"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="32" Column="13" TopLine="23"/>
</Position8>
<Position9>
<Filename Value="../../Units/MMLCore/finder.pas"/>
<Caret Line="289" Column="82" TopLine="270"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="49" Column="46" TopLine="32"/>
</Position9>
<Position10>
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
<Caret Line="114" Column="1" TopLine="103"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="59" Column="26" TopLine="42"/>
</Position10>
<Position11>
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
<Caret Line="110" Column="27" TopLine="96"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="49" Column="38" TopLine="32"/>
</Position11>
<Position12>
<Filename Value="testunit.pas"/>
<Caret Line="487" Column="95" TopLine="275"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="59" Column="26" TopLine="42"/>
</Position12>
<Position13>
<Filename Value="testunit.pas"/>
<Caret Line="1439" Column="38" TopLine="1407"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="83" Column="1" TopLine="66"/>
</Position13>
<Position14>
<Filename Value="testunit.pas"/>
<Caret Line="1452" Column="33" TopLine="1439"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="85" Column="44" TopLine="68"/>
</Position14>
<Position15>
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
<Caret Line="115" Column="17" TopLine="80"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="109" Column="24" TopLine="92"/>
</Position15>
<Position16>
<Filename Value="../../Units/MMLCore/colour_conv.pas"/>
<Caret Line="48" Column="1" TopLine="4"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="283" Column="15" TopLine="129"/>
</Position16>
<Position17>
<Filename Value="../../Units/MMLCore/colour_conv.pas"/>
<Caret Line="351" Column="52" TopLine="346"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="115" Column="18" TopLine="97"/>
</Position17>
<Position18>
<Filename Value="../../Units/MMLCore/colour_conv.pas"/>
<Caret Line="374" Column="5" TopLine="345"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="118" Column="35" TopLine="101"/>
</Position18>
<Position19>
<Filename Value="../../Units/MMLCore/colour_conv.pas"/>
<Caret Line="364" Column="35" TopLine="345"/>
<Filename Value="../../Units/MMLAddon/windowselector.pas"/>
<Caret Line="32" Column="39" TopLine="23"/>
</Position19>
<Position20>
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
<Caret Line="119" Column="77" TopLine="80"/>
<Filename Value="../../Units/MMLAddon/windowselector.pas"/>
<Caret Line="196" Column="25" TopLine="86"/>
</Position20>
<Position21>
<Filename Value="testunit.pas"/>
<Caret Line="1449" Column="100" TopLine="1439"/>
<Filename Value="../../Units/MMLAddon/windowselector.pas"/>
<Caret Line="143" Column="25" TopLine="115"/>
</Position21>
<Position22>
<Filename Value="testunit.pas"/>
<Caret Line="1489" Column="3" TopLine="1487"/>
<Caret Line="37" Column="60" TopLine="16"/>
</Position22>
<Position23>
<Filename Value="testunit.pas"/>
<Caret Line="474" Column="10" TopLine="459"/>
<Caret Line="576" Column="53" TopLine="562"/>
</Position23>
<Position24>
<Filename Value="testunit.pas"/>
<Caret Line="434" Column="20" TopLine="391"/>
<Caret Line="1273" Column="85" TopLine="1256"/>
</Position24>
<Position25>
<Filename Value="testunit.pas"/>
<Caret Line="533" Column="40" TopLine="508"/>
<Caret Line="309" Column="12" TopLine="298"/>
</Position25>
<Position26>
<Filename Value="testunit.pas"/>
<Caret Line="568" Column="40" TopLine="1101"/>
<Caret Line="1275" Column="46" TopLine="1257"/>
</Position26>
<Position27>
<Filename Value="testunit.pas"/>
<Caret Line="58" Column="21" TopLine="38"/>
<Caret Line="1548" Column="9" TopLine="1531"/>
</Position27>
<Position28>
<Filename Value="../../Units/MMLCore/bitmaps.pas"/>
<Caret Line="128" Column="27" TopLine="111"/>
<Filename Value="testunit.pas"/>
<Caret Line="1304" Column="10" TopLine="1287"/>
</Position28>
<Position29>
<Filename Value="testunit.pas"/>
<Caret Line="468" Column="17" TopLine="418"/>
<Caret Line="1548" Column="10" TopLine="1531"/>
</Position29>
<Position30>
<Filename Value="testunit.pas"/>
<Caret Line="1017" Column="63" TopLine="1010"/>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<Caret Line="229" Column="22" TopLine="206"/>
</Position30>
</JumpHistory>
</ProjectOptions>

View File

@ -1,7 +1,7 @@
object Form1: TForm1
Left = 316
Left = 593
Height = 557
Top = 105
Top = 321
Width = 734
ActiveControl = ScriptPanel
Caption = 'THA FUKING SIMBA'
@ -202,7 +202,7 @@ object Form1: TForm1
object StatusBar: TStatusBar
Left = 0
Height = 21
Top = 536
Top = 511
Width = 734
Panels = <
item
@ -220,7 +220,7 @@ object Form1: TForm1
object PanelMemo: TPanel
Left = 0
Height = 154
Top = 382
Top = 357
Width = 734
Align = alBottom
ClientHeight = 154
@ -240,19 +240,19 @@ object Form1: TForm1
Cursor = crVSplit
Left = 0
Height = 5
Top = 377
Top = 352
Width = 734
Align = alBottom
ResizeAnchor = akBottom
end
object ScriptPanel: TPanel
Left = 0
Height = 353
Height = 328
Top = 24
Width = 734
Align = alClient
BevelOuter = bvNone
ClientHeight = 353
ClientHeight = 328
ClientWidth = 734
DockSite = True
TabOrder = 4
@ -260,7 +260,7 @@ object Form1: TForm1
OnDockOver = ScriptPanelDockOver
object PageControl1: TPageControl
Left = 155
Height = 318
Height = 293
Top = 0
Width = 579
Align = alClient
@ -279,7 +279,7 @@ object Form1: TForm1
object SearchPanel: TPanel
Left = 0
Height = 35
Top = 318
Top = 293
Width = 734
Align = alBottom
BevelOuter = bvSpace
@ -409,21 +409,21 @@ object Form1: TForm1
end
object SplitterFunctionList: TSplitter
Left = 150
Height = 318
Height = 293
Top = 0
Width = 5
OnCanResize = SplitterFunctionListCanResize
Visible = False
end
inline frmFunctionList: TFunctionListFrame
Height = 318
Height = 293
Width = 150
ClientHeight = 318
ClientHeight = 293
ClientWidth = 150
OnEndDock = nil
TabOrder = 3
inherited FunctionList: TTreeView
Height = 269
Height = 244
Top = 22
Width = 150
DefaultItemHeight = 19
@ -434,7 +434,7 @@ object Form1: TForm1
end
inherited editSearchList: TEdit
Height = 27
Top = 291
Top = 266
Width = 150
OnExit = editSearchListExit
OnKeyDown = editSearchListKeyDown

View File

@ -1,22 +1,22 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'<'#1#6'Height'#3'-'#2#3'Top'#2'i'#5'Width'
+#3#222#2#13'ActiveControl'#7#11'ScriptPanel'#7'Caption'#6#16'THA FUKING SIMB'
+'A'#12'ClientHeight'#3#20#2#11'ClientWidth'#3#222#2#10'KeyPreview'#9#4'Menu'
+#7#8'MainMenu'#7'OnClose'#7#9'FormClose'#8'OnCreate'#7#10'FormCreate'#9'OnDe'
+'stroy'#7#11'FormDestroy'#10'OnShortCut'#7#13'FormShortCuts'#8'Position'#7#14
+'poScreenCenter'#10'LCLVersion'#6#6'0.9.29'#7'Visible'#9#0#8'TToolBar'#8'Too'
+'lBar1'#4'Left'#2#0#6'Height'#2#24#3'Top'#2#0#5'Width'#3#222#2#7'Caption'#6#8
+'ToolBar1'#6'Images'#7#17'Mufasa_Image_List'#14'ParentShowHint'#8#8'ShowHint'
+#9#8'TabOrder'#2#0#0#11'TToolButton'#6'TB_Run'#4'Left'#3#168#0#4'Hint'#6#3'R'
+'un'#3'Top'#2#2#6'Action'#7#15'ActionRunScript'#10'ImageIndex'#2#6#0#0#11'TT'
+'oolButton'#8'TB_Pause'#4'Left'#3#191#0#4'Hint'#6#5'Pause'#3'Top'#2#2#6'Acti'
+'on'#7#17'ActionPauseScript'#7'Enabled'#8#10'ImageIndex'#2#5#0#0#11'TToolBut'
+'ton'#7'TB_Stop'#4'Left'#3#214#0#4'Hint'#6#4'Stop'#3'Top'#2#2#6'Action'#7#16
+'ActionStopScript'#7'Enabled'#8#10'ImageIndex'#2#7#0#0#11'TToolButton'#11'To'
+'olButton1'#4'Left'#3#237#0#3'Top'#2#2#5'Width'#2#3#7'Caption'#6#11'ToolButt'
+'on1'#5'Style'#7#10'tbsDivider'#0#0#11'TToolButton'#9'TB_NewTab'#4'Left'#3
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'Q'#2#6'Height'#3'-'#2#3'Top'#3'A'#1#5'Wid'
+'th'#3#222#2#13'ActiveControl'#7#11'ScriptPanel'#7'Caption'#6#16'THA FUKING '
+'SIMBA'#12'ClientHeight'#3#20#2#11'ClientWidth'#3#222#2#10'KeyPreview'#9#4'M'
+'enu'#7#8'MainMenu'#7'OnClose'#7#9'FormClose'#8'OnCreate'#7#10'FormCreate'#9
+'OnDestroy'#7#11'FormDestroy'#10'OnShortCut'#7#13'FormShortCuts'#8'Position'
+#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.29'#7'Visible'#9#0#8'TToolBar'#8
+'ToolBar1'#4'Left'#2#0#6'Height'#2#24#3'Top'#2#0#5'Width'#3#222#2#7'Caption'
+#6#8'ToolBar1'#6'Images'#7#17'Mufasa_Image_List'#14'ParentShowHint'#8#8'Show'
+'Hint'#9#8'TabOrder'#2#0#0#11'TToolButton'#6'TB_Run'#4'Left'#3#168#0#4'Hint'
+#6#3'Run'#3'Top'#2#2#6'Action'#7#15'ActionRunScript'#10'ImageIndex'#2#6#0#0
+#11'TToolButton'#8'TB_Pause'#4'Left'#3#191#0#4'Hint'#6#5'Pause'#3'Top'#2#2#6
+'Action'#7#17'ActionPauseScript'#7'Enabled'#8#10'ImageIndex'#2#5#0#0#11'TToo'
+'lButton'#7'TB_Stop'#4'Left'#3#214#0#4'Hint'#6#4'Stop'#3'Top'#2#2#6'Action'#7
+#16'ActionStopScript'#7'Enabled'#8#10'ImageIndex'#2#7#0#0#11'TToolButton'#11
+'ToolButton1'#4'Left'#3#237#0#3'Top'#2#2#5'Width'#2#3#7'Caption'#6#11'ToolBu'
+'tton1'#5'Style'#7#10'tbsDivider'#0#0#11'TToolButton'#9'TB_NewTab'#4'Left'#3
+#240#0#4'Hint'#6#7'Add tab'#3'Top'#2#2#6'Action'#7#12'ActionNewTab'#0#0#11'T'
+'ToolButton'#11'TB_CloseTab'#4'Left'#3#7#1#4'Hint'#6#9'Close tab'#3'Top'#2#2
+#6'Action'#7#14'ActionCloseTab'#0#0#11'TToolButton'#11'ToolButton4'#4'Left'#3
@ -53,27 +53,27 @@ LazarusResources.Add('TForm1','FORMDATA',[
+'T_Paste'#4'Left'#3#142#0#3'Top'#2#2#6'Action'#7#11'ActionPaste'#0#0#11'TToo'
+'lButton'#11'ToolButton9'#4'Left'#3#165#0#3'Top'#2#2#5'Width'#2#3#7'Caption'
+#6#11'ToolButton9'#5'Style'#7#10'tbsDivider'#0#0#0#10'TStatusBar'#9'StatusBa'
+'r'#4'Left'#2#0#6'Height'#2#21#3'Top'#3#24#2#5'Width'#3#222#2#6'Panels'#14#1
+'r'#4'Left'#2#0#6'Height'#2#21#3'Top'#3#255#1#5'Width'#3#222#2#6'Panels'#14#1
+#5'Width'#2'<'#0#1#4'Text'#6#8'Untitled'#5'Width'#3#150#0#0#1#5'Width'#2'2'#0
+#0#11'SimplePanel'#8#0#0#6'TPanel'#9'PanelMemo'#4'Left'#2#0#6'Height'#3#154#0
+#3'Top'#3'~'#1#5'Width'#3#222#2#5'Align'#7#8'alBottom'#12'ClientHeight'#3#154
+#3'Top'#3'e'#1#5'Width'#3#222#2#5'Align'#7#8'alBottom'#12'ClientHeight'#3#154
+#0#11'ClientWidth'#3#222#2#8'TabOrder'#2#2#0#5'TMemo'#5'Memo1'#4'Left'#2#1#6
+'Height'#3#152#0#3'Top'#2#1#5'Width'#3#220#2#5'Align'#7#8'alClient'#10'Scrol'
+'lBars'#7#10'ssAutoBoth'#8'TabOrder'#2#0#0#0#0#9'TSplitter'#19'SplitterMemoS'
+'ynedit'#6'Cursor'#7#8'crVSplit'#4'Left'#2#0#6'Height'#2#5#3'Top'#3'y'#1#5'W'
+'ynedit'#6'Cursor'#7#8'crVSplit'#4'Left'#2#0#6'Height'#2#5#3'Top'#3'`'#1#5'W'
+'idth'#3#222#2#5'Align'#7#8'alBottom'#12'ResizeAnchor'#7#8'akBottom'#0#0#6'T'
+'Panel'#11'ScriptPanel'#4'Left'#2#0#6'Height'#3'a'#1#3'Top'#2#24#5'Width'#3
+'Panel'#11'ScriptPanel'#4'Left'#2#0#6'Height'#3'H'#1#3'Top'#2#24#5'Width'#3
+#222#2#5'Align'#7#8'alClient'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#3
+'a'#1#11'ClientWidth'#3#222#2#8'DockSite'#9#8'TabOrder'#2#4#10'OnDockDrop'#7
+'H'#1#11'ClientWidth'#3#222#2#8'DockSite'#9#8'TabOrder'#2#4#10'OnDockDrop'#7
,#19'ScriptPanelDockDrop'#10'OnDockOver'#7#19'ScriptPanelDockOver'#0#12'TPage'
+'Control'#12'PageControl1'#4'Left'#3#155#0#6'Height'#3'>'#1#3'Top'#2#0#5'Wid'
+'Control'#12'PageControl1'#4'Left'#3#155#0#6'Height'#3'%'#1#3'Top'#2#0#5'Wid'
+'th'#3'C'#2#5'Align'#7#8'alClient'#6'Images'#7#17'Mufasa_Image_List'#9'Popup'
+'Menu'#7#8'TabPopup'#8'TabOrder'#2#0#8'OnChange'#7#18'PageControl1Change'#10
+'OnChanging'#7#20'PageControl1Changing'#14'OnContextPopup'#7#24'PageControl1'
+'ContextPopup'#10'OnDragDrop'#7#20'PageControl1DragDrop'#10'OnDragOver'#7#20
+'PageControl1DragOver'#11'OnMouseDown'#7#21'PageControl1MouseDown'#9'OnMouse'
+'Up'#7#19'PageControl1MouseUp'#13'OnPageChanged'#7#18'PageControl1Change'#0#0
+#6'TPanel'#11'SearchPanel'#4'Left'#2#0#6'Height'#2'#'#3'Top'#3'>'#1#5'Width'
+#6'TPanel'#11'SearchPanel'#4'Left'#2#0#6'Height'#2'#'#3'Top'#3'%'#1#5'Width'
+#3#222#2#5'Align'#7#8'alBottom'#10'BevelOuter'#7#7'bvSpace'#12'ClientHeight'
+#2'#'#11'ClientWidth'#3#222#2#8'TabOrder'#2#1#7'Visible'#8#0#12'TSpeedButton'
+#17'SpeedButtonSearch'#4'Left'#2' '#6'Height'#2#19#3'Top'#2#7#5'Width'#2#16#5
@ -155,14 +155,14 @@ LazarusResources.Add('TForm1','FORMDATA',[
+#25'LabeledEditSearchKeyPress'#0#0#9'TCheckBox'#17'CheckBoxMatchCase'#4'Left'
+#3'@'#1#6'Height'#2#22#3'Top'#2#7#5'Width'#2'b'#7'Caption'#6#10'Match case'#7
+'OnClick'#7#22'CheckBoxMatchCaseClick'#8'TabOrder'#2#1#0#0#0#9'TSplitter'#20
+'SplitterFunctionList'#4'Left'#3#150#0#6'Height'#3'>'#1#3'Top'#2#0#5'Width'#2
+'SplitterFunctionList'#4'Left'#3#150#0#6'Height'#3'%'#1#3'Top'#2#0#5'Width'#2
+#5#11'OnCanResize'#7#29'SplitterFunctionListCanResize'#7'Visible'#8#0#0#244
+#18'TFunctionListFrame'#15'frmFunctionList'#6'Height'#3'>'#1#5'Width'#3#150#0
+#12'ClientHeight'#3'>'#1#11'ClientWidth'#3#150#0#9'OnEndDock'#13#8'TabOrder'
+#2#3#0#241#9'TTreeView'#12'FunctionList'#6'Height'#3#13#1#3'Top'#2#22#5'Widt'
+'h'#3#150#0#17'DefaultItemHeight'#2#19#8'OnChange'#7#18'FunctionListChange'
+#18'TFunctionListFrame'#15'frmFunctionList'#6'Height'#3'%'#1#5'Width'#3#150#0
+#12'ClientHeight'#3'%'#1#11'ClientWidth'#3#150#0#9'OnEndDock'#13#8'TabOrder'
+#2#3#0#241#9'TTreeView'#12'FunctionList'#6'Height'#3#244#0#3'Top'#2#22#5'Wid'
+'th'#3#150#0#17'DefaultItemHeight'#2#19#8'OnChange'#7#18'FunctionListChange'
+#10'OnDeletion'#13#7'OnEnter'#7#17'FunctionListEnter'#6'OnExit'#7#16'Functio'
+'nListExit'#0#0#241#5'TEdit'#14'editSearchList'#6'Height'#2#27#3'Top'#3'#'#1
+'nListExit'#0#0#241#5'TEdit'#14'editSearchList'#6'Height'#2#27#3'Top'#3#10#1
+#5'Width'#3#150#0#6'OnExit'#7#18'editSearchListExit'#9'OnKeyDown'#7#21'editS'
+'earchListKeyDown'#10'OnKeyPress'#7#22'editSearchListKeyPress'#0#0#241#6'TLa'
+'bel'#17'FunctionListLabel'#6'Height'#2#18#5'Width'#3#146#0#0#0#0#0#9'TMainM'

View File

@ -35,7 +35,8 @@ uses
//Client,
MufasaTypes,
mmlpsthread,synedittypes,
window, // for the comp picker and selector
{$IFDEF MSWINDOWS} os_windows, {$ENDIF} //For ColorPicker etc.
{$IFDEF LINUX} os_linux, {$ENDIF} //For ColorPicker etc.
colourpicker, framescript, windowselector, lcltype, ActnList, StdActns,
SynExportHTML, SynEditKeyCmds, SynEditHighlighter, SynEditMarkupSpecialLine,
SynEditMarkupHighAll, SynEditMiscClasses, LMessages, Buttons, PairSplitter,
@ -305,7 +306,7 @@ type
CurrScript : TScriptFrame; //The current scriptframe
CurrTab : TMufasaTab; //The current TMufasaTab
Tabs : TList;
Window: TMWindow;
Manager: TIOManager;
OCR_Fonts: TMOCR;
Picker: TMColorPicker;
Selector: TMWindowSelector;
@ -573,9 +574,7 @@ begin
Writeln('Warning: The font directory specified in the Settings isn''t valid. Can''t load fonts now');
ScriptThread.SetPaths(ScriptPath,AppPath,Includepath,PluginsPath,fontPath);
// This doesn't actually set the Client's MWindow to the passed window, it
// only copies the current set window handle.
ScriptThread.Client.MWindow.SetWindow(Self.Window);
ScriptThread.Client.IOManager.SetTarget(Selector.LastPick);
loadFontsOnScriptStart := LoadSettingDef('Settings/Fonts/LoadOnStartUp', 'True');
@ -1271,9 +1270,9 @@ begin
Tabs := TList.Create;
AddTab;//Give it alteast 1 tab ;-).
FunctionListShown(True); //Show this function list bitch!
Window := TMWindow.Create;
Picker := TMColorPicker.Create(Window);
Selector := TMWindowSelector.Create(Window);
Manager := TIOManager.Create(''); //No need to load plugins for the Global manager
Picker := TMColorPicker.Create(Manager);
Selector := TMWindowSelector.Create(Manager);
MainDir:= ExtractFileDir(Application.ExeName);
{ For writeln }
SetLength(DebugStream, 0);
@ -1302,7 +1301,7 @@ begin
Tabs.free;
Selector.Free;
Picker.Free;
Window.Free;
Manager.Free;
PluginsGlob.Free;
SetLength(DebugStream, 0);
@ -1487,7 +1486,7 @@ end;
procedure TForm1.MenuItemReportBugClick(Sender: TObject);
begin
OpenURL('http://old.villavu.com/mantis/bug_report_page.php');
//OpenURL('http://old.villavu.com/mantis/bug_report_page.php');
end;
procedure TForm1.MenuItemShowClick(Sender: TObject);
@ -1546,8 +1545,8 @@ end;
procedure TForm1.ButtonSelectorDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Window.SetTarget(Selector.Drag {$ifdef MSWINDOWS},w_window{$endif});
writeln('New window: ' + IntToStr(Window.{$ifdef MSWindows}TargetHandle{$else}CurWindow{$ENDIF}));
Manager.SetTarget(Selector.Drag {$ifdef MSWINDOWS},w_window{$endif});
writeln('New window: ' + IntToStr(Selector.LastPick));
end;
procedure TForm1.NoTray(Sender: TObject);

View File

@ -151,13 +151,13 @@ end;
procedure ps_CopyClientToBitmap(bmp, xs, ys, xe, ye: Integer);
begin
CurrThread.Client.MBitmaps.GetBMP(bmp).CopyClientToBitmap(CurrThread.Client.MWindow, True, xs, ys, xe, ye);
CurrThread.Client.MBitmaps.GetBMP(bmp).CopyClientToBitmap(CurrThread.Client.IOManager, True, xs, ys, xe, ye);
end;
function BitmapFromClient(const xs, ys, xe, ye: Integer): Integer;
begin;
result := CurrThread.Client.MBitmaps.CreateBMP(0,0);
CurrThread.Client.MBitmaps.Bmp[result].CopyClientToBitmap(CurrThread.Client.MWindow,True,xs,ys,xe,ye);
CurrThread.Client.MBitmaps.Bmp[result].CopyClientToBitmap(CurrThread.Client.IOManager,True,xs,ys,xe,ye);
end;
function FindBitmap(Bitmap: integer; out x, y: Integer): Boolean;

View File

@ -23,7 +23,7 @@
function GetColor(x,y : integer) : TColor;
begin;
Result := CurrThread.Client.MWindow.GetColor(x,y);
Result := CurrThread.Client.IOManager.GetColor(x,y);
end;
function findcolor(out x, y: integer; color, x1, y1, x2, y2: integer): boolean;

View File

@ -23,25 +23,25 @@
procedure KeyDown(key: Word);
begin
CurrThread.Client.MInput.KeyDown(key);
CurrThread.Client.IOManager.KeyDown(key);
end;
procedure KeyUp(key: Word);
begin
CurrThread.Client.MInput.KeyUp(key);
CurrThread.Client.IOManager.KeyUp(key);
end;
procedure SendKeys(s: string);
begin
CurrThread.Client.MInput.SendText(s);
CurrThread.Client.IOManager.SendText(s);
end;
procedure PressKey(key: Word);
begin
CurrThread.Client.MInput.PressKey(key);
CurrThread.Client.IOManager.PressKey(key);
end;
function isKeyDown(key: Word): boolean;
begin
Result := CurrThread.Client.MInput.isKeyDown(key);
Result := CurrThread.Client.IOManager.isKeyDown(key);
end;

View File

@ -27,12 +27,12 @@ const
ps_mouse_middle = 2;
procedure MoveMouse(x, y: integer);
begin
CurrThread.Client.MInput.SetMousePos(X, Y);
CurrThread.Client.IOManager.SetMousePos(X, Y);
end;
procedure GetMousePos(out x, y: integer);
begin
CurrThread.Client.MInput.GetMousePos(X, Y);
CurrThread.Client.IOManager.GetMousePos(X, Y);
end;
function ConvIntClickType(Int : Integer) : TClickType;inline;
begin;
@ -47,17 +47,17 @@ end;
procedure HoldMouse(x, y: integer; clickType: integer);
begin
CurrThread.Client.MInput.SetMousePos(x, y);
CurrThread.Client.MInput.MouseButtonAction(x, y, ConvIntClickType(clickType), mouse_Down);
CurrThread.Client.IOManager.SetMousePos(x, y);
CurrThread.Client.IOManager.MouseButtonAction(x, y, ConvIntClickType(clickType), mouse_Down);
end;
procedure ReleaseMouse(x, y: integer; clickType: integer);
begin
CurrThread.Client.MInput.SetMousePos(x, y);
CurrThread.Client.MInput.MouseButtonAction(x, y, ConvIntClickType(clickType), mouse_Up);
CurrThread.Client.IOManager.SetMousePos(x, y);
CurrThread.Client.IOManager.MouseButtonAction(x, y, ConvIntClickType(clickType), mouse_Up);
end;
procedure ClickMouse(x, y: integer; clickType: integer);
begin
CurrThread.Client.MInput.ClickMouse(x, y, ConvIntClickType(clickType));
CurrThread.Client.IOManager.ClickMouse(x, y, ConvIntClickType(clickType));
end;

View File

@ -53,9 +53,9 @@ var
w,h : integer;
bmp: TMufasaBitmap;
begin;
CurrThread.Client.MWindow.GetDimensions(w,h);
CurrThread.Client.IOManager.GetDimensions(w,h);
bmp := TMufasaBitmap.Create;
bmp.CopyClientToBitmap(CurrThread.Client.MWindow,True,0,0,w-1,h-1);
bmp.CopyClientToBitmap(CurrThread.Client.IOManager,True,0,0,w-1,h-1);
bmp.SaveToFile(FileName);
bmp.Free;
end;

View File

@ -23,36 +23,38 @@
procedure SetDesktopAsClient;
begin;
CurrThread.Client.MWindow.SetDesktop;
CurrThread.Client.IOManager.SetDesktop;
end;
procedure SetTargetBitmap(bitmap: Integer);
begin;
With CurrThread.Client do
MWindow.SetTarget(MBitmaps.Bmp[Bitmap]);
IOManager.SetTarget(MBitmaps.Bmp[Bitmap]);
end;
procedure GetClientDimensions(out w, h: integer);
begin
CurrThread.Client.MWindow.GetDimensions(w, h);
CurrThread.Client.IOManager.GetDimensions(w, h);
end;
function Freeze: boolean;
begin
result := CurrThread.Client.MWindow.Freeze();
CurrThread.Client.IOManager.SetFrozen(true);
result := true;
end;
function Unfreeze: boolean;
begin
result := CurrThread.Client.MWindow.Unfreeze;
CurrThread.Client.IOManager.SetFrozen(false);
result := true;
end;
procedure SetTargetArray(P: Integer; w, h: integer);
begin
CurrThread.Client.MWindow.SetTarget(PRGB32(P), classes.point(w,h));
CurrThread.Client.IOManager.SetTarget(PRGB32(P), classes.point(w,h));
end;
procedure activateclient;
begin
CurrThread.Client.MWindow.ActivateClient;
CurrThread.Client.IOManager.ActivateClient;
end;

View File

@ -30,7 +30,9 @@ interface
uses
Classes, SysUtils, LCLIntf,LCLType,InterfaceBase,Forms,Controls,ExtCtrls,
Graphics,
Window,MufasaTypes, colourhistory,bitmaps,input
{$IFDEF MSWINDOWS} os_windows, {$ENDIF}
{$IFDEF LINUX} os_linux, {$ENDIF}
MufasaTypes, colourhistory,bitmaps
{$IFNDEF PICKER_CLIENT}
{$IFDEF LINUX}
@ -44,7 +46,7 @@ type
TPickEvent = procedure (Sender: TObject; Color, X, Y: Integer);
TMColorPicker = class(TObject)
constructor Create(aWindow: TMWindow);
constructor Create(manager: TIOManager);
destructor Destroy; override;
procedure Pick(Out C, X, Y: Integer);
@ -53,11 +55,7 @@ type
procedure ImageInfoMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Procedure ColorPickUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
public
// Will give us CopyClientToBitmap
Window: TMWindow;
// Created and freed in Pick.
Input: TMInput;
manager: TIOManager;
{ Form components }
ScreenForm, InfoForm : TForm;
@ -80,12 +78,12 @@ type
implementation
constructor TMColorPicker.Create(aWindow: TMWindow);
constructor TMColorPicker.Create(manager: TIOManager);
begin
inherited Create;
Self.Window := aWindow;
self.manager := manager;
end;
destructor TMColorPicker.Destroy;
@ -104,7 +102,7 @@ var
p : TPoint;
bmp: TMufasaBitmap;
Desktop : TMWindow;
Desktop : TIOManager;
begin
@ -112,12 +110,11 @@ begin
w := 0;
h := 0;
{ If the target window isn't valid (closed etc), make the destkop the new window}
if not Self.Window.TargetValid then
self.Window.SetDesktop;
Input := TMInput.Create(Self.Window);//For the correct x,y values
if not Self.Manager.TargetValid then
self.Manager.SetDesktop;
{Desktop is needed for the whole picture}
Desktop := TMWindow.Create;
Desktop := TIOManager.Create('');
Desktop.SetDesktop;
Desktop.GetDimensions(w, h);
@ -213,7 +210,6 @@ begin
InfoForm.Free;
ScreenForm.Free;
Input.Free;
Desktop.free;
{ Re-enable the color pick buttons }
@ -230,7 +226,7 @@ var
MouseX, MouseY: Integer;
begin
{ Move the info form }
Input.GetMousePos(MouseX, MouseY);
manager.GetMousePos(MouseX, MouseY);
InfoForm.Left := Mouse.CursorPos.X + 5;
InfoForm.Top := Mouse.CursorPos.Y - 15;
@ -281,7 +277,7 @@ procedure TMColorPicker.ColorPickUp(Sender: TObject; Button: TMouseButton;
begin;
{ Set the coordinates and color that the user cliked on }
Color:= WidgetSet.DCGetPixel(ImageMain.Canvas.Handle,x,y);
Input.GetMousePos(ColorX, ColorY);
Manager.GetMousePos(ColorX, ColorY);
if OnPick <> nil then
Onpick(Sender,Color,Colorx,Colory);

View File

@ -30,7 +30,9 @@ interface
uses
Classes, SysUtils,
ctypes,
window, windowutil,
{$IFDEF MSWINDOWS} os_windows, {$ENDIF}
{$IFDEF LINUX} os_linux, {$ENDIF}
windowutil,
controls,
graphics,
forms,
@ -43,17 +45,15 @@ uses
type
TMWindowSelector = class(TObject)
constructor Create(aWindow: TMWindow);
constructor Create(manager: TIOManager);
destructor Destroy; override;
{$IFDEF LINUX}
function Drag: x.TWindow;
{$ELSE}
function Drag: Hwnd;
{$ENDIF}
function Drag: TNativeWindow;
public
Window: TMWindow;
LastPick: TNativeWindow;
manager: TIOManager;
end;
@ -61,11 +61,11 @@ type
implementation
constructor TMWindowSelector.Create(aWindow: TMWindow);
constructor TMWindowSelector.Create(manager: TIOManager);
begin
inherited create;
Self.Window := aWindow;
self.manager := manager;
end;
@ -77,7 +77,7 @@ begin
end;
{$IFDEF LINUX}
function TMWindowSelector.Drag: x.TWindow;
function TMWindowSelector.Drag: TNativeWindow;
var
Tempwindow : x.TWindow;
root : x.TWindow;
@ -96,13 +96,13 @@ begin
Result := 0;
window_opacity:=XInternAtom(Window.XDisplay,PChar('_NET_WM_WINDOW_OPACITY'), False);
window_opacity:=XInternAtom(manager.display,PChar('_NET_WM_WINDOW_OPACITY'), False);
opacity_75 := cuint($ffffffff * 0.75);
opacity_100 := cuint($ffffffff);
repeat
// get pointer pos + current window we are at.
XQueryPointer(Window.XDisplay, Window.DesktopWindow, @root,
XQueryPointer(manager.display, manager.desktop, @root,
@Tempwindow, @x_root, @y_root,
@x, @y, @xmask);
subwindow:= Tempwindow;
@ -110,7 +110,7 @@ begin
while subwindow <> 0 do
begin
Tempwindow := subwindow;
XQueryPointer(Window.XDisplay, Tempwindow, @root,
XQueryPointer(manager.display, Tempwindow, @root,
@subwindow, @x_root, @y_root,
@x, @y, @xmask);
end;
@ -120,17 +120,18 @@ begin
if Result <> Tempwindow then
begin
writeln('Making ' + inttostr(tempwindow) + ' transparent');
XChangeProperty(Window.XDisplay, tempwindow, window_opacity, XA_CARDINAL, 32, PropModeReplace, @opacity_75, 1);
XChangeProperty(manager.display, tempwindow, window_opacity, XA_CARDINAL, 32, PropModeReplace, @opacity_75, 1);
writeln('Resetting ' + inttostr(Result));
if result <> 0 then
XChangeProperty(Window.XDisplay, Result, window_opacity, XA_CARDINAL, 32, PropModeReplace, @opacity_100, 1);
XChangeProperty(manager.display, Result, window_opacity, XA_CARDINAL, 32, PropModeReplace, @opacity_100, 1);
WriteLn('Changing Window from: ' + Inttostr(result) +' to: ' + IntToStr(Tempwindow));
// XChangeProperty(Window.XDisplay, tempwindow, window_opacity, XA_CARDINAL, 32, PropModeReplace, @opacity_50, 1);
Result := Tempwindow;
LastPick:= TempWindow;
end;
XFlush(Window.XDisplay);
XFlush(manager.display);
Sleep(16);
//if we are selecting for a long time, we must still process other messages
@ -138,15 +139,15 @@ begin
until (xmask and Button1Mask) = 0;
XChangeProperty(Window.XDisplay, Result, window_opacity, XA_CARDINAL, 32, PropModeReplace, @opacity_100, 1);
XFlush(Window.XDisplay);
XChangeProperty(manager.display, Result, window_opacity, XA_CARDINAL, 32, PropModeReplace, @opacity_100, 1);
XFlush(manager.display);
XSetErrorHandler(Old_handler);
end;
{$ELSE}
function TMWindowSelector.Drag: Hwnd;
function TMWindowSelector.Drag: TNativeWindow;
var
TargetRect: TRect;
DC: HDC;
@ -192,6 +193,7 @@ begin;
Sleep(64);
end;
Result := TempHandle;
LastPick:= TempHandle;
Screen.Cursor:= cursor;
Invalidaterect(temphandle, nil, true);
UpdateWindow(temphandle);

View File

@ -115,7 +115,7 @@ implementation
uses
Windowutil,paszlib,DCPbase64,math,
colour_conv,window,mufasatypesutil,tpa;
colour_conv,IOManager,mufasatypesutil,tpa;
function Min(a,b:integer) : integer;
begin
@ -674,11 +674,11 @@ begin
wi := Min(xe-xs + 1,Self.w);
hi := Min(ye-ys + 1,Self.h);
PtrRet := TMWindow(MWindow).ReturnData(xs,ys,wi,hi);
PtrRet := TIOManager_Abstract(MWindow).ReturnData(xs,ys,wi,hi);
for y := 0 to (hi-1) do
Move(PtrRet.Ptr[y * (wi + PtrRet.IncPtrWith)], FData[y * self.w],wi * SizeOf(TRGB32));
TMWindow(MWindow).FreeReturnData;
TIOManager_Abstract(MWindow).FreeReturnData;
end;
procedure TMufasaBitmap.CopyClientToBitmap(MWindow: TObject; Resize: boolean;
@ -693,11 +693,11 @@ begin
wi := Min(xe-xs + 1 + x,Self.w);
hi := Min(ye-ys + 1 + y,Self.h);
PtrRet := TMWindow(MWindow).ReturnData(xs,ys,wi - x,hi - y);
PtrRet := TIOManager_Abstract(MWindow).ReturnData(xs,ys,wi - x,hi - y);
for yy := 0 to (hi-1 - y) do
Move(PtrRet.Ptr[yy * (wi - x + PtrRet.IncPtrWith)], FData[(yy + y) * self.w + x],wi * SizeOf(TRGB32));
TMWindow(MWindow).FreeReturnData;
TIOManager_Abstract(MWindow).FreeReturnData;
end;

View File

@ -30,7 +30,9 @@ interface
uses
Classes, SysUtils, MufasaTypes,
Window, Input, Files, Finder, Bitmaps, dtm, ocr;
IOManager, Files, Finder, Bitmaps, dtm, ocr,
{$IFDEF MSWINDOWS} os_windows {$ENDIF}
{$IFDEF LINUX} os_linux {$ENDIF};
{
TClient is a full-blown instance of the MML.
@ -43,8 +45,7 @@ type
destructor Destroy; override;
public
MWindow: TMWindow;
MInput: TMInput;
IOManager: TIOManager;
MFiles: TMFiles;
MFinder: TMFinder;
MBitmaps : TMBitmaps;
@ -60,8 +61,7 @@ constructor TClient.Create;
begin
inherited Create;
MWindow := TMWindow.Create;
MInput := TMInput.Create(MWindow);
IOManager:= TIOManager.Create('./Plugins');
MFiles := TMFiles.Create;
MFinder := TMFinder.Create(Self);
MBitmaps := TMBitmaps.Create(self);
@ -76,8 +76,7 @@ begin
MBitmaps.Free;
MFinder.Free;
MFiles.Free;
MInput.Free;
MWindow.Free;
IOManager.Free;
inherited;
end;

View File

@ -351,7 +351,7 @@ begin
raise Exception.createFMT('Any Find Function, you did not pass a ' +
'correct ys: %d.', [ys]);
TClient(Self.Client).MWindow.GetDimensions(w,h);
TClient(Self.Client).IOManager.GetDimensions(w,h);
if (w <> CachedWidth) or (h <> CachedHeight) then
UpdateCachedValues(w,h);
if xe >= w then
@ -379,7 +379,7 @@ begin
dX := xe - xs;
dY := ye - ys;
ColorToRGB(Color, clR, clG, clB);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
Ptr := PtrData.Ptr;
PtrInc := PtrData.IncPtrWith;
CCts := Self.CTS;
@ -400,7 +400,7 @@ begin
end;
Inc(Ptr, PtrInc)
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.CountColor(Color, xs, ys, xe, ye: Integer): Integer;
@ -422,7 +422,7 @@ begin
//next, convert the color to r,g,b
ColorToRGB(Color, clR, clG, clB);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
// Do we want to "cache" these vars?
// We will, for now. Easier to type.
@ -441,7 +441,7 @@ begin
Inc(Ptr, PtrInc)
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindColor(out x, y: Integer; Color, xs, ys, xe, ye: Integer): Boolean;
@ -463,7 +463,7 @@ begin
//next, convert the color to r,g,b
ColorToRGB(Color, clR, clG, clB);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
// Do we want to "cache" these vars?
// We will, for now. Easier to type.
@ -481,7 +481,7 @@ begin
x := xx;
y := yy;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
Exit;
end;
Inc(Ptr);
@ -489,7 +489,7 @@ begin
Inc(Ptr, PtrInc)
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindColorSpiral(var x, y: Integer; color, xs, ys, xe,
@ -511,7 +511,7 @@ begin
//next, convert the color to r,g,b
ColorToRGB(Color, clR, clG, clB);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
//Load rowdata
RowData:= CalculateRowPtrs(ptrdata,dy+1);
//Load the spiral path
@ -526,11 +526,11 @@ begin
Result := True;
x := ClientTPA[i].x + xs;
y := ClientTPA[i].y + ys;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
Exit;
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindColoredArea(var x, y: Integer; Color, xs, ys, xe, ye, MinArea: Integer): Boolean;
@ -554,7 +554,7 @@ begin
//next, convert the color to r,g,b
ColorToRGB(Color, clR, clG, clB);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
// Do we want to "cache" these vars?
// We will, for now. Easier to type.
@ -586,7 +586,7 @@ begin
Result := True;
x := xx;
y := yy;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
Exit;
end;
end;
@ -604,7 +604,7 @@ begin
Inc(Ptr, PtrInc);
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
@ -634,7 +634,7 @@ begin
if Cts = 2 then
RGBToHSLNonFixed(clR,clG,clB,H1,S1,L1);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
// Do we want to "cache" these vars?
// We will, for now. Easier to type.
@ -730,14 +730,14 @@ begin
end;
end;
Result := False;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
Exit;
Hit:
Result := True;
x := xx;
y := yy;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindColorTolerance(out x, y: Integer; Color, xs, ys, xe, ye, tol: Integer): Boolean;
@ -766,7 +766,7 @@ begin
if Cts = 2 then
RGBToHSL(clR,clG,clB,H1,S1,L1);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
// Do we want to "cache" these vars?
// We will, for now. Easier to type.
@ -821,14 +821,14 @@ begin
end;
end;
Result := False;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
Exit;
Hit:
Result := True;
x := xx;
y := yy;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindColoredAreaTolerance(var x, y: Integer; Color, xs, ys, xe, ye, MinArea, tol: Integer): Boolean;
@ -854,7 +854,7 @@ begin
ColorToRGB(Color, clR, clG, clB);
if Cts = 2 then
RGBToHSL(clR,clG,clB,H1,S1,L1);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
// Do we want to "cache" these vars?
// We will, for now. Easier to type.
@ -899,14 +899,14 @@ begin
end;
Result := False;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
Exit;
Hit:
Result := True;
x := xx;
y := yy;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindColorsTolerance(out Points: TPointArray; Color, xs, ys,
@ -930,7 +930,7 @@ begin
if CTS = 2 then
ColorToHSL(color,H1,S1,L1);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
// Do we want to "cache" these vars?
// We will, for now. Easier to type.
@ -994,7 +994,7 @@ begin
SetLength(Points, C);
Move(ClientTPA[0], Points[0], C * SizeOf(TPoint));
Result := C > 0;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindColorsToleranceOptimised(out Points: TPointArray; Color, xs, ys,
xe, ye, Tol: Integer): Boolean;
@ -1017,7 +1017,7 @@ begin
if CTS = 2 then
RGBToHSLNonFixed(clR,clG,clB,H1,S1,L1);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
// Do we want to "cache" these vars?
// We will, for now. Easier to type.
@ -1122,7 +1122,7 @@ begin
SetLength(Points, C);
Move(ClientTPA[0], Points[0], C * SizeOf(TPoint));
Result := C > 0;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindColorsSpiralTolerance(x, y: Integer;
@ -1144,7 +1144,7 @@ begin
ColorToRGB(Color, clR, clG, clB);
ColorToHSL(Color, H1, S1, L1);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
c := 0;
@ -1199,7 +1199,7 @@ begin
SetLength(Points, C);
Move(ClientTPA[0], Points[0], C * SizeOf(TPoint));
Result := C > 0;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindColors(out TPA: TPointArray; Color, xs, ys, xe, ye: Integer): Boolean;
@ -1220,7 +1220,7 @@ begin
ColorToRGB(Color, clR, clG, clB);
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
Ptr := PtrData.Ptr;
PtrInc := PtrData.IncPtrWith;
@ -1246,7 +1246,7 @@ begin
Result := I > 0;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
{ Only works with CTS 1 for now.. Since Colorsame doesn't return a boolean :-( }
@ -1274,7 +1274,7 @@ begin
dX := xe - xs;
dY := ye - ys;
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
//Caculate the row ptrs
MainRowdata:= CalculateRowPtrs(PtrData,dy+1);
@ -1321,12 +1321,12 @@ begin
//We have found the mask appearntly, otherwise we would have jumped! Gna Gna.
x := xx + xs;
y := yy + ys;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
Exit(true);
//Bah not found the mask, lets do nothing and continue!
NotFoundMask:
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
procedure TMFinder.CheckMask(Mask: TMask);
@ -1339,7 +1339,7 @@ function TMFinder.FindBitmap(bitmap: TMufasaBitmap; out x, y: Integer): Boolean;
var
w,h : integer;
begin
TClient(Client).MWindow.GetDimensions(w,h);
TClient(Client).IOManager.GetDimensions(w,h);
result := Self.FindBitmapIn(bitmap,x,y,0,0,w-1,h-1);
end;
@ -1366,7 +1366,7 @@ begin
dX := xe - xs;
dY := ye - ys;
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
//Caculate the row ptrs
MainRowdata:= CalculateRowPtrs(PtrData,dy+1);
BmpRowData:= CalculateRowPtrs(bitmap);
@ -1393,14 +1393,14 @@ begin
end;
//We did find the Bmp, otherwise we would be at the part below
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
x := xx + xs;
y := yy + ys;
result := true;
exit;
NotFoundBmp:
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindBitmapToleranceIn(bitmap: TMufasaBitmap; out x, y: Integer; xs,
@ -1428,7 +1428,7 @@ begin
dX := xe - xs;
dY := ye - ys;
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
//Caculate the row ptrs
MainRowdata:= CalculateRowPtrs(PtrData,dy+1);
BmpRowData:= CalculateRowPtrs(bitmap);
@ -1462,14 +1462,14 @@ begin
end;
//We did find the Bmp, otherwise we would be at the part below
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
x := xx + xs;
y := yy + ys;
result := true;
exit;
NotFoundBmp:
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindBitmapSpiral(bitmap: TMufasaBitmap; var x, y: Integer;
@ -1495,7 +1495,7 @@ begin
dX := xe - xs;
dY := ye - ys;
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
//Caculate the row ptrs
MainRowdata:= CalculateRowPtrs(PtrData,dy+1);
BmpRowData:= CalculateRowPtrs(bitmap);
@ -1524,14 +1524,14 @@ begin
end;
//We did find the Bmp, otherwise we would be at the part below
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
x := ClientTPA[i].x + xs;
y := ClientTPA[i].y + ys;
result := true;
exit;
NotFoundBmp:
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindBitmapSpiralTolerance(bitmap: TMufasaBitmap; var x,
@ -1559,7 +1559,7 @@ begin
dX := xe - xs;
dY := ye - ys;
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
//Caculate the row ptrs
MainRowdata:= CalculateRowPtrs(PtrData,dy+1);
BmpRowData:= CalculateRowPtrs(bitmap);
@ -1602,7 +1602,7 @@ begin
exit;
NotFoundBmp:
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindBitmapsSpiralTolerance(bitmap: TMufasaBitmap; x,
@ -1631,7 +1631,7 @@ begin
dX := xe - xs;
dY := ye - ys;
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
//Caculate the row ptrs
MainRowdata:= CalculateRowPtrs(PtrData,dy+1);
BmpRowData:= CalculateRowPtrs(bitmap);
@ -1680,7 +1680,7 @@ begin
SetLength(Points,FoundC);
Move(ClientTPA[0], Points[0], FoundC * SizeOf(TPoint));
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
end;
function TMFinder.FindDeformedBitmapToleranceIn(bitmap: TMufasaBitmap; out x,
@ -1715,7 +1715,7 @@ begin
dY := ye - ys;
SearchDx := dX;
SearchDy := dY;
PtrData := TClient(Client).MWindow.ReturnData(xs, ys, dX + 1, dY + 1);
PtrData := TClient(Client).IOManager.ReturnData(xs, ys, dX + 1, dY + 1);
//Caculate the row ptrs
MainRowdata:= CalculateRowPtrs(PtrData,dy+1);
BmpRowData:= CalculateRowPtrs(bitmap);
@ -1775,7 +1775,7 @@ begin
BestPT := Point(xx+xs,yy+ys);
if GoodCount = TotalC then
begin;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
x := BestPT.x;
y := BestPT.y;
accuracy:= 1;
@ -1783,7 +1783,7 @@ begin
end;
end;
end;
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
if BestCount = 0 then
Exit;
accuracy := BestCount / TotalC;
@ -1880,7 +1880,7 @@ begin
C := DTM.c;
// Retreive Client Data.
PtrData := TClient(Client).MWindow.ReturnData(x1, y1, W + 1, H + 1);
PtrData := TClient(Client).IOManager.ReturnData(x1, y1, W + 1, H + 1);
cd := CalculateRowPtrs(PtrData, h + 1);
//writeln(format('w,h: %d, %d', [w,h]));
@ -1937,7 +1937,7 @@ begin
end;
TheEnd:
TClient(Client).MWindow.FreeReturnData;
TClient(Client).IOManager.FreeReturnData;
SetLength(Points, pc);
if pc > 0 then

View File

@ -471,7 +471,7 @@ begin
bmp.SetSize(w + 2, h + 2);
// Copy the client to out working bitmap.
bmp.CopyClientToBitmap(TClient(Client).MWindow, False, 1{0},1, sx, sy, sx + w - 1, sy + h - 1);
bmp.CopyClientToBitmap(TClient(Client).IOManager, False, 1{0},1, sx, sy, sx + w - 1, sy + h - 1);
{$IFDEF OCRSAVEBITMAP}
bmp.SaveToFile(OCRDebugPath + 'ocrinit.bmp');