1
0
mirror of https://github.com/moparisthebest/Simba synced 2024-11-24 18:22:25 -05:00

Merge branch 'extensions'

Conflicts:
	Projects/SAMufasaGUI/testunit.lrs
This commit is contained in:
Merlijn Wajer 2010-03-20 13:36:35 +01:00
commit 3ffb6acc82
18 changed files with 7173 additions and 7127 deletions

View File

@ -1,9 +1,9 @@
pause,stop: From Lazarus (http://lazarus.freepascal.org) pause,stop: From Lazarus (http://lazarus.freepascal.org)
exit,cut,page_new,new,open,paste,redo,run,save,undo,help,bug,arrow_refresh,html: Mark James http://www.famfamfam.com/lab/icons/silk/ exit,cut,page_new,new,open,paste,redo,run,save,undo,help,bug,arrow_refresh,html: Mark James http://www.famfamfam.com/lab/icons/silk/
closetab,closetabs,addtab,eraser,terminate,terminal: Yusuke Kamiyamane http://www.pinvoke.com/ closetab,closetabs,addtab,eraser,terminate,terminal: Yusuke Kamiyamane http://www.pinvoke.com/
pickcolor: From the Crystal Clear Project (http://www.everaldo.com/crystal/) licensed under LGPL pickcolor: From the Crystal Clear Project (http://www.everaldo.com/crystal/) licensed under LGPL
crosshair: http://led24.de/iconset/ or http://led24.de/ would be appreciated. Follow us on twitter http://twitter.com/gasyoun or email leds24@gmail.com 512 icons 20/05/2009 crosshair: http://led24.de/iconset/ or http://led24.de/ would be appreciated. Follow us on twitter http://twitter.com/gasyoun or email leds24@gmail.com 512 icons 20/05/2009
Delete: http://www.oxygen-icons.org/ licensed under GPL Delete: http://www.oxygen-icons.org/ licensed under GPL
close:http://titancreations.org/ close:http://titancreations.org/
search: http://wefunction.com/2008/07/function-free-icon-set search: http://wefunction.com/2008/07/function-free-icon-set

View File

@ -1,7 +1,7 @@
const const
TestStr = 'Hai, seems like you got includes working!'; TestStr = 'Hai, seems like you got includes working!';
function Multiply(a,b : integer) : integer; function Multiply(a,b : integer) : integer;
begin; begin;
result := a*b; result := a*b;
end; end;

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApp" type="win32"/> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApp" type="win32"/>
<description>Your application description here.</description> <description>Your application description here.</description>
<dependency> <dependency>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security> <security>
<requestedPrivileges> <requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/> <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges> </requestedPrivileges>
</security> </security>
</trustInfo> </trustInfo>
</assembly> </assembly>

View File

@ -1,7 +1,7 @@
#define RT_MANIFEST 24 #define RT_MANIFEST 24
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1 #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2 #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3 #define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "project1.manifest" CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "project1.manifest"
MAINICON ICON "project1.ico" MAINICON ICON "project1.ico"

View File

@ -1,394 +1,394 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="7"/> <Version Value="7"/>
<General> <General>
<MainUnit Value="0"/> <MainUnit Value="0"/>
<TargetFileExt Value=""/> <TargetFileExt Value=""/>
<UseXPManifest Value="True"/> <UseXPManifest Value="True"/>
<Icon Value="0"/> <Icon Value="0"/>
<ActiveEditorIndexAtStart Value="0"/> <ActiveEditorIndexAtStart Value="0"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
<Language Value=""/> <Language Value=""/>
<CharSet Value=""/> <CharSet Value=""/>
</VersionInfo> </VersionInfo>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
<IgnoreBinaries Value="False"/> <IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions> </PublishOptions>
<RunParams> <RunParams>
<local> <local>
<FormatVersion Value="1"/> <FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local> </local>
</RunParams> </RunParams>
<RequiredPackages Count="1"> <RequiredPackages Count="1">
<Item1> <Item1>
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item1> </Item1>
</RequiredPackages> </RequiredPackages>
<Units Count="23"> <Units Count="23">
<Unit0> <Unit0>
<Filename Value="project1.lpr"/> <Filename Value="project1.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="project1"/> <UnitName Value="project1"/>
<UsageCount Value="69"/> <UsageCount Value="69"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="Form1"/> <ComponentName Value="Form1"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/> <UnitName Value="Unit1"/>
<CursorPos X="25" Y="165"/> <CursorPos X="25" Y="165"/>
<TopLine Value="146"/> <TopLine Value="146"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="69"/> <UsageCount Value="69"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="../SAMufasaGUI/colourhistory.pas"/> <Filename Value="../SAMufasaGUI/colourhistory.pas"/>
<ComponentName Value="ColourHistoryForm"/> <ComponentName Value="ColourHistoryForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="colourhistory"/> <UnitName Value="colourhistory"/>
<CursorPos X="10" Y="457"/> <CursorPos X="10" Y="457"/>
<TopLine Value="437"/> <TopLine Value="437"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="../SAMufasaGUI/testunit.pas"/> <Filename Value="../SAMufasaGUI/testunit.pas"/>
<ComponentName Value="Form1"/> <ComponentName Value="Form1"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="TestUnit"/> <UnitName Value="TestUnit"/>
<CursorPos X="38" Y="405"/> <CursorPos X="38" Y="405"/>
<TopLine Value="382"/> <TopLine Value="382"/>
<UsageCount Value="8"/> <UsageCount Value="8"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="../../Units/MMLCore/client.pas"/> <Filename Value="../../Units/MMLCore/client.pas"/>
<UnitName Value="Client"/> <UnitName Value="Client"/>
<CursorPos X="27" Y="48"/> <CursorPos X="27" Y="48"/>
<TopLine Value="30"/> <TopLine Value="30"/>
<EditorIndex Value="7"/> <EditorIndex Value="7"/>
<UsageCount Value="35"/> <UsageCount Value="35"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
<Filename Value="../../Units/MMLCore/ocr.pas"/> <Filename Value="../../Units/MMLCore/ocr.pas"/>
<UnitName Value="ocr"/> <UnitName Value="ocr"/>
<CursorPos X="73" Y="16"/> <CursorPos X="73" Y="16"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="9"/> <EditorIndex Value="9"/>
<UsageCount Value="35"/> <UsageCount Value="35"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="../../Units/MMLCore/bitmaps.pas"/> <Filename Value="../../Units/MMLCore/bitmaps.pas"/>
<UnitName Value="bitmaps"/> <UnitName Value="bitmaps"/>
<CursorPos X="18" Y="81"/> <CursorPos X="18" Y="81"/>
<TopLine Value="47"/> <TopLine Value="47"/>
<EditorIndex Value="14"/> <EditorIndex Value="14"/>
<UsageCount Value="34"/> <UsageCount Value="34"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
<Filename Value="../../Units/MMLCore/ocrutil.pas"/> <Filename Value="../../Units/MMLCore/ocrutil.pas"/>
<UnitName Value="ocrutil"/> <UnitName Value="ocrutil"/>
<CursorPos X="39" Y="208"/> <CursorPos X="39" Y="208"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="6"/> <EditorIndex Value="6"/>
<UsageCount Value="34"/> <UsageCount Value="34"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
<Filename Value="../../../Documents/lazarus/lcl/interfaces/gtk/gtkwidgetset.inc"/> <Filename Value="../../../Documents/lazarus/lcl/interfaces/gtk/gtkwidgetset.inc"/>
<CursorPos X="41" Y="1226"/> <CursorPos X="41" Y="1226"/>
<TopLine Value="1205"/> <TopLine Value="1205"/>
<UsageCount Value="8"/> <UsageCount Value="8"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
<Filename Value="../../Units/MMLAddon/tpa.pas"/> <Filename Value="../../Units/MMLAddon/tpa.pas"/>
<UnitName Value="tpa"/> <UnitName Value="tpa"/>
<CursorPos X="5" Y="557"/> <CursorPos X="5" Y="557"/>
<TopLine Value="535"/> <TopLine Value="535"/>
<UsageCount Value="31"/> <UsageCount Value="31"/>
</Unit9> </Unit9>
<Unit10> <Unit10>
<Filename Value="../../Units/MMLCore/mufasatypesutil.pas"/> <Filename Value="../../Units/MMLCore/mufasatypesutil.pas"/>
<UnitName Value="mufasatypesutil"/> <UnitName Value="mufasatypesutil"/>
<CursorPos X="25" Y="8"/> <CursorPos X="25" Y="8"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="12"/> <EditorIndex Value="12"/>
<UsageCount Value="31"/> <UsageCount Value="31"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit10> </Unit10>
<Unit11> <Unit11>
<Filename Value="../../Units/MMLCore/finder.pas"/> <Filename Value="../../Units/MMLCore/finder.pas"/>
<UnitName Value="finder"/> <UnitName Value="finder"/>
<CursorPos X="78" Y="455"/> <CursorPos X="78" Y="455"/>
<TopLine Value="432"/> <TopLine Value="432"/>
<EditorIndex Value="8"/> <EditorIndex Value="8"/>
<UsageCount Value="28"/> <UsageCount Value="28"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
<Filename Value="../../../Documents/fpc/rtl/inc/objpash.inc"/> <Filename Value="../../../Documents/fpc/rtl/inc/objpash.inc"/>
<CursorPos X="48" Y="193"/> <CursorPos X="48" Y="193"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="8"/> <UsageCount Value="8"/>
</Unit12> </Unit12>
<Unit13> <Unit13>
<Filename Value="../../../Documents/fpc/rtl/objpas/sysutils/finah.inc"/> <Filename Value="../../../Documents/fpc/rtl/objpas/sysutils/finah.inc"/>
<CursorPos X="17" Y="40"/> <CursorPos X="17" Y="40"/>
<TopLine Value="4"/> <TopLine Value="4"/>
<UsageCount Value="9"/> <UsageCount Value="9"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
<Filename Value="../../Units/MMLCore/files.pas"/> <Filename Value="../../Units/MMLCore/files.pas"/>
<UnitName Value="files"/> <UnitName Value="files"/>
<CursorPos X="7" Y="103"/> <CursorPos X="7" Y="103"/>
<TopLine Value="34"/> <TopLine Value="34"/>
<EditorIndex Value="11"/> <EditorIndex Value="11"/>
<UsageCount Value="25"/> <UsageCount Value="25"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit14> </Unit14>
<Unit15> <Unit15>
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/> <Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
<UnitName Value="colourpicker"/> <UnitName Value="colourpicker"/>
<CursorPos X="48" Y="238"/> <CursorPos X="48" Y="238"/>
<TopLine Value="226"/> <TopLine Value="226"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit15> </Unit15>
<Unit16> <Unit16>
<Filename Value="../../Units/MMLAddon/windowselector.pas"/> <Filename Value="../../Units/MMLAddon/windowselector.pas"/>
<UnitName Value="windowselector"/> <UnitName Value="windowselector"/>
<CursorPos X="1" Y="33"/> <CursorPos X="1" Y="33"/>
<TopLine Value="12"/> <TopLine Value="12"/>
<EditorIndex Value="13"/> <EditorIndex Value="13"/>
<UsageCount Value="17"/> <UsageCount Value="17"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit16> </Unit16>
<Unit17> <Unit17>
<Filename Value="../../Units/MMLCore/window.pas"/> <Filename Value="../../Units/MMLCore/window.pas"/>
<UnitName Value="Window"/> <UnitName Value="Window"/>
<CursorPos X="94" Y="338"/> <CursorPos X="94" Y="338"/>
<TopLine Value="323"/> <TopLine Value="323"/>
<UsageCount Value="15"/> <UsageCount Value="15"/>
</Unit17> </Unit17>
<Unit18> <Unit18>
<Filename Value="../../Units/MMLCore/mufasatypes.pas"/> <Filename Value="../../Units/MMLCore/mufasatypes.pas"/>
<UnitName Value="MufasaTypes"/> <UnitName Value="MufasaTypes"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="277"/> <TopLine Value="277"/>
<EditorIndex Value="5"/> <EditorIndex Value="5"/>
<UsageCount Value="15"/> <UsageCount Value="15"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit18> </Unit18>
<Unit19> <Unit19>
<Filename Value="../../Units/MMLCore/fontloader.pas"/> <Filename Value="../../Units/MMLCore/fontloader.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="fontloader"/> <UnitName Value="fontloader"/>
<CursorPos X="42" Y="106"/> <CursorPos X="42" Y="106"/>
<TopLine Value="89"/> <TopLine Value="89"/>
<EditorIndex Value="10"/> <EditorIndex Value="10"/>
<UsageCount Value="24"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit19> </Unit19>
<Unit20> <Unit20>
<Filename Value="../../Units/MMLCore/os_linux.pas"/> <Filename Value="../../Units/MMLCore/os_linux.pas"/>
<UnitName Value="os_linux"/> <UnitName Value="os_linux"/>
<CursorPos X="48" Y="61"/> <CursorPos X="48" Y="61"/>
<TopLine Value="37"/> <TopLine Value="37"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit20> </Unit20>
<Unit21> <Unit21>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<UnitName Value="IOManager"/> <UnitName Value="IOManager"/>
<CursorPos X="87" Y="102"/> <CursorPos X="87" Y="102"/>
<TopLine Value="227"/> <TopLine Value="227"/>
<EditorIndex Value="4"/> <EditorIndex Value="4"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit21> </Unit21>
<Unit22> <Unit22>
<Filename Value="../../Units/MMLCore/os_windows.pas"/> <Filename Value="../../Units/MMLCore/os_windows.pas"/>
<UnitName Value="os_windows"/> <UnitName Value="os_windows"/>
<CursorPos X="65" Y="64"/> <CursorPos X="65" Y="64"/>
<TopLine Value="45"/> <TopLine Value="45"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit22> </Unit22>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="87" Column="22" TopLine="69"/> <Caret Line="87" Column="22" TopLine="69"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="../../Units/MMLCore/os_linux.pas"/> <Filename Value="../../Units/MMLCore/os_linux.pas"/>
<Caret Line="73" Column="41" TopLine="55"/> <Caret Line="73" Column="41" TopLine="55"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="11" Column="24" TopLine="1"/> <Caret Line="11" Column="24" TopLine="1"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="91" Column="11" TopLine="71"/> <Caret Line="91" Column="11" TopLine="71"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="../../Units/MMLCore/client.pas"/> <Filename Value="../../Units/MMLCore/client.pas"/>
<Caret Line="48" Column="27" TopLine="30"/> <Caret Line="48" Column="27" TopLine="30"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="../../Units/MMLCore/os_linux.pas"/> <Filename Value="../../Units/MMLCore/os_linux.pas"/>
<Caret Line="69" Column="35" TopLine="51"/> <Caret Line="69" Column="35" TopLine="51"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="../../Units/MMLCore/os_linux.pas"/> <Filename Value="../../Units/MMLCore/os_linux.pas"/>
<Caret Line="41" Column="32" TopLine="34"/> <Caret Line="41" Column="32" TopLine="34"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="66" Column="28" TopLine="45"/> <Caret Line="66" Column="28" TopLine="45"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="87" Column="6" TopLine="82"/> <Caret Line="87" Column="6" TopLine="82"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="200" Column="37" TopLine="194"/> <Caret Line="200" Column="37" TopLine="194"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="348" Column="85" TopLine="330"/> <Caret Line="348" Column="85" TopLine="330"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="233" Column="33" TopLine="215"/> <Caret Line="233" Column="33" TopLine="215"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="17" Column="73" TopLine="1"/> <Caret Line="17" Column="73" TopLine="1"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="233" Column="33" TopLine="215"/> <Caret Line="233" Column="33" TopLine="215"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="32" Column="16" TopLine="14"/> <Caret Line="32" Column="16" TopLine="14"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="8" Column="99" TopLine="1"/> <Caret Line="8" Column="99" TopLine="1"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="12" Column="56" TopLine="5"/> <Caret Line="12" Column="56" TopLine="5"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="87" Column="29" TopLine="65"/> <Caret Line="87" Column="29" TopLine="65"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="36" Column="18" TopLine="18"/> <Caret Line="36" Column="18" TopLine="18"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="../../Units/MMLCore/os_linux.pas"/> <Filename Value="../../Units/MMLCore/os_linux.pas"/>
<Caret Line="69" Column="34" TopLine="56"/> <Caret Line="69" Column="34" TopLine="56"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="36" Column="18" TopLine="18"/> <Caret Line="36" Column="18" TopLine="18"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="87" Column="47" TopLine="70"/> <Caret Line="87" Column="47" TopLine="70"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="../../Units/MMLCore/iomanager.pas"/> <Filename Value="../../Units/MMLCore/iomanager.pas"/>
<Caret Line="226" Column="37" TopLine="196"/> <Caret Line="226" Column="37" TopLine="196"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="87" Column="60" TopLine="69"/> <Caret Line="87" Column="60" TopLine="69"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="95" Column="79" TopLine="70"/> <Caret Line="95" Column="79" TopLine="70"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="../../Units/MMLCore/os_linux.pas"/> <Filename Value="../../Units/MMLCore/os_linux.pas"/>
<Caret Line="191" Column="107" TopLine="170"/> <Caret Line="191" Column="107" TopLine="170"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="10" Column="8" TopLine="1"/> <Caret Line="10" Column="8" TopLine="1"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="../../Units/MMLCore/os_windows.pas"/> <Filename Value="../../Units/MMLCore/os_windows.pas"/>
<Caret Line="167" Column="15" TopLine="144"/> <Caret Line="167" Column="15" TopLine="144"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="9" Column="38" TopLine="1"/> <Caret Line="9" Column="38" TopLine="1"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="10" Column="32" TopLine="1"/> <Caret Line="10" Column="32" TopLine="1"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="8"/> <Version Value="8"/>
<Target> <Target>
<Filename Value="project1"/> <Filename Value="project1"/>
</Target> </Target>
<SearchPaths> <SearchPaths>
<IncludeFiles Value="$(ProjOutDir)/;$(ProjPath)../../Units/MMLAddon/PSInc/"/> <IncludeFiles Value="$(ProjOutDir)/;$(ProjPath)../../Units/MMLAddon/PSInc/"/>
<OtherUnitFiles Value="$(ProjPath)../../Units/MMLCore/;$(ProjPath)../../Units/MMLAddon/;$(ProjPath)../../Units/PascalScript/;$(ProjPath)../../Units/Misc/;$(ProjPath)../../Units/MMLAddon/PSInc/;$(ProjPath)../../Units/Linux/;$(LazarusDir)/components/mouseandkeyinput/"/> <OtherUnitFiles Value="$(ProjPath)../../Units/MMLCore/;$(ProjPath)../../Units/MMLAddon/;$(ProjPath)../../Units/PascalScript/;$(ProjPath)../../Units/Misc/;$(ProjPath)../../Units/MMLAddon/PSInc/;$(ProjPath)../../Units/Linux/;$(LazarusDir)/components/mouseandkeyinput/"/>
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths> </SearchPaths>
<CodeGeneration> <CodeGeneration>
<Optimizations> <Optimizations>
<OptimizationLevel Value="3"/> <OptimizationLevel Value="3"/>
</Optimizations> </Optimizations>
</CodeGeneration> </CodeGeneration>
<Linking> <Linking>
<Debugging> <Debugging>
<GenerateDebugInfo Value="True"/> <GenerateDebugInfo Value="True"/>
</Debugging> </Debugging>
</Linking> </Linking>
<Other> <Other>
<CustomOptions Value="-dOCRDEBUG"/> <CustomOptions Value="-dOCRDEBUG"/>
<CompilerPath Value="$(CompPath)"/> <CompilerPath Value="$(CompPath)"/>
</Other> </Other>
</CompilerOptions> </CompilerOptions>
<Debugging> <Debugging>
<Exceptions Count="3"> <Exceptions Count="3">
<Item1> <Item1>
<Name Value="EAbort"/> <Name Value="EAbort"/>
</Item1> </Item1>
<Item2> <Item2>
<Name Value="ECodetoolError"/> <Name Value="ECodetoolError"/>
</Item2> </Item2>
<Item3> <Item3>
<Name Value="EFOpenError"/> <Name Value="EFOpenError"/>
</Item3> </Item3>
</Exceptions> </Exceptions>
</Debugging> </Debugging>
</CONFIG> </CONFIG>

View File

@ -1,22 +1,22 @@
program project1; program project1;
{$mode objfpc}{$H+} {$mode objfpc}{$H+}
uses uses
{$IFDEF UNIX}{$IFDEF UseCThreads} {$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads, cthreads,
{$ENDIF}{$ENDIF} {$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset Interfaces, // this includes the LCL widgetset
Forms Forms
{ you can add units after this }, Unit1, LResources; { you can add units after this }, Unit1, LResources;
{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF} {$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}
begin begin
Application.Title:='TestApp'; Application.Title:='TestApp';
{$I project1.lrs} {$I project1.lrs}
Application.Initialize; Application.Initialize;
Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm1, Form1);
Application.Run; Application.Run;
end. end.

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApp" type="win32"/> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApp" type="win32"/>
<description>Your application description here.</description> <description>Your application description here.</description>
<dependency> <dependency>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security> <security>
<requestedPrivileges> <requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/> <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges> </requestedPrivileges>
</security> </security>
</trustInfo> </trustInfo>
</assembly> </assembly>

View File

@ -1,45 +1,45 @@
{ This is an automatically generated lazarus resource file } { This is an automatically generated lazarus resource file }
LazarusResources.Add('TColourHistoryForm','FORMDATA',[ LazarusResources.Add('TColourHistoryForm','FORMDATA',[
'TPF0'#18'TColourHistoryForm'#17'ColourHistoryForm'#4'Left'#3'v'#1#6'Height'#3 'TPF0'#18'TColourHistoryForm'#17'ColourHistoryForm'#4'Left'#3'v'#1#6'Height'#3
+#4#1#3'Top'#3'O'#1#5'Width'#3#243#1#13'ActiveControl'#7#13'SelectionName'#7 +#4#1#3'Top'#3'O'#1#5'Width'#3#243#1#13'ActiveControl'#7#13'SelectionName'#7
+'Caption'#6#21'Colour Picker History'#12'ClientHeight'#3#240#0#11'ClientWidt' +'Caption'#6#21'Colour Picker History'#12'ClientHeight'#3#240#0#11'ClientWidt'
+'h'#3#243#1#21'Constraints.MinHeight'#3#200#0#20'Constraints.MinWidth'#3#234 +'h'#3#243#1#21'Constraints.MinHeight'#3#200#0#20'Constraints.MinWidth'#3#234
+#1#4'Menu'#7#10'CHMainMenu'#8'OnCreate'#7#10'FormCreate'#6'OnHide'#7#15'UnSe' +#1#4'Menu'#7#10'CHMainMenu'#8'OnCreate'#7#10'FormCreate'#6'OnHide'#7#15'UnSe'
+'tCHShowMenu'#6'OnShow'#7#13'SetCHShowMenu'#10'LCLVersion'#6#6'0.9.29'#0#7'T' +'tCHShowMenu'#6'OnShow'#7#13'SetCHShowMenu'#10'LCLVersion'#6#6'0.9.29'#0#7'T'
+'Button'#12'DeleteButton'#4'Left'#2#16#6'Height'#2#25#3'Top'#3#198#0#5'Width' +'Button'#12'DeleteButton'#4'Left'#2#16#6'Height'#2#25#3'Top'#3#198#0#5'Width'
+#3#128#0#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#6'Delete'#7'OnCl' +#3#128#0#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#6'Delete'#7'OnCl'
+'ick'#7#14'DeleteSelected'#8'TabOrder'#2#0#0#0#5'TEdit'#13'SelectionName'#4 +'ick'#7#14'DeleteSelected'#8'TabOrder'#2#0#0#0#5'TEdit'#13'SelectionName'#4
+'Left'#3'r'#1#6'Height'#2#21#3'Top'#2#16#5'Width'#2'p'#7'Anchors'#11#5'akTop' +'Left'#3'r'#1#6'Height'#2#21#3'Top'#2#16#5'Width'#2'p'#7'Anchors'#11#5'akTop'
+#7'akRight'#0#8'OnChange'#7#10'ChangeName'#10'OnKeyPress'#7#21'SelectionName' +#7'akRight'#0#8'OnChange'#7#10'ChangeName'#10'OnKeyPress'#7#21'SelectionName'
+'KeyPress'#8'TabOrder'#2#1#4'Text'#6#4'Name'#0#0#7'TButton'#19'PickNewColour' +'KeyPress'#8'TabOrder'#2#1#4'Text'#6#4'Name'#0#0#7'TButton'#19'PickNewColour'
+'Button'#4'Left'#3#226#0#6'Height'#2#25#3'Top'#3#198#0#5'Width'#3#128#0#7'An' +'Button'#4'Left'#3#226#0#6'Height'#2#25#3'Top'#3#198#0#5'Width'#3#128#0#7'An'
+'chors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#15'Pick New Colour'#8'TabOr' +'chors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#15'Pick New Colour'#8'TabOr'
+'der'#2#2#0#0#5'TEdit'#11'ColourValue'#4'Left'#3'r'#1#6'Height'#2#21#3'Top'#2 +'der'#2#2#0#0#5'TEdit'#11'ColourValue'#4'Left'#3'r'#1#6'Height'#2#21#3'Top'#2
+'8'#5'Width'#2'p'#7'Anchors'#11#5'akTop'#7'akRight'#0#8'ReadOnly'#9#8'TabOrd' +'8'#5'Width'#2'p'#7'Anchors'#11#5'akTop'#7'akRight'#0#8'ReadOnly'#9#8'TabOrd'
+'er'#2#3#4'Text'#6#11'ColourValue'#0#0#6'TLabel'#10'CoordValue'#4'Left'#3'r' +'er'#2#3#4'Text'#6#11'ColourValue'#0#0#6'TLabel'#10'CoordValue'#4'Left'#3'r'
+#1#6'Height'#2#14#3'Top'#2'`'#5'Width'#2'p'#7'Anchors'#11#5'akTop'#7'akRight' +#1#6'Height'#2#14#3'Top'#2'`'#5'Width'#2'p'#7'Anchors'#11#5'akTop'#7'akRight'
+#0#7'Caption'#6#10'CoordValue'#20'Constraints.MinWidth'#2'p'#11'ParentColor' +#0#7'Caption'#6#10'CoordValue'#20'Constraints.MinWidth'#2'p'#11'ParentColor'
+#8#0#0#6'TImage'#11'ColourImage'#4'Left'#3#152#0#6'Height'#2#24#3'Top'#3#199 +#8#0#0#6'TImage'#11'ColourImage'#4'Left'#3#152#0#6'Height'#2#24#3'Top'#3#199
+#0#5'Width'#2'B'#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#0#0#7'TBut' +#0#5'Width'#2'B'#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#0#0#7'TBut'
+'ton'#8'OkButton'#4'Left'#3#146#1#6'Height'#2#24#3'Top'#3#199#0#5'Width'#2'P' +'ton'#8'OkButton'#4'Left'#3#146#1#6'Height'#2#24#3'Top'#3#199#0#5'Width'#2'P'
+#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#2'Ok'#7'OnClick'#7#13'O' +#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#2'Ok'#7'OnClick'#7#13'O'
+'kButtonClick'#8'TabOrder'#2#4#0#0#6'TLabel'#12'CH_RGB_Label'#4'Left'#3'r'#1 +'kButtonClick'#8'TabOrder'#2#4#0#0#6'TLabel'#12'CH_RGB_Label'#4'Left'#3'r'#1
+#6'Height'#2#14#3'Top'#3#128#0#5'Width'#2'p'#7'Anchors'#11#5'akTop'#7'akRigh' +#6'Height'#2#14#3'Top'#3#128#0#5'Width'#2'p'#7'Anchors'#11#5'akTop'#7'akRigh'
+'t'#0#7'Caption'#6#9'RGBValues'#20'Constraints.MinWidth'#2'p'#11'ParentColor' +'t'#0#7'Caption'#6#9'RGBValues'#20'Constraints.MinWidth'#2'p'#11'ParentColor'
+#8#0#0#9'TTreeView'#10'ColourTree'#4'Left'#2#8#6'Height'#3#159#0#3'Top'#2#16 +#8#0#0#9'TTreeView'#10'ColourTree'#4'Left'#2#8#6'Height'#3#159#0#3'Top'#2#16
+#5'Width'#3'Z'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17 +#5'Width'#3'Z'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17
+'DefaultItemHeight'#2#16#8'DragMode'#7#11'dmAutomatic'#6'Images'#7#8'CHImage' +'DefaultItemHeight'#2#16#8'DragMode'#7#11'dmAutomatic'#6'Images'#7#8'CHImage'
+'s'#10'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#5#8'OnChange'#7#16'ColourT' +'s'#10'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#5#8'OnChange'#7#16'ColourT'
+'reeChange'#10'OnDragDrop'#7#18'ColourTreeDragDrop'#10'OnDragOver'#7#18'Colo' +'reeChange'#10'OnDragDrop'#7#18'ColourTreeDragDrop'#10'OnDragOver'#7#18'Colo'
+'urTreeDragOver'#0#0#10'TImageList'#8'CHImages'#4'left'#3#168#1#3'top'#3#160 +'urTreeDragOver'#0#0#10'TImageList'#8'CHImages'#4'left'#3#168#1#3'top'#3#160
+#0#0#0#9'TMainMenu'#10'CHMainMenu'#4'left'#3'h'#1#3'top'#3#160#0#0#9'TMenuIt' +#0#0#0#9'TMainMenu'#10'CHMainMenu'#4'left'#3'h'#1#3'top'#3#160#0#0#9'TMenuIt'
+'em'#6'CHFile'#7'Caption'#6#4'File'#0#9'TMenuItem'#7'CHClear'#7'Caption'#6#5 +'em'#6'CHFile'#7'Caption'#6#4'File'#0#9'TMenuItem'#7'CHClear'#7'Caption'#6#5
+'Clear'#7'OnClick'#7#12'CHClearClick'#0#0#9'TMenuItem'#6'CHLoad'#7'Caption'#6 +'Clear'#7'OnClick'#7#12'CHClearClick'#0#0#9'TMenuItem'#6'CHLoad'#7'Caption'#6
+#4'Load'#7'OnClick'#7#11'CHLoadClick'#0#0#9'TMenuItem'#6'CHSave'#7'Caption'#6 +#4'Load'#7'OnClick'#7#11'CHLoadClick'#0#0#9'TMenuItem'#6'CHSave'#7'Caption'#6
+#4'Save'#7'OnClick'#7#11'CHSaveClick'#0#0#0#9'TMenuItem'#6'CHHelp'#7'Caption' +#4'Save'#7'OnClick'#7#11'CHSaveClick'#0#0#0#9'TMenuItem'#6'CHHelp'#7'Caption'
+#6#4'Help'#0#9'TMenuItem'#7'CHAbout'#7'Caption'#6#5'About'#7'OnClick'#7#12'C' +#6#4'Help'#0#9'TMenuItem'#7'CHAbout'#7'Caption'#6#5'About'#7'OnClick'#7#12'C'
+'HAboutClick'#0#0#0#0#11'TSaveDialog'#12'CHSaveDialog'#10'DefaultExt'#6#4'.x' +'HAboutClick'#0#0#0#0#11'TSaveDialog'#12'CHSaveDialog'#10'DefaultExt'#6#4'.x'
+'ml'#4'left'#3#136#1#3'top'#3#160#0#0#0#11'TOpenDialog'#12'CHOpenDialog'#10 +'ml'#4'left'#3#136#1#3'top'#3#160#0#0#0#11'TOpenDialog'#12'CHOpenDialog'#10
+'DefaultExt'#6#4'.xml'#4'left'#3#200#1#3'top'#3#160#0#0#0#0 +'DefaultExt'#6#4'.xml'#4'left'#3#200#1#3'top'#3#160#0#0#0#0
]); ]);

View File

@ -18,21 +18,46 @@ type
public public
constructor Create; constructor Create;
destructor Destroy; override; destructor Destroy; override;
private
Extensions: TList;
public
function HandleHook(HookName: String; Args: Array of Variant): Variant;
end; end;
implementation implementation
uses
pseventextension, virtualextension;
constructor TExtensionManager.Create; constructor TExtensionManager.Create;
begin begin
Extensions := TList.Create;
end; end;
destructor TExtensionManager.Destroy; destructor TExtensionManager.Destroy;
var
i: Integer;
begin begin
{
for i := 0 to Extensions.Count - 1 do
TVirtualSimbaExtension(Extensions.Items[i]).Free;
}
Extensions.Free;
end;
// How do we return more than one result?
function TExtensionManager.HandleHook(HookName: String; Args: Array of Variant): Variant;
var
i: Integer;
begin
for i := 0 to Extensions.Count -1 do
if TVirtualSimbaExtension(Extensions.Items[i]).HookExists(HookName) then
if TVirtualSimbaExtension(Extensions.Items[i]).ExecuteHook(HookName, Args, Result) <> 0 then
begin
// Not succesfull.
end;
end; end;
end. end.

View File

@ -1,139 +1,139 @@
object FunctionListFrame: TFunctionListFrame object FunctionListFrame: TFunctionListFrame
Left = 0 Left = 0
Height = 522 Height = 522
Top = 0 Top = 0
Width = 182 Width = 182
Align = alLeft Align = alLeft
ClientHeight = 522 ClientHeight = 522
ClientWidth = 182 ClientWidth = 182
OnEndDock = FrameEndDock OnEndDock = FrameEndDock
TabOrder = 0 TabOrder = 0
DesignLeft = 401 DesignLeft = 401
DesignTop = 219 DesignTop = 219
object FunctionList: TTreeView object FunctionList: TTreeView
Left = 0 Left = 0
Height = 483 Height = 483
Top = 18 Top = 18
Width = 182 Width = 182
Align = alClient Align = alClient
DefaultItemHeight = 15 DefaultItemHeight = 15
ReadOnly = True ReadOnly = True
ScrollBars = ssAutoBoth ScrollBars = ssAutoBoth
TabOrder = 0 TabOrder = 0
OnDblClick = FunctionListDblClick OnDblClick = FunctionListDblClick
OnDeletion = FunctionListDeletion OnDeletion = FunctionListDeletion
OnMouseDown = FunctionListMouseDown OnMouseDown = FunctionListMouseDown
OnMouseUp = FunctionListMouseUp OnMouseUp = FunctionListMouseUp
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips] Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end end
object editSearchList: TEdit object editSearchList: TEdit
Left = 0 Left = 0
Height = 21 Height = 21
Top = 501 Top = 501
Width = 182 Width = 182
Align = alBottom Align = alBottom
OnChange = editSearchListChange OnChange = editSearchListChange
TabOrder = 1 TabOrder = 1
end end
object FunctionListLabel: TLabel object FunctionListLabel: TLabel
Left = 2 Left = 2
Height = 14 Height = 14
Top = 2 Top = 2
Width = 178 Width = 178
Align = alTop Align = alTop
Alignment = taCenter Alignment = taCenter
BorderSpacing.Around = 2 BorderSpacing.Around = 2
Caption = 'Functionlist' Caption = 'Functionlist'
Font.Style = [fsBold] Font.Style = [fsBold]
ParentColor = False ParentColor = False
ParentFont = False ParentFont = False
OnMouseDown = FunctionListLabelMouseDown OnMouseDown = FunctionListLabelMouseDown
end end
object CloseButton: TSpeedButton object CloseButton: TSpeedButton
Left = 134 Left = 134
Height = 16 Height = 16
Top = 2 Top = 2
Width = 16 Width = 16
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Color = clBtnFace Color = clBtnFace
Flat = True Flat = True
Glyph.Data = { Glyph.Data = {
36090000424D3609000000000000360000002800000018000000180000000100 36090000424D3609000000000000360000002800000018000000180000000100
2000000000000009000064000000640000000000000000000000000000000000 2000000000000009000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
00FF0000000000000000000000000000000000000000000000FF000000000000 00FF0000000000000000000000000000000000000000000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000FF0000 0000000000000000000000000000000000000000000000000000000000FF0000
00FF000000FF000000000000000000000000000000FF000000FF000000FF0000 00FF000000FF000000000000000000000000000000FF000000FF000000FF0000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
00FF000000FF000000FF00000000000000FF000000FF000000FF000000000000 00FF000000FF000000FF00000000000000FF000000FF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000FF000000FF000000FF000000FF000000FF00000000000000000000 0000000000FF000000FF000000FF000000FF000000FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FF000000FF000000FF0000000000000000000000000000 000000000000000000FF000000FF000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000FF000000FF000000FF000000FF000000FF00000000000000000000 0000000000FF000000FF000000FF000000FF000000FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
00FF000000FF000000FF00000000000000FF000000FF000000FF000000000000 00FF000000FF000000FF00000000000000FF000000FF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000FF0000 0000000000000000000000000000000000000000000000000000000000FF0000
00FF000000FF000000000000000000000000000000FF000000FF000000FF0000 00FF000000FF000000000000000000000000000000FF000000FF000000FF0000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
00FF0000000000000000000000000000000000000000000000FF000000000000 00FF0000000000000000000000000000000000000000000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000
} }
NumGlyphs = 0 NumGlyphs = 0
OnClick = CloseButtonClick OnClick = CloseButtonClick
end end
end end

View File

@ -1,88 +1,88 @@
{ This is an automatically generated lazarus resource file } { This is an automatically generated lazarus resource file }
LazarusResources.Add('TFunctionListFrame','FORMDATA',[ LazarusResources.Add('TFunctionListFrame','FORMDATA',[
'TPF0'#18'TFunctionListFrame'#17'FunctionListFrame'#4'Left'#2#0#6'Height'#3#10 'TPF0'#18'TFunctionListFrame'#17'FunctionListFrame'#4'Left'#2#0#6'Height'#3#10
+#2#3'Top'#2#0#5'Width'#3#182#0#5'Align'#7#6'alLeft'#12'ClientHeight'#3#10#2 +#2#3'Top'#2#0#5'Width'#3#182#0#5'Align'#7#6'alLeft'#12'ClientHeight'#3#10#2
+#11'ClientWidth'#3#182#0#9'OnEndDock'#7#12'FrameEndDock'#8'TabOrder'#2#0#10 +#11'ClientWidth'#3#182#0#9'OnEndDock'#7#12'FrameEndDock'#8'TabOrder'#2#0#10
+'DesignLeft'#3#145#1#9'DesignTop'#3#219#0#0#9'TTreeView'#12'FunctionList'#4 +'DesignLeft'#3#145#1#9'DesignTop'#3#219#0#0#9'TTreeView'#12'FunctionList'#4
+'Left'#2#0#6'Height'#3#227#1#3'Top'#2#18#5'Width'#3#182#0#5'Align'#7#8'alCli' +'Left'#2#0#6'Height'#3#227#1#3'Top'#2#18#5'Width'#3#182#0#5'Align'#7#8'alCli'
+'ent'#17'DefaultItemHeight'#2#15#8'ReadOnly'#9#10'ScrollBars'#7#10'ssAutoBot' +'ent'#17'DefaultItemHeight'#2#15#8'ReadOnly'#9#10'ScrollBars'#7#10'ssAutoBot'
+'h'#8'TabOrder'#2#0#10'OnDblClick'#7#20'FunctionListDblClick'#10'OnDeletion' +'h'#8'TabOrder'#2#0#10'OnDblClick'#7#20'FunctionListDblClick'#10'OnDeletion'
+#7#20'FunctionListDeletion'#11'OnMouseDown'#7#21'FunctionListMouseDown'#9'On' +#7#20'FunctionListDeletion'#11'OnMouseDown'#7#21'FunctionListMouseDown'#9'On'
+'MouseUp'#7#19'FunctionListMouseUp'#7'Options'#11#17'tvoAutoItemHeight'#16't' +'MouseUp'#7#19'FunctionListMouseUp'#7'Options'#11#17'tvoAutoItemHeight'#16't'
+'voHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoReadOnly'#14'tvoShowButton' +'voHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoReadOnly'#14'tvoShowButton'
+'s'#12'tvoShowLines'#11'tvoShowRoot'#11'tvoToolTips'#0#0#0#5'TEdit'#14'editS' +'s'#12'tvoShowLines'#11'tvoShowRoot'#11'tvoToolTips'#0#0#0#5'TEdit'#14'editS'
+'earchList'#4'Left'#2#0#6'Height'#2#21#3'Top'#3#245#1#5'Width'#3#182#0#5'Ali' +'earchList'#4'Left'#2#0#6'Height'#2#21#3'Top'#3#245#1#5'Width'#3#182#0#5'Ali'
+'gn'#7#8'alBottom'#8'OnChange'#7#20'editSearchListChange'#8'TabOrder'#2#1#0#0 +'gn'#7#8'alBottom'#8'OnChange'#7#20'editSearchListChange'#8'TabOrder'#2#1#0#0
+#6'TLabel'#17'FunctionListLabel'#4'Left'#2#2#6'Height'#2#14#3'Top'#2#2#5'Wid' +#6'TLabel'#17'FunctionListLabel'#4'Left'#2#2#6'Height'#2#14#3'Top'#2#2#5'Wid'
+'th'#3#178#0#5'Align'#7#5'alTop'#9'Alignment'#7#8'taCenter'#20'BorderSpacing' +'th'#3#178#0#5'Align'#7#5'alTop'#9'Alignment'#7#8'taCenter'#20'BorderSpacing'
+'.Around'#2#2#7'Caption'#6#12'Functionlist'#10'Font.Style'#11#6'fsBold'#0#11 +'.Around'#2#2#7'Caption'#6#12'Functionlist'#10'Font.Style'#11#6'fsBold'#0#11
+'ParentColor'#8#10'ParentFont'#8#11'OnMouseDown'#7#26'FunctionListLabelMouse' +'ParentColor'#8#10'ParentFont'#8#11'OnMouseDown'#7#26'FunctionListLabelMouse'
+'Down'#0#0#12'TSpeedButton'#11'CloseButton'#4'Left'#3#134#0#6'Height'#2#16#3 +'Down'#0#0#12'TSpeedButton'#11'CloseButton'#4'Left'#3#134#0#6'Height'#2#16#3
+'Top'#2#2#5'Width'#2#16#7'Anchors'#11#5'akTop'#7'akRight'#0#5'Color'#7#9'clB' +'Top'#2#2#5'Width'#2#16#7'Anchors'#11#5'akTop'#7'akRight'#0#5'Color'#7#9'clB'
+'tnFace'#4'Flat'#9#10'Glyph.Data'#10':'#9#0#0'6'#9#0#0'BM6'#9#0#0#0#0#0#0'6' +'tnFace'#4'Flat'#9#10'Glyph.Data'#10':'#9#0#0'6'#9#0#0'BM6'#9#0#0#0#0#0#0'6'
+#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0' '#0#0#0#0#0#0#9#0#0'd'#0#0#0'd'#0#0#0 +#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0' '#0#0#0#0#0#0#9#0#0'd'#0#0#0'd'#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#255#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255
+#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0
,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#9 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#9
+'NumGlyphs'#2#0#7'OnClick'#7#16'CloseButtonClick'#0#0#0 +'NumGlyphs'#2#0#7'OnClick'#7#16'CloseButtonClick'#0#0#0
]); ]);

View File

@ -1,391 +1,391 @@
unit framefunctionlist; unit framefunctionlist;
{$mode objfpc}{$H+} {$mode objfpc}{$H+}
interface interface
uses uses
Classes, SysUtils, FileUtil, LResources, MufasaBase,Forms, ComCtrls, StdCtrls, Controls, Classes, SysUtils, FileUtil, LResources, MufasaBase,Forms, ComCtrls, StdCtrls, Controls,
ExtCtrls, Buttons; ExtCtrls, Buttons;
type type
{ TFunctionListFrame } { TFunctionListFrame }
TFunctionListFrame = class(TFrame) TFunctionListFrame = class(TFrame)
editSearchList: TEdit; editSearchList: TEdit;
FunctionList: TTreeView; FunctionList: TTreeView;
FunctionListLabel: TLabel; FunctionListLabel: TLabel;
CloseButton: TSpeedButton; CloseButton: TSpeedButton;
procedure editSearchListChange(Sender: TObject); procedure editSearchListChange(Sender: TObject);
procedure FrameEndDock(Sender, Target: TObject; X, Y: Integer); procedure FrameEndDock(Sender, Target: TObject; X, Y: Integer);
procedure FunctionListDblClick(Sender: TObject); procedure FunctionListDblClick(Sender: TObject);
procedure FunctionListDeletion(Sender: TObject; Node: TTreeNode); procedure FunctionListDeletion(Sender: TObject; Node: TTreeNode);
procedure FunctionListLabelMouseDown(Sender: TObject; Button: TMouseButton; procedure FunctionListLabelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); Shift: TShiftState; X, Y: Integer);
procedure FunctionListMouseDown(Sender: TObject; Button: TMouseButton; procedure FunctionListMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); Shift: TShiftState; X, Y: Integer);
procedure DockFormOnClose(Sender: TObject; var CloseAction: TCloseAction); procedure DockFormOnClose(Sender: TObject; var CloseAction: TCloseAction);
procedure CloseButtonClick(Sender: TObject); procedure CloseButtonClick(Sender: TObject);
procedure FunctionListMouseUp(Sender: TObject; Button: TMouseButton; procedure FunctionListMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); Shift: TShiftState; X, Y: Integer);
private private
FFilterTree : TTreeView; FFilterTree : TTreeView;
procedure FilterTreeVis(Vis : boolean); procedure FilterTreeVis(Vis : boolean);
function GetFilterTree: TTreeView; function GetFilterTree: TTreeView;
{ private declarations } { private declarations }
public public
DraggingNode : TTreeNode; DraggingNode : TTreeNode;
ScriptNode : TTreeNode; ScriptNode : TTreeNode;
InCodeCompletion : boolean; InCodeCompletion : boolean;
CompletionCaret : TPoint; CompletionCaret : TPoint;
StartWordCompletion : TPoint; StartWordCompletion : TPoint;
CompletionLine : string; CompletionLine : string;
CompletionStart : string; CompletionStart : string;
property FilterTree : TTreeView read GetFilterTree; property FilterTree : TTreeView read GetFilterTree;
procedure LoadScriptTree( Script : String); procedure LoadScriptTree( Script : String);
function Find(Next : boolean; backwards : boolean = false) : boolean; function Find(Next : boolean; backwards : boolean = false) : boolean;
{ public declarations } { public declarations }
end; end;
TMethodInfo = record TMethodInfo = record
MethodStr : PChar; MethodStr : PChar;
BeginPos : integer; BeginPos : integer;
end; end;
PMethodInfo = ^TMethodInfo; PMethodInfo = ^TMethodInfo;
implementation implementation
uses uses
TestUnit, Graphics, simpleanalyzer; TestUnit, Graphics, simpleanalyzer;
{ TFunctionListFrame } { TFunctionListFrame }
procedure TFunctionListFrame.editSearchListChange(Sender: TObject); procedure TFunctionListFrame.editSearchListChange(Sender: TObject);
begin begin
Find(false); Find(false);
end; end;
procedure TFunctionListFrame.FrameEndDock(Sender, Target: TObject; X, Y: Integer procedure TFunctionListFrame.FrameEndDock(Sender, Target: TObject; X, Y: Integer
); );
begin begin
if Target is TPanel then if Target is TPanel then
begin begin
Form1.SplitterFunctionList.Visible := true; Form1.SplitterFunctionList.Visible := true;
CloseButton.Visible:= true; CloseButton.Visible:= true;
end end
else if Target is TCustomDockForm then else if Target is TCustomDockForm then
begin begin
TCustomDockForm(Target).Caption := 'Functionlist'; TCustomDockForm(Target).Caption := 'Functionlist';
TCustomDockForm(Target).OnClose := @DockFormOnClose; TCustomDockForm(Target).OnClose := @DockFormOnClose;
Form1.SplitterFunctionList.Visible:= false; Form1.SplitterFunctionList.Visible:= false;
CloseButton.Visible:= false; CloseButton.Visible:= false;
end; end;
end; end;
procedure TFunctionListFrame.FunctionListDblClick(Sender: TObject); procedure TFunctionListFrame.FunctionListDblClick(Sender: TObject);
var var
Node : TTreeNode; Node : TTreeNode;
begin begin
if FilterTree.Visible then if FilterTree.Visible then
Node := FilterTree.Selected Node := FilterTree.Selected
else else
node := FunctionList.Selected; node := FunctionList.Selected;
if node<> nil then if node<> nil then
if node.Level > 0 then if node.Level > 0 then
if node.Data <> nil then if node.Data <> nil then
begin; begin;
Form1.CurrScript.SynEdit.InsertTextAtCaret( GetMethodName(PMethodInfo(node.Data)^.MethodStr,true)); Form1.CurrScript.SynEdit.InsertTextAtCaret( GetMethodName(PMethodInfo(node.Data)^.MethodStr,true));
Form1.RefreshTab; Form1.RefreshTab;
end; end;
end; end;
procedure TFunctionListFrame.FunctionListDeletion(Sender: TObject; procedure TFunctionListFrame.FunctionListDeletion(Sender: TObject;
Node: TTreeNode); Node: TTreeNode);
begin begin
if node.data <> nil then if node.data <> nil then
begin begin
StrDispose(PMethodInfo(node.data)^.MethodStr); StrDispose(PMethodInfo(node.data)^.MethodStr);
Freemem(node.data,sizeof(TMethodInfo)); Freemem(node.data,sizeof(TMethodInfo));
end; end;
end; end;
procedure TFunctionListFrame.FunctionListLabelMouseDown(Sender: TObject; procedure TFunctionListFrame.FunctionListLabelMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin begin
Self.DragKind := dkDock; Self.DragKind := dkDock;
Self.BeginDrag(false, 40); Self.BeginDrag(false, 40);
end; end;
procedure TFunctionListFrame.DockFormOnClose(Sender: TObject; var CloseAction: TCloseAction); procedure TFunctionListFrame.DockFormOnClose(Sender: TObject; var CloseAction: TCloseAction);
begin begin
CloseAction := caHide; CloseAction := caHide;
Form1.MenuItemFunctionList.Checked := False; Form1.MenuItemFunctionList.Checked := False;
end; end;
procedure TFunctionListFrame.CloseButtonClick(Sender: TObject); procedure TFunctionListFrame.CloseButtonClick(Sender: TObject);
begin begin
self.Hide; self.Hide;
Form1.MenuItemFunctionList.Checked := False; Form1.MenuItemFunctionList.Checked := False;
end; end;
procedure TFunctionListFrame.FunctionListMouseUp(Sender: TObject; procedure TFunctionListFrame.FunctionListMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var var
N: TTreeNode; N: TTreeNode;
MethodInfo : TMethodInfo; MethodInfo : TMethodInfo;
begin begin
if InCodeCompletion then if InCodeCompletion then
begin; begin;
mDebugLn('Not yet implemented'); mDebugLn('Not yet implemented');
exit; exit;
end; end;
if not (Sender is TTreeView) then if not (Sender is TTreeView) then
exit; exit;
N := TTreeView(Sender).GetNodeAt(x, y); N := TTreeView(Sender).GetNodeAt(x, y);
if(N = nil)then if(N = nil)then
exit; exit;
if button = mbRight then if button = mbRight then
if N.Data <> nil then if N.Data <> nil then
begin begin
MethodInfo := PMethodInfo(N.data)^; MethodInfo := PMethodInfo(N.data)^;
if (MethodInfo.BeginPos > 0) then if (MethodInfo.BeginPos > 0) then
Form1.CurrScript.SynEdit.SelStart := MethodInfo.BeginPos + 1; Form1.CurrScript.SynEdit.SelStart := MethodInfo.BeginPos + 1;
end; end;
end; end;
procedure TFunctionListFrame.FilterTreeVis(Vis: boolean); procedure TFunctionListFrame.FilterTreeVis(Vis: boolean);
begin begin
FunctionList.Visible:= not Vis; FunctionList.Visible:= not Vis;
FilterTree.Visible := Vis; FilterTree.Visible := Vis;
end; end;
function TFunctionListFrame.GetFilterTree: TTreeView; function TFunctionListFrame.GetFilterTree: TTreeView;
begin begin
Result := FFilterTree; Result := FFilterTree;
if Assigned(Result) then if Assigned(Result) then
exit; exit;
FFilterTree := TTreeView.Create(Self); FFilterTree := TTreeView.Create(Self);
FFilterTree.Parent := Self; FFilterTree.Parent := Self;
FFilterTree.Visible := false; FFilterTree.Visible := false;
FFilterTree.SetBounds(FunctionList.Left,FunctionList.Top,FunctionList.Width,FunctionList.Height); FFilterTree.SetBounds(FunctionList.Left,FunctionList.Top,FunctionList.Width,FunctionList.Height);
FFilterTree.Align := alClient; FFilterTree.Align := alClient;
FFilterTree.ReadOnly:= True; FFilterTree.ReadOnly:= True;
FFilterTree.ScrollBars:= ssAutoBoth; FFilterTree.ScrollBars:= ssAutoBoth;
FFilterTree.OnMouseDown:= FunctionList.OnMouseDown; FFilterTree.OnMouseDown:= FunctionList.OnMouseDown;
FFilterTree.OnMouseUp:= FunctionList.OnMouseUp; FFilterTree.OnMouseUp:= FunctionList.OnMouseUp;
FFilterTree.OnChange:= FunctionList.OnChange; FFilterTree.OnChange:= FunctionList.OnChange;
FFilterTree.OnExit := FunctionList.OnExit; FFilterTree.OnExit := FunctionList.OnExit;
FFilterTree.OnDblClick:= FunctionList.OnDblClick; FFilterTree.OnDblClick:= FunctionList.OnDblClick;
Result := FFilterTree; Result := FFilterTree;
//We do not want to delete the data from the FilterTree //We do not want to delete the data from the FilterTree
// FilterTree.OnDeletion:= FunctionList.OnDeletion; // FilterTree.OnDeletion:= FunctionList.OnDeletion;
end; end;
procedure TFunctionListFrame.LoadScriptTree(Script: String); procedure TFunctionListFrame.LoadScriptTree(Script: String);
var var
I : integer; I : integer;
Analyzer : TScriptAnalyzer; Analyzer : TScriptAnalyzer;
tmpNode : TTreeNode; tmpNode : TTreeNode;
begin begin
if ScriptNode = nil then if ScriptNode = nil then
exit; exit;
if FilterTree.Visible then if FilterTree.Visible then
mDebugLn('Might get some acces violations now..'); mDebugLn('Might get some acces violations now..');
ScriptNode.DeleteChildren; ScriptNode.DeleteChildren;
Analyzer := TScriptAnalyzer.create; Analyzer := TScriptAnalyzer.create;
Analyzer.ScriptToAnalyze:= Script; Analyzer.ScriptToAnalyze:= Script;
Analyzer.analyze; Analyzer.analyze;
for i := 0 to Analyzer.MethodLen - 1 do for i := 0 to Analyzer.MethodLen - 1 do
begin begin
tmpNode := FunctionList.Items.AddChild(ScriptNode,Analyzer.Methods[i].Name); tmpNode := FunctionList.Items.AddChild(ScriptNode,Analyzer.Methods[i].Name);
tmpNode.Data := GetMem(SizeOf(TMethodInfo)); tmpNode.Data := GetMem(SizeOf(TMethodInfo));
with PMethodInfo(tmpNode.Data)^ do with PMethodInfo(tmpNode.Data)^ do
begin begin
MethodStr:= strnew(PChar(Analyzer.Methods[i].CreateMethodStr)); MethodStr:= strnew(PChar(Analyzer.Methods[i].CreateMethodStr));
BeginPos:= Analyzer.Methods[i].BeginPos; BeginPos:= Analyzer.Methods[i].BeginPos;
end; end;
end; end;
ScriptNode.Expand(true); ScriptNode.Expand(true);
Analyzer.free; Analyzer.free;
end; end;
function TFunctionListFrame.Find(Next : boolean; backwards : boolean = false) : boolean; function TFunctionListFrame.Find(Next : boolean; backwards : boolean = false) : boolean;
var var
Start,Len,i,index,posi,c: Integer; Start,Len,i,index,posi,c: Integer;
FoundFunction : boolean; FoundFunction : boolean;
LastSection : string; LastSection : string;
str : string; str : string;
RootNode : TTreeNode; RootNode : TTreeNode;
NormalNode : TTreeNode; NormalNode : TTreeNode;
Node : TTreeNode; Node : TTreeNode;
InsertStr : string; InsertStr : string;
begin begin
if(editSearchList.Text = '')then if(editSearchList.Text = '')then
begin begin
editSearchList.Color := clWhite; editSearchList.Color := clWhite;
FunctionList.FullCollapse; FunctionList.FullCollapse;
if InCodeCompletion then if InCodeCompletion then
begin; begin;
Form1.CurrScript.SynEdit.Lines[CompletionCaret.y - 1] := CompletionStart; Form1.CurrScript.SynEdit.Lines[CompletionCaret.y - 1] := CompletionStart;
Form1.CurrScript.SynEdit.LogicalCaretXY:= point(CompletionCaret.x,CompletionCaret.y); Form1.CurrScript.SynEdit.LogicalCaretXY:= point(CompletionCaret.x,CompletionCaret.y);
Form1.CurrScript.SynEdit.SelEnd:= Form1.CurrScript.SynEdit.SelStart; Form1.CurrScript.SynEdit.SelEnd:= Form1.CurrScript.SynEdit.SelStart;
end; end;
FilterTreeVis(False); FilterTreeVis(False);
ScriptNode.Expand(true); ScriptNode.Expand(true);
exit; exit;
end; end;
//We only have to search the next item in our filter tree.. Fu-king easy! //We only have to search the next item in our filter tree.. Fu-king easy!
if next then if next then
begin; begin;
if FilterTree.Visible = false then if FilterTree.Visible = false then
begin; begin;
mDebugLn('ERROR: You cannot search next, since the Tree isnt generated yet'); mDebugLn('ERROR: You cannot search next, since the Tree isnt generated yet');
Find(false); Find(false);
exit; exit;
end; end;
if FilterTree.Selected <> nil then if FilterTree.Selected <> nil then
begin; begin;
if backwards then if backwards then
start := FilterTree.Selected.AbsoluteIndex - 1 start := FilterTree.Selected.AbsoluteIndex - 1
else else
Start := FilterTree.Selected.AbsoluteIndex + 1; Start := FilterTree.Selected.AbsoluteIndex + 1;
end end
else else
begin begin
if backwards then if backwards then
Start := FilterTree.Items.Count - 1 Start := FilterTree.Items.Count - 1
else else
Start := 0; Start := 0;
end; end;
Len := FilterTree.Items.Count; Len := FilterTree.Items.Count;
i := start + len; //This is for the backwards compatibily, we do mod anways.. it just makes sure -1 isn't negative. i := start + len; //This is for the backwards compatibily, we do mod anways.. it just makes sure -1 isn't negative.
c := 0; c := 0;
while c < (len ) do while c < (len ) do
begin; begin;
if FilterTree.Items[i mod len].Level = 1 then if FilterTree.Items[i mod len].Level = 1 then
begin begin
FilterTree.Items[i mod len].Selected:= true; FilterTree.Items[i mod len].Selected:= true;
InsertStr := FilterTree.Items[i mod len].Text; InsertStr := FilterTree.Items[i mod len].Text;
Result := true; Result := true;
break; break;
end; end;
if backwards then if backwards then
dec(i) dec(i)
else else
inc(i); inc(i);
inc(c); inc(c);
end; end;
end else end else
begin begin
FilterTree.Items.Clear; FilterTree.Items.Clear;
FoundFunction := False; FoundFunction := False;
if FunctionList.Selected <> nil then if FunctionList.Selected <> nil then
Start := FunctionList.Selected.AbsoluteIndex Start := FunctionList.Selected.AbsoluteIndex
else else
Start := 0; Start := 0;
Len := FunctionList.Items.Count; Len := FunctionList.Items.Count;
LastSection := ''; LastSection := '';
for i := start to start + FunctionList.Items.Count - 1 do for i := start to start + FunctionList.Items.Count - 1 do
begin; begin;
Node := FunctionList.Items[i mod FunctionList.Items.Count]; Node := FunctionList.Items[i mod FunctionList.Items.Count];
if(Node.Level = 1)then if(Node.Level = 1)then
if(pos(lowercase(editSearchList.Text), lowercase(Node.Text)) > 0)then if(pos(lowercase(editSearchList.Text), lowercase(Node.Text)) > 0)then
begin begin
if not FoundFunction then if not FoundFunction then
begin begin
FoundFunction := True; FoundFunction := True;
index := i mod FunctionList.Items.Count; index := i mod FunctionList.Items.Count;
InsertStr:= node.Text; InsertStr:= node.Text;
end; end;
if LastSection <> Node.Parent.Text then //We enter a new section, add it to the filter tree! if LastSection <> Node.Parent.Text then //We enter a new section, add it to the filter tree!
RootNode := FilterTree.Items.AddChild(nil,Node.Parent.Text); RootNode := FilterTree.Items.AddChild(nil,Node.Parent.Text);
FilterTree.Items.AddChild(RootNode,Node.Text).Data := Node.Data; FilterTree.Items.AddChild(RootNode,Node.Text).Data := Node.Data;
LastSection:= RootNode.Text; LastSection:= RootNode.Text;
// break; // break;
end; end;
end; end;
Result := FoundFunction; Result := FoundFunction;
if Result then if Result then
begin; begin;
FilterTreeVis(True); FilterTreeVis(True);
FilterTree.FullExpand; FilterTree.FullExpand;
FilterTree.Items[1].Selected:= True; FilterTree.Items[1].Selected:= True;
mDebugLn(FunctionList.Items[Index].Text); mDebugLn(FunctionList.Items[Index].Text);
FunctionList.FullCollapse; FunctionList.FullCollapse;
FunctionList.Items[Index].Selected := true; FunctionList.Items[Index].Selected := true;
FunctionList.Items[index].ExpandParents; FunctionList.Items[index].ExpandParents;
editSearchList.Color := clWhite; editSearchList.Color := clWhite;
end else end else
begin begin
FilterTreeVis(false); FilterTreeVis(false);
editSearchList.Color := 6711039; editSearchList.Color := 6711039;
if InCodeCompletion then if InCodeCompletion then
Form1.CurrScript.SynEdit.Lines[CompletionCaret.y - 1] := CompletionStart; Form1.CurrScript.SynEdit.Lines[CompletionCaret.y - 1] := CompletionStart;
end; end;
end; end;
if result and InCodeCompletion then if result and InCodeCompletion then
begin; begin;
str := format(CompletionLine, [InsertStr]); str := format(CompletionLine, [InsertStr]);
with Form1.CurrScript.SynEdit do with Form1.CurrScript.SynEdit do
begin; begin;
Lines[CompletionCaret.y - 1] := str; Lines[CompletionCaret.y - 1] := str;
LogicalCaretXY:= StartWordCompletion; LogicalCaretXY:= StartWordCompletion;
i := SelStart; i := SelStart;
posi := pos(lowercase(editSearchList.text), lowercase(InsertStr)) + length(editSearchList.text) - 1; //underline the rest of the word posi := pos(lowercase(editSearchList.text), lowercase(InsertStr)) + length(editSearchList.text) - 1; //underline the rest of the word
if Posi = Length(InsertStr) then //Special occasions if Posi = Length(InsertStr) then //Special occasions
begin; begin;
if Length(editSearchList.Text) <> Posi then //We found the last part of the text -> for exmaple when you Search for bitmap, you can find LoadBitmap -> We underline 'Load' if Length(editSearchList.Text) <> Posi then //We found the last part of the text -> for exmaple when you Search for bitmap, you can find LoadBitmap -> We underline 'Load'
begin; begin;
SelStart := i; SelStart := i;
SelEnd := i + pos(lowercase(editSearchList.text), lowercase(InsertStr)) -1; SelEnd := i + pos(lowercase(editSearchList.text), lowercase(InsertStr)) -1;
Exit; Exit;
end; end;
//We searched for the whole text -> for example LoadBitmap, and we found LoadBitmap -> Underline the whole text //We searched for the whole text -> for example LoadBitmap, and we found LoadBitmap -> Underline the whole text
Posi := 0; Posi := 0;
end; end;
//Underline the rest of the word //Underline the rest of the word
SelStart := i + posi; SelStart := i + posi;
SelEnd := SelStart + Length(InsertStr) - posi; SelEnd := SelStart + Length(InsertStr) - posi;
end; end;
end; end;
end; end;
procedure TFunctionListFrame.FunctionListMouseDown(Sender: TObject; procedure TFunctionListFrame.FunctionListMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var var
N: TTreeNode; N: TTreeNode;
begin begin
if button = mbRight then if button = mbRight then
exit; exit;
if InCodeCompletion then if InCodeCompletion then
begin; begin;
mDebugLn('Not yet implemented'); mDebugLn('Not yet implemented');
exit; exit;
end; end;
if not (Sender is TTreeView) then if not (Sender is TTreeView) then
exit; exit;
N := TTreeView(Sender).GetNodeAt(x, y); N := TTreeView(Sender).GetNodeAt(x, y);
if(N = nil)then if(N = nil)then
begin begin
Self.DragKind := dkDock; Self.DragKind := dkDock;
Self.BeginDrag(false, 40); Self.BeginDrag(false, 40);
exit; exit;
end; end;
Self.DragKind := dkDrag; Self.DragKind := dkDrag;
if(Button = mbLeft) and (N.Level > 0)then if(Button = mbLeft) and (N.Level > 0)then
Self.BeginDrag(False, 10); Self.BeginDrag(False, 10);
DraggingNode := N; DraggingNode := N;
end; end;
initialization initialization
{$I framefunctionlist.lrs} {$I framefunctionlist.lrs}
end. end.

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
unit eventextension; unit pseventextension;
{$mode objfpc} {$mode objfpc}
@ -26,7 +26,7 @@ type
public public
function HookExists(HookName: String): Boolean; override; function HookExists(HookName: String): Boolean; override;
function ExecuteHook(HookName: String): Integer; override; function ExecuteHook(HookName: String; fArgs: Array of Variant; out OutVariant): Integer;
protected protected
procedure RegisterPSCComponents(Sender: TObject; x: TPSPascalCompiler); procedure RegisterPSCComponents(Sender: TObject; x: TPSPascalCompiler);
procedure RegisterPSRComponents(Sender: TObject; se: TPSExec; x: TPSRuntimeClassImporter); procedure RegisterPSRComponents(Sender: TObject; se: TPSExec; x: TPSRuntimeClassImporter);
@ -40,7 +40,7 @@ uses
uPSC_std, uPSC_controls,uPSC_classes,uPSC_graphics,uPSC_stdctrls,uPSC_forms, uPSC_std, uPSC_controls,uPSC_classes,uPSC_graphics,uPSC_stdctrls,uPSC_forms,
uPSC_extctrls, //Compile libs uPSC_extctrls, //Compile libs
uPSR_std, uPSR_controls,uPSR_classes,uPSR_graphics,uPSR_stdctrls,uPSR_forms, uPSR_std, uPSR_controls,uPSR_classes,uPSR_graphics,uPSR_stdctrls,uPSR_forms,
uPSR_extctrls //Runtime-libs; uPSR_extctrls //Runtime-libs
; ;
procedure createf; procedure createf;
@ -55,11 +55,20 @@ end;
function TSimbaPSEventExtension.HookExists(HookName: String): Boolean; function TSimbaPSEventExtension.HookExists(HookName: String): Boolean;
begin begin
{ FIXME: Free the .data ? }
Exit(PSInstance.GetProcMethod('init').Data <> nil);
end; end;
function TSimbaPSEventExtension.ExecuteHook(HookName: String): Integer; function TSimbaPSEventExtension.ExecuteHook(HookName: String; fArgs: Array of Variant; out OutVariant): Integer;
begin begin
result := 0;
try
PSInstance.ExecuteFunction([], HookName);
except
result := 1;
end;
end; end;
constructor TSimbaPSEventExtension.Create(FileName: String); constructor TSimbaPSEventExtension.Create(FileName: String);
@ -108,21 +117,20 @@ begin
writeln('It exists') writeln('It exists')
else else
writeln('It does not exist - or something went wrong while executing it.'); writeln('It does not exist - or something went wrong while executing it.');
// writeln(PSInstance.ExecuteFunction([], 'test')); //writeln(PSInstance.ExecuteFunction([], 'test'));
end; end;
function TSimbaPSEventExtension.InitScript: Boolean; function TSimbaPSEventExtension.InitScript: Boolean;
begin begin
if PSInstance.GetProcMethod('init').Data = nil then if not HookExists('init') then
exit(false); exit(false);
result := true;
try try
PSInstance.ExecuteFunction([], 'init'); PSInstance.ExecuteFunction([], 'init');
except except
result := false; result := false;
exit;
end; end;
exit(true);
end; end;

View File

@ -6,7 +6,7 @@ object Form1: TForm1
ActiveControl = ScriptPanel ActiveControl = ScriptPanel
AllowDropFiles = True AllowDropFiles = True
Caption = 'THA FUKING SIMBA' Caption = 'THA FUKING SIMBA'
ClientHeight = 535 ClientHeight = 530
ClientWidth = 739 ClientWidth = 739
KeyPreview = True KeyPreview = True
Menu = MainMenu Menu = MainMenu
@ -207,8 +207,8 @@ object Form1: TForm1
end end
object StatusBar: TStatusBar object StatusBar: TStatusBar
Left = 0 Left = 0
Height = 23 Height = 21
Top = 512 Top = 509
Width = 739 Width = 739
Panels = < Panels = <
item item
@ -230,7 +230,7 @@ object Form1: TForm1
object PanelMemo: TPanel object PanelMemo: TPanel
Left = 0 Left = 0
Height = 154 Height = 154
Top = 358 Top = 355
Width = 739 Width = 739
Align = alBottom Align = alBottom
ClientHeight = 154 ClientHeight = 154
@ -250,19 +250,19 @@ object Form1: TForm1
Cursor = crVSplit Cursor = crVSplit
Left = 0 Left = 0
Height = 5 Height = 5
Top = 353 Top = 350
Width = 739 Width = 739
Align = alBottom Align = alBottom
ResizeAnchor = akBottom ResizeAnchor = akBottom
end end
object ScriptPanel: TPanel object ScriptPanel: TPanel
Left = 0 Left = 0
Height = 329 Height = 326
Top = 24 Top = 24
Width = 739 Width = 739
Align = alClient Align = alClient
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 329 ClientHeight = 326
ClientWidth = 739 ClientWidth = 739
DockSite = True DockSite = True
TabOrder = 4 TabOrder = 4
@ -270,7 +270,7 @@ object Form1: TForm1
OnDockOver = ScriptPanelDockOver OnDockOver = ScriptPanelDockOver
object PageControl1: TPageControl object PageControl1: TPageControl
Left = 155 Left = 155
Height = 294 Height = 291
Top = 0 Top = 0
Width = 584 Width = 584
Align = alClient Align = alClient
@ -289,7 +289,7 @@ object Form1: TForm1
object SearchPanel: TPanel object SearchPanel: TPanel
Left = 0 Left = 0
Height = 35 Height = 35
Top = 294 Top = 291
Width = 739 Width = 739
Align = alBottom Align = alBottom
BevelOuter = bvSpace BevelOuter = bvSpace
@ -385,7 +385,7 @@ object Form1: TForm1
end end
object LabeledEditSearch: TLabeledEdit object LabeledEditSearch: TLabeledEdit
Left = 104 Left = 104
Height = 21 Height = 27
Top = 6 Top = 6
Width = 174 Width = 174
EditLabel.AnchorSideLeft.Control = LabeledEditSearch EditLabel.AnchorSideLeft.Control = LabeledEditSearch
@ -393,10 +393,10 @@ object Form1: TForm1
EditLabel.AnchorSideTop.Side = asrCenter EditLabel.AnchorSideTop.Side = asrCenter
EditLabel.AnchorSideRight.Control = LabeledEditSearch EditLabel.AnchorSideRight.Control = LabeledEditSearch
EditLabel.AnchorSideBottom.Control = LabeledEditSearch EditLabel.AnchorSideBottom.Control = LabeledEditSearch
EditLabel.Left = 73 EditLabel.Left = 67
EditLabel.Height = 14 EditLabel.Height = 18
EditLabel.Top = 9 EditLabel.Top = 10
EditLabel.Width = 28 EditLabel.Width = 34
EditLabel.Caption = 'Find: ' EditLabel.Caption = 'Find: '
EditLabel.ParentColor = False EditLabel.ParentColor = False
LabelPosition = lpLeft LabelPosition = lpLeft
@ -409,9 +409,9 @@ object Form1: TForm1
end end
object CheckBoxMatchCase: TCheckBox object CheckBoxMatchCase: TCheckBox
Left = 320 Left = 320
Height = 17 Height = 22
Top = 7 Top = 7
Width = 72 Width = 97
Caption = 'Match case' Caption = 'Match case'
OnClick = CheckBoxMatchCaseClick OnClick = CheckBoxMatchCaseClick
TabOrder = 1 TabOrder = 1
@ -419,34 +419,38 @@ object Form1: TForm1
end end
object SplitterFunctionList: TSplitter object SplitterFunctionList: TSplitter
Left = 150 Left = 150
Height = 294 Height = 291
Top = 0 Top = 0
Width = 5 Width = 5
OnCanResize = SplitterFunctionListCanResize OnCanResize = SplitterFunctionListCanResize
Visible = False Visible = False
end end
inline frmFunctionList: TFunctionListFrame inline frmFunctionList: TFunctionListFrame
Height = 294 Height = 291
Width = 150 Width = 150
ClientHeight = 294 ClientHeight = 291
ClientWidth = 150 ClientWidth = 150
OnEndDock = nil OnEndDock = nil
TabOrder = 3 TabOrder = 3
inherited FunctionList: TTreeView inherited FunctionList: TTreeView
Height = 255 Height = 242
Top = 22
Width = 150 Width = 150
DefaultItemHeight = 19
OnChange = FunctionListChange OnChange = FunctionListChange
OnEnter = FunctionListEnter OnEnter = FunctionListEnter
OnExit = FunctionListExit OnExit = FunctionListExit
end end
inherited editSearchList: TEdit inherited editSearchList: TEdit
Top = 273 Height = 27
Top = 264
Width = 150 Width = 150
OnExit = editSearchListExit OnExit = editSearchListExit
OnKeyDown = editSearchListKeyDown OnKeyDown = editSearchListKeyDown
OnKeyPress = editSearchListKeyPress OnKeyPress = editSearchListKeyPress
end end
inherited FunctionListLabel: TLabel inherited FunctionListLabel: TLabel
Height = 18
Width = 146 Width = 146
end end
end end

View File

@ -42,7 +42,7 @@ uses
SynEditMarkupHighAll, LMessages, Buttons, SynEditMarkupHighAll, LMessages, Buttons,
stringutil,mufasatypesutil,mufasabase, stringutil,mufasatypesutil,mufasabase,
about, framefunctionlist, ocr, updateform, simbasettings, about, framefunctionlist, ocr, updateform, simbasettings,
eventextension; extensionmanager;
const const
SimbaVersion = 585; SimbaVersion = 585;
@ -2007,9 +2007,18 @@ begin
end; end;
procedure TForm1.ButtonTrayClick(Sender: TObject); procedure TForm1.ButtonTrayClick(Sender: TObject);
{var
Ext: TSimbaPSEventExtension; }
{ FIXME: Turning it into a test button again... }
begin begin
Form1.Hide; Form1.Hide;
{ try
Ext := TSimbaPSEventExtension.Create(MainDir + DS + 'Extensions' + DS + 'test.pas');
Ext.Free;
except
Writeln('Something went wrong with the Extensions.');
end; }
end; end;
procedure TForm1.PageControl1Changing(Sender: TObject; var AllowChange: Boolean procedure TForm1.PageControl1Changing(Sender: TObject; var AllowChange: Boolean

View File

@ -14,7 +14,7 @@ type
function HookExists(HookName: String): Boolean; virtual; abstract; function HookExists(HookName: String): Boolean; virtual; abstract;
{ No Custom Arguments just yet... } { No Custom Arguments just yet... }
function ExecuteHook(HookName: String): Integer; virtual; abstract; function ExecuteHook(HookName: String; fArgs: Array of Variant; out OutVariant): Integer; virtual; abstract;
private private
FName: String; FName: String;