1
0
mirror of https://github.com/moparisthebest/Simba synced 2024-11-22 17:22:21 -05:00

Finished fixing #68 moved TPA into core. Also made the eios plugin loader global, and changed the oop of the plugin loader to be more oop.

git-svn-id: http://www.villavu.com/repositories/merlijn/mufasa@446 3f818213-9676-44b0-a9b4-5e4c4e03d09d
This commit is contained in:
BenLand100 2010-01-21 22:01:49 +00:00
parent 3832f01616
commit 482f9fef66
9 changed files with 179 additions and 126 deletions

View File

@ -10,7 +10,7 @@
<TargetFileExt Value=""/> <TargetFileExt Value=""/>
<Title Value="Simba"/> <Title Value="Simba"/>
<UseXPManifest Value="True"/> <UseXPManifest Value="True"/>
<ActiveEditorIndexAtStart Value="8"/> <ActiveEditorIndexAtStart Value="7"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -24,7 +24,7 @@
<RunParams> <RunParams>
<local> <local>
<FormatVersion Value="1"/> <FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="$(TargetCmdLine)"/> <LaunchingApplication Use="True" PathPlusParams="$(TargetCmdLine)"/>
</local> </local>
</RunParams> </RunParams>
<RequiredPackages Count="2"> <RequiredPackages Count="2">
@ -36,14 +36,14 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item2> </Item2>
</RequiredPackages> </RequiredPackages>
<Units Count="289"> <Units Count="290">
<Unit0> <Unit0>
<Filename Value="project1.lpr"/> <Filename Value="project1.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="project1"/> <UnitName Value="project1"/>
<CursorPos X="27" Y="29"/> <CursorPos X="27" Y="29"/>
<TopLine Value="11"/> <TopLine Value="11"/>
<EditorIndex Value="8"/> <EditorIndex Value="10"/>
<UsageCount Value="205"/> <UsageCount Value="205"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
@ -139,10 +139,9 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="TestUnit"/> <UnitName Value="TestUnit"/>
<ComponentState Value="1"/> <CursorPos X="31" Y="1267"/>
<CursorPos X="74" Y="536"/> <TopLine Value="1250"/>
<TopLine Value="515"/> <EditorIndex Value="14"/>
<EditorIndex Value="12"/>
<UsageCount Value="202"/> <UsageCount Value="202"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit13> </Unit13>
@ -190,8 +189,8 @@
<Filename Value="../../Units/MMLCore/client.pas"/> <Filename Value="../../Units/MMLCore/client.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="Client"/> <UnitName Value="Client"/>
<CursorPos X="26" Y="55"/> <CursorPos X="1" Y="70"/>
<TopLine Value="34"/> <TopLine Value="51"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="201"/> <UsageCount Value="201"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -202,7 +201,7 @@
<UnitName Value="MufasaTypes"/> <UnitName Value="MufasaTypes"/>
<CursorPos X="20" Y="32"/> <CursorPos X="20" Y="32"/>
<TopLine Value="26"/> <TopLine Value="26"/>
<EditorIndex Value="3"/> <EditorIndex Value="5"/>
<UsageCount Value="201"/> <UsageCount Value="201"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit21> </Unit21>
@ -269,8 +268,8 @@
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="mmlpsthread"/> <UnitName Value="mmlpsthread"/>
<CursorPos X="19" Y="34"/> <CursorPos X="1" Y="242"/>
<TopLine Value="18"/> <TopLine Value="225"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="202"/> <UsageCount Value="202"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -492,8 +491,8 @@
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/mouse.inc"/> <Filename Value="../../Units/MMLAddon/PSInc/Wrappers/mouse.inc"/>
<CursorPos X="11" Y="26"/> <CursorPos X="11" Y="26"/>
<TopLine Value="12"/> <TopLine Value="12"/>
<EditorIndex Value="7"/> <EditorIndex Value="9"/>
<UsageCount Value="18"/> <UsageCount Value="19"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit63> </Unit63>
<Unit64> <Unit64>
@ -540,15 +539,17 @@
<UnitName Value="plugins"/> <UnitName Value="plugins"/>
<CursorPos X="23" Y="67"/> <CursorPos X="23" Y="67"/>
<TopLine Value="56"/> <TopLine Value="56"/>
<EditorIndex Value="4"/> <EditorIndex Value="6"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit70> </Unit70>
<Unit71> <Unit71>
<Filename Value="../../Units/MMLAddon/PSInc/psdefines.inc"/> <Filename Value="../../Units/MMLAddon/PSInc/psdefines.inc"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="37"/>
<TopLine Value="2"/> <TopLine Value="4"/>
<UsageCount Value="6"/> <EditorIndex Value="2"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit71> </Unit71>
<Unit72> <Unit72>
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/math.inc"/> <Filename Value="../../Units/MMLAddon/PSInc/Wrappers/math.inc"/>
@ -629,7 +630,7 @@
<UnitName Value="windowselector"/> <UnitName Value="windowselector"/>
<CursorPos X="37" Y="34"/> <CursorPos X="37" Y="34"/>
<TopLine Value="12"/> <TopLine Value="12"/>
<EditorIndex Value="10"/> <EditorIndex Value="12"/>
<UsageCount Value="201"/> <UsageCount Value="201"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit82> </Unit82>
@ -1201,7 +1202,7 @@
<UnitName Value="colourhistory"/> <UnitName Value="colourhistory"/>
<CursorPos X="7" Y="73"/> <CursorPos X="7" Y="73"/>
<TopLine Value="55"/> <TopLine Value="55"/>
<EditorIndex Value="9"/> <EditorIndex Value="11"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit166> </Unit166>
@ -1372,8 +1373,8 @@
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/keyboard.inc"/> <Filename Value="../../Units/MMLAddon/PSInc/Wrappers/keyboard.inc"/>
<CursorPos X="26" Y="43"/> <CursorPos X="26" Y="43"/>
<TopLine Value="13"/> <TopLine Value="13"/>
<EditorIndex Value="6"/> <EditorIndex Value="8"/>
<UsageCount Value="18"/> <UsageCount Value="19"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit191> </Unit191>
<Unit192> <Unit192>
@ -1488,7 +1489,7 @@
<UnitName Value="debugimage"/> <UnitName Value="debugimage"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="11"/> <EditorIndex Value="13"/>
<UsageCount Value="202"/> <UsageCount Value="202"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit207> </Unit207>
@ -1598,7 +1599,7 @@
<UnitName Value="framefunctionlist"/> <UnitName Value="framefunctionlist"/>
<CursorPos X="26" Y="295"/> <CursorPos X="26" Y="295"/>
<TopLine Value="7"/> <TopLine Value="7"/>
<UsageCount Value="166"/> <UsageCount Value="167"/>
</Unit223> </Unit223>
<Unit224> <Unit224>
<Filename Value="../../../usr/local/share/lazarus/lcl/comctrls.pp"/> <Filename Value="../../../usr/local/share/lazarus/lcl/comctrls.pp"/>
@ -1653,7 +1654,7 @@
<UnitName Value="simpleanalyzer"/> <UnitName Value="simpleanalyzer"/>
<CursorPos X="52" Y="104"/> <CursorPos X="52" Y="104"/>
<TopLine Value="193"/> <TopLine Value="193"/>
<UsageCount Value="153"/> <UsageCount Value="154"/>
</Unit231> </Unit231>
<Unit232> <Unit232>
<Filename Value="../../Units/Misc/mPasLex.pas"/> <Filename Value="../../Units/Misc/mPasLex.pas"/>
@ -1728,7 +1729,7 @@
<UnitName Value="updater"/> <UnitName Value="updater"/>
<CursorPos X="38" Y="211"/> <CursorPos X="38" Y="211"/>
<TopLine Value="65"/> <TopLine Value="65"/>
<UsageCount Value="126"/> <UsageCount Value="127"/>
</Unit242> </Unit242>
<Unit243> <Unit243>
<Filename Value="updateform.pas"/> <Filename Value="updateform.pas"/>
@ -1739,7 +1740,7 @@
<ComponentState Value="1"/> <ComponentState Value="1"/>
<CursorPos X="111" Y="102"/> <CursorPos X="111" Y="102"/>
<TopLine Value="207"/> <TopLine Value="207"/>
<UsageCount Value="121"/> <UsageCount Value="122"/>
</Unit243> </Unit243>
<Unit244> <Unit244>
<Filename Value="../../../Documents/lazarus/lcl/fileutil.pas"/> <Filename Value="../../../Documents/lazarus/lcl/fileutil.pas"/>
@ -1860,7 +1861,7 @@
<UnitName Value="simbasettings"/> <UnitName Value="simbasettings"/>
<CursorPos X="26" Y="9"/> <CursorPos X="26" Y="9"/>
<TopLine Value="11"/> <TopLine Value="11"/>
<UsageCount Value="84"/> <UsageCount Value="85"/>
</Unit261> </Unit261>
<Unit262> <Unit262>
<Filename Value="../../Units/MMLAddon/settings.pas"/> <Filename Value="../../Units/MMLAddon/settings.pas"/>
@ -1905,7 +1906,7 @@
<UnitName Value="reportbug"/> <UnitName Value="reportbug"/>
<CursorPos X="53" Y="23"/> <CursorPos X="53" Y="23"/>
<TopLine Value="21"/> <TopLine Value="21"/>
<UsageCount Value="67"/> <UsageCount Value="68"/>
</Unit267> </Unit267>
<Unit268> <Unit268>
<Filename Value="../../Units/Synapse/synsock.pas"/> <Filename Value="../../Units/Synapse/synsock.pas"/>
@ -1960,9 +1961,11 @@
<Filename Value="../../Units/MMLAddon/newinternets.pas"/> <Filename Value="../../Units/MMLAddon/newinternets.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="newinternets"/> <UnitName Value="newinternets"/>
<CursorPos X="80" Y="2"/> <CursorPos X="37" Y="171"/>
<TopLine Value="1"/> <TopLine Value="153"/>
<UsageCount Value="63"/> <EditorIndex Value="15"/>
<UsageCount Value="64"/>
<Loaded Value="True"/>
</Unit275> </Unit275>
<Unit276> <Unit276>
<Filename Value="reportbug.lrs"/> <Filename Value="reportbug.lrs"/>
@ -2008,19 +2011,19 @@
<Unit282> <Unit282>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<UnitName Value="IOManager"/> <UnitName Value="IOManager"/>
<CursorPos X="83" Y="29"/> <CursorPos X="1" Y="249"/>
<TopLine Value="1"/> <TopLine Value="232"/>
<EditorIndex Value="2"/> <EditorIndex Value="4"/>
<UsageCount Value="22"/> <UsageCount Value="23"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit282> </Unit282>
<Unit283> <Unit283>
<Filename Value="../../Units/MMLCore/os_linux.pas"/> <Filename Value="../../Units/MMLCore/os_linux.pas"/>
<UnitName Value="os_linux"/> <UnitName Value="os_linux"/>
<CursorPos X="5" Y="21"/> <CursorPos X="21" Y="322"/>
<TopLine Value="1"/> <TopLine Value="320"/>
<EditorIndex Value="14"/> <EditorIndex Value="17"/>
<UsageCount Value="22"/> <UsageCount Value="23"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit283> </Unit283>
<Unit284> <Unit284>
@ -2033,14 +2036,14 @@
<Unit285> <Unit285>
<Filename Value="../../Units/MMLCore/os_windows.pas"/> <Filename Value="../../Units/MMLCore/os_windows.pas"/>
<UnitName Value="os_windows"/> <UnitName Value="os_windows"/>
<CursorPos X="4" Y="21"/> <CursorPos X="3" Y="314"/>
<TopLine Value="299"/> <TopLine Value="300"/>
<EditorIndex Value="13"/> <EditorIndex Value="16"/>
<UsageCount Value="18"/> <UsageCount Value="19"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit285> </Unit285>
<Unit286> <Unit286>
<Filename Value="../../../../../../../usr/local/share/lazarus/components/mouseandkeyinput/xkeyinput.pas"/> <Filename Value="../../../../../../usr/local/share/lazarus/components/mouseandkeyinput/xkeyinput.pas"/>
<UnitName Value="XKeyInput"/> <UnitName Value="XKeyInput"/>
<CursorPos X="19" Y="19"/> <CursorPos X="19" Y="19"/>
<TopLine Value="164"/> <TopLine Value="164"/>
@ -2057,133 +2060,142 @@
<Filename Value="../../Units/MMLCore/libloader.pas"/> <Filename Value="../../Units/MMLCore/libloader.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="libloader"/> <UnitName Value="libloader"/>
<CursorPos X="51" Y="120"/> <CursorPos X="7" Y="74"/>
<TopLine Value="1"/> <TopLine Value="59"/>
<EditorIndex Value="5"/> <EditorIndex Value="7"/>
<UsageCount Value="21"/> <UsageCount Value="22"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit288> </Unit288>
<Unit289>
<Filename Value="../../Units/MMLAddon/tpa.pas"/>
<UnitName Value="tpa"/>
<CursorPos X="17" Y="1696"/>
<TopLine Value="1677"/>
<EditorIndex Value="3"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit289>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
<Caret Line="441" Column="22" TopLine="424"/> <Caret Line="231" Column="1" TopLine="214"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
<Caret Line="564" Column="7" TopLine="550"/> <Caret Line="232" Column="1" TopLine="215"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLAddon/PSInc/psdefines.inc"/>
<Caret Line="574" Column="76" TopLine="551"/> <Caret Line="25" Column="1" TopLine="3"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLAddon/PSInc/psdefines.inc"/>
<Caret Line="546" Column="17" TopLine="529"/> <Caret Line="27" Column="1" TopLine="4"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLAddon/PSInc/psdefines.inc"/>
<Caret Line="549" Column="16" TopLine="532"/> <Caret Line="28" Column="1" TopLine="4"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="testunit.pas"/> <Filename Value="../../Units/MMLAddon/PSInc/psdefines.inc"/>
<Caret Line="566" Column="18" TopLine="551"/> <Caret Line="29" Column="1" TopLine="4"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="testunit.pas"/> <Filename Value="../../Units/MMLAddon/PSInc/psdefines.inc"/>
<Caret Line="560" Column="69" TopLine="551"/> <Caret Line="30" Column="1" TopLine="4"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="testunit.pas"/> <Filename Value="../../Units/MMLAddon/PSInc/psdefines.inc"/>
<Caret Line="564" Column="41" TopLine="551"/> <Caret Line="37" Column="1" TopLine="4"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="testunit.pas"/> <Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
<Caret Line="566" Column="18" TopLine="551"/> <Caret Line="236" Column="1" TopLine="219"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="testunit.pas"/> <Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
<Caret Line="567" Column="18" TopLine="551"/> <Caret Line="238" Column="1" TopLine="221"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
<Caret Line="216" Column="18" TopLine="206"/> <Caret Line="239" Column="1" TopLine="222"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="../../Units/MMLAddon/plugins.pas"/> <Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
<Caret Line="69" Column="31" TopLine="56"/> <Caret Line="241" Column="1" TopLine="224"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
<Caret Line="247" Column="52" TopLine="234"/> <Caret Line="242" Column="1" TopLine="225"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="../../Units/MMLCore/client.pas"/> <Filename Value="testunit.pas"/>
<Caret Line="64" Column="43" TopLine="45"/> <Caret Line="538" Column="1" TopLine="521"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="testunit.pas"/>
<Caret Line="328" Column="27" TopLine="96"/> <Caret Line="539" Column="1" TopLine="522"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="../../Units/MMLAddon/newinternets.pas"/>
<Caret Line="217" Column="137" TopLine="200"/> <Caret Line="2" Column="80" TopLine="1"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="../../Units/MMLCore/libloader.pas"/>
<Caret Line="213" Column="28" TopLine="185"/> <Caret Line="48" Column="1" TopLine="31"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="../../Units/MMLAddon/plugins.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="71" Column="18" TopLine="51"/> <Caret Line="255" Column="1" TopLine="238"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="../../Units/MMLAddon/plugins.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="55" Column="36" TopLine="38"/> <Caret Line="249" Column="1" TopLine="232"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="../../Units/MMLCore/libloader.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="8" Column="31" TopLine="1"/> <Caret Line="250" Column="1" TopLine="233"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="../../Units/MMLCore/libloader.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="35" Column="9" TopLine="1"/> <Caret Line="251" Column="1" TopLine="234"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="529" Column="43" TopLine="516"/> <Caret Line="252" Column="1" TopLine="235"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="114" Column="95" TopLine="97"/> <Caret Line="253" Column="1" TopLine="236"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="290" Column="29" TopLine="1"/> <Caret Line="254" Column="1" TopLine="237"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="35" Column="28" TopLine="23"/> <Caret Line="255" Column="1" TopLine="238"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="../../Units/MMLCore/os_linux.pas"/>
<Caret Line="33" Column="29" TopLine="18"/> <Caret Line="325" Column="1" TopLine="308"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="testunit.pas"/>
<Caret Line="35" Column="14" TopLine="33"/> <Caret Line="1267" Column="31" TopLine="1250"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/> <Filename Value="../../Units/MMLCore/os_linux.pas"/>
<Caret Line="34" Column="19" TopLine="18"/> <Caret Line="70" Column="28" TopLine="55"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="../../Units/MMLCore/libloader.pas"/> <Filename Value="../../Units/MMLCore/os_windows.pas"/>
<Caret Line="120" Column="50" TopLine="105"/> <Caret Line="314" Column="3" TopLine="300"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="project1.lpr"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="25" Column="12" TopLine="15"/> <Caret Line="249" Column="1" TopLine="232"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
@ -2198,6 +2210,7 @@
<UnitOutputDirectory Value="$(ProjPath)../../build/$(TargetOS)"/> <UnitOutputDirectory Value="$(ProjPath)../../build/$(TargetOS)"/>
</SearchPaths> </SearchPaths>
<CodeGeneration> <CodeGeneration>
<TargetOS Value="Linux"/>
<Optimizations> <Optimizations>
<VariablesInRegisters Value="True"/> <VariablesInRegisters Value="True"/>
<OptimizationLevel Value="2"/> <OptimizationLevel Value="2"/>

View File

@ -1,7 +1,7 @@
object Form1: TForm1 object Form1: TForm1
Left = 593 Left = 1040
Height = 557 Height = 557
Top = 321 Top = 323
Width = 734 Width = 734
ActiveControl = ScriptPanel ActiveControl = ScriptPanel
Caption = 'THA FUKING SIMBA' Caption = 'THA FUKING SIMBA'

View File

@ -1,7 +1,7 @@
{ This is an automatically generated lazarus resource file } { This is an automatically generated lazarus resource file }
LazarusResources.Add('TForm1','FORMDATA',[ LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'Q'#2#6'Height'#3'-'#2#3'Top'#3'A'#1#5'Wid' 'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#16#4#6'Height'#3'-'#2#3'Top'#3'C'#1#5'Wid'
+'th'#3#222#2#13'ActiveControl'#7#11'ScriptPanel'#7'Caption'#6#16'THA FUKING ' +'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' +'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 +'enu'#7#8'MainMenu'#7'OnClose'#7#9'FormClose'#8'OnCreate'#7#10'FormCreate'#9

View File

@ -558,7 +558,7 @@ begin
end else if not Assigned(PluginsGlob) then end else if not Assigned(PluginsGlob) then
begin begin
PluginsGlob := TMPlugins.Create; PluginsGlob := TMPlugins.Create;
PluginsGlob.PluginDirs.Add(PluginsPath); PluginsGlob.AddAndLoadPath(PluginsPath);
end; end;
if not DirectoryExists(IncludePath) then if not DirectoryExists(IncludePath) then
if FirstRun then if FirstRun then
@ -1264,7 +1264,7 @@ begin
Tabs := TList.Create; Tabs := TList.Create;
AddTab;//Give it alteast 1 tab ;-). AddTab;//Give it alteast 1 tab ;-).
FunctionListShown(True); //Show this function list bitch! FunctionListShown(True); //Show this function list bitch!
Manager := TIOManager.Create(''); //No need to load plugins for the Global manager Manager := TIOManager.Create; //No need to load plugins for the Global manager
Picker := TMColorPicker.Create(Manager); Picker := TMColorPicker.Create(Manager);
Selector := TMWindowSelector.Create(Manager); Selector := TMWindowSelector.Create(Manager);
MainDir:= ExtractFileDir(Application.ExeName); MainDir:= ExtractFileDir(Application.ExeName);

View File

@ -29,7 +29,7 @@ interface
Classes, SysUtils, mufasatypes, graphics, LCLType, bitmaps, LCLIntf, libloader, dynlibs; Classes, SysUtils, mufasatypes, graphics, LCLType, bitmaps, LCLIntf, libloader, dynlibs;
type type
{ This is the base class for the target functionality. If it provides a target, it extends this. { This is the base class for the target functionality. If it provides a target, it extends this.
| Some methods in heregratuitous provide default functionality as a convinence. Only override as nessessary } | Some methods in heregratuitous provide default functionality as a convinence. Only override as nessessary }
TTarget = class(TObject) TTarget = class(TObject)
@ -165,7 +165,7 @@ interface
| Sexy, right? ;} | Sexy, right? ;}
TEIOS_Controller = class(TGenericLoader) TEIOS_Controller = class(TGenericLoader)
public public
constructor Create(plugin_dir: string); constructor Create();
destructor Destroy; override; destructor Destroy; override;
function ClientExists(name: string): boolean; function ClientExists(name: string): boolean;
@ -187,6 +187,7 @@ interface
| since they sometimes are treated as seperate entities. } | since they sometimes are treated as seperate entities. }
TIOManager_Abstract = class(TObject) TIOManager_Abstract = class(TObject)
public public
constructor Create;
constructor Create(plugin_dir: string); constructor Create(plugin_dir: string);
destructor Destroy; override; destructor Destroy; override;
@ -219,7 +220,6 @@ interface
function isKeyDown(key: Word): Boolean; function isKeyDown(key: Word): Boolean;
protected protected
controller: TEIOS_Controller;
keymouse: TTarget; keymouse: TTarget;
image: TTarget; image: TTarget;
frozen: TTarget; frozen: TTarget;
@ -239,12 +239,24 @@ implementation
{$IFDEF MSWINDOWS} os_windows {$ENDIF} {$IFDEF MSWINDOWS} os_windows {$ENDIF}
{$IFDEF LINUX} os_linux {$ENDIF}; {$IFDEF LINUX} os_linux {$ENDIF};
var eios_controller: TEIOS_Controller;
//***implementation*** TIOManager //***implementation*** TIOManager
constructor TIOManager_Abstract.Create(plugin_dir: string); constructor TIOManager_Abstract.Create(plugin_dir: string);
begin begin
inherited Create; inherited Create;
controller:= TEIOS_Controller.Create(plugin_dir); eios_controller.AddAndLoadPath(plugin_dir);
keymouse:= nil;
image:= nil;
frozen:= nil;
NativeInit;
SetDesktop;
end;
constructor TIOManager_Abstract.Create;
begin
inherited Create;
keymouse:= nil; keymouse:= nil;
image:= nil; image:= nil;
frozen:= nil; frozen:= nil;
@ -260,7 +272,6 @@ implementation
image.Free(); image.Free();
end; end;
if frozen <> nil then frozen.Destroy(); if frozen <> nil then frozen.Destroy();
if controller <> nil then controller.Destroy();
end; end;
procedure TIOManager_Abstract.SetImageTarget(target: TTarget); procedure TIOManager_Abstract.SetImageTarget(target: TTarget);
@ -332,8 +343,8 @@ implementation
var var
client: TEIOS_Client; client: TEIOS_Client;
begin begin
if not controller.ClientExists(name) then raise Exception.Create('EIOS Client by specified name does not exist'); if not eios_controller.ClientExists(name) then raise Exception.Create('EIOS Client by specified name does not exist');
client:= controller.GetClient(name); client:= eios_controller.GetClient(name);
SetBothTargets(TEIOS_Target.Create(client, initargs)); SetBothTargets(TEIOS_Target.Create(client, initargs));
end; end;
@ -526,11 +537,9 @@ implementation
//***implementation*** TEIOS_Controller //***implementation*** TEIOS_Controller
constructor TEIOS_Controller.Create(plugin_dir: string); constructor TEIOS_Controller.Create();
begin begin
inherited Create; inherited Create;
PluginDirs.Add(plugin_dir);
LoadPluginsDir(0);
end; end;
destructor TEIOS_Controller.Destroy; destructor TEIOS_Controller.Destroy;
@ -607,4 +616,8 @@ implementation
result:= plugs[i].client result:= plugs[i].client
end; end;
initialization
eios_controller:= TEIOS_Controller.Create;
finalization
eios_controller.Free;
end. end.

View File

@ -17,15 +17,16 @@ interface
private private
PluginLen : integer; PluginLen : integer;
Loaded: TGenericLibArray; Loaded: TGenericLibArray;
PluginDirs : TStringList;
procedure FreePlugins; procedure FreePlugins;
procedure LoadPluginsDir(DirIndex : integer);
protected protected
function InitPlugin(plugin: TLibHandle): boolean; virtual; abstract; function InitPlugin(plugin: TLibHandle): boolean; virtual; abstract;
public public
PluginDirs : TStringList;
constructor Create; constructor Create;
destructor Destroy; override; destructor Destroy; override;
procedure ValidateDirs; procedure ValidateDirs;
procedure LoadPluginsDir(DirIndex : integer); procedure AddAndLoadPath(path: string);
function LoadPlugin(PluginName : string) : integer; function LoadPlugin(PluginName : string) : integer;
end; end;
@ -33,6 +34,19 @@ implementation
uses uses
MufasaTypes,FileUtil; MufasaTypes,FileUtil;
procedure TGenericLoader.AddAndLoadPath(path: string);
var
idx: integer;
begin
if PluginDirs.Find(path,idx) then
LoadPluginsDir(idx)
else begin
PluginDirs.Add(path);
LoadPluginsDir(PluginDirs.Count-1);
end;
end;
procedure TGenericLoader.FreePlugins; procedure TGenericLoader.FreePlugins;
var var
I : integer; I : integer;
@ -58,7 +72,7 @@ implementation
for i := 0 to PluginDirs.Count - 1 do for i := 0 to PluginDirs.Count - 1 do
begin; begin;
if DirectoryExists(PluginDirs.Strings[i]) = false then if DirectoryExists(PluginDirs.Strings[i]) = false then
raise Exception.createFMT('Directory(%s) does not exist',[PluginDirs[i]]); raise Exception.createFMT('Directory(%s) does not exist',[PluginDirs[i]]);
TempStr := PluginDirs.Strings[i]; TempStr := PluginDirs.Strings[i];
if (TempStr[Length(TempStr)] <> DS) then if (TempStr[Length(TempStr)] <> DS) then
begin; begin;
@ -133,6 +147,7 @@ implementation
inherited Create; inherited Create;
PluginLen := 0; PluginLen := 0;
PluginDirs := TStringList.Create; PluginDirs := TStringList.Create;
PluginDirs.CaseSensitive:= {$IFDEF LINUX}true{$ELSE}false{$ENDIF};
end; end;
destructor TGenericLoader.Destroy; destructor TGenericLoader.Destroy;

View File

@ -67,6 +67,7 @@ interface
TIOManager = class(TIOManager_Abstract) TIOManager = class(TIOManager_Abstract)
public public
constructor Create;
constructor Create(plugin_dir: string); constructor Create(plugin_dir: string);
function SetTarget(target: TNativeWindow): integer; overload; function SetTarget(target: TNativeWindow): integer; overload;
procedure SetDesktop; override; procedure SetDesktop; override;
@ -319,6 +320,11 @@ implementation
//***implementation*** IOManager //***implementation*** IOManager
constructor TIOManager.Create;
begin
inherited Create;
end;
constructor TIOManager.Create(plugin_dir: string); constructor TIOManager.Create(plugin_dir: string);
begin begin
inherited Create(plugin_dir); inherited Create(plugin_dir);

View File

@ -68,6 +68,7 @@ interface
TIOManager = class(TIOManager_Abstract) TIOManager = class(TIOManager_Abstract)
public public
constructor Create;
constructor Create(plugin_dir: string); constructor Create(plugin_dir: string);
function SetTarget(target: Hwnd): integer; overload; function SetTarget(target: Hwnd): integer; overload;
procedure SetDesktop; override; procedure SetDesktop; override;
@ -306,6 +307,11 @@ implementation
//***implementation*** IOManager //***implementation*** IOManager
constructor TIOManager.Create;
begin
inherited Create;
end;
constructor TIOManager.Create(plugin_dir: string); constructor TIOManager.Create(plugin_dir: string);
begin begin
inherited Create(plugin_dir); inherited Create(plugin_dir);