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/outputfilter.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.lrs svneol=native#text/plain
ide/progressdlg.pas svneol=native#text/plain

View File

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