added procedure list from Graeme Geldenhuys

git-svn-id: trunk@9625 -
This commit is contained in:
mattias 2006-07-17 18:41:28 +00:00
parent 3742d8f5be
commit c92b18ed82
5 changed files with 1567 additions and 1 deletions

3
.gitattributes vendored
View File

@ -1280,6 +1280,9 @@ ide/newprojectdlg.pp svneol=native#text/pascal
ide/objectlists.pas svneol=native#text/pascal ide/objectlists.pas svneol=native#text/pascal
ide/outputfilter.pas svneol=native#text/pascal ide/outputfilter.pas svneol=native#text/pascal
ide/patheditordlg.pas svneol=native#text/pascal ide/patheditordlg.pas svneol=native#text/pascal
ide/procedurelist.lfm svneol=native#text/plain
ide/procedurelist.lrs svneol=native#text/plain
ide/procedurelist.pas svneol=native#text/plain
ide/progressdlg.lfm svneol=native#text/plain ide/progressdlg.lfm svneol=native#text/plain
ide/progressdlg.lrs svneol=native#text/plain ide/progressdlg.lrs svneol=native#text/plain
ide/progressdlg.pas svneol=native#text/plain ide/progressdlg.pas svneol=native#text/plain

View File

@ -116,7 +116,7 @@ uses
BuildLazDialog, MiscOptions, InputHistory, UnitDependencies, ClipBoardHistory, BuildLazDialog, MiscOptions, InputHistory, UnitDependencies, ClipBoardHistory,
ProcessList, InitialSetupDlgs, NewDialog, MakeResStrDlg, ToDoList, ProcessList, InitialSetupDlgs, NewDialog, MakeResStrDlg, ToDoList,
DialogProcs, FindReplaceDialog, FindInFilesDlg, CodeExplorer, BuildFileDlg, DialogProcs, FindReplaceDialog, FindInFilesDlg, CodeExplorer, BuildFileDlg,
ExtractProcDlg, FindRenameIdentifier, ProcedureList, ExtractProcDlg, FindRenameIdentifier,
CleanDirDlg, CodeContextForm, AboutFrm, CleanDirDlg, CodeContextForm, AboutFrm,
// main ide // main ide
MainBar, MainIntf, MainBase; MainBar, MainIntf, MainBase;
@ -1853,6 +1853,7 @@ begin
SetupEnvironmentMenu; SetupEnvironmentMenu;
SetupWindowsMenu; SetupWindowsMenu;
SetupHelpMenu; SetupHelpMenu;
ProcedureList.Register;
mnuMain.MenuItem:=MainIDEBar.mnuMainMenu.Items; mnuMain.MenuItem:=MainIDEBar.mnuMainMenu.Items;
end; end;

637
ide/procedurelist.lfm Normal file
View File

@ -0,0 +1,637 @@
object ProcedureListForm: TProcedureListForm
ActiveControl = cbObjects
Caption = 'Procedure List - '
ClientHeight = 300
ClientWidth = 518
OnCreate = FormCreate
OnKeyPress = FormKeyPress
OnResize = FormResize
OnShow = FormShow
PixelsPerInch = 75
Position = poDefault
HorzScrollBar.Page = 517
VertScrollBar.Page = 299
Left = 376
Height = 300
Top = 272
Width = 518
object StatusBar: TStatusBar
Panels = <
item
Width = 400
end
item
Width = 50
end>
SimplePanel = False
Height = 24
Top = 276
Width = 518
end
object TB: TToolBar
Caption = 'TB'
Flat = True
Height = 26
Images = ImageList1
TabOrder = 1
Height = 26
Width = 518
object tbAbout: TToolButton
Caption = 'tbAbout'
ImageIndex = 9
ParentShowHint = False
ShowHint = True
OnClick = tbAboutClick
Left = 136
Height = 22
Hint = 'About'
Top = 2
Width = 23
end
object ToolButton2: TToolButton
Caption = 'ToolButton2'
Style = tbsDivider
Width = 5
Left = 131
Height = 22
Top = 2
Width = 5
end
object tbJumpTo: TToolButton
Caption = 'Goto'
ImageIndex = 5
ParentShowHint = False
ShowHint = True
OnClick = LVDblClick
Left = 108
Height = 22
Hint = 'Jump To Selection'
Top = 2
Width = 23
end
object ToolButton4: TToolButton
Caption = 'ToolButton4'
Style = tbsDivider
Width = 5
Left = 103
Height = 22
Top = 2
Width = 5
end
object tbFilterAny: TToolButton
Caption = 'tbFilterAny'
Down = True
Grouped = True
ImageIndex = 8
ParentShowHint = False
ShowHint = True
Style = tbsCheck
Left = 80
Height = 22
Hint = 'Filter by matching any part of method'
Top = 2
Width = 23
end
object tbFilterStart: TToolButton
Caption = 'tbFilterStart'
Grouped = True
ImageIndex = 7
ParentShowHint = False
ShowHint = True
Style = tbsCheck
Left = 57
Height = 22
Hint = 'Filter by matching with start of method'
Top = 2
Width = 23
end
object ToolButton7: TToolButton
Caption = 'ToolButton7'
Style = tbsDivider
Width = 5
Left = 52
Height = 22
Top = 2
Width = 5
end
object tbChangeFont: TToolButton
Caption = 'tbChangeFont'
ImageIndex = 4
ParentShowHint = False
ShowHint = True
Left = 29
Height = 22
Hint = 'Change Font'
Top = 2
Width = 23
end
object ToolButton9: TToolButton
Caption = 'ToolButton9'
Style = tbsDivider
Width = 5
Left = 24
Height = 22
Top = 2
Width = 5
end
object tbCopy: TToolButton
Caption = 'tbCopy'
ImageIndex = 6
ParentShowHint = False
ShowHint = True
OnClick = tbCopyClick
Left = 1
Height = 22
Hint = 'Copy method name to the clipboard'
Top = 2
Width = 23
end
end
object pnlHeader: TPanel
Align = alTop
BevelOuter = bvNone
ClientHeight = 38
ClientWidth = 518
Color = clLime
ParentColor = False
TabOrder = 2
Height = 38
Top = 26
Width = 518
object pnlObjects: TPanel
Align = alClient
BevelOuter = bvNone
ClientHeight = 38
ClientWidth = 262
ParentColor = False
TabOrder = 0
Left = 256
Height = 38
Width = 262
object lblObjects: TLabel
Caption = '&Objects'
Color = clNone
ParentColor = False
AnchorSideTop.Control = cbObjects
AnchorSideTop.Side = asrCenter
Left = 8
Height = 17
Top = 12
Width = 68
end
object cbObjects: TComboBox
Anchors = [akTop, akLeft, akRight]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
MaxLength = 0
OnChange = cbObjectsChange
Sorted = True
Style = csDropDownList
TabOrder = 0
Left = 64
Height = 24
Top = 8
Width = 191
end
end
object pnlSearch: TPanel
Align = alLeft
BevelOuter = bvNone
ClientHeight = 38
ClientWidth = 256
ParentColor = False
TabOrder = 1
Height = 38
Width = 256
object lblSearch: TLabel
Caption = '&Search'
Color = clNone
ParentColor = False
AnchorSideTop.Control = edMethods
AnchorSideTop.Side = asrCenter
Left = 11
Height = 17
Top = 11
Width = 63
end
object edMethods: TEdit
Anchors = [akTop, akLeft, akRight]
OnChange = edMethodsChange
OnKeyDown = edMethodsKeyDown
OnKeyPress = edMethodsKeyPress
TabOrder = 0
Left = 68
Height = 23
Top = 8
Width = 180
end
end
end
object LV: TListView
Align = alClient
Columns = <
item
end
item
Caption = 'Procedure'
Width = 300
end
item
Caption = 'Type'
end
item
Caption = 'Line'
end>
HideSelection = False
Items.Data = {
45FFFFFF0100000000000000FFFFFFFFFFFFFFFF0300000000000000000E5446
6F726D2E54657374466F75720846756E6374696F6E023234FFFFFFFFFFFFFFFF
FFFFFFFF
}
ReadOnly = True
RowSelect = True
ScrollBars = ssAutoBoth
SmallImages = ImageList1
TabOrder = 0
ViewStyle = vsReport
OnDblClick = LVDblClick
OnKeyPress = edMethodsKeyPress
OnSelectItem = LVSelectItem
Height = 212
Top = 64
Width = 518
end
object ImageList1: TImageList
left = 210
top = 404
Bitmap = {
6C690A00000010000000100000007E0200002F2A2058504D202A2F0D0A737461
7469632063686172202A2063655F70726F6365647572655F78706D5B5D203D20
7B0D0A2231362031362031352031222C0D0A22200963204E6F6E65222C0D0A22
2E09632023334133413341222C0D0A222B09632023393139313931222C0D0A22
4009632023384238423842222C0D0A222309632023434343434343222C0D0A22
2409632023443544354435222C0D0A222509632023414441444144222C0D0A22
2609632023433443344334222C0D0A222A09632023423442344234222C0D0A22
3D09632023413141314131222C0D0A222D09632023393839383938222C0D0A22
3B09632023413241324132222C0D0A223E09632023433643364336222C0D0A22
2C09632023443844384438222C0D0A222709632023344334433443222C0D0A22
2020202020202E2E2E2E202020202020222C0D0A222020202E2E202E2B2B2E20
2E2E202020222C0D0A2220202E402E2E232424232E2E402E2020222C0D0A2220
2E4025262A3D2D2D3D2A2625402E20222C0D0A22202E2E263B403E2C2C3E403B
262E2E20222C0D0A2220202E2A3D3E2A27272A3E3D2A2E2020222C0D0A222E2E
233D3E2A2E20202E2A3E3D232E2E222C0D0A222E2B242D2C2720202020272C2D
242B2E222C0D0A222E2B242D2C2720202020272C2D242B2E222C0D0A222E2E23
3D3E2A2E20202E2A3E3D232E2E222C0D0A2220202E2A3D3E2A27272A3E3D2A2E
2020222C0D0A22202E2E263B403E2C2C3E403B262E2E20222C0D0A22202E4025
262A3D2D2D3D2A2625402E20222C0D0A2220202E402E2E232424232E2E402E20
20222C0D0A222020202E2E202E2B2B2E202E2E202020222C0D0A222020202020
202E2E2E2E202020202020227D3B0D0A8C0600002F2A2058504D202A2F0D0A73
74617469632063686172202A2063655F64656661756C745F78706D5B5D203D20
7B0D0A2231362031362038302031222C0D0A22200963204E6F6E65222C0D0A22
2E09632023393939393939222C0D0A222B09632023394139413941222C0D0A22
4009632023394239423942222C0D0A222309632023394339433943222C0D0A22
2409632023394439443944222C0D0A222509632023394539453945222C0D0A22
2609632023394639463946222C0D0A222A09632023413041304130222C0D0A22
3D09632023333533353335222C0D0A222D09632023453845384538222C0D0A22
3B09632023453945394539222C0D0A223E09632023454145414541222C0D0A22
2C09632023454245424542222C0D0A222709632023454345434543222C0D0A22
2909632023454545454545222C0D0A222109632023454645464546222C0D0A22
7E09632023463046304630222C0D0A227B09632023463146314631222C0D0A22
5D09632023463246324632222C0D0A225E09632023353135313531222C0D0A22
2F09632023444344434443222C0D0A222809632023443944394439222C0D0A22
5F09632023453645364536222C0D0A223A09632023393639414332222C0D0A22
3C09632023393339384330222C0D0A225B09632023393839434332222C0D0A22
7D09632023394541324334222C0D0A227C09632023413341374336222C0D0A22
3109632023463446344634222C0D0A223209632023454445444544222C0D0A22
3309632023413441374337222C0D0A223409632023413241354336222C0D0A22
3509632023413841424338222C0D0A223609632023414542304341222C0D0A22
3709632023423442364344222C0D0A223809632023463646364636222C0D0A22
3909632023353235323532222C0D0A223009632023444644464446222C0D0A22
6109632023423242344344222C0D0A226209632023423242344343222C0D0A22
6309632023423842414345222C0D0A226409632023424542464430222C0D0A22
6509632023433443354433222C0D0A226609632023463846384638222C0D0A22
6709632023353335333533222C0D0A226809632023453145314531222C0D0A22
6909632023444444444444222C0D0A226A09632023433143334433222C0D0A22
6B09632023433243344432222C0D0A226C09632023433943394435222C0D0A22
6D09632023434643464437222C0D0A226E09632023443544354439222C0D0A22
6F09632023464146414641222C0D0A227009632023463346334633222C0D0A22
7109632023463546354635222C0D0A227209632023453945394544222C0D0A22
7309632023454145414544222C0D0A227409632023454445444546222C0D0A22
7509632023463346324632222C0D0A227609632023464346434643222C0D0A22
7709632023353435343534222C0D0A227809632023453445344534222C0D0A22
7909632023453045304530222C0D0A227A09632023453245324532222C0D0A22
4109632023453345334533222C0D0A224209632023463946394639222C0D0A22
4309632023463746374637222C0D0A224409632023453545354535222C0D0A22
4509632023453745374537222C0D0A224609632023464246424642222C0D0A22
4709632023464446444644222C0D0A224809632023464546454645222C0D0A22
4909632023343734373437222C0D0A224A09632023434443444344222C0D0A22
4B09632023433943394339222C0D0A224C09632023354335433543222C0D0A22
4D09632023424542454245222C0D0A224E09632023424442444244222C0D0A22
4F09632023334233423342222C0D0A2220202020202020202020202020202020
222C0D0A222020202E2B404023242526262A3D2020222C0D0A222020202D3B3E
2C2729217E7B5D5E2020222C0D0A222020203E2F285F3A3C5B7D7C315E202022
2C0D0A222020203229217E333435363738392020222C0D0A2220202021302F3E
616263646566672020222C0D0A222020207B68692C6A6B6C6D6E6F672020222C
0D0A22202020703171387273747E7576772020222C0D0A22202020717879687A
7A41787842772020222C0D0A2220202043447A7A414178444442772020222C0D
0A2220202042454141784444444442772020222C0D0A22202020467647484848
48484848492020222C0D0A222020204748484848484848714A202020222C0D0A
2220202048484848484848484B4C202020222C0D0A222020204D4D4D4D4D4D4E
234F20202020222C0D0A2220202020202020202020202020202020227D3B0D0A
FB0800002F2A2058504D202A2F0D0A7374617469632063686172202A2063655F
636C6173735F78706D5B5D203D207B0D0A2231362031362039372032222C0D0A
2220200963204E6F6E65222C0D0A222E2009632023343033373236222C0D0A22
2B2009632023364635463344222C0D0A22402009632023394638383535222C0D
0A22232009632023414339323538222C0D0A2224200963202334383346324422
2C0D0A22252009632023333332433145222C0D0A222620096320234130383835
35222C0D0A222A2009632023433541373636222C0D0A223D2009632023433041
323545222C0D0A222D2009632023423639393539222C0D0A223B200963202338
4137343434222C0D0A223E2009632023334233393334222C0D0A222C20096320
23344534453444222C0D0A22272009632023454443453934222C0D0A22292009
632023373436353439222C0D0A22212009632023433541373633222C0D0A227E
2009632023383137313444222C0D0A227B2009632023384338363738222C0D0A
225D2009632023413841384137222C0D0A225E2009632023453045304530222C
0D0A222F2009632023453745374537222C0D0A22282009632023423042304230
222C0D0A225F2009632023453943423932222C0D0A223A200963202346454444
3946222C0D0A223C2009632023423039353539222C0D0A225B20096320234231
39313437222C0D0A227D2009632023393438453832222C0D0A227C2009632023
444644464446222C0D0A22312009632023443844384438222C0D0A2232200963
2023434243424342222C0D0A22332009632023434143414341222C0D0A223420
09632023414141414141222C0D0A22352009632023453943413932222C0D0A22
362009632023344534313236222C0D0A22372009632023414338433339222C0D
0A22382009632023394637453242222C0D0A2239200963202336443442304122
2C0D0A22302009632023383738313737222C0D0A226120096320234337433743
37222C0D0A22622009632023434443444344222C0D0A22632009632023413541
354135222C0D0A22642009632023423639383543222C0D0A2265200963202346
4444433945222C0D0A22662009632023363135343344222C0D0A226720096320
23344434313234222C0D0A22682009632023393937393238222C0D0A22692009
632023384138343736222C0D0A226A2009632023433943394339222C0D0A226B
2009632023433143314331222C0D0A226C2009632023413141314131222C0D0A
226D2009632023364334433046222C0D0A226E2009632023433141313630222C
0D0A226F2009632023383136463443222C0D0A22702009632023374336323242
222C0D0A22712009632023414638453342222C0D0A2272200963202342303935
3531222C0D0A22732009632023434243394333222C0D0A227420096320234335
43354335222C0D0A22752009632023433042464244222C0D0A22762009632023
433342424141222C0D0A22772009632023423541363833222C0D0A2278200963
2023423239323532222C0D0A22792009632023414639313531222C0D0A227A20
09632023353234363245222C0D0A22412009632023374336333238222C0D0A22
422009632023413037453334222C0D0A22432009632023394137383237222C0D
0A22442009632023394638333434222C0D0A2245200963202342323941363922
2C0D0A22462009632023423339343533222C0D0A224720096320234146384534
43222C0D0A22482009632023394637453341222C0D0A22492009632023393337
323238222C0D0A224A2009632023384537303238222C0D0A224B200963202338
3336423331222C0D0A224C2009632023414538453430222C0D0A224D20096320
23413738373336222C0D0A224E2009632023423239313439222C0D0A224F2009
632023413338323246222C0D0A22502009632023394137393243222C0D0A2251
2009632023413138303245222C0D0A22522009632023413638353330222C0D0A
22532009632023393837413243222C0D0A22542009632023323231433044222C
0D0A22552009632023413838423434222C0D0A22562009632023423639373443
222C0D0A22572009632023423539353445222C0D0A2258200963202332333144
3045222C0D0A22592009632023414238463442222C0D0A225A20096320234237
39373530222C0D0A22602009632023383336393236222C0D0A22202E09632023
323431453130222C0D0A222E2E09632023414238443444222C0D0A222B2E0963
2023393637383243222C0D0A22402E09632023364235363146222C0D0A22232E
09632023334633323132222C0D0A222020202020202020202020202020202020
202020202020202020202020202020222C0D0A22202020202020202020202020
2020202020202020202020202020202020202020222C0D0A2220202020202020
2020202E202B20402023202020202024202020202020202020222C0D0A222020
2020252026202A203D203D202D203B203E202C2027202920202020202020222C
0D0A2220202020202021203D207E207B205D205E202F2028205F203A20292020
202020222C0D0A222020202020203C205B207D207C2031203220332034203520
3A203A2029202020222C0D0A2220203620372038203920302031206120332062
20632064206520652066202020222C0D0A222020202067203720682069206A20
33206A206B206C206D206E206F2020202020222C0D0A22202020202020702071
20722073207420752076207720782079207A2020202020222C0D0A2220202020
20204120422043204420452046204720482049204A20202020202020222C0D0A
222020202020204B204C204D204E204F20502051205220522053202020202020
20222C0D0A222020202020205420552056205720522052205220522052205320
202020202020222C0D0A222020202020202020582059205A2052205220522052
2052206020202020202020222C0D0A2220202020202020202020202E2E2E5220
2B2E402E232E20202020202020202020222C0D0A222020202020202020202020
202020202020202020202020202020202020202020222C0D0A22202020202020
2020202020202020202020202020202020202020202020202020227D3B0D0A41
0700002F2A2058504D202A2F0D0A7374617469632063686172202A2063655F66
696E616C697A6174696F6E5F78706D5B5D203D207B0D0A223136203136203931
2031222C0D0A22200963204E6F6E65222C0D0A222E0963202339323837374322
2C0D0A222B09632023424639443744222C0D0A22400963202339373832354122
2C0D0A222309632023423239343730222C0D0A22240963202341453933374522
2C0D0A222509632023423739363732222C0D0A22260963202335333536333522
2C0D0A222A09632023343034423334222C0D0A223D0963202335333534324522
2C0D0A222D09632023414238453638222C0D0A223B0963202342323939383622
2C0D0A223E09632023423539343644222C0D0A222C0963202337303637334522
2C0D0A222709632023423139323731222C0D0A22290963202342363934364422
2C0D0A222109632023373537303545222C0D0A227E0963202335303533324522
2C0D0A227B09632023413838423634222C0D0A225D0963202338353741363922
2C0D0A225E09632023373336393346222C0D0A222F0963202344344142384222
2C0D0A222809632023423339363739222C0D0A225F0963202334373444333022
2C0D0A223A09632023393838303536222C0D0A223C0963202338433742363222
2C0D0A225B09632023353135383238222C0D0A227D0963202337413645343022
2C0D0A227C09632023424139373731222C0D0A22310963202344344143384322
2C0D0A223209632023413438423646222C0D0A22330963202334463535343122
2C0D0A223409632023383537343439222C0D0A22350963202339383834363522
2C0D0A223609632023344235343241222C0D0A22370963202335443545324522
2C0D0A223809632023413138363543222C0D0A22390963202344434231393422
2C0D0A223009632023443941453846222C0D0A22610963202343363946374222
2C0D0A226209632023414138453638222C0D0A22630963202338373738353922
2C0D0A226409632023354435463530222C0D0A22650963202337363642343122
2C0D0A226609632023394138313546222C0D0A22670963202335303534334122
2C0D0A226809632023423739343645222C0D0A22690963202344354141384122
2C0D0A226A09632023434341323746222C0D0A226B0963202342463937373122
2C0D0A226C09632023423839413736222C0D0A226D0963202344334241413522
2C0D0A226E09632023413638433636222C0D0A226F0963202336313633353322
2C0D0A227009632023364536363344222C0D0A22710963202334433533333322
2C0D0A227209632023373236393341222C0D0A22730963202342383935364522
2C0D0A227409632023434541343832222C0D0A22750963202343384131374422
2C0D0A227609632023453343334142222C0D0A22770963202345314331413922
2C0D0A227809632023414338453635222C0D0A22790963202338413738344222
2C0D0A227A09632023353735443439222C0D0A22410963202334443535323922
2C0D0A224209632023363436323332222C0D0A22430963202341363844363522
2C0D0A224409632023454243414235222C0D0A22450963202343334131374522
2C0D0A224609632023394438323536222C0D0A22470963202337323641334122
2C0D0A224809632023433041373839222C0D0A22490963202343444335423622
2C0D0A224A09632023353135353334222C0D0A224B0963202336463638334122
2C0D0A224C09632023423238463637222C0D0A224D0963202343454142384222
2C0D0A224E09632023364436373338222C0D0A224F0963202333333432314122
2C0D0A225009632023353135353434222C0D0A22510963202341414134394122
2C0D0A225209632023453545354535222C0D0A22530963202334323442324122
2C0D0A225409632023393437443531222C0D0A22550963202338323736344222
2C0D0A225609632023434542454139222C0D0A22570963202341354134413022
2C0D0A225809632023353535353338222C0D0A22590963202343344334433422
2C0D0A225A09632023443144314431222C0D0A22202020202020202020202020
20202020222C0D0A2220202020202020202020202020202020222C0D0A22202E
2B40402324202020202020202020222C0D0A2220252620202A3D2D3B20202020
202020222C0D0A22203E2020202020202C27202020202020222C0D0A22202921
2020202020207E7B5D20202020222C0D0A22205E2F282020202020205F3A3C20
2020222C0D0A22205B7D7C313220202020203334352020222C0D0A2220203637
383930616263202064656620222C0D0A2220202067376830696A6B6C6D6E6F70
20222C0D0A22202020207172737475767778797A2020222C0D0A222020202020
4142434445464748492020222C0D0A222020202020204A4B4C4D4E4F50515220
222C0D0A2220202020202020535455565720202020222C0D0A22202020202020
2020582020595A202020222C0D0A222020202020202020202020202020202022
7D3B0D0AEE0100002F2A2058504D202A2F0D0A7374617469632063686172202A
20666F6E74735F78706D5B5D203D207B0D0A22313920313720322031222C0D0A
22200963204E6F6E65222C0D0A222E09632023303030303030222C0D0A222020
20202020202020202E2E2E202020202020222C0D0A2220202020202020202020
2E2E2E202020202020222C0D0A222020202020202020202E2E2E2E2E20202020
20222C0D0A2220202020202020202E2E202E2E2E2020202020222C0D0A222020
2020202020202E20202E2E2E2020202020222C0D0A22202020202020202E2E20
202E2E2E2020202020222C0D0A22202020202020202E2020202E2E2E2E202020
20222C0D0A222020202020202E202020202E2E2E2E20202020222C0D0A222020
2020202E2E20202020202E2E2E20202020222C0D0A2220202020202E2E2E2E2E
2E2E2E2E2E20202020222C0D0A22202020202E2E2020202020202E2E2E2E2020
20222C0D0A22202020202E202020202020202E2E2E2E202020222C0D0A222020
202E2E202020202020202E2E2E2E202020222C0D0A2220202E2E202020202020
2020202E2E2E202020222C0D0A22202E2E2E2E202020202020202E2E2E2E2E20
20222C0D0A222E2E2E2E2E2E202020202E2E2E2E2E2E2E2E20222C0D0A222020
2020202020202020202020202020202020227D3B0D0AAB0100002F2A2058504D
202A2F0A7374617469632063686172202A677261706869635B5D203D207B0A22
313620313620342031222C0A222E2063204E6F6E65222C0A222C206320233331
33313331222C0A222D20632023464646464646222C0A222A2063202346463030
3030222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2C2C2C2C2C2C2C2E2E2E2E2E2E222C
0A222E2E2E2C2D2D2D2D2D2D2C2E2E2E2E2E222C0A222E2E2E2C2D2D2D2D2D2D
2D2C2E2E2E2E222C0A222E2E2E2C2D2D2D2D2D2D2D2D2C2E2E2E222C0A222E2E
2E2C2D2D2D2D2D2D2D2D2C2E2E2E222C0A222E2E2E2C2D2D2D2D2D2D2D2D2C2E
2E2E222C0A222E2A2E2C2D2D2D2D2D2D2D2D2C2E2E2E222C0A222E2E2A2A2A2A
2A2A2A2A2A2A2A2E2E2E222C0A222E2A2E2C2D2D2D2D2D2D2D2D2C2E2E2E222C
0A222E2E2E2C2D2D2D2D2D2D2D2D2C2E2E2E222C0A222E2E2E2C2D2D2D2D2D2D
2D2D2C2E2E2E222C0A222E2E2E2C2C2C2C2C2C2C2C2C2C2E2E2E222C0A222E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E227D0AE00A00002F2A2058504D202A2F0D0A737461746963206368617220
2A206D656E755F636F70795F78706D5B5D203D207B0D0A223232203233203934
2032222C0D0A2220200963204E6F6E65222C0D0A222E20096320233031303130
31222C0D0A222B2009632023423942394239222C0D0A22402009632023464546
454645222C0D0A22232009632023463946394639222C0D0A2224200963202337
3537353735222C0D0A22252009632023463546354538222C0D0A222620096320
23353735373532222C0D0A222A2009632023464646464646222C0D0A223D2009
632023413041304130222C0D0A222D2009632023393339333933222C0D0A223B
2009632023374337433743222C0D0A223E2009632023434643364130222C0D0A
222C2009632023443743454141222C0D0A22272009632023344334393344222C
0D0A22292009632023364436443644222C0D0A22212009632023364336433643
222C0D0A227E2009632023413941394139222C0D0A227B200963202333453342
3331222C0D0A225D2009632023393739313738222C0D0A225E20096320233841
37393345222C0D0A222F2009632023433342423941222C0D0A22282009632023
343534333337222C0D0A225F2009632023464146414641222C0D0A223A200963
2023454645464546222C0D0A223C2009632023433743374337222C0D0A225B20
09632023443844384438222C0D0A227D2009632023443244324432222C0D0A22
7C2009632023374237423742222C0D0A22312009632023333132463237222C0D
0A22322009632023383938343643222C0D0A2233200963202343344243394122
2C0D0A22342009632023383437323336222C0D0A223520096320233535353134
33222C0D0A22362009632023313831373133222C0D0A22372009632023433543
354335222C0D0A22382009632023413741374137222C0D0A2239200963202341
4441444144222C0D0A22302009632023394139413941222C0D0A226120096320
23394239423942222C0D0A22622009632023383638363836222C0D0A22632009
632023343334333433222C0D0A22642009632023313331323046222C0D0A2265
2009632023323232313142222C0D0A22662009632023383437303334222C0D0A
22672009632023343434313335222C0D0A22682009632023423342334233222C
0D0A22692009632023423442344234222C0D0A226A2009632023354435443544
222C0D0A226B2009632023343734373437222C0D0A226C200963202333433343
3343222C0D0A226D2009632023343034303430222C0D0A226E20096320234436
44364436222C0D0A226F2009632023313931383134222C0D0A22702009632023
383236463334222C0D0A22712009632023343434313336222C0D0A2272200963
2023313631353131222C0D0A22732009632023313431333130222C0D0A227420
09632023384638463846222C0D0A22752009632023393839383938222C0D0A22
762009632023433643364336222C0D0A22772009632023303230323032222C0D
0A22782009632023383036463334222C0D0A2279200963202337463643333322
2C0D0A227A2009632023334133373245222C0D0A224120096320233633363336
33222C0D0A22422009632023373637363736222C0D0A22432009632023374636
453333222C0D0A22442009632023343234303335222C0D0A2245200963202331
3531343131222C0D0A22462009632023344434443439222C0D0A224720096320
23353135313531222C0D0A22482009632023333533353335222C0D0A22492009
632023323032303230222C0D0A224A2009632023324432443244222C0D0A224B
2009632023334533453345222C0D0A224C2009632023313731373137222C0D0A
224D2009632023374436393246222C0D0A224E2009632023314131413141222C
0D0A224F2009632023314431433137222C0D0A22502009632023323632353146
222C0D0A22512009632023323932373231222C0D0A2252200963202337463642
3246222C0D0A22532009632023303230323031222C0D0A225420096320234131
39413746222C0D0A22552009632023413339443831222C0D0A22562009632023
383036433330222C0D0A22572009632023313030463043222C0D0A2258200963
2023413941313836222C0D0A22592009632023304430423035222C0D0A225A20
09632023383937383344222C0D0A22602009632023374136373245222C0D0A22
202E09632023373636353241222C0D0A222E2E09632023373836373243222C0D
0A22202020202020202020202020202020202020202020202E202E202E202E20
2020202020202020202020202020222C0D0A22202020202020202020202E202E
202E202E202E202E202B204020232024202E202E202E202E202E202E20202022
2C0D0A2220202020202020202E202520252025202520252026202A203D202D20
3B20262025202520252025203E202E20222C0D0A2220202020202020202E2025
202C202C202C202C2027202A20292021207E207B205D202C202C202C205E202E
20222C0D0A2220202020202020202E2025202F202F202F2028205F203A203C20
5B207D207C20312032202F20332034202E20222C0D0A2220202020202020202E
2025202C203520362037203820382039203020612062206320642065202C2066
202E20222C0D0A2220202020202020202E2025206720682069206A206B206C20
6C206C206C206C206D2069206E206F2070202E20222C0D0A2220202020202020
202E20252071202A202A20692069206920692069206920692069202A202A2072
2070202E20222C0D0A2220202020202020202E20252073202A20382074207420
75202A20762074202A20742076202A20772078202E20222C0D0A222020202020
2020202E20252072202A202A202A202A202A202A202A202A202A202A202A202A
20772079202E20222C0D0A2220202020202020202E2025207A202A2029204120
2A204220742076202A20762074202A202A20642043202E20222C0D0A22202020
20202020202E20252044202A202A202A202A202A202A202A202A202A202A202A
202A20452070202E20222C0D0A2220202E202E202E202E204620642047204820
49204A204B204C20742076202A20752074202A20642078202E20222C0D0A222E
2068202A202A202A202A202A202A202A202A202A202A206E2049202A202A202A
202A202A2072204D202E20222C0D0A222E202A202A202A202A202A202A202A20
2A202A202A202A202A204E202A202A202A202A206E204F204D202E20222C0D0A
222E202A2038207420742075202A20762074202A20742076202A202E20502050
205020502051202C2052202E20222C0D0A222E202A202A202A202A202A202A20
2A202A202A202A202A202A20532054205420542054205420552056202E20222C
0D0A222E202A20292041202A204220742076202A20762074202A202A2072202C
202C202C202C202C202C2079202E20222C0D0A222E202A202A202A202A202A20
2A202A202A202A202A202A202A20572054205420542054205420582079202E20
222C0D0A222E202A203820742074202A207420742076202A20752074202A2072
202C202C202C202C202C202C2056202E20222C0D0A222E202A202A202A202A20
2A202A202A202A202A202A202A202A20592056205A20702070206020202E2E2E
2E20222C0D0A222E206E202A202A202A202A202A202A202A202A202A202A206E
202E202E202E202E202E202E202E202E202020222C0D0A2220202E202E202E20
2E202E202E202E202E202E202E202E202E202020202020202020202020202020
20202020227D3B0D0AB70100002F2A2058504D202A2F0D0A7374617469632063
686172202A206D656E755F756E696E64656E745F78706D5B5D203D207B0D0A22
313820313520322031222C0D0A22200963204E6F6E65222C0D0A222E09632023
303130313031222C0D0A222E2E2E2E2E2E2E2E2E2E2E20202020202020222C0D
0A22202020202020202020202020202020202020222C0D0A222E202E202E202E
202E202E202E202E202E20222C0D0A2220202020202020202020202020202020
2020222C0D0A2220202E20202020202E2E2E2E2E2E2E2E2E2E222C0D0A22202E
2E2E2E2E20202E2E2E2E2E2E2E2E2E2E222C0D0A222E2E2E2E2E2E2020202020
20202020202020222C0D0A22202E2E2E2E2E20202E2E2E2E2E2E2E2E2020222C
0D0A2220202E20202020202E2E2E2E2E2E2E2E2020222C0D0A22202020202020
202020202020202020202020222C0D0A222E202E202E202E202E202E202E202E
202E20222C0D0A22202020202020202020202020202020202020222C0D0A222E
2E2E2E2E2E2E2E2E2E2E2E2E2020202020222C0D0A2220202020202020202020
2020202020202020222C0D0A222E2E2E2E2E2E2E2E2E2E2E2020202020202022
7D3B0D0AC50100002F2A2058504D202A2F0D0A7374617469632063686172202A
206D656E755F696E64656E745F78706D5B5D203D207B0D0A2231382031352033
2031222C0D0A22200963204E6F6E65222C0D0A222E0963202330313031303122
2C0D0A222B09632023303030303030222C0D0A222E2E2E2E2E2E2E2E2E2E2E20
202020202020222C0D0A22202020202020202020202020202020202020222C0D
0A222E202E202E202E202E202E202E202E202E20222C0D0A2220202020202020
2020202020202020202020222C0D0A22202020202B2020202E2E2E2E2E2E2E2E
2E2E222C0D0A22202B2E2E2E2E20202E2E2E2E2E2E2E2E2E2E222C0D0A22202E
2E2E2E2E2E2020202020202020202020222C0D0A22202B2E2E2E2E20202E2E2E
2E2E2E2E2E2020222C0D0A22202020202B2020202E2E2E2E2E2E2E2E2020222C
0D0A22202020202020202020202020202020202020222C0D0A222E202E202E20
2E202E202E202E202E202E20222C0D0A22202020202020202020202020202020
202020222C0D0A222E2E2E2E2E2E2E2E2E2E2E2E2E2020202020222C0D0A2220
2020202020202020202020202020202020222C0D0A222E2E2E2E2E2E2E2E2E2E
2E20202020202020227D3B0D0A730200002F2A2058504D202A2F0A7374617469
632063686172202A20756E72656769737465726564636F6D706F6E656E745F78
706D5B5D203D207B0A2231332031372031382031222C0A22200963204E6F6E65
222C0A222E09632023303033383542222C0A222B09632023303030303030222C
0A224009632023323938324330222C0A222309632023303035323843222C0A22
2409632023303033453636222C0A222509632023364241414432222C0A222609
632023303034353732222C0A222A09632023344639374341222C0A223D096320
23324138324246222C0A222D09632023343138464336222C0A223B0963202330
3034303641222C0A223E09632023343038464337222C0A222C09632023363641
374431222C0A222709632023303035333845222C0A2229096320233842424244
43222C0A222109632023303035413939222C0A227E0963202330303538393622
2C0A2220202E2E2E2E2E2E2B20202020222C0A22202E40232B2B2B23232B2B20
20222C0A222425232B2020202E4023232B20222C0A22262A2B20202020202E40
232B20222C0A222E3D232B20202020242D232B20222C0A22202E23232B202020
3B3E232B20222C0A2220202B2B2B20202E2C272B2020222C0A22202020202020
2E29212B202020222C0A2220202020202E2C7E2B20202020222C0A2220202020
2E40232B2020202020222C0A22202020202E40232B2020202020222C0A222020
2020202B2B202020202020222C0A2220202020202020202020202020222C0A22
20202020202E2E202020202020222C0A22202020202E2C232B2020202020222C
0A2220202020202B2B202020202020222C0A2220202020202020202020202020
227D3B0A
}
end
end

292
ide/procedurelist.lrs Normal file
View File

@ -0,0 +1,292 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TProcedureListForm','FORMDATA',[
'TPF0'#18'TProcedureListForm'#17'ProcedureListForm'#13'ActiveControl'#7#9'cbO'
+'bjects'#7'Caption'#6#17'Procedure List - '#12'ClientHeight'#3','#1#11'Clien'
+'tWidth'#3#6#2#8'OnCreate'#7#10'FormCreate'#10'OnKeyPress'#7#12'FormKeyPress'
+#8'OnResize'#7#10'FormResize'#6'OnShow'#7#8'FormShow'#13'PixelsPerInch'#2'K'
+#8'Position'#7#9'poDefault'#18'HorzScrollBar.Page'#3#5#2#18'VertScrollBar.Pa'
+'ge'#3'+'#1#4'Left'#3'x'#1#6'Height'#3','#1#3'Top'#3#16#1#5'Width'#3#6#2#0#10
+'TStatusBar'#9'StatusBar'#6'Panels'#14#1#5'Width'#3#144#1#0#1#5'Width'#2'2'#0
+#0#11'SimplePanel'#8#6'Height'#2#24#3'Top'#3#20#1#5'Width'#3#6#2#0#0#8'TTool'
+'Bar'#2'TB'#7'Caption'#6#2'TB'#4'Flat'#9#6'Height'#2#26#6'Images'#7#10'Image'
+'List1'#8'TabOrder'#2#1#6'Height'#2#26#5'Width'#3#6#2#0#11'TToolButton'#7'tb'
+'About'#7'Caption'#6#7'tbAbout'#10'ImageIndex'#2#9#14'ParentShowHint'#8#8'Sh'
+'owHint'#9#7'OnClick'#7#12'tbAboutClick'#4'Left'#3#136#0#6'Height'#2#22#4'Hi'
+'nt'#6#5'About'#3'Top'#2#2#5'Width'#2#23#0#0#11'TToolButton'#11'ToolButton2'
+#7'Caption'#6#11'ToolButton2'#5'Style'#7#10'tbsDivider'#5'Width'#2#5#4'Left'
+#3#131#0#6'Height'#2#22#3'Top'#2#2#5'Width'#2#5#0#0#11'TToolButton'#8'tbJump'
+'To'#7'Caption'#6#4'Goto'#10'ImageIndex'#2#5#14'ParentShowHint'#8#8'ShowHint'
+#9#7'OnClick'#7#10'LVDblClick'#4'Left'#2'l'#6'Height'#2#22#4'Hint'#6#17'Jump'
+' To Selection'#3'Top'#2#2#5'Width'#2#23#0#0#11'TToolButton'#11'ToolButton4'
+#7'Caption'#6#11'ToolButton4'#5'Style'#7#10'tbsDivider'#5'Width'#2#5#4'Left'
+#2'g'#6'Height'#2#22#3'Top'#2#2#5'Width'#2#5#0#0#11'TToolButton'#11'tbFilter'
+'Any'#7'Caption'#6#11'tbFilterAny'#4'Down'#9#7'Grouped'#9#10'ImageIndex'#2#8
+#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#4'Left'#2'P'#6'He'
+'ight'#2#22#4'Hint'#6'%Filter by matching any part of method'#3'Top'#2#2#5'W'
+'idth'#2#23#0#0#11'TToolButton'#13'tbFilterStart'#7'Caption'#6#13'tbFilterSt'
+'art'#7'Grouped'#9#10'ImageIndex'#2#7#14'ParentShowHint'#8#8'ShowHint'#9#5'S'
+'tyle'#7#8'tbsCheck'#4'Left'#2'9'#6'Height'#2#22#4'Hint'#6'''Filter by match'
+'ing with start of method'#3'Top'#2#2#5'Width'#2#23#0#0#11'TToolButton'#11'T'
+'oolButton7'#7'Caption'#6#11'ToolButton7'#5'Style'#7#10'tbsDivider'#5'Width'
+#2#5#4'Left'#2'4'#6'Height'#2#22#3'Top'#2#2#5'Width'#2#5#0#0#11'TToolButton'
+#12'tbChangeFont'#7'Caption'#6#12'tbChangeFont'#10'ImageIndex'#2#4#14'Parent'
+'ShowHint'#8#8'ShowHint'#9#4'Left'#2#29#6'Height'#2#22#4'Hint'#6#11'Change F'
+'ont'#3'Top'#2#2#5'Width'#2#23#0#0#11'TToolButton'#11'ToolButton9'#7'Caption'
+#6#11'ToolButton9'#5'Style'#7#10'tbsDivider'#5'Width'#2#5#4'Left'#2#24#6'Hei'
+'ght'#2#22#3'Top'#2#2#5'Width'#2#5#0#0#11'TToolButton'#6'tbCopy'#7'Caption'#6
+#6'tbCopy'#10'ImageIndex'#2#6#14'ParentShowHint'#8#8'ShowHint'#9#7'OnClick'#7
+#11'tbCopyClick'#4'Left'#2#1#6'Height'#2#22#4'Hint'#6'!Copy method name to t'
+'he clipboard'#3'Top'#2#2#5'Width'#2#23#0#0#0#6'TPanel'#9'pnlHeader'#5'Align'
+#7#5'alTop'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'&'#11'ClientWidth'
+#3#6#2#5'Color'#7#6'clLime'#11'ParentColor'#8#8'TabOrder'#2#2#6'Height'#2'&'
+#3'Top'#2#26#5'Width'#3#6#2#0#6'TPanel'#10'pnlObjects'#5'Align'#7#8'alClient'
+#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'&'#11'ClientWidth'#3#6#1#11'P'
+'arentColor'#8#8'TabOrder'#2#0#4'Left'#3#0#1#6'Height'#2'&'#5'Width'#3#6#1#0
+#6'TLabel'#10'lblObjects'#7'Caption'#6#8'&Objects'#5'Color'#7#6'clNone'#11'P'
+'arentColor'#8#21'AnchorSideTop.Control'#7#9'cbObjects'#18'AnchorSideTop.Sid'
+'e'#7#9'asrCenter'#4'Left'#2#8#6'Height'#2#17#3'Top'#2#12#5'Width'#2'D'#0#0#9
+'TComboBox'#9'cbObjects'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'Au'
+'toCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#9
+'MaxLength'#2#0#8'OnChange'#7#15'cbObjectsChange'#6'Sorted'#9#5'Style'#7#14
+'csDropDownList'#8'TabOrder'#2#0#4'Left'#2'@'#6'Height'#2#24#3'Top'#2#8#5'Wi'
+'dth'#3#191#0#0#0#0#6'TPanel'#9'pnlSearch'#5'Align'#7#6'alLeft'#10'BevelOute'
+'r'#7#6'bvNone'#12'ClientHeight'#2'&'#11'ClientWidth'#3#0#1#11'ParentColor'#8
+#8'TabOrder'#2#1#6'Height'#2'&'#5'Width'#3#0#1#0#6'TLabel'#9'lblSearch'#7'Ca'
+'ption'#6#7'&Search'#5'Color'#7#6'clNone'#11'ParentColor'#8#21'AnchorSideTop'
+'.Control'#7#9'edMethods'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#11
+#6'Height'#2#17#3'Top'#2#11#5'Width'#2'?'#0#0#5'TEdit'#9'edMethods'#7'Anchor'
+'s'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'OnChange'#7#15'edMethodsChange'#9'O'
+'nKeyDown'#7#16'edMethodsKeyDown'#10'OnKeyPress'#7#17'edMethodsKeyPress'#8'T'
+'abOrder'#2#0#4'Left'#2'D'#6'Height'#2#23#3'Top'#2#8#5'Width'#3#180#0#0#0#0#0
+#9'TListView'#2'LV'#5'Align'#7#8'alClient'#7'Columns'#14#1#0#1#7'Caption'#6#9
+'Procedure'#5'Width'#3','#1#0#1#7'Caption'#6#4'Type'#0#1#7'Caption'#6#4'Line'
+#0#0#13'HideSelection'#8#10'Items.Data'#10'D'#0#0#0'E'#255#255#255#1#0#0#0#0
+#0#0#0#255#255#255#255#255#255#255#255#3#0#0#0#0#0#0#0#0#14'TForm.TestFour'#8
+'Function'#2'24'#255#255#255#255#255#255#255#255#255#255#255#255#8'ReadOnly'
+#9#9'RowSelect'#9#10'ScrollBars'#7#10'ssAutoBoth'#11'SmallImages'#7#10'Image'
,'List1'#8'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport'#10'OnDblClick'#7#10'LVDbl'
+'Click'#10'OnKeyPress'#7#17'edMethodsKeyPress'#12'OnSelectItem'#7#12'LVSelec'
+'tItem'#6'Height'#3#212#0#3'Top'#2'@'#5'Width'#3#6#2#0#0#10'TImageList'#10'I'
+'mageList1'#4'left'#3#210#0#3'top'#3#148#1#6'Bitmap'#10#228'-'#0#0'li'#10#0#0
+#0#16#0#0#0#16#0#0#0'~'#2#0#0'/* XPM */'#13#10'static char * ce_procedure_xp'
+'m[] = {'#13#10'"16 16 15 1",'#13#10'" '#9'c None",'#13#10'".'#9'c #3A3A3A",'
+#13#10'"+'#9'c #919191",'#13#10'"@'#9'c #8B8B8B",'#13#10'"#'#9'c #CCCCCC",'
+#13#10'"$'#9'c #D5D5D5",'#13#10'"%'#9'c #ADADAD",'#13#10'"&'#9'c #C4C4C4",'
+#13#10'"*'#9'c #B4B4B4",'#13#10'"='#9'c #A1A1A1",'#13#10'"-'#9'c #989898",'
+#13#10'";'#9'c #A2A2A2",'#13#10'">'#9'c #C6C6C6",'#13#10'",'#9'c #D8D8D8",'
+#13#10'"'''#9'c #4C4C4C",'#13#10'" .... ",'#13#10'" .. .++. .. '
+' ",'#13#10'" .@..#$$#..@. ",'#13#10'" .@%&*=--=*&%@. ",'#13#10'" ..&;@>,,'
+'>@;&.. ",'#13#10'" .*=>*''''*>=*. ",'#13#10'"..#=>*. .*>=#..",'#13#10'".'
+'+$-,'' '',-$+.",'#13#10'".+$-,'' '',-$+.",'#13#10'"..#=>*. .*>=#..",'
+#13#10'" .*=>*''''*>=*. ",'#13#10'" ..&;@>,,>@;&.. ",'#13#10'" .@%&*=--=*&'
+'%@. ",'#13#10'" .@..#$$#..@. ",'#13#10'" .. .++. .. ",'#13#10'" '
+'.... "};'#13#10#140#6#0#0'/* XPM */'#13#10'static char * ce_default_xp'
+'m[] = {'#13#10'"16 16 80 1",'#13#10'" '#9'c None",'#13#10'".'#9'c #999999",'
+#13#10'"+'#9'c #9A9A9A",'#13#10'"@'#9'c #9B9B9B",'#13#10'"#'#9'c #9C9C9C",'
+#13#10'"$'#9'c #9D9D9D",'#13#10'"%'#9'c #9E9E9E",'#13#10'"&'#9'c #9F9F9F",'
+#13#10'"*'#9'c #A0A0A0",'#13#10'"='#9'c #353535",'#13#10'"-'#9'c #E8E8E8",'
+#13#10'";'#9'c #E9E9E9",'#13#10'">'#9'c #EAEAEA",'#13#10'",'#9'c #EBEBEB",'
+#13#10'"'''#9'c #ECECEC",'#13#10'")'#9'c #EEEEEE",'#13#10'"!'#9'c #EFEFEF",'
+#13#10'"~'#9'c #F0F0F0",'#13#10'"{'#9'c #F1F1F1",'#13#10'"]'#9'c #F2F2F2",'
+#13#10'"^'#9'c #515151",'#13#10'"/'#9'c #DCDCDC",'#13#10'"('#9'c #D9D9D9",'
+#13#10'"_'#9'c #E6E6E6",'#13#10'":'#9'c #969AC2",'#13#10'"<'#9'c #9398C0",'
+#13#10'"['#9'c #989CC2",'#13#10'"}'#9'c #9EA2C4",'#13#10'"|'#9'c #A3A7C6",'
+#13#10'"1'#9'c #F4F4F4",'#13#10'"2'#9'c #EDEDED",'#13#10'"3'#9'c #A4A7C7",'
+#13#10'"4'#9'c #A2A5C6",'#13#10'"5'#9'c #A8ABC8",'#13#10'"6'#9'c #AEB0CA",'
+#13#10'"7'#9'c #B4B6CD",'#13#10'"8'#9'c #F6F6F6",'#13#10'"9'#9'c #525252",'
+#13#10'"0'#9'c #DFDFDF",'#13#10'"a'#9'c #B2B4CD",'#13#10'"b'#9'c #B2B4CC",'
+#13#10'"c'#9'c #B8BACE",'#13#10'"d'#9'c #BEBFD0",'#13#10'"e'#9'c #C4C5D3",'
+#13#10'"f'#9'c #F8F8F8",'#13#10'"g'#9'c #535353",'#13#10'"h'#9'c #E1E1E1",'
+#13#10'"i'#9'c #DDDDDD",'#13#10'"j'#9'c #C1C3D3",'#13#10'"k'#9'c #C2C4D2",'
+#13#10'"l'#9'c #C9C9D5",'#13#10'"m'#9'c #CFCFD7",'#13#10'"n'#9'c #D5D5D9",'
+#13#10'"o'#9'c #FAFAFA",'#13#10'"p'#9'c #F3F3F3",'#13#10'"q'#9'c #F5F5F5",'
+#13#10'"r'#9'c #E9E9ED",'#13#10'"s'#9'c #EAEAED",'#13#10'"t'#9'c #EDEDEF",'
+#13#10'"u'#9'c #F3F2F2",'#13#10'"v'#9'c #FCFCFC",'#13#10'"w'#9'c #545454",'
+#13#10'"x'#9'c #E4E4E4",'#13#10'"y'#9'c #E0E0E0",'#13#10'"z'#9'c #E2E2E2",'
+#13#10'"A'#9'c #E3E3E3",'#13#10'"B'#9'c #F9F9F9",'#13#10'"C'#9'c #F7F7F7",'
+#13#10'"D'#9'c #E5E5E5",'#13#10'"E'#9'c #E7E7E7",'#13#10'"F'#9'c #FBFBFB",'
+#13#10'"G'#9'c #FDFDFD",'#13#10'"H'#9'c #FEFEFE",'#13#10'"I'#9'c #474747",'
+#13#10'"J'#9'c #CDCDCD",'#13#10'"K'#9'c #C9C9C9",'#13#10'"L'#9'c #5C5C5C",'
+#13#10'"M'#9'c #BEBEBE",'#13#10'"N'#9'c #BDBDBD",'#13#10'"O'#9'c #3B3B3B",'
+#13#10'" ",'#13#10'" .+@@#$%&&*= ",'#13#10'" -;>,'')!~{]'
+'^ ",'#13#10'" >/(_:<[}|1^ ",'#13#10'" 2)!~3456789 ",'#13#10'" !0/>'
+'abcdefg ",'#13#10'" {hi,jklmnog ",'#13#10'" p1q8rst~uvw ",'#13#10'" '
+' qxyhzzAxxBw ",'#13#10'" CDzzAAxDDBw ",'#13#10'" BEAAxDDDDBw ",'#13
+#10'" FvGHHHHHHHI ",'#13#10'" GHHHHHHHqJ ",'#13#10'" HHHHHHHHKL "'
+','#13#10'" MMMMMMN#O ",'#13#10'" "};'#13#10#251#8#0#0'/'
+'* XPM */'#13#10'static char * ce_class_xpm[] = {'#13#10'"16 16 97 2",'#13#10
+'" '#9'c None",'#13#10'". '#9'c #403726",'#13#10'"+ '#9'c #6F5F3D",'#13#10
+'"@ '#9'c #9F8855",'#13#10'"# '#9'c #AC9258",'#13#10'"$ '#9'c #483F2D",'#13
+#10'"% '#9'c #332C1E",'#13#10'"& '#9'c #A08855",'#13#10'"* '#9'c #C5A766",'
+#13#10'"= '#9'c #C0A25E",'#13#10'"- '#9'c #B69959",'#13#10'"; '#9'c #8A7444"'
+','#13#10'"> '#9'c #3B3934",'#13#10'", '#9'c #4E4E4D",'#13#10'"'' '#9'c #EDC'
+'E94",'#13#10'") '#9'c #746549",'#13#10'"! '#9'c #C5A763",'#13#10'"~ '#9'c #'
+'81714D",'#13#10'"{ '#9'c #8C8678",'#13#10'"] '#9'c #A8A8A7",'#13#10'"^ '#9
+'c #E0E0E0",'#13#10'"/ '#9'c #E7E7E7",'#13#10'"( '#9'c #B0B0B0",'#13#10'"_ '
+#9'c #E9CB92",'#13#10'": '#9'c #FEDD9F",'#13#10'"< '#9'c #B09559",'#13#10'"['
+' '#9'c #B19147",'#13#10'"} '#9'c #948E82",'#13#10'"| '#9'c #DFDFDF",'#13#10
+'"1 '#9'c #D8D8D8",'#13#10'"2 '#9'c #CBCBCB",'#13#10'"3 '#9'c #CACACA",'#13
+#10'"4 '#9'c #AAAAAA",'#13#10'"5 '#9'c #E9CA92",'#13#10'"6 '#9'c #4E4126",'
+#13#10'"7 '#9'c #AC8C39",'#13#10'"8 '#9'c #9F7E2B",'#13#10'"9 '#9'c #6D4B0A"'
,','#13#10'"0 '#9'c #878177",'#13#10'"a '#9'c #C7C7C7",'#13#10'"b '#9'c #CDCD'
+'CD",'#13#10'"c '#9'c #A5A5A5",'#13#10'"d '#9'c #B6985C",'#13#10'"e '#9'c #F'
+'DDC9E",'#13#10'"f '#9'c #61543D",'#13#10'"g '#9'c #4D4124",'#13#10'"h '#9'c'
+' #997928",'#13#10'"i '#9'c #8A8476",'#13#10'"j '#9'c #C9C9C9",'#13#10'"k '#9
+'c #C1C1C1",'#13#10'"l '#9'c #A1A1A1",'#13#10'"m '#9'c #6C4C0F",'#13#10'"n '
+#9'c #C1A160",'#13#10'"o '#9'c #816F4C",'#13#10'"p '#9'c #7C622B",'#13#10'"q'
+' '#9'c #AF8E3B",'#13#10'"r '#9'c #B09551",'#13#10'"s '#9'c #CBC9C3",'#13#10
+'"t '#9'c #C5C5C5",'#13#10'"u '#9'c #C0BFBD",'#13#10'"v '#9'c #C3BBAA",'#13
+#10'"w '#9'c #B5A683",'#13#10'"x '#9'c #B29252",'#13#10'"y '#9'c #AF9151",'
+#13#10'"z '#9'c #52462E",'#13#10'"A '#9'c #7C6328",'#13#10'"B '#9'c #A07E34"'
+','#13#10'"C '#9'c #9A7827",'#13#10'"D '#9'c #9F8344",'#13#10'"E '#9'c #B29A'
+'69",'#13#10'"F '#9'c #B39453",'#13#10'"G '#9'c #AF8E4C",'#13#10'"H '#9'c #9'
+'F7E3A",'#13#10'"I '#9'c #937228",'#13#10'"J '#9'c #8E7028",'#13#10'"K '#9'c'
+' #836B31",'#13#10'"L '#9'c #AE8E40",'#13#10'"M '#9'c #A78736",'#13#10'"N '#9
+'c #B29149",'#13#10'"O '#9'c #A3822F",'#13#10'"P '#9'c #9A792C",'#13#10'"Q '
+#9'c #A1802E",'#13#10'"R '#9'c #A68530",'#13#10'"S '#9'c #987A2C",'#13#10'"T'
+' '#9'c #221C0D",'#13#10'"U '#9'c #A88B44",'#13#10'"V '#9'c #B6974C",'#13#10
+'"W '#9'c #B5954E",'#13#10'"X '#9'c #231D0E",'#13#10'"Y '#9'c #AB8F4B",'#13
+#10'"Z '#9'c #B79750",'#13#10'"` '#9'c #836926",'#13#10'" .'#9'c #241E10",'
+#13#10'"..'#9'c #AB8D4D",'#13#10'"+.'#9'c #96782C",'#13#10'"@.'#9'c #6B561F"'
+','#13#10'"#.'#9'c #3F3212",'#13#10'" ",'#13
+#10'" ",'#13#10'" . + @ # $ '
+' ",'#13#10'" % & * = = - ; > , '' ) ",'#13#10'" ! = ~ { ] '
+'^ / ( _ : ) ",'#13#10'" < [ } | 1 2 3 4 5 : : ) ",'#13#10'" 6 7'
+' 8 9 0 1 a 3 b c d e e f ",'#13#10'" g 7 h i j 3 j k l m n o ",'#13
+#10'" p q r s t u v w x y z ",'#13#10'" A B C D E F G H I J '
+' ",'#13#10'" K L M N O P Q R R S ",'#13#10'" T U V W R R'
+' R R R S ",'#13#10'" X Y Z R R R R R ` ",'#13#10'" '
+' ...R +.@.#. ",'#13#10'" ",'#13
+#10'" "};'#13#10'A'#7#0#0'/* XPM */'#13#10'st'
+'atic char * ce_finalization_xpm[] = {'#13#10'"16 16 91 1",'#13#10'" '#9'c N'
+'one",'#13#10'".'#9'c #92877C",'#13#10'"+'#9'c #BF9D7D",'#13#10'"@'#9'c #978'
+'25A",'#13#10'"#'#9'c #B29470",'#13#10'"$'#9'c #AE937E",'#13#10'"%'#9'c #B79'
+'672",'#13#10'"&'#9'c #535635",'#13#10'"*'#9'c #404B34",'#13#10'"='#9'c #535'
+'42E",'#13#10'"-'#9'c #AB8E68",'#13#10'";'#9'c #B29986",'#13#10'">'#9'c #B59'
+'46D",'#13#10'",'#9'c #70673E",'#13#10'"'''#9'c #B19271",'#13#10'")'#9'c #B6'
+'946D",'#13#10'"!'#9'c #75705E",'#13#10'"~'#9'c #50532E",'#13#10'"{'#9'c #A8'
+'8B64",'#13#10'"]'#9'c #857A69",'#13#10'"^'#9'c #73693F",'#13#10'"/'#9'c #D4'
+'AB8B",'#13#10'"('#9'c #B39679",'#13#10'"_'#9'c #474D30",'#13#10'":'#9'c #98'
+'8056",'#13#10'"<'#9'c #8C7B62",'#13#10'"['#9'c #515828",'#13#10'"}'#9'c #7A'
+'6E40",'#13#10'"|'#9'c #BA9771",'#13#10'"1'#9'c #D4AC8C",'#13#10'"2'#9'c #A4'
+'8B6F",'#13#10'"3'#9'c #4F5541",'#13#10'"4'#9'c #857449",'#13#10'"5'#9'c #98'
+'8465",'#13#10'"6'#9'c #4B542A",'#13#10'"7'#9'c #5D5E2E",'#13#10'"8'#9'c #A1'
+'865C",'#13#10'"9'#9'c #DCB194",'#13#10'"0'#9'c #D9AE8F",'#13#10'"a'#9'c #C6'
+'9F7B",'#13#10'"b'#9'c #AA8E68",'#13#10'"c'#9'c #877859",'#13#10'"d'#9'c #5D'
+'5F50",'#13#10'"e'#9'c #766B41",'#13#10'"f'#9'c #9A815F",'#13#10'"g'#9'c #50'
+'543A",'#13#10'"h'#9'c #B7946E",'#13#10'"i'#9'c #D5AA8A",'#13#10'"j'#9'c #CC'
+'A27F",'#13#10'"k'#9'c #BF9771",'#13#10'"l'#9'c #B89A76",'#13#10'"m'#9'c #D3'
+'BAA5",'#13#10'"n'#9'c #A68C66",'#13#10'"o'#9'c #616353",'#13#10'"p'#9'c #6E'
+'663D",'#13#10'"q'#9'c #4C5333",'#13#10'"r'#9'c #72693A",'#13#10'"s'#9'c #B8'
+'956E",'#13#10'"t'#9'c #CEA482",'#13#10'"u'#9'c #C8A17D",'#13#10'"v'#9'c #E3'
+'C3AB",'#13#10'"w'#9'c #E1C1A9",'#13#10'"x'#9'c #AC8E65",'#13#10'"y'#9'c #8A'
+'784B",'#13#10'"z'#9'c #575D49",'#13#10'"A'#9'c #4D5529",'#13#10'"B'#9'c #64'
+'6232",'#13#10'"C'#9'c #A68D65",'#13#10'"D'#9'c #EBCAB5",'#13#10'"E'#9'c #C3'
+'A17E",'#13#10'"F'#9'c #9D8256",'#13#10'"G'#9'c #726A3A",'#13#10'"H'#9'c #C0'
+'A789",'#13#10'"I'#9'c #CDC5B6",'#13#10'"J'#9'c #515534",'#13#10'"K'#9'c #6F'
+'683A",'#13#10'"L'#9'c #B28F67",'#13#10'"M'#9'c #CEAB8B",'#13#10'"N'#9'c #6D'
+'6738",'#13#10'"O'#9'c #33421A",'#13#10'"P'#9'c #515544",'#13#10'"Q'#9'c #AA'
+'A49A",'#13#10'"R'#9'c #E5E5E5",'#13#10'"S'#9'c #424B2A",'#13#10'"T'#9'c #94'
+'7D51",'#13#10'"U'#9'c #82764B",'#13#10'"V'#9'c #CEBEA9",'#13#10'"W'#9'c #A5'
+'A4A0",'#13#10'"X'#9'c #555538",'#13#10'"Y'#9'c #C4C4C4",'#13#10'"Z'#9'c #D1'
+'D1D1",'#13#10'" ",'#13#10'" ",'#13#10'" .+@@#'
+'$ ",'#13#10'" %& *=-; ",'#13#10'" > ,'' ",'#13#10
+'" )! ~{] ",'#13#10'" ^/( _:< ",'#13#10'" [}|12 345 ",'
,#13#10'" 67890abc def ",'#13#10'" g7h0ijklmnop ",'#13#10'" qrstuvwxyz'
+' ",'#13#10'" ABCDEFGHI ",'#13#10'" JKLMNOPQR ",'#13#10'" S'
+'TUVW ",'#13#10'" X YZ ",'#13#10'" "};'#13#10#238
+#1#0#0'/* XPM */'#13#10'static char * fonts_xpm[] = {'#13#10'"19 17 2 1",'#13
+#10'" '#9'c None",'#13#10'".'#9'c #000000",'#13#10'" ... ",'#13
+#10'" ... ",'#13#10'" ..... ",'#13#10'" .. '
+'... ",'#13#10'" . ... ",'#13#10'" .. ... ",'#13
+#10'" . .... ",'#13#10'" . .... ",'#13#10'" .. '
+' ... ",'#13#10'" .......... ",'#13#10'" .. .... ",'#13
+#10'" . .... ",'#13#10'" .. .... ",'#13#10'" .. '
+' ... ",'#13#10'" .... ..... ",'#13#10'"...... ........ ",'#13
+#10'" "};'#13#10#171#1#0#0'/* XPM */'#10'static char *grap'
+'hic[] = {'#10'"16 16 4 1",'#10'". c None",'#10'", c #313131",'#10'"- c #FFF'
+'FFF",'#10'"* c #FF0000",'#10'"................",'#10'"................",'#10
+'"...,,,,,,,......",'#10'"...,------,.....",'#10'"...,-------,....",'#10'"..'
+'.,--------,...",'#10'"...,--------,...",'#10'"...,--------,...",'#10'".*.,-'
+'-------,...",'#10'"..***********...",'#10'".*.,--------,...",'#10'"...,----'
+'----,...",'#10'"...,--------,...",'#10'"...,,,,,,,,,,...",'#10'"...........'
+'.....",'#10'"................"}'#10#224#10#0#0'/* XPM */'#13#10'static char'
+' * menu_copy_xpm[] = {'#13#10'"22 23 94 2",'#13#10'" '#9'c None",'#13#10'"'
+'. '#9'c #010101",'#13#10'"+ '#9'c #B9B9B9",'#13#10'"@ '#9'c #FEFEFE",'#13#10
+'"# '#9'c #F9F9F9",'#13#10'"$ '#9'c #757575",'#13#10'"% '#9'c #F5F5E8",'#13
+#10'"& '#9'c #575752",'#13#10'"* '#9'c #FFFFFF",'#13#10'"= '#9'c #A0A0A0",'
+#13#10'"- '#9'c #939393",'#13#10'"; '#9'c #7C7C7C",'#13#10'"> '#9'c #CFC6A0"'
+','#13#10'", '#9'c #D7CEAA",'#13#10'"'' '#9'c #4C493D",'#13#10'") '#9'c #6D6'
+'D6D",'#13#10'"! '#9'c #6C6C6C",'#13#10'"~ '#9'c #A9A9A9",'#13#10'"{ '#9'c #'
+'3E3B31",'#13#10'"] '#9'c #979178",'#13#10'"^ '#9'c #8A793E",'#13#10'"/ '#9
+'c #C3BB9A",'#13#10'"( '#9'c #454337",'#13#10'"_ '#9'c #FAFAFA",'#13#10'": '
+#9'c #EFEFEF",'#13#10'"< '#9'c #C7C7C7",'#13#10'"[ '#9'c #D8D8D8",'#13#10'"}'
+' '#9'c #D2D2D2",'#13#10'"| '#9'c #7B7B7B",'#13#10'"1 '#9'c #312F27",'#13#10
+'"2 '#9'c #89846C",'#13#10'"3 '#9'c #C4BC9A",'#13#10'"4 '#9'c #847236",'#13
+#10'"5 '#9'c #555143",'#13#10'"6 '#9'c #181713",'#13#10'"7 '#9'c #C5C5C5",'
+#13#10'"8 '#9'c #A7A7A7",'#13#10'"9 '#9'c #ADADAD",'#13#10'"0 '#9'c #9A9A9A"'
+','#13#10'"a '#9'c #9B9B9B",'#13#10'"b '#9'c #868686",'#13#10'"c '#9'c #4343'
+'43",'#13#10'"d '#9'c #13120F",'#13#10'"e '#9'c #22211B",'#13#10'"f '#9'c #8'
+'47034",'#13#10'"g '#9'c #444135",'#13#10'"h '#9'c #B3B3B3",'#13#10'"i '#9'c'
+' #B4B4B4",'#13#10'"j '#9'c #5D5D5D",'#13#10'"k '#9'c #474747",'#13#10'"l '#9
+'c #3C3C3C",'#13#10'"m '#9'c #404040",'#13#10'"n '#9'c #D6D6D6",'#13#10'"o '
+#9'c #191814",'#13#10'"p '#9'c #826F34",'#13#10'"q '#9'c #444136",'#13#10'"r'
+' '#9'c #161511",'#13#10'"s '#9'c #141310",'#13#10'"t '#9'c #8F8F8F",'#13#10
+'"u '#9'c #989898",'#13#10'"v '#9'c #C6C6C6",'#13#10'"w '#9'c #020202",'#13
+#10'"x '#9'c #806F34",'#13#10'"y '#9'c #7F6C33",'#13#10'"z '#9'c #3A372E",'
+#13#10'"A '#9'c #636363",'#13#10'"B '#9'c #767676",'#13#10'"C '#9'c #7F6E33"'
+','#13#10'"D '#9'c #424035",'#13#10'"E '#9'c #151411",'#13#10'"F '#9'c #4D4D'
+'49",'#13#10'"G '#9'c #515151",'#13#10'"H '#9'c #353535",'#13#10'"I '#9'c #2'
+'02020",'#13#10'"J '#9'c #2D2D2D",'#13#10'"K '#9'c #3E3E3E",'#13#10'"L '#9'c'
+' #171717",'#13#10'"M '#9'c #7D692F",'#13#10'"N '#9'c #1A1A1A",'#13#10'"O '#9
+'c #1D1C17",'#13#10'"P '#9'c #26251F",'#13#10'"Q '#9'c #292721",'#13#10'"R '
+#9'c #7F6B2F",'#13#10'"S '#9'c #020201",'#13#10'"T '#9'c #A19A7F",'#13#10'"U'
+' '#9'c #A39D81",'#13#10'"V '#9'c #806C30",'#13#10'"W '#9'c #100F0C",'#13#10
+'"X '#9'c #A9A186",'#13#10'"Y '#9'c #0D0B05",'#13#10'"Z '#9'c #89783D",'#13
+#10'"` '#9'c #7A672E",'#13#10'" .'#9'c #76652A",'#13#10'"..'#9'c #78672C",'
+#13#10'" . . . . ",'#13#10'" . .'
+' . . . . + @ # $ . . . . . . ",'#13#10'" . % % % % % & * = - ; & %'
+' % % % > . ",'#13#10'" . % , , , , '' * ) ! ~ { ] , , , ^ . ",'#13#10
+'" . % / / / ( _ : < [ } | 1 2 / 3 4 . ",'#13#10'" . % , 5 6 7'
+' 8 8 9 0 a b c d e , f . ",'#13#10'" . % g h i j k l l l l l m i n o'
+' p . ",'#13#10'" . % q * * i i i i i i i i * * r p . ",'#13#10'" '
+' . % s * 8 t t u * v t * t v * w x . ",'#13#10'" . % r * * * * * '
+'* * * * * * * w y . ",'#13#10'" . % z * ) A * B t v * v t * * d C . '
+'",'#13#10'" . % D * * * * * * * * * * * * E p . ",'#13#10'" . . . .'
+' F d G H I J K L t v * u t * d x . ",'#13#10'". h * * * * * * * * * * n I *'
+' * * * * r M . ",'#13#10'". * * * * * * * * * * * * N * * * * n O M . ",'#13
+#10'". * 8 t t u * v t * t v * . P P P P Q , R . ",'#13#10'". * * * * * * * '
,'* * * * * S T T T T T U V . ",'#13#10'". * ) A * B t v * v t * * r , , , , '
+', , y . ",'#13#10'". * * * * * * * * * * * * W T T T T T X y . ",'#13#10'".'
+' * 8 t t * t t v * u t * r , , , , , , V . ",'#13#10'". * * * * * * * * * *'
+' * * Y V Z p p ` .... ",'#13#10'". n * * * * * * * * * * n . . . . . . . .'
+' ",'#13#10'" . . . . . . . . . . . . "};'#13#10#183#1#0
+#0'/* XPM */'#13#10'static char * menu_unindent_xpm[] = {'#13#10'"18 15 2 1"'
+','#13#10'" '#9'c None",'#13#10'".'#9'c #010101",'#13#10'"........... '
+'",'#13#10'" ",'#13#10'". . . . . . . . . ",'#13#10'" '
+' ",'#13#10'" . ..........",'#13#10'" ..... ..........",'#13
+#10'"...... ",'#13#10'" ..... ........ ",'#13#10'" . .....'
+'... ",'#13#10'" ",'#13#10'". . . . . . . . . ",'#13#10'" '
+' ",'#13#10'"............. ",'#13#10'" '
+'",'#13#10'"........... "};'#13#10#197#1#0#0'/* XPM */'#13#10'static c'
+'har * menu_indent_xpm[] = {'#13#10'"18 15 3 1",'#13#10'" '#9'c None",'#13#10
+'".'#9'c #010101",'#13#10'"+'#9'c #000000",'#13#10'"........... ",'#13
+#10'" ",'#13#10'". . . . . . . . . ",'#13#10'" '
+' ",'#13#10'" + ..........",'#13#10'" +.... ..........",'#13#10'" '
+'...... ",'#13#10'" +.... ........ ",'#13#10'" + ........ '
+'",'#13#10'" ",'#13#10'". . . . . . . . . ",'#13#10'" '
+' ",'#13#10'"............. ",'#13#10'" ",'#13
+#10'"........... "};'#13#10's'#2#0#0'/* XPM */'#10'static char * unreg'
+'isteredcomponent_xpm[] = {'#10'"13 17 18 1",'#10'" '#9'c None",'#10'".'#9'c'
+' #00385B",'#10'"+'#9'c #000000",'#10'"@'#9'c #2982C0",'#10'"#'#9'c #00528C"'
+','#10'"$'#9'c #003E66",'#10'"%'#9'c #6BAAD2",'#10'"&'#9'c #004572",'#10'"*'
+#9'c #4F97CA",'#10'"='#9'c #2A82BF",'#10'"-'#9'c #418FC6",'#10'";'#9'c #0040'
+'6A",'#10'">'#9'c #408FC7",'#10'",'#9'c #66A7D1",'#10'"'''#9'c #00538E",'#10
+'")'#9'c #8BBBDC",'#10'"!'#9'c #005A99",'#10'"~'#9'c #005896",'#10'" ......'
+'+ ",'#10'" .@#+++##++ ",'#10'"$%#+ .@##+ ",'#10'"&*+ .@#+ ",'#10
+'".=#+ $-#+ ",'#10'" .##+ ;>#+ ",'#10'" +++ .,''+ ",'#10'" .)!+'
+' ",'#10'" .,~+ ",'#10'" .@#+ ",'#10'" .@#+ ",'#10'" '
+' ++ ",'#10'" ",'#10'" .. ",'#10'" .,#+ '
+'",'#10'" ++ ",'#10'" "};'#10#0#0#0
]);

633
ide/procedurelist.pas Normal file
View File

@ -0,0 +1,633 @@
{
***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
***************************************************************************
Procedure List - Lazarus addon
Author: Graeme Geldenhuys (graemeg@gmail.com)
Inspired by: GExperts (www.gexperts.org)
Last Modified: 2006-06-05
Abstract:
The procedure list enables you to view a list of Free Pascal / Lazarus
procedures in the current unit and quickly jump to the implementation of a
given procedure. Include files are also supported.
}
unit ProcedureList;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms,
Controls, Graphics, Dialogs, ComCtrls,
ExtCtrls, StdCtrls, CodeTree, CodeToolManager,
CodeAtom;
type
{ TProcedureListForm }
TProcedureListForm = class(TForm)
cbObjects: TComboBox;
edMethods: TEdit;
ImageList1: TImageList;
lblSearch: TLabel;
lblObjects: TLabel;
LV: TListView;
pnlHeader: TPanel;
pnlSearch: TPanel;
pnlObjects: TPanel;
StatusBar: TStatusBar;
TB: TToolBar;
tbAbout: TToolButton;
tbCopy: TToolButton;
ToolButton2: TToolButton;
tbJumpTo: TToolButton;
ToolButton4: TToolButton;
tbFilterAny: TToolButton;
tbFilterStart: TToolButton;
ToolButton7: TToolButton;
tbChangeFont: TToolButton;
ToolButton9: TToolButton;
procedure cbObjectsChange(Sender: TObject);
procedure edMethodsChange(Sender: TObject);
procedure edMethodsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edMethodsKeyPress(Sender: TObject; var Key: char);
procedure FormCreate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: char);
procedure FormResize(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure LVDblClick(Sender: TObject);
procedure LVSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
procedure tbAboutClick(Sender: TObject);
procedure tbCopyClick(Sender: TObject);
private
FCaret: TCodeXYPosition;
FMainFilename: string;
FNewTopLine: integer;
{ Initialise GUI }
procedure SetupGUI;
{ Move editors focus to selected method. }
procedure JumpToSelection;
{ Populates Listview based on selected Class and user entered filter. }
procedure PopulateListview;
{ Populates only tho cbObjects combo with available classes. }
procedure PopulateObjectsCombo;
procedure AddToListView(pCodeTool: TCodeTool; pNode: TCodeTreeNode);
function PassFilter(pSearchAll: boolean; pProcName, pSearchStr: string; pCodeTool: TCodeTool; pNode: TCodeTreeNode): boolean;
public
property MainFilename: string read FMainFilename;
property Caret: TCodeXYPosition read FCaret;
property NewTopLine: integer read FNewTopLine;
end;
procedure Register;
implementation
uses
MenuIntf
,SrcEditorIntf
,CodeCache
,PascalParserTool
,KeywordFuncLists
,LCLType
,LazIDEIntf
,IDECommands
,Clipbrd
;
const
cProcedureList = 'ProcedureList';
cAbout =
'Procedure List (Lazarus addon)' + #10#10 +
'Author: Graeme Geldenhuys (graemeg@gmail.com)' + #10 +
'Inspired by: GExperts (www.gexperts.org)';
resourcestring
SProcedureListCaption = 'Procedure List...';
SAllString = '<All>';
SNoneString = '<None>';
SUnknown = 'Unknown';
SImplementationNotFound = 'Implementation section not found (parser error?)';
SObjects = '&Objects';
SSearch = '&Search';
var
CmdProcedureList: TIDECommand;
{ This is where it all starts. Gets called from Lazarus. }
procedure ExecuteProcedureList(Sender: TObject);
var
frm: TProcedureListForm;
begin
Assert(Sender<>nil); // removes compiler warning
frm := TProcedureListForm.Create(nil);
try
frm.ShowModal;
if frm.ModalResult = mrOK then // we need to jump
begin
LazarusIDE.DoOpenFileAndJumpToPos(frm.Caret.Code.Filename,
Point(frm.Caret.X, frm.Caret.Y), frm.NewTopLine, -1,
[ofRegularFile,ofUseCache]);
end;
finally
frm.Free;
end;
end;
{ Registers a keyboard shortcut and menu item with Lazarus. }
procedure Register;
var
Key: TIDEShortCut;
Cat: TIDECommandCategory;
begin
Key := IDEShortCut(VK_G,[ssCtrl,ssShift],VK_UNKNOWN,[]);
Cat := IDECommandList.CreateCategory(Nil,
cProcedureList,
SProcedureListCaption,
IDECmdScopeSrcEditOnly);
CmdProcedureList := RegisterIDECommand(Cat,
cProcedureList,
SProcedureListCaption,
Key,nil,@ExecuteProcedureList);
RegisterIDEMenuCommand(itmCodeToolSearches,
cProcedureList,
SProcedureListCaption,
nil, nil, CmdProcedureList);
end;
{ Check, if the given string starts with this substring. Check ignores case. }
function StrStartsWith(sStr, sSubstr: String): Boolean;
begin
sStr := AnsiUpperCase(sStr);
sSubstr := AnsiUpperCase(sSubstr);
Result := Pos(sSubstr, sStr) = 1;
end;
function StrContains(const SubStr, Str: string; CaseSensitive: Boolean): Boolean;
begin
if CaseSensitive then
Result := Pos(SubStr, Str) > 0
else
Result := Pos(AnsiUpperCase(SubStr), AnsiUpperCase(Str)) > 0;
{$Note Still need to implement this correctly }
// Result := CaseInsensitivePos(SubStr, Str) > 0;
end;
function FilterFits(const SubStr, Str: string): boolean;
var
Src: PChar;
PFilter: PChar;
c: Char;
i: Integer;
begin
if SubStr='' then
begin
Result := true;
end
else
begin
Src := PChar(Str);
PFilter := PChar(SubStr);
repeat
c := Src^;
if c <> #0 then
begin
if UpChars[Src^] = UpChars[PFilter^] then
begin
i := 1;
while (UpChars[Src[i]] = UpChars[PFilter[i]]) and (PFilter[i] <> #0) do
inc(i);
if PFilter[i] = #0 then
begin
exit(true);
end;
end;
end
else
exit(false);
inc(Src);
until false;
end;
end;
{ TProcedureListForm }
procedure TProcedureListForm.FormResize(Sender: TObject);
begin
StatusBar.Panels[0].Width := self.ClientWidth - 105;
end;
procedure TProcedureListForm.FormShow(Sender: TObject);
begin
edMethods.SetFocus;
end;
procedure TProcedureListForm.LVDblClick(Sender: TObject);
begin
JumpToSelection;
end;
procedure TProcedureListForm.LVSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
begin
if Item = nil then
Exit; //==>
if Item.SubItems.Count < 4 then
Exit; //==>
StatusBar.Panels[0].Text := Item.SubItems[4];
end;
procedure TProcedureListForm.tbAboutClick(Sender: TObject);
begin
ShowMessage(cAbout);
end;
procedure TProcedureListForm.tbCopyClick(Sender: TObject);
begin
if Assigned(LV.Selected) then
Clipboard.AsText := LV.Selected.SubItems[0];
end;
procedure TProcedureListForm.SetupGUI;
begin
self.KeyPreview := True;
self.Position := poDesktopCenter;
lblObjects.Caption := SObjects;
lblSearch.Caption := SSearch;
LV.Column[0].Width := 20;
LV.Column[1].Width := 300;
LV.Column[2].Width := 100;
LV.Column[3].Width := 60;
LV.ReadOnly := True;
LV.RowSelect := True;
LV.SortColumn := 1;
LV.SortType := stText;
LV.HideSelection := False;
LV.Items.Clear;
cbObjects.Style := csDropDownList;
cbObjects.Sorted := True;
cbObjects.DropDownCount := 8;
end;
procedure TProcedureListForm.JumpToSelection;
var
lItem: TListItem;
CodeBuffer: TCodeBuffer;
ACodeTool: TCodeTool;
lStartPos: integer;
begin
lItem := LV.Selected;
if lItem = nil then
Exit; //==>
if lItem.SubItems[3] = '' then
Exit; //==>
lStartPos := StrToInt(lItem.SubItems[3]);
CodeBuffer := CodeToolBoss.FindFile(MainFilename);
if CodeBuffer = nil then
Exit; //==>
ACodeTool := nil;
CodeToolBoss.Explore(CodeBuffer,ACodeTool,false);
if ACodeTool = nil then
Exit; //==>
if not ACodeTool.CleanPosToCaretAndTopLine(lStartPos, FCaret, FNewTopLine) then
Exit; //==>
{ This should close the form }
self.ModalResult := mrOK;
end;
procedure TProcedureListForm.PopulateListview;
var
lSrcEditor: TSourceEditorInterface;
lCodeBuffer: TCodeBuffer;
lCodeTool: TCodeTool;
lNode: TCodeTreeNode;
begin
LV.BeginUpdate;
try
LV.Items.Clear;
{ get active source editor }
lSrcEditor := SourceEditorWindow.ActiveEditor;
if lSrcEditor = nil then
Exit; //==>
lCodeBuffer := lSrcEditor.CodeToolsBuffer as TCodeBuffer;
{ parse source }
CodeToolBoss.Explore(lCodeBuffer,lCodeTool,False);
{ copy the tree }
if (lCodeTool = nil)
or (lCodeTool.Tree = nil)
or (lCodeTool.Tree.Root = nil) then
Exit; //==>
if Assigned(lCodeTool.Tree) then
begin
{ Find the starting point }
lNode := lCodeTool.FindImplementationNode;
if lNode = nil then
begin
{ fall back - guess we are working with a program unit }
lNode := lCodeTool.Tree.Root;
end;
{ populate the listview here }
lNode := lNode.FirstChild;
while lNode <> nil do
begin
if lNode.Desc = ctnProcedure then
begin
AddToListView(lCodeTool, lNode);
end;
lNode := lNode.NextBrother;
end;
end; { if }
finally
if LV.Items.Count > 0 then
begin
LV.Selected := LV.Items[0];
LV.ItemFocused := LV.Items[0];
end;
LV.EndUpdate;
end;
end;
procedure TProcedureListForm.PopulateObjectsCombo;
var
lSrcEditor: TSourceEditorInterface;
lCodeBuffer: TCodeBuffer;
lCodeTool: TCodeTool;
lNode: TCodeTreeNode;
lNodeText: string;
begin
cbObjects.Items.Clear;
cbObjects.Items.Add(SAllString);
cbObjects.Items.Add(SNoneString);
try
{ get active source editor }
lSrcEditor := SourceEditorWindow.ActiveEditor;
if lSrcEditor = nil then
Exit; //==>
lCodeBuffer := lSrcEditor.CodeToolsBuffer as TCodeBuffer;
{ parse source }
CodeToolBoss.Explore(lCodeBuffer,lCodeTool,False);
if (lCodeTool = nil)
or (lCodeTool.Tree = nil)
or (lCodeTool.Tree.Root = nil) then
Exit; //==>
{ copy the tree }
if Assigned(lCodeTool.Tree) then
begin
{ Find the starting point }
lNode := lCodeTool.FindImplementationNode;
if lNode = nil then
begin
{ fall back - guess we are working with a program unit }
lNode := lCodeTool.Tree.Root;
end;
{ populate the Combobox here! }
lNode := lNode.FirstChild;
while lNode <> nil do
begin
if lNode.Desc = ctnProcedure then
begin
lNodeText := lCodeTool.ExtractClassNameOfProcNode(lNode);
cbObjects.Items.Add(lNodeText);
end;
lNode := lNode.NextBrother;
end;
end;
finally
cbObjects.ItemIndex := 0; // select <All> as the default
if cbObjects.Text = '' then
cbObjects.ItemIndex := 1;
end;
end;
procedure TProcedureListForm.AddToListView(pCodeTool: TCodeTool; pNode: TCodeTreeNode);
var
lItem: TListItem;
lNodeText: string;
lType: string;
lCaret: TCodeXYPosition;
FSearchAll: boolean;
begin
FSearchAll := cbObjects.Text = SAllString;
lNodeText := pCodeTool.ExtractProcHead(pNode,
[phpWithoutClassKeyword, phpWithoutParamList, phpWithoutBrackets,
phpWithoutSemicolon, phpWithoutClassName]);
{ Must we add this pNode or not? }
if not PassFilter(FSearchAll, lNodeText, edMethods.Text, pCodeTool, pNode) then
Exit; //==>
{ Add new list item }
lItem := LV.Items.Add;
{ procedure name }
lNodeText := pCodeTool.ExtractProcHead(pNode,
[phpWithoutParamList, phpWithoutBrackets, phpWithoutSemicolon]);
lItem.SubItems.Add(lNodeText);
{ type }
lNodeText := pCodeTool.ExtractProcHead(pNode,
[phpWithStart, phpWithoutParamList, phpWithoutBrackets, phpWithoutSemicolon]);
if Pos('procedure', lNodeText) > 0 then
lType := 'Procedure'
else
lType := 'Function';
lItem.SubItems.Add(lType);
{ line number }
if pCodeTool.CleanPosToCaret(pNode.StartPos, lCaret) then
lItem.SubItems.Add(IntToStr(lCaret.Y));
{ start pos - used by JumpToSelected() }
lItem.SubItems.Add(IntToStr(pNode.StartPos));
{ full procedure name used in statusbar }
lNodeText := pCodeTool.ExtractProcHead(pNode,
[phpWithStart,phpWithVarModifiers,
phpWithParameterNames,phpWithDefaultValues,phpWithResultType,
phpWithOfObject,phpWithCallingSpecs,phpWithProcModifiers]);
lItem.SubItems.Add(lNodeText);
end;
{ Do we pass all the filter tests to continue? }
function TProcedureListForm.PassFilter(pSearchAll: boolean; pProcName, pSearchStr: string;
pCodeTool: TCodeTool; pNode: TCodeTreeNode): boolean;
var
lClass: string;
function ClassMatches: boolean;
begin
{ lets filter by class selection. }
lClass := pCodeTool.ExtractClassNameOfProcNode(pNode);
if cbObjects.Text = SNoneString then
Result := lClass = ''
else
Result := lClass = cbObjects.Text;
end;
begin
{$NOTE Still need to complete this. StartsWith filter not working yet! }
Result := False;
if (Length(pSearchStr) = 0) then // seach string is empty
begin
if pSearchAll then
Result := True
else
Result := ClassMatches;
end
else if not pSearchAll and tbFilterStart.Down and SameText(pSearchStr, Copy(pProcName, 1, Length(pSearchStr))) then
Result := True
else if not pSearchAll and tbFilterAny.Down and ClassMatches and FilterFits(pSearchStr, pProcName) then
Result := True
else if pSearchAll and FilterFits(pSearchStr, pProcName) then
Result := True;
end;
procedure TProcedureListForm.FormKeyPress(Sender: TObject; var Key: char);
begin
if Key = #27 then // Escape key
begin
self.ModalResult := mrCancel;
end;
end;
procedure TProcedureListForm.FormCreate(Sender: TObject);
begin
if SourceEditorWindow.ActiveEditor = nil then
Exit; //==>
FMainFilename := SourceEditorWindow.ActiveEditor.Filename;
Caption := Caption + ExtractFileName(FMainFilename);
SetupGUI;
PopulateObjectsCombo;
PopulateListView;
StatusBar.Panels[0].Text := self.MainFilename;
end;
procedure TProcedureListForm.edMethodsKeyPress(Sender: TObject; var Key: char);
begin
case Key of
#13:
begin
JumpToSelection;
Key := #0;
end;
#27:
begin
self.ModalResult := mrCancel;
Key := #0;
end;
end;
end;
procedure TProcedureListForm.edMethodsChange(Sender: TObject);
begin
PopulateListview;
end;
procedure TProcedureListForm.cbObjectsChange(Sender: TObject);
begin
PopulateListview;
end;
procedure TProcedureListForm.edMethodsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_Down then
begin
if (LV.Items.IndexOf(LV.ItemFocused) + 1) < LV.Items.Count then
LV.ItemFocused := LV.Items[(LV.Items.IndexOf(LV.ItemFocused) + 1)];
end
else if Key = VK_Up then
begin
if (LV.Items.IndexOf(LV.ItemFocused) - 1) >= 0 then
LV.ItemFocused := LV.Items[(LV.Items.IndexOf(LV.ItemFocused) - 1)];
end
else if Key = VK_Home then
begin
LV.ItemFocused := LV.Items[0];
end
else if Key = VK_End then
begin
LV.ItemFocused := LV.Items[LV.Items.Count - 1];
end;
if LV.ItemFocused <> nil then
begin
LV.Selected := LV.ItemFocused;
LV.Selected.MakeVisible(True);
end;
end;
initialization
{$I procedurelist.lrs}
end.