mirror of https://gitlab.com/basile.b/dexed.git
added mini-explorer widget
This commit is contained in:
parent
0311b67e2c
commit
99325b3db4
|
@ -134,7 +134,7 @@
|
||||||
<PackageName Value="LCL"/>
|
<PackageName Value="LCL"/>
|
||||||
</Item6>
|
</Item6>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="17">
|
<Units Count="18">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="coedit.lpr"/>
|
<Filename Value="coedit.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
@ -244,6 +244,14 @@
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="ce_dlangutils"/>
|
<UnitName Value="ce_dlangutils"/>
|
||||||
</Unit16>
|
</Unit16>
|
||||||
|
<Unit17>
|
||||||
|
<Filename Value="..\src\ce_miniexplorer.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="CEMiniExplorerWidget"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="ce_miniexplorer"/>
|
||||||
|
</Unit17>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
|
|
|
@ -10,7 +10,7 @@ uses
|
||||||
AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg,
|
AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg,
|
||||||
ce_widget, ce_dmdwrap, ce_common, ce_synmemo, ce_main, ce_messages, ce_editor,
|
ce_widget, ce_dmdwrap, ce_common, ce_synmemo, ce_main, ce_messages, ce_editor,
|
||||||
ce_projinspect, ce_projconf, jsonparser, ce_project, ce_widgettypes,
|
ce_projinspect, ce_projconf, jsonparser, ce_project, ce_widgettypes,
|
||||||
ce_staticexplorer, ce_search, ce_dlang, ce_dlangutils;
|
ce_staticexplorer, ce_search, ce_dlang, ce_dlangutils, ce_miniexplorer;
|
||||||
|
|
||||||
{$R *.res}
|
{$R *.res}
|
||||||
|
|
||||||
|
|
|
@ -118,6 +118,31 @@ type
|
||||||
*)
|
*)
|
||||||
function getDocPath: string;
|
function getDocPath: string;
|
||||||
|
|
||||||
|
(**
|
||||||
|
* Fills aList with the names of the files located in aPath.
|
||||||
|
*)
|
||||||
|
procedure listFiles(const aList: TStrings; const aPath: string);
|
||||||
|
|
||||||
|
(**
|
||||||
|
* Fills aList with the names of the folders located in aPath.
|
||||||
|
*)
|
||||||
|
procedure listFolders(const aList: TStrings; const aPath: string);
|
||||||
|
|
||||||
|
(**
|
||||||
|
* Checks if aPath contains at least one sub-folder
|
||||||
|
*)
|
||||||
|
function hasFolder(const aPath: string): boolean;
|
||||||
|
|
||||||
|
(**
|
||||||
|
* Fills aList with the system drives.
|
||||||
|
*)
|
||||||
|
procedure listDrives(const aList: TStrings);
|
||||||
|
|
||||||
|
(**
|
||||||
|
* Lets the shell open a file
|
||||||
|
*)
|
||||||
|
function shellOpen(const aFilename: string): boolean;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
procedure TProcessEx.Assign(aValue: TPersistent);
|
procedure TProcessEx.Assign(aValue: TPersistent);
|
||||||
|
@ -430,4 +455,105 @@ begin
|
||||||
result += directorySeparator + 'Coedit' + directorySeparator;
|
result += directorySeparator + 'Coedit' + directorySeparator;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure listFiles(const aList: TStrings; const aPath: string);
|
||||||
|
var
|
||||||
|
sr: TSearchrec;
|
||||||
|
procedure tryAdd;
|
||||||
|
begin
|
||||||
|
if sr.Attr and faDirectory <> faDirectory then
|
||||||
|
aList.Add(aPath + directorySeparator + sr.Name);
|
||||||
|
end;
|
||||||
|
begin
|
||||||
|
if findFirst(aPath + directorySeparator + '*.*', faAnyFile, sr) = 0 then
|
||||||
|
try
|
||||||
|
repeat tryAdd;
|
||||||
|
until findNext(sr) <> 0;
|
||||||
|
finally
|
||||||
|
sysutils.FindClose(sr);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function isFolder(sr: TSearchRec): boolean;
|
||||||
|
begin
|
||||||
|
result := (sr.Name <> '.') and (sr.Name <> '..' )and (sr.Name <> '' ) and
|
||||||
|
(sr.Attr and faDirectory = faDirectory);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure listFolders(const aList: TStrings; const aPath: string);
|
||||||
|
var
|
||||||
|
sr: TSearchrec;
|
||||||
|
begin
|
||||||
|
if findFirst(aPath + '*.*', faDirectory, sr) = 0 then
|
||||||
|
try
|
||||||
|
repeat if isFolder(sr) then
|
||||||
|
aList.Add(aPath + sr.Name);
|
||||||
|
until findNext(sr) <> 0;
|
||||||
|
finally
|
||||||
|
sysutils.FindClose(sr);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function hasFolder(const aPath: string): boolean;
|
||||||
|
var
|
||||||
|
sr: TSearchrec;
|
||||||
|
res: boolean;
|
||||||
|
begin
|
||||||
|
res := false;
|
||||||
|
if findFirst(aPath + directorySeparator + '*.*', faDirectory, sr) = 0 then
|
||||||
|
try
|
||||||
|
repeat if isFolder(sr) then
|
||||||
|
begin
|
||||||
|
res := true;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
until findNext(sr) <> 0;
|
||||||
|
finally
|
||||||
|
sysutils.FindClose(sr);
|
||||||
|
end;
|
||||||
|
result := res;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure listDrives(const aList: TStrings);
|
||||||
|
{$IFDEF WINDOWS}
|
||||||
|
var
|
||||||
|
drv: char;
|
||||||
|
ltr: string;
|
||||||
|
{$ENDIF}
|
||||||
|
begin
|
||||||
|
{$IFDEF WINDOWS}
|
||||||
|
for drv := 'A' to 'Z' do
|
||||||
|
begin
|
||||||
|
ltr := drv + ':\';
|
||||||
|
case GetDriveType(PChar(ltr)) of
|
||||||
|
DRIVE_REMOVABLE,
|
||||||
|
DRIVE_FIXED,
|
||||||
|
DRIVE_REMOTE: aList.Add(ltr);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF LINUX}
|
||||||
|
// aList.LoadFromFile('/etc/fstab'); // to be parsed
|
||||||
|
aList.Add('/home/');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
function shellOpen(const aFilename: string): boolean;
|
||||||
|
begin
|
||||||
|
{$IFDEF WINDOWS}
|
||||||
|
result := ShellExecute(0, 'OPEN', PChar(aFilename), nil, nil, SW_SHOW) > 32;
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF LINUX}
|
||||||
|
with TProcess.Create(nil) do
|
||||||
|
try
|
||||||
|
Executable := 'xdg-open'
|
||||||
|
Parameters.Add(aFilename);
|
||||||
|
Execute;
|
||||||
|
finally
|
||||||
|
result := true;
|
||||||
|
Free;
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
|
@ -251,10 +251,13 @@ begin
|
||||||
CEMainForm.MessageWidget.ClearMessages(msEditor);
|
CEMainForm.MessageWidget.ClearMessages(msEditor);
|
||||||
lex(ed.Lines.Text, tokLst);
|
lex(ed.Lines.Text, tokLst);
|
||||||
|
|
||||||
|
if ed.isDSource then
|
||||||
|
begin
|
||||||
checkSyntacticErrors(tokLst, errLst);
|
checkSyntacticErrors(tokLst, errLst);
|
||||||
for err in errLst do
|
for err in errLst do
|
||||||
CEMainForm.MessageWidget.addMessage(format( '%s (@line:%4.d @char:%.4d)',
|
CEMainForm.MessageWidget.addMessage(format( '%s (@line:%4.d @char:%.4d)',
|
||||||
[err.msg, err.position.y, err.position.x]), msEditor);
|
[err.msg, err.position.y, err.position.x]), msEditor);
|
||||||
|
end;
|
||||||
|
|
||||||
md := '';
|
md := '';
|
||||||
if ed.isDSource then
|
if ed.isDSource then
|
||||||
|
|
|
@ -9,7 +9,7 @@ uses
|
||||||
AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, Controls, Graphics,
|
AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, Controls, Graphics,
|
||||||
Dialogs, Menus, ActnList, ExtCtrls, process, XMLPropStorage, ComCtrls,
|
Dialogs, Menus, ActnList, ExtCtrls, process, XMLPropStorage, ComCtrls,
|
||||||
ce_common, ce_dmdwrap, ce_project, ce_synmemo, ce_widget, ce_messages,
|
ce_common, ce_dmdwrap, ce_project, ce_synmemo, ce_widget, ce_messages,
|
||||||
ce_editor, ce_projinspect, ce_projconf, ce_staticexplorer, ce_search;
|
ce_editor, ce_projinspect, ce_projconf, ce_staticexplorer, ce_search, ce_miniexplorer;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
@ -204,6 +204,7 @@ type
|
||||||
fPrjCfWidg: TCEProjectConfigurationWidget;
|
fPrjCfWidg: TCEProjectConfigurationWidget;
|
||||||
fStExpWidg: TCEStaticExplorerWidget;
|
fStExpWidg: TCEStaticExplorerWidget;
|
||||||
fFindWidg: TCESearchWidget;
|
fFindWidg: TCESearchWidget;
|
||||||
|
fExplWidg: TCEMiniExplorerWidget;
|
||||||
fProjMru: TMruFileList;
|
fProjMru: TMruFileList;
|
||||||
fFileMru: TMruFileList;
|
fFileMru: TMruFileList;
|
||||||
|
|
||||||
|
@ -302,12 +303,13 @@ var
|
||||||
itm: TMenuItem;
|
itm: TMenuItem;
|
||||||
begin
|
begin
|
||||||
fWidgList := TCEWidgetList.Create;
|
fWidgList := TCEWidgetList.Create;
|
||||||
fMesgWidg := TCEMessagesWidget.create(nil);
|
fMesgWidg := TCEMessagesWidget.create(self);
|
||||||
fEditWidg := TCEEditorWidget.create(nil);
|
fEditWidg := TCEEditorWidget.create(self);
|
||||||
fProjWidg := TCEProjectInspectWidget.create(nil);
|
fProjWidg := TCEProjectInspectWidget.create(self);
|
||||||
fPrjCfWidg:= TCEProjectConfigurationWidget.create(nil);
|
fPrjCfWidg:= TCEProjectConfigurationWidget.create(self);
|
||||||
fStExpWidg:= TCEStaticExplorerWidget.create(nil);
|
fStExpWidg:= TCEStaticExplorerWidget.create(self);
|
||||||
fFindWidg := TCESearchWidget.create(nil);
|
fFindWidg := TCESearchWidget.create(self);
|
||||||
|
fExplWidg := TCEMiniExplorerWidget.create(self);
|
||||||
|
|
||||||
fWidgList.addWidget(@fMesgWidg);
|
fWidgList.addWidget(@fMesgWidg);
|
||||||
fWidgList.addWidget(@fEditWidg);
|
fWidgList.addWidget(@fEditWidg);
|
||||||
|
@ -315,6 +317,7 @@ begin
|
||||||
fWidgList.addWidget(@fPrjCfWidg);
|
fWidgList.addWidget(@fPrjCfWidg);
|
||||||
fWidgList.addWidget(@fStExpWidg);
|
fWidgList.addWidget(@fStExpWidg);
|
||||||
fWidgList.addWidget(@fFindWidg);
|
fWidgList.addWidget(@fFindWidg);
|
||||||
|
fWidgList.addWidget(@fExplWidg);
|
||||||
|
|
||||||
for widg in fWidgList do
|
for widg in fWidgList do
|
||||||
begin
|
begin
|
||||||
|
@ -353,16 +356,18 @@ begin
|
||||||
DockMaster.GetAnchorSite(fWidgList.widget[i]).Header.HeaderPosition := adlhpTop;
|
DockMaster.GetAnchorSite(fWidgList.widget[i]).Header.HeaderPosition := adlhpTop;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
DockMaster.ManualDock(DockMaster.GetAnchorSite(fEditWidg), DockMaster.GetSite(Self), alBottom);
|
DockMaster.ManualDock(DockMaster.GetAnchorSite(fEditWidg), Self, alBottom);
|
||||||
DockMaster.ManualDock(DockMaster.GetAnchorSite(fMesgWidg), DockMaster.GetSite(Self), alBottom);
|
DockMaster.ManualDock(DockMaster.GetAnchorSite(fMesgWidg), Self, alBottom);
|
||||||
DockMaster.ManualDock(DockMaster.GetAnchorSite(fStExpWidg), DockMaster.GetSite(Self), alLeft);
|
DockMaster.ManualDock(DockMaster.GetAnchorSite(fStExpWidg), Self, alLeft);
|
||||||
DockMaster.ManualDock(DockMaster.GetAnchorSite(fFindWidg),
|
DockMaster.ManualDock(DockMaster.GetAnchorSite(fFindWidg),
|
||||||
DockMaster.GetAnchorSite(fStExpWidg), alBottom, fStExpWidg);
|
DockMaster.GetAnchorSite(fStExpWidg), alBottom, fStExpWidg);
|
||||||
width := width - fProjWidg.Width;
|
width := width - fProjWidg.Width;
|
||||||
DockMaster.ManualDock(DockMaster.GetAnchorSite(fProjWidg), DockMaster.GetSite(Self), alRight);
|
DockMaster.ManualDock(DockMaster.GetAnchorSite(fProjWidg), Self, alRight);
|
||||||
DockMaster.ManualDock(DockMaster.GetAnchorSite(fPrjCfWidg),
|
DockMaster.ManualDock(DockMaster.GetAnchorSite(fPrjCfWidg),
|
||||||
DockMaster.GetAnchorSite(fProjWidg), alBottom, fProjWidg);
|
DockMaster.GetAnchorSite(fProjWidg), alBottom, fProjWidg);
|
||||||
DockMaster.GetAnchorSite(fEditWidg).Header.HeaderPosition := adlhpTop;
|
DockMaster.GetAnchorSite(fEditWidg).Header.HeaderPosition := adlhpTop;
|
||||||
|
|
||||||
|
//DockMaster.GetAnchorSite(fExplWidg).Close;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMainForm.InitSettings;
|
procedure TCEMainForm.InitSettings;
|
||||||
|
@ -424,12 +429,6 @@ begin
|
||||||
SaveDocking;
|
SaveDocking;
|
||||||
//
|
//
|
||||||
fWidgList.Free;
|
fWidgList.Free;
|
||||||
fMesgWidg.Free;
|
|
||||||
fEditWidg.Free;
|
|
||||||
fProjWidg.Free;
|
|
||||||
fPrjCfWidg.Free;
|
|
||||||
fStExpWidg.Free;
|
|
||||||
fFindWidg.Free;
|
|
||||||
fProjMru.Free;
|
fProjMru.Free;
|
||||||
fFileMru.Free;
|
fFileMru.Free;
|
||||||
fProject.Free;
|
fProject.Free;
|
||||||
|
@ -1490,18 +1489,18 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEOptions.defineProperties(Filer: TFiler);
|
procedure TCEOptions.defineProperties(Filer: TFiler);
|
||||||
|
var
|
||||||
|
widg: TCEWidget;
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
// Filer is either a TReader or a TWriter
|
// Filer is either a TReader or a TWriter
|
||||||
CEMainForm.fEditWidg.declareProperties(Filer);
|
for widg in CEMainForm.WidgetList do
|
||||||
CEMainForm.fFindWidg.declareProperties(Filer);
|
widg.declareProperties(Filer);
|
||||||
CEMainForm.fMesgWidg.declareProperties(Filer);
|
|
||||||
CEMainForm.fPrjCfWidg.declareProperties(Filer);
|
|
||||||
CEMainForm.fProjWidg.declareProperties(Filer);
|
|
||||||
CEMainForm.fStExpWidg.declareProperties(Filer);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEOptions.beforeSave;
|
procedure TCEOptions.beforeSave;
|
||||||
|
var
|
||||||
|
widg: TCEWidget;
|
||||||
begin
|
begin
|
||||||
fLeft := CEMainForm.Left;
|
fLeft := CEMainForm.Left;
|
||||||
fTop := CEMainForm.Top;
|
fTop := CEMainForm.Top;
|
||||||
|
@ -1511,12 +1510,8 @@ begin
|
||||||
fFileMru.Assign(CEMainForm.fFileMru);
|
fFileMru.Assign(CEMainForm.fFileMru);
|
||||||
fProjMru.Assign(CEMainForm.fProjMru);
|
fProjMru.Assign(CEMainForm.fProjMru);
|
||||||
//
|
//
|
||||||
CEMainForm.fEditWidg.beforeSave(nil);
|
for widg in CEMainForm.WidgetList do
|
||||||
CEMainForm.fFindWidg.beforeSave(nil);
|
widg.beforeSave(nil);
|
||||||
CEMainForm.fMesgWidg.beforeSave(nil);
|
|
||||||
CEMainForm.fPrjCfWidg.beforeSave(nil);
|
|
||||||
CEMainForm.fProjWidg.beforeSave(nil);
|
|
||||||
CEMainForm.fStExpWidg.beforeSave(nil);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEOptions.saveToFile(const aFilename: string);
|
procedure TCEOptions.saveToFile(const aFilename: string);
|
||||||
|
@ -1534,6 +1529,8 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEOptions.afterLoad;
|
procedure TCEOptions.afterLoad;
|
||||||
|
var
|
||||||
|
widg: TCEWidget;
|
||||||
begin
|
begin
|
||||||
CEMainForm.Left := fLeft;
|
CEMainForm.Left := fLeft;
|
||||||
CEMainForm.Top := fTop;
|
CEMainForm.Top := fTop;
|
||||||
|
@ -1543,12 +1540,8 @@ begin
|
||||||
CEMainForm.fFileMru.Assign(fFileMru);
|
CEMainForm.fFileMru.Assign(fFileMru);
|
||||||
CEMainForm.fProjMru.Assign(fProjMru);
|
CEMainForm.fProjMru.Assign(fProjMru);
|
||||||
//
|
//
|
||||||
CEMainForm.fEditWidg.afterLoad(nil);
|
for widg in CEMainForm.WidgetList do
|
||||||
CEMainForm.fFindWidg.afterLoad(nil);
|
widg.afterLoad(nil);
|
||||||
CEMainForm.fMesgWidg.afterLoad(nil);
|
|
||||||
CEMainForm.fPrjCfWidg.afterLoad(nil);
|
|
||||||
CEMainForm.fProjWidg.afterLoad(nil);
|
|
||||||
CEMainForm.fStExpWidg.afterLoad(nil);
|
|
||||||
end;
|
end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,469 @@
|
||||||
|
inherited CEMiniExplorerWidget: TCEMiniExplorerWidget
|
||||||
|
Left = 1539
|
||||||
|
Height = 651
|
||||||
|
Top = 6
|
||||||
|
Caption = 'Mini explorer'
|
||||||
|
ClientHeight = 651
|
||||||
|
inherited Back: TPanel
|
||||||
|
Height = 651
|
||||||
|
ClientHeight = 651
|
||||||
|
inherited Content: TPanel
|
||||||
|
Height = 651
|
||||||
|
ClientHeight = 651
|
||||||
|
object lstFiles: TListView[0]
|
||||||
|
Left = 4
|
||||||
|
Height = 275
|
||||||
|
Top = 372
|
||||||
|
Width = 324
|
||||||
|
Align = alClient
|
||||||
|
AutoWidthLastColumn = True
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
BorderSpacing.Bottom = 4
|
||||||
|
Columns = <
|
||||||
|
item
|
||||||
|
Width = 320
|
||||||
|
end>
|
||||||
|
ReadOnly = True
|
||||||
|
ShowColumnHeaders = False
|
||||||
|
SmallImages = imgList
|
||||||
|
TabOrder = 0
|
||||||
|
ViewStyle = vsReport
|
||||||
|
OnDblClick = lstFilesDblClick
|
||||||
|
end
|
||||||
|
object Tree: TTreeView[1]
|
||||||
|
Left = 4
|
||||||
|
Height = 195
|
||||||
|
Top = 171
|
||||||
|
Width = 324
|
||||||
|
Align = alTop
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
DefaultItemHeight = 18
|
||||||
|
Images = imgList
|
||||||
|
ReadOnly = True
|
||||||
|
ScrollBars = ssAutoBoth
|
||||||
|
TabOrder = 1
|
||||||
|
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
||||||
|
end
|
||||||
|
object lstFav: TListView[2]
|
||||||
|
Left = 4
|
||||||
|
Height = 131
|
||||||
|
Top = 4
|
||||||
|
Width = 324
|
||||||
|
Align = alTop
|
||||||
|
AutoWidthLastColumn = True
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
Columns = <
|
||||||
|
item
|
||||||
|
Width = 320
|
||||||
|
end>
|
||||||
|
ReadOnly = True
|
||||||
|
ShowColumnHeaders = False
|
||||||
|
SmallImages = imgList
|
||||||
|
TabOrder = 2
|
||||||
|
ViewStyle = vsReport
|
||||||
|
end
|
||||||
|
object Panel1: TPanel[3]
|
||||||
|
Left = 4
|
||||||
|
Height = 26
|
||||||
|
Top = 141
|
||||||
|
Width = 324
|
||||||
|
Align = alTop
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
BevelOuter = bvNone
|
||||||
|
ClientHeight = 26
|
||||||
|
ClientWidth = 324
|
||||||
|
TabOrder = 3
|
||||||
|
object btnAddFav: TBitBtn
|
||||||
|
Left = 0
|
||||||
|
Height = 26
|
||||||
|
Hint = 'add selected folder to favorites'
|
||||||
|
Top = 0
|
||||||
|
Width = 32
|
||||||
|
Align = alLeft
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000001E0000003300000033000000330000001E00000000469AD300469A
|
||||||
|
D300469AD300469AD300469AD300469AD300469AD300479AD5004D99DF000000
|
||||||
|
001E008C53AC009E5EFF009D5DFF009E5EFF008C55AC0000001E469AD3000000
|
||||||
|
000B0000000A0000000A0000000A0000000A0000000A0000000A00000008008D
|
||||||
|
4BAA00A668FF00BA86FF77DFC4FF00BA86FF00A66AFF008C55AC0000002F2959
|
||||||
|
7A5F2655755C2655745C2655745C2655745C2655745C2653745A24486851009E
|
||||||
|
52FF00C08AFF00BB82FFFFFFFFFF00BB82FF00C08CFF009E5EFF4598D0F14398
|
||||||
|
D2FF4094D0FF3E92CFFF3E92CEFF3F92CEFF3F92CEFF4092D1FF4792DAFF009B
|
||||||
|
4EFF75E5CAFFFFFFFFFFFFFFFFFFFFFFFFFF77E5CCFF009C5CFF4499D2FF3F94
|
||||||
|
D0FFABFBFFFF9BF3FFFF92F1FFFF93F1FFFF93F1FFFF95F1FFFF9EF4FFFF0096
|
||||||
|
4AFF00CA93FF00C78EFFFFFFFFFF00C88FFF00CC97FF009D5CFF4397D1FF56AC
|
||||||
|
DDFF8EDAF5FFA2EDFFFF82E5FEFF84E5FEFF84E5FEFF86E6FFFF8DE9FFFF35BA
|
||||||
|
9EFF00A965FF00D299FF74ECD1FF00D29AFF00AE6CFF009F56924296D1FF71C4
|
||||||
|
EAFF6CBCE6FFBBF2FFFF75DEFDFF77DEFCFF78DEFCFF7CDFFDFF80E1FFFF89E4
|
||||||
|
FFFF32B89EFF009549FF00954AFF00974BFF1F9E91FF000000124095D0FF90DD
|
||||||
|
F8FF44A0D8FFDDFCFFFFDAFAFFFFDBF9FFFFDEFAFFFF74DCFCFF76DBFBFF78DB
|
||||||
|
FEFF7CDDFFFF7FDFFFFF7FDFFFFFADECFFFF82C1EEFF3575A7703E93CFFFB2F6
|
||||||
|
FFFF51ACDEFF358ACAFF358ACAFF358ACAFF368ACAFF5BBDE9FF6ED9FBFF6AD6
|
||||||
|
FAFF69D5FBFF69D5FBFF68D5FCFF84DEFEFFABE1F8FF3A8AC1C83D92CFFFB8F3
|
||||||
|
FFFF77DFFEFF7BE0FEFF7CE1FEFF7CE1FFFF7DE2FFFF52ABDDFF56B9E8FFDAF8
|
||||||
|
FFFFD6F6FFFFD6F6FFFFD5F6FFFFD5F7FFFFDBFCFFFF3E94D0FF3C92CFFFC0F3
|
||||||
|
FFFF70D9FBFF73DAFBFF74DAFBFF74DAFBFF74DBFBFF76DEFDFF4FA9DCFF368B
|
||||||
|
CAFF358BCBFF338BCBFF338CCCFF3790CEFF3D94D0FF4398D2AE3B92CFFFCAF6
|
||||||
|
FFFF69D5F9FF6CD5F9FF6AD4F9FF69D4F9FF69D5F9FF6AD6FAFF6BD8FBFF6BD9
|
||||||
|
FCFF6BDAFDFF69DAFDFFDAFDFFFF3C93D0FF367BAA2F469AD3003B92CFFFD5F7
|
||||||
|
FFFF60D1F9FF61D0F8FFB4EBFDFFD9F6FFFFDAF8FFFFDAF8FFFFDAF9FFFFDBF9
|
||||||
|
FFFFDAF9FFFFDAFAFFFFDFFEFFFF3D94D0FF4599D335469AD3003D94D0FFDCFC
|
||||||
|
FFFFD8F7FFFFD8F7FFFFDBFAFFFF358ECDFF3991CEFF3A92CFFF3A92CFFF3A92
|
||||||
|
CFFF3A92CFFF3A92CFFF3D94D0FF4298D2EA469AD300469AD3004398D2EF3D94
|
||||||
|
D0FF3A92CFFF3A92CFFF3D94D0FF4197D1E44398D22B4498D2324498D2334498
|
||||||
|
D2334498D2334499D2334499D337459AD300469AD300469AD300
|
||||||
|
}
|
||||||
|
OnClick = btnAddFavClick
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object btnEdit: TBitBtn
|
||||||
|
Left = 292
|
||||||
|
Height = 26
|
||||||
|
Hint = 'open selected file in a Coedit-or'
|
||||||
|
Top = 0
|
||||||
|
Width = 32
|
||||||
|
Align = alRight
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF001340
|
||||||
|
58FF15425EFF25699CFF2C76B4FF3B8BBAADFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF001242
|
||||||
|
59FF5D9CD4FFA6CFF5FFA9CFECFF488BC1FF2C76B4FFFFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF001E6D
|
||||||
|
93FFCBE3F9FF61AAECFF4098E8FF1567C2FF1660AAFF2C76B4FFFFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF001E6D
|
||||||
|
93FFC8E1F2FFD1E7FAFF347DB5FF3199C3FF6DC4DCFF4A9CCFFF3483C7FFFFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002063
|
||||||
|
98202689B9FFB0CBE1FF67A9C8FF60DCF5FF44D6F4FF8EEEFAFF5DB4E6FF3B8F
|
||||||
|
D9FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF002689B9FFBEE6F2FFB3F4FCFF60DCF5FF44D6F4FF8EEEFAFF5DB4
|
||||||
|
E6FF3B8FD9FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF002790BFFFC3EDF8FFB3F4FCFF60DCF5FF44D6F4FF8EEE
|
||||||
|
FAFF5DB4E6FF3B8FD9FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF002FBAE4FFC3EDF8FFB3F4FCFF60DCF5FF44D6
|
||||||
|
F4FF8EEEFAFF5DB4E6FF3B8FD9FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002FBAE4FFC3EDF8FFB3F4FCFF60DC
|
||||||
|
F5FF44D6F4FF8EEEFAFF5DB4E6FF3B8FD9FFFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002FBAE4FFC3EDF8FFB3F4
|
||||||
|
FCFF68D9F5FF6FCFF3FF599DD0FF73ABDDFF4F91C9FFFFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002FBAE4FFC3ED
|
||||||
|
F8FFA8E2F8FF6CAEDDFFA5CFF4FFA5CFF4FFBDDBF7FF5393CBF7FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002FBA
|
||||||
|
E4FFA7D4F4FFC5E1F8FFCCE3F9FFCCE3F9FFBDDBF7FF4F90C9FDFFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF0050A8D9FF6AA5D8FFC9E1F7FFCBE3F8FF4295CAFF3182C2AEFFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF002FBAE4094FAADBEA5093CAFD4E90C8FF2F9DD2DF35A4DE19FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
OnClick = btnEditClick
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object btnShellOpen: TBitBtn
|
||||||
|
Left = 260
|
||||||
|
Height = 26
|
||||||
|
Hint = 'open the selected file with the shell'
|
||||||
|
Top = 0
|
||||||
|
Width = 32
|
||||||
|
Align = alRight
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00FFFFFF0027A8DC37FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF0029ACDED527A9DCE925A6DB0CFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF002BAFDF0C2DAEDFFF2BABDEFF25A6DB8AFFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF002BAFDFCF4FBCE7FF4CBAE6FF26A7DCED24A4DB17FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF002BAFDFFF84D3F2FF55BDE7FF2EAADEFF24A4
|
||||||
|
DB90FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF002DB2E0C070CCEEFF83D2F2FF7ECEF1FF4AB6
|
||||||
|
E4FF24A5DBF122A2DA17FFFFFF00FFFFFF00FFFFFF00FFFFFF0038C2E7F036C0
|
||||||
|
E6F835BDE5F833BBE4F831B8E3F82FB6E2F886D7F3FF2FB6EBFF4ABCECFF80CE
|
||||||
|
F1FF51B9E6FF2CA8DDFF23A2DA9DFFFFFF00FFFFFF00FFFFFF003AC4E8E975DA
|
||||||
|
F2FF93E6F8FF91E3F7FF8DE0F6FF8ADCF5FF8ADBF5FF88D7F4FF84D3F2FF7FCF
|
||||||
|
F1FF7CCCF0FF7AC9EFFF48B4E3FF23A3DAF5209ED823FFFFFF003BC7E9374FCD
|
||||||
|
ECFF98E9F9FF4AD5F3FF45CFF1FF40CAF0FF38C2EEFF89D9F4FF2EB4E1FE2CB1
|
||||||
|
E0F82BAEDFF829ACDEF827A9DCF825A6DBF823A3DAE9FFFFFF00FFFFFF003BC7
|
||||||
|
E9F480E1F5FF8EE6F8FF43D2F3FF3FCDF1FF39C7EFFF8CDCF5FF58C6EAFF2EB4
|
||||||
|
E174FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF003DC9
|
||||||
|
EA545BD4EFFF99EAF9FF47D6F4FF42D0F2FF3DCBF0FF6ED5F3FF7FD7F3FF4AC0
|
||||||
|
E7FF2FB4E14AFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF003DCAEAF993E9F9FF72E1F7FF45D4F3FF41CEF2FF3CC9F0FF8ADCF5FF70D0
|
||||||
|
EFFF3DBBE4FF2FB5E123FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF003FCCEB8364D9F1FF9AEBFAFF48D8F4FF44D3F3FF3FCEF1FF3AC8F0FF8CDC
|
||||||
|
F5FF62CBEDFF31B8E3FCFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF003FCCEBFD9AEDFAFF99EBF9FF97E8F9FF94E5F8FF91E2F7FF8EDF
|
||||||
|
F6FF8BDBF5FF56C7EBFF31B8E3F3FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF0040CEECA23FCCEBFF3ECBEAFF3CC9E9FF3BC7E9FF3AC4E8FF38C2
|
||||||
|
E7FF36C0E6FF35BDE5FF33BBE4FF31B8E3E1FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
OnClick = btnShellOpenClick
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
object btnRemFav: TBitBtn
|
||||||
|
Left = 32
|
||||||
|
Height = 26
|
||||||
|
Hint = 'remove selected folder from the favorites'
|
||||||
|
Top = 0
|
||||||
|
Width = 32
|
||||||
|
Align = alLeft
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000001E0000003300000033000000330000001E00000000469AD300469A
|
||||||
|
D300469AD300469AD300469AD300469AD300469AD300469BD30048A2D3000000
|
||||||
|
001E3044B4AC384DCCFF384DCBFF384DCCFF3145B4AC0000001E469AD3000000
|
||||||
|
000B0000000A0000000A0000000A0000000A0000000A0000000A000000082F3D
|
||||||
|
B4AA3851D7FF385DF9FF375DFAFF385DF9FF3852D7FF3044B4AC0000002F2959
|
||||||
|
7A5F2655755C2655745C2655745C2655745C2655745C2654725A214B63513342
|
||||||
|
CBFF4164FBFF3C60FAFF3A5DF8FF3C60FAFF4165FBFF344BCCFF4598D0F14398
|
||||||
|
D2FF4094D0FF3E92CFFF3E92CEFF3F92CEFF3F92CEFF4094CFFF419BCFFF2E3E
|
||||||
|
C9FFA9B8FFFFFFFFFFFFFFFFFFFFFFFFFFFFA9BAFFFF3148CAFF4499D2FF3F94
|
||||||
|
D0FFABFBFFFF9BF3FFFF92F1FFFF93F1FFFF93F1FFFF94F3FFFF98FCFFFF2A38
|
||||||
|
C6FF5B75FDFF5775FEFF5473FDFF5775FEFF5D79FFFF3349CBFF4397D1FF56AC
|
||||||
|
DDFF8EDAF5FFA2EDFFFF82E5FEFF84E5FEFF84E5FEFF86E7FEFF89EEFFFF5589
|
||||||
|
E0FF4052D9FF6E85FFFF7289FFFF6E86FFFF4559DCFF3446CC924296D1FF71C4
|
||||||
|
EAFF6CBCE6FFBBF2FFFF75DEFDFF77DEFCFF78DEFCFF7BDFFCFF7FE3FDFF83EC
|
||||||
|
FFFF5186DEFF2B38C6FF2B3AC6FF2B3AC7FF3E6FCFFF000000124095D0FF90DD
|
||||||
|
F8FF44A0D8FFDDFCFFFFDAFAFFFFDBF9FFFFDEFAFFFF74DCFCFF76DCFBFF77DD
|
||||||
|
FBFF79E2FCFF7AE6FDFF79E7FEFFA7F4FFFF7FC6E7FF3377A4703E93CFFFB2F6
|
||||||
|
FFFF51ACDEFF358ACAFF358ACAFF358ACAFF368ACAFF5BBDE9FF6ED9FBFF6AD6
|
||||||
|
FAFF69D6FAFF68D6FAFF67D6FAFF83DFFCFFAAE1F6FF3A8AC1C83D92CFFFB8F3
|
||||||
|
FFFF77DFFEFF7BE0FEFF7CE1FEFF7CE1FFFF7DE2FFFF52ABDDFF56B9E8FFDAF8
|
||||||
|
FFFFD6F6FFFFD6F6FFFFD5F6FFFFD5F7FFFFDBFCFFFF3E94D0FF3C92CFFFC0F3
|
||||||
|
FFFF70D9FBFF73DAFBFF74DAFBFF74DAFBFF74DBFBFF76DEFDFF4FA9DCFF368B
|
||||||
|
CAFF358BCBFF338BCBFF338CCCFF3790CEFF3D94D0FF4398D2AE3B92CFFFCAF6
|
||||||
|
FFFF69D5F9FF6CD5F9FF6AD4F9FF69D4F9FF69D5F9FF6AD6FAFF6BD8FBFF6BD9
|
||||||
|
FCFF6BDAFDFF69DAFDFFDAFDFFFF3C93D0FF367BAA2F469AD3003B92CFFFD5F7
|
||||||
|
FFFF60D1F9FF61D0F8FFB4EBFDFFD9F6FFFFDAF8FFFFDAF8FFFFDAF9FFFFDBF9
|
||||||
|
FFFFDAF9FFFFDAFAFFFFDFFEFFFF3D94D0FF4599D335469AD3003D94D0FFDCFC
|
||||||
|
FFFFD8F7FFFFD8F7FFFFDBFAFFFF358ECDFF3991CEFF3A92CFFF3A92CFFF3A92
|
||||||
|
CFFF3A92CFFF3A92CFFF3D94D0FF4298D2EA469AD300469AD3004398D2EF3D94
|
||||||
|
D0FF3A92CFFF3A92CFFF3D94D0FF4197D1E44398D22B4498D2324498D2334498
|
||||||
|
D2334498D2334499D2334499D337459AD300469AD300469AD300
|
||||||
|
}
|
||||||
|
OnClick = btnRemFavClick
|
||||||
|
TabOrder = 3
|
||||||
|
end
|
||||||
|
object Bevel1: TBevel
|
||||||
|
Left = 196
|
||||||
|
Height = 26
|
||||||
|
Top = 0
|
||||||
|
Width = 64
|
||||||
|
Align = alRight
|
||||||
|
Shape = bsTopLine
|
||||||
|
end
|
||||||
|
object Bevel2: TBevel
|
||||||
|
Left = 64
|
||||||
|
Height = 26
|
||||||
|
Top = 0
|
||||||
|
Width = 72
|
||||||
|
Align = alLeft
|
||||||
|
Shape = bsBottomLine
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object Splitter1: TSplitter[4]
|
||||||
|
Cursor = crVSplit
|
||||||
|
Left = 0
|
||||||
|
Height = 6
|
||||||
|
Top = 135
|
||||||
|
Width = 332
|
||||||
|
Align = alTop
|
||||||
|
ResizeAnchor = akTop
|
||||||
|
end
|
||||||
|
object Splitter2: TSplitter[5]
|
||||||
|
Cursor = crVSplit
|
||||||
|
Left = 0
|
||||||
|
Height = 6
|
||||||
|
Top = 366
|
||||||
|
Width = 332
|
||||||
|
Align = alTop
|
||||||
|
ResizeAnchor = akTop
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object imgList: TImageList[2]
|
||||||
|
left = 32
|
||||||
|
Bitmap = {
|
||||||
|
4C69050000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00B2B2B2B0AFAFAFFFADADADFFADADADFFADADADFFAEAE
|
||||||
|
AEFFAEAEAEFFB0B0B0AC00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00AEAEAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0E0
|
||||||
|
E0FFFFFFFFFFEBEBEBFFB0B0B0ACFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00ADADADFFFFFFFFFFE0E0E0FFE0E0E0FFFFFFFFFFA5A5
|
||||||
|
A5FFF3F3F3FFFFFFFFFFAEAEAEFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00ADADADFFFFFFFFFFE5E5E5FFE5E5E5FFFFFFFFFFBCBC
|
||||||
|
BCFFA5A5A5FFE0E0E0FFAEAEAEFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00ACACACFFFFFFFFFFEBEBEBFFEAEAEAFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFADADADFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00ACACACFFFFFFFFFFEFEFEFFFEFEFEFFFEEEEEEFFEEEE
|
||||||
|
EEFFEFEFEFFFFFFFFFFFACACACFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00ACACACFFFFFFFFFFF5F5F5FFF5F5F5FFF5F5F5FFF5F5
|
||||||
|
F5FFF5F5F5FFFFFFFFFFACACACFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00ADADADFFFFFFFFFFFBFBFBFFFAFAFAFFFAFAFAFFFAFA
|
||||||
|
FAFFFBFBFBFFFFFFFFFFADADADFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFAFAFAFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00B0B0B0F2AEAEAEFFADADADFFACACACFFACACACFFACAC
|
||||||
|
ACFFADADADFFAEAEAEFFA3A3A3C0FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF0000000030000000330000003300000033000000330000
|
||||||
|
0033000000330000003300000023FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF004398D2B03D94D0FF3A92CFFF3A92CFFF3D94
|
||||||
|
D0FF4197D1D24398D2004498D2004498D2004498D2004498D2004499D2004499
|
||||||
|
D300459AD300469AD300469AD3003D94D0FFDCFCFFFFD8F7FFFFD8F7FFFFDBFA
|
||||||
|
FFFF358ECDFF3991CEFF3A92CFFF3A92CFFF3A92CFFF3A92CFFF3B92CFFF3D94
|
||||||
|
D0FF4398D2D7469AD300469AD3003B92CFFFD5F7FFFF60D1F9FF61D0F8FFB4EB
|
||||||
|
FDFFD9F6FFFFDAF8FFFFDAF8FFFFDBF9FFFFDCFAFFFFDCFAFFFFDCFBFFFFE0FF
|
||||||
|
FFFF3E95D0FF4599D333469AD3003B92CFFFCAF6FFFF69D5F9FF6CD5F9FF6BD5
|
||||||
|
F9FF69D5F9FF69D5FAFF6AD7FBFF68D4FAFF5EC7F1FF5EC7F2FF5DC8F2FFB4E3
|
||||||
|
F8FF3D94D0FF3F8FC669469AD3003C92CFFFC0F3FFFF71DAFBFF74DBFBFF75DB
|
||||||
|
FCFF75DBFCFF76DCFCFF73DAFAFF449CD4FF378CCBFF368CCBFF358CCCFF348D
|
||||||
|
CCFF3890CEFF3D94D0FF4398D2EB3D92CFFFB9F4FFFF73DBFBFF6BCCF2FF6CCD
|
||||||
|
F3FF6CCEF3FF6DCEF3FF479CD4FF56BAE9FFDAF8FFFFD7F6FFFFD6F6FFFFD5F6
|
||||||
|
FFFFD5F7FFFFDBFCFFFF3E94D0FF3E94D0FFABF0FFFF449DD6FF368CCBFF368C
|
||||||
|
CBFF368CCBFF378BCBFF5CBEEAFF6FD9FBFF6AD6FAFF68D5F9FF67D4F9FF66D4
|
||||||
|
F9FF82DEFCFFAAE0F6FF3885BCB94095D0FF8AD7F5FF44A1D8FFDDFDFFFFDAFA
|
||||||
|
FFFFDBFAFFFFDEFAFFFF74DCFCFF76DBFAFF75DAFAFF74DAFAFF74DAFAFF72D9
|
||||||
|
FAFFA1E8FFFF7CBFE6FF306F9C5E4296D1FF6BBEE8FF6DBDE6FFBBF2FFFF75DE
|
||||||
|
FDFF77DEFCFF78DEFCFF7BDFFCFF7DDFFCFF7DDFFCFF7DDFFCFF7CDFFCFF80E0
|
||||||
|
FDFFADF0FFFF4D9DD3FF0000000E4398D2FF4FA6D9FF8EDAF5FFA2EEFFFF82E5
|
||||||
|
FEFF84E5FEFF84E5FEFF85E6FEFF85E6FEFF85E6FEFF85E6FEFF84E6FEFF96EB
|
||||||
|
FFFF8CD8F5FF3985BCB84499D2004499D2FF3F94D0FFABFBFFFF9BF3FFFF92F1
|
||||||
|
FFFF93F1FFFF93F1FFFF93F1FFFF93F1FFFF93F1FFFF93F1FFFF93F1FFFFA6F8
|
||||||
|
FFFF65B8E3FF31709D5F469AD3004598D1F24398D2FF4094D0FF3E92CFFF3E92
|
||||||
|
CEFF3F92CEFF3F92CEFF3F92CEFF3F92CEFF3F92CEFF3F92CEFF3F92CEFF3F93
|
||||||
|
CFFF4194CEF00000000E469AD300000000300000003300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
00330000002F0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000FB4DA2126B9DEFF0B97CC1CFFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000EB0D9EB7CD0EAFF0A94CAF0FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF000EB8DC110EB5DC7267C8E6FFBBECFAFF50B7DFFF0A98
|
||||||
|
CE740BA9D711FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF000FB3DAFB0EB5DBFE1EB8DCFF6FCCE8FFACE4F5FF9BE3F8FF9DDDF3FF5ABE
|
||||||
|
E2FF17A9D7FF0AA0D4FD0889C9FCFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF000B96C87548B0D5FF93D6ECFFBDEDFBFF9CE4F8FF5FD1F3FF8ADCF6FFA4E4
|
||||||
|
F8FF75C6E5FF369AC9FF0679B67934B4D9D05EC2E1FA60C3E2FA60C3E2FA60C3
|
||||||
|
E2FA5FC3E2FA29A8D4E846AFD8FFB7EBF9FF6FD6F4FF55CDF2FF50CCF2FF9DDF
|
||||||
|
F4FF369BCBFF0679B659FFFFFF0036B3DAF8FDFEFEFFFEFFFFFFFEFEFFFFFDFE
|
||||||
|
FFFFFEFFFFFFEAF7FBFF28A4D4FD7ECDEBFF8DDEF6FF99E1F7FF75D6F4FF70C5
|
||||||
|
E6FF0C82BED1FFFFFF00FFFFFF0035AFDAF0F7FCFEFF8EE4F8FF91DEF5FF9FE0
|
||||||
|
F5FFACE1F6FFEFFBFEFF48B7DEFF8BD2EDFFA3E1F2FF5FBBE1FF98DDF4FF77CB
|
||||||
|
ECFF0F83C2F6FFFFFF00FFFFFF0036AADAF2F1FAFDFF94DEF5FF93DCF4FF81D5
|
||||||
|
F2FF60C0E9FF4FAEE1FF3594DAFF3594DAFF3594DAFF3594DAFF3594DAFF3594
|
||||||
|
DAFF3594DAFFFFFFFF00FFFFFF0035ABDAFAE8F6FBFF7EC5EAFF5BAEE3FF51A8
|
||||||
|
E1FF60AFE4FFE8F9FDFF92CCE7FFB5DBEDFFE5F6FCFFE4F5FCFFE4F5FCFFCFE4
|
||||||
|
F1FF3594DAFFFFFFFF00FFFFFF0037A6DAFAFEFFFFFFF8FDFFFFF6FDFFFFF5FC
|
||||||
|
FFFFE8FAFEFFACEBF9FF84DCF4FF87E3F8FF7DE0F7FF72DDF6FF68DBF5FFE9F9
|
||||||
|
FDFF3594DAFF0166B705FFFFFF0036A1DAF9F6FCFEFFC8F2FCFFB9EFFBFFACEC
|
||||||
|
FAFF8CE4F8FF8AE3F8FF82E1F7FF79DFF7FF6DDDF6FF61DAF5FF57D7F4FFE7F8
|
||||||
|
FDFF3594DAFFFFFFFF00FFFFFF00369ADAF8F2FAFDFFB3EDFAFFA4E9F9FF95E6
|
||||||
|
F8FF85E2F7FF81E1F7FF7AE0F7FF6FDDF6FF62DAF5FF54D6F3FF47D3F2FFE8F9
|
||||||
|
FDFF3594DAFFFFFFFF00FFFFFF003594DAF7EFFAFEFFA1E9F9FF91E5F8FF81E1
|
||||||
|
F7FF72DEF6FF63DAF5FF54D7F4FF47D3F3FF39D0F2FF2ECDF1FF26CBF0FFCAF2
|
||||||
|
FBFF3594DAF7FFFFFF00FFFFFF00338ED9E6DCF0FAF0A7DDF4FD9EDBF4FF96DA
|
||||||
|
F3FF8ED8F3FF86D7F3FF7FD4F2FF79D3F2FF72D2F1FF6CD0F1FF69CFF1FFC2EA
|
||||||
|
F8FE338ED9F0FFFFFF00FFFFFF002C86D8002D88D8A62D87D8EA2D88D8F72D88
|
||||||
|
D8F72D88D8F72D88D8F72D88D8F72D88D8F72D88D8F72D88D8F72D87D8F72D88
|
||||||
|
D8F12C86D893FFFFFF00FFFFFF004398D2EF3D94D0FF3A92CFFF3A92CFFF3D94
|
||||||
|
D0FF4197D1E44398D22B4498D2324498D2334498D2334498D2334499D2334499
|
||||||
|
D337459AD300469AD300469AD3003D94D0FFDCFCFFFFD8F7FFFFD8F7FFFFDBFA
|
||||||
|
FFFF358ECDFF3991CEFF3A92CFFF3A92CFFF3A92CFFF3A92CFFF3A92CFFF3D94
|
||||||
|
D0FF4298D2EA469AD300469AD3003B92CFFFD5F7FFFF60D1F9FF61D0F8FFB4EB
|
||||||
|
FDFFD9F6FFFFDAF8FFFFDAF8FFFFDAF9FFFFDBF9FFFFDAF9FFFFDAFAFFFFDFFE
|
||||||
|
FFFF3D94D0FF4599D335469AD3003B92CFFFCAF6FFFF69D5F9FF6CD5F9FF6AD4
|
||||||
|
F9FF69D4F9FF69D5F9FF6AD6FAFF6BD8FBFF6BD9FCFF6BDAFDFF69DAFDFFDAFD
|
||||||
|
FFFF3C93D0FF367BAA2F469AD3003C92CFFFC0F3FFFF70D9FBFF73DAFBFF74DA
|
||||||
|
FBFF74DAFBFF74DBFBFF76DEFDFF4FA9DCFF368BCAFF358BCBFF338BCBFF338C
|
||||||
|
CCFF3790CEFF3D94D0FF4398D2AE3D92CFFFB8F3FFFF77DFFEFF7BE0FEFF7CE1
|
||||||
|
FEFF7CE1FFFF7DE2FFFF52ABDDFF56B9E8FFDAF8FFFFD6F6FFFFD6F6FFFFD5F6
|
||||||
|
FFFFD5F7FFFFDBFCFFFF3E94D0FF3E93CFFFB2F6FFFF51ACDEFF358ACAFF358A
|
||||||
|
CAFF358ACAFF368ACAFF5BBDE9FF6ED9FBFF6AD6FAFF69D6FAFF68D6FAFF67D6
|
||||||
|
FAFF83DFFCFFAAE1F6FF3A8AC1C84095D0FF90DDF8FF44A0D8FFDDFCFFFFDAFA
|
||||||
|
FFFFDBF9FFFFDEFAFFFF74DCFCFF76DCFBFF77DDFBFF79E2FCFF7AE6FDFF79E7
|
||||||
|
FEFFA7F4FFFF7FC6E7FF3377A4704296D1FF71C4EAFF6CBCE6FFBBF2FFFF75DE
|
||||||
|
FDFF77DEFCFF78DEFCFF7BDFFCFF7FE3FDFF83ECFFFF5186DEFF2B38C6FF2B3A
|
||||||
|
C6FF2B3AC7FF3E6FCFFF000000124397D1FF56ACDDFF8EDAF5FFA2EDFFFF82E5
|
||||||
|
FEFF84E5FEFF84E5FEFF86E7FEFF89EEFFFF5589E0FF4052D9FF6E85FFFF7289
|
||||||
|
FFFF6E86FFFF4559DCFF3446CC924499D2FF3F94D0FFABFBFFFF9BF3FFFF92F1
|
||||||
|
FFFF93F1FFFF93F1FFFF94F3FFFF98FCFFFF2A38C6FF5B75FDFF5775FEFF5473
|
||||||
|
FDFF5775FEFF5D79FFFF3349CBFF4598D0F14398D2FF4094D0FF3E92CFFF3E92
|
||||||
|
CEFF3F92CEFF3F92CEFF4094CFFF419BCFFF2E3EC9FFA9B8FFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFA9BAFFFF3148CAFF0000002F29597A5F2655755C2655745C2655
|
||||||
|
745C2655745C2655745C2654725A214B63513342CBFF4164FBFF3C60FAFF3A5D
|
||||||
|
F8FF3C60FAFF4165FBFF344BCCFF469AD3000000000B0000000A0000000A0000
|
||||||
|
000A0000000A0000000A0000000A000000082F3DB4AA3851D7FF385DF9FF375D
|
||||||
|
FAFF385DF9FF3852D7FF3044B4AC469AD300469AD300469AD300469AD300469A
|
||||||
|
D300469AD300469AD300469BD30048A2D3000000001E3044B4AC384DCCFF384D
|
||||||
|
CBFF384DCCFF3145B4AC0000001E000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000000000001E000000330000
|
||||||
|
0033000000330000001E000000004398D2EF3D94D0FF3A92CFFF3A92CFFF3D94
|
||||||
|
D0FF4197D1E44398D22B4498D2324498D2334498D2334498D2334499D2334499
|
||||||
|
D337459AD300469AD300469AD3003D94D0FFDCFCFFFFD8F7FFFFD8F7FFFFDBFA
|
||||||
|
FFFF358ECDFF3991CEFF3A92CFFF3A92CFFF3A92CFFF3A92CFFF3A92CFFF3D94
|
||||||
|
D0FF4298D2EA469AD300469AD3003B92CFFFD5F7FFFF60D1F9FF61D0F8FFB4EB
|
||||||
|
FDFFD9F6FFFFDAF8FFFFDAF8FFFFDAF9FFFFDBF9FFFFDAF9FFFFDAFAFFFFDFFE
|
||||||
|
FFFF3D94D0FF4599D335469AD3003B92CFFFCAF6FFFF69D5F9FF6CD5F9FF6AD4
|
||||||
|
F9FF69D4F9FF69D5F9FF6AD6FAFF6BD8FBFF6BD9FCFF6BDAFDFF69DAFDFFDAFD
|
||||||
|
FFFF3C93D0FF367BAA2F469AD3003C92CFFFC0F3FFFF70D9FBFF73DAFBFF74DA
|
||||||
|
FBFF74DAFBFF74DBFBFF76DEFDFF4FA9DCFF368BCAFF358BCBFF338BCBFF338C
|
||||||
|
CCFF3790CEFF3D94D0FF4398D2AE3D92CFFFB8F3FFFF77DFFEFF7BE0FEFF7CE1
|
||||||
|
FEFF7CE1FFFF7DE2FFFF52ABDDFF56B9E8FFDAF8FFFFD6F6FFFFD6F6FFFFD5F6
|
||||||
|
FFFFD5F7FFFFDBFCFFFF3E94D0FF3E93CFFFB2F6FFFF51ACDEFF358ACAFF358A
|
||||||
|
CAFF358ACAFF368ACAFF5BBDE9FF6ED9FBFF6AD6FAFF69D5FBFF69D5FBFF68D5
|
||||||
|
FCFF84DEFEFFABE1F8FF3A8AC1C84095D0FF90DDF8FF44A0D8FFDDFCFFFFDAFA
|
||||||
|
FFFFDBF9FFFFDEFAFFFF74DCFCFF76DBFBFF78DBFEFF7CDDFFFF7FDFFFFF7FDF
|
||||||
|
FFFFADECFFFF82C1EEFF3575A7704296D1FF71C4EAFF6CBCE6FFBBF2FFFF75DE
|
||||||
|
FDFF77DEFCFF78DEFCFF7CDFFDFF80E1FFFF89E4FFFF32B89EFF009549FF0095
|
||||||
|
4AFF00974BFF1F9E91FF000000124397D1FF56ACDDFF8EDAF5FFA2EDFFFF82E5
|
||||||
|
FEFF84E5FEFF84E5FEFF86E6FFFF8DE9FFFF35BA9EFF00A965FF00D299FF74EC
|
||||||
|
D1FF00D29AFF00AE6CFF009F56924499D2FF3F94D0FFABFBFFFF9BF3FFFF92F1
|
||||||
|
FFFF93F1FFFF93F1FFFF95F1FFFF9EF4FFFF00964AFF00CA93FF00C78EFFFFFF
|
||||||
|
FFFF00C88FFF00CC97FF009D5CFF4598D0F14398D2FF4094D0FF3E92CFFF3E92
|
||||||
|
CEFF3F92CEFF3F92CEFF4092D1FF4792DAFF009B4EFF75E5CAFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFF77E5CCFF009C5CFF0000002F29597A5F2655755C2655745C2655
|
||||||
|
745C2655745C2655745C2653745A24486851009E52FF00C08AFF00BB82FFFFFF
|
||||||
|
FFFF00BB82FF00C08CFF009E5EFF469AD3000000000B0000000A0000000A0000
|
||||||
|
000A0000000A0000000A0000000A00000008008D4BAA00A668FF00BA86FF77DF
|
||||||
|
C4FF00BA86FF00A66AFF008C55AC469AD300469AD300469AD300469AD300469A
|
||||||
|
D300469AD300469AD300479AD5004D99DF000000001E008C53AC009E5EFF009D
|
||||||
|
5DFF009E5EFF008C55AC0000001E000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000000000001E000000330000
|
||||||
|
0033000000330000001E00000000
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,369 @@
|
||||||
|
unit ce_miniexplorer;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
||||||
|
Menus, StdCtrls, ComCtrls, Buttons, ce_widget, lcltype;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TCEMiniExplorerWidget }
|
||||||
|
TCEMiniExplorerWidget = class(TCEWidget)
|
||||||
|
Bevel1: TBevel;
|
||||||
|
Bevel2: TBevel;
|
||||||
|
btnAddFav: TBitBtn;
|
||||||
|
btnEdit: TBitBtn;
|
||||||
|
btnShellOpen: TBitBtn;
|
||||||
|
btnRemFav: TBitBtn;
|
||||||
|
imgList: TImageList;
|
||||||
|
lstFiles: TListView;
|
||||||
|
lstFav: TListView;
|
||||||
|
Panel1: TPanel;
|
||||||
|
Splitter1: TSplitter;
|
||||||
|
Splitter2: TSplitter;
|
||||||
|
Tree: TTreeView;
|
||||||
|
procedure btnEditClick(Sender: TObject);
|
||||||
|
procedure btnShellOpenClick(Sender: TObject);
|
||||||
|
procedure btnAddFavClick(Sender: TObject);
|
||||||
|
procedure btnRemFavClick(Sender: TObject);
|
||||||
|
procedure lstFilesDblClick(Sender: TObject);
|
||||||
|
private
|
||||||
|
fFavorites: TStringList;
|
||||||
|
fLastFold: string;
|
||||||
|
procedure optset_LastFold(aReader: TReader);
|
||||||
|
procedure optget_LastFold(aWriter: TWriter);
|
||||||
|
procedure optset_Favs(aReader: TReader);
|
||||||
|
procedure optget_Favs(aWriter: TWriter);
|
||||||
|
procedure updateFavorites;
|
||||||
|
procedure treeSetRoots;
|
||||||
|
procedure lstFilesFromTree;
|
||||||
|
procedure treeScanSubFolders(aRoot: TTreeNode);
|
||||||
|
procedure treeClick(sender: TObject);
|
||||||
|
procedure treeChanged(Sender: TObject; Node: TTreeNode);
|
||||||
|
procedure treeCollapsed(Sender: TObject; Node: TTreeNode);
|
||||||
|
procedure treeExpanded(Sender: TObject; Node: TTreeNode);
|
||||||
|
procedure treeCollapsing(Sender: TObject; Node: TTreeNode; var allow: boolean);
|
||||||
|
procedure treeExpanding(Sender: TObject; Node: TTreeNode; var allow: boolean);
|
||||||
|
procedure treeDeletion(Sender: TObject; Item: TTreeNode);
|
||||||
|
procedure treeSelectionChanged(sender: TObject);
|
||||||
|
procedure favStringsChange(sender: TObject);
|
||||||
|
procedure fillLstFiles(const aList: TStrings);
|
||||||
|
procedure lstDeletion(Sender: TObject; Item: TListItem);
|
||||||
|
procedure lstFavSelect(Sender: TObject; Item: TListItem; Selected: Boolean);
|
||||||
|
procedure shellOpenSelected;
|
||||||
|
public
|
||||||
|
constructor create(aIwner: TComponent); override;
|
||||||
|
destructor destroy; override;
|
||||||
|
//
|
||||||
|
procedure declareProperties(aFiler: TFiler); override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
uses
|
||||||
|
ce_main, ce_common;
|
||||||
|
|
||||||
|
//TODO-cbugfix: click on the expander glyph, sometime the subdirs are not scanned but the
|
||||||
|
//fake sub still displayed
|
||||||
|
|
||||||
|
{$REGION Standard Comp/Obj------------------------------------------------------}
|
||||||
|
constructor TCEMiniExplorerWidget.create(aIwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
fFavorites := TStringList.Create;
|
||||||
|
fFavorites.onChange := @favStringsChange;
|
||||||
|
lstFiles.OnDeletion := @lstDeletion;
|
||||||
|
lstFav.OnDeletion := @lstDeletion;
|
||||||
|
lstFav.OnSelectItem := @lstFavSelect;
|
||||||
|
|
||||||
|
Tree.OnClick := @treeClick;
|
||||||
|
Tree.OnChange := @treeChanged;
|
||||||
|
Tree.OnDeletion := @treeDeletion;
|
||||||
|
Tree.OnSelectionChanged := @treeSelectionChanged;
|
||||||
|
Tree.OnExpanded := @treeExpanded;
|
||||||
|
Tree.OnCollapsed := @treeCollapsed;
|
||||||
|
Tree.OnCollapsing := @treeCollapsing;
|
||||||
|
Tree.OnExpanding := @treeExpanding;
|
||||||
|
//
|
||||||
|
treeSetRoots;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TCEMiniExplorerWidget.destroy;
|
||||||
|
begin
|
||||||
|
fFavorites.Free;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.lstDeletion(Sender: TObject; Item: TListItem);
|
||||||
|
begin
|
||||||
|
if Item.Data <> nil then
|
||||||
|
DisposeStr(PString(Item.Data));
|
||||||
|
end;
|
||||||
|
{$ENDREGION}
|
||||||
|
|
||||||
|
{$REGION ICEWidgetPersist ------------------------------------------------------}
|
||||||
|
procedure TCEMiniExplorerWidget.declareProperties(aFiler: TFiler);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
aFiler.DefineProperty(Name + '_LastFolder', @optset_LastFold, @optget_LastFold, true);
|
||||||
|
aFiler.DefineProperty(Name + '_FavoritesFolders', @optset_Favs, @optget_Favs, true);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.optset_LastFold(aReader: TReader);
|
||||||
|
var
|
||||||
|
lst: TstringList;
|
||||||
|
begin
|
||||||
|
fLastFold := aReader.ReadString;
|
||||||
|
if not directoryExists(fLastFold) then exit;
|
||||||
|
//
|
||||||
|
lst := TStringList.Create;
|
||||||
|
try
|
||||||
|
listFiles(lst, fLastFold);
|
||||||
|
fillLstFiles(lst);
|
||||||
|
finally
|
||||||
|
lst.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.optget_LastFold(aWriter: TWriter);
|
||||||
|
begin
|
||||||
|
aWriter.WriteString(fLastFold);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.optset_Favs(aReader: TReader);
|
||||||
|
begin
|
||||||
|
fFavorites.DelimitedText := aReader.ReadString;
|
||||||
|
if fLastFold <> '' then
|
||||||
|
if fFavorites.IndexOf(fLastFold) = -1 then
|
||||||
|
fFavorites.Add(fLastFold);
|
||||||
|
updateFavorites;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.optget_Favs(aWriter: TWriter);
|
||||||
|
begin
|
||||||
|
aWriter.WriteString(fFavorites.DelimitedText);
|
||||||
|
end;
|
||||||
|
{$ENDREGION}
|
||||||
|
|
||||||
|
{$REGION Favorites -------------------------------------------------------------}
|
||||||
|
procedure TCEMiniExplorerWidget.favStringsChange(sender: TObject);
|
||||||
|
begin
|
||||||
|
updateFavorites;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.updateFavorites;
|
||||||
|
var
|
||||||
|
itm: TListItem;
|
||||||
|
fold: string;
|
||||||
|
dat: PString;
|
||||||
|
begin
|
||||||
|
lstFav.Clear;
|
||||||
|
for fold in fFavorites do
|
||||||
|
begin
|
||||||
|
itm := lstFav.Items.Add;
|
||||||
|
itm.Caption := shortenPath(fold);
|
||||||
|
dat := NewStr(fold);
|
||||||
|
itm.Data := dat;
|
||||||
|
itm.ImageIndex := 2;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.lstFavSelect(Sender: TObject; Item: TListItem; Selected: Boolean);
|
||||||
|
var
|
||||||
|
lst: TStringList;
|
||||||
|
begin
|
||||||
|
if not Selected then exit;
|
||||||
|
//
|
||||||
|
fLastFold := PString(Item.Data)^;
|
||||||
|
lstFiles.Clear;
|
||||||
|
lst := TStringList.Create;
|
||||||
|
try
|
||||||
|
listFiles(lst, fLastFold);
|
||||||
|
fillLstFiles(lst);
|
||||||
|
finally
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.btnRemFavClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
if lstFav.Selected = nil then exit;
|
||||||
|
i := fFavorites.IndexOf(PString(lstFav.Selected.Data)^);
|
||||||
|
if i <> -1 then fFavorites.Delete(i);
|
||||||
|
lstFiles.Clear;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.lstFilesDblClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
shellOpenSelected;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.btnAddFavClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if Tree.Selected = nil then exit;
|
||||||
|
fFavorites.Add(PString(Tree.Selected.Data)^);
|
||||||
|
end;
|
||||||
|
{$ENDREGION}
|
||||||
|
|
||||||
|
{$REGION Files -----------------------------------------------------------------}
|
||||||
|
procedure TCEMiniExplorerWidget.fillLstFiles(const aList: TStrings);
|
||||||
|
var
|
||||||
|
itm: TListItem;
|
||||||
|
fname: string;
|
||||||
|
dat: PString;
|
||||||
|
begin
|
||||||
|
lstFiles.Clear;
|
||||||
|
for fname in aList do
|
||||||
|
begin
|
||||||
|
itm := lstFiles.Items.Add;
|
||||||
|
itm.Caption := extractFileName(fname);
|
||||||
|
dat := NewStr(fname);
|
||||||
|
itm.Data := dat;
|
||||||
|
itm.ImageIndex := 0;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.btnShellOpenClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
shellOpenSelected;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.btnEditClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
fname: string;
|
||||||
|
begin
|
||||||
|
if lstFiles.Selected = nil then exit;
|
||||||
|
if lstFiles.Selected.Data = nil then exit;
|
||||||
|
fname := PString(lstFiles.Selected.Data)^;
|
||||||
|
if not fileExists(fname) then exit;
|
||||||
|
CEMainForm.openFile(fname);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.shellOpenSelected;
|
||||||
|
var
|
||||||
|
fname: string;
|
||||||
|
begin
|
||||||
|
if lstFiles.Selected = nil then exit;
|
||||||
|
if lstFiles.Selected.Data = nil then exit;
|
||||||
|
fname := PString(lstFiles.Selected.Data)^;
|
||||||
|
if not fileExists(fname) then exit;
|
||||||
|
if not shellOpen(fname) then CEMainForm.MessageWidget.addCeErr
|
||||||
|
(format('the shell failed to open "%s"',[shortenPath(fname,25)]));
|
||||||
|
end;
|
||||||
|
|
||||||
|
{$ENDREGION}
|
||||||
|
|
||||||
|
{$REGION Tree ------------------------------------------------------------------}
|
||||||
|
procedure TCEMiniExplorerWidget.treeDeletion(Sender: TObject; Item: TTreeNode);
|
||||||
|
begin
|
||||||
|
if Item.Data <> nil then
|
||||||
|
DisposeStr(PString(Item.Data));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.treeSetRoots;
|
||||||
|
var
|
||||||
|
drv: string;
|
||||||
|
itm: TTreeNode;
|
||||||
|
lst: TStringList;
|
||||||
|
begin
|
||||||
|
Tree.Items.Clear;
|
||||||
|
lst := TStringList.Create;
|
||||||
|
try
|
||||||
|
listDrives(lst);
|
||||||
|
for drv in lst do
|
||||||
|
begin
|
||||||
|
itm := Tree.Items.Add(nil, drv);
|
||||||
|
itm.Data := NewStr(drv[1..length(drv)-1]);
|
||||||
|
treeScanSubFolders(itm);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
lst.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.lstFilesFromTree;
|
||||||
|
var
|
||||||
|
lst: TStringList;
|
||||||
|
pth: string;
|
||||||
|
begin
|
||||||
|
if Tree.Selected = nil then exit;
|
||||||
|
//
|
||||||
|
lst := TStringList.Create;
|
||||||
|
try
|
||||||
|
pth := PString(Tree.Selected.Data)^;
|
||||||
|
listFiles(lst, pth);
|
||||||
|
fillLstFiles(lst);
|
||||||
|
finally
|
||||||
|
lst.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.treeScanSubFolders(aRoot: TTreeNode);
|
||||||
|
var
|
||||||
|
lst: TStringList;
|
||||||
|
fold: string;
|
||||||
|
itm: TTreeNode;
|
||||||
|
begin
|
||||||
|
aRoot.DeleteChildren; // delete the fake item...
|
||||||
|
lst := TStringList.Create;
|
||||||
|
try
|
||||||
|
listFolders(lst, PString(aRoot.Data)^ + directorySeparator);
|
||||||
|
for fold in lst do
|
||||||
|
begin
|
||||||
|
itm := Tree.Items.AddChild(aRoot, extractFileName(fold));
|
||||||
|
itm.Data := NewStr(fold);
|
||||||
|
itm.ImageIndex := 1;
|
||||||
|
itm.SelectedIndex := 1;
|
||||||
|
//
|
||||||
|
if hasFolder(fold) then
|
||||||
|
Tree.Items.AddChild(itm,''); //...created here to show the expander glyph
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
lst.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.treeCollapsing(Sender: TObject; Node: TTreeNode; var allow: boolean);
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.treeExpanding(Sender: TObject; Node: TTreeNode; var allow: boolean);
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.treeCollapsed(Sender: TObject; Node: TTreeNode);
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.treeExpanded(Sender: TObject; Node: TTreeNode);
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.treeChanged(Sender: TObject; Node: TTreeNode);
|
||||||
|
begin
|
||||||
|
if Node = nil then exit;
|
||||||
|
Node.DeleteChildren;
|
||||||
|
treeScanSubFolders(Node);
|
||||||
|
lstFilesFromTree;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.treeSelectionChanged(sender: TObject);
|
||||||
|
begin
|
||||||
|
lstFilesFromTree;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.treeClick(sender: TObject);
|
||||||
|
begin
|
||||||
|
if Tree.Selected = nil then exit;
|
||||||
|
if Tree.Selected.Expanded then exit;
|
||||||
|
treeScanSubFolders(Tree.Selected);
|
||||||
|
end;
|
||||||
|
{$ENDREGION}
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
|
@ -176,17 +176,9 @@ end;
|
||||||
|
|
||||||
procedure TCEProjectInspectWidget.btnAddFoldClick(Sender: TObject);
|
procedure TCEProjectInspectWidget.btnAddFoldClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
dir, fname: string;
|
dir, fname, ext: string;
|
||||||
sr: TSearchRec;
|
|
||||||
lst: TStringList;
|
lst: TStringList;
|
||||||
procedure doFindFile;
|
i: NativeInt;
|
||||||
var
|
|
||||||
ext: string;
|
|
||||||
begin
|
|
||||||
ext := ExtractFileExt(sr.Name);
|
|
||||||
if (ext = '.d') or (ext = '.di') then
|
|
||||||
lst.Add(dir + DirectorySeparator + sr.Name);
|
|
||||||
end;
|
|
||||||
begin
|
begin
|
||||||
if fProject = nil then exit;
|
if fProject = nil then exit;
|
||||||
//
|
//
|
||||||
|
@ -195,12 +187,16 @@ begin
|
||||||
else dir := '';
|
else dir := '';
|
||||||
if selectDirectory('sources', dir, dir, true, 0) then
|
if selectDirectory('sources', dir, dir, true, 0) then
|
||||||
begin
|
begin
|
||||||
if FindFirst(dir + DirectorySeparator + '*.*', faAnyFile, sr ) = 0 then
|
|
||||||
try
|
|
||||||
lst := TStringList.Create;
|
lst := TStringList.Create;
|
||||||
doFindFile;
|
try
|
||||||
while FindNext(sr) = 0 do doFindFile;
|
listFiles(lst, dir);
|
||||||
for fname in lst do fProject.addSource(fname);
|
for i := 0 to lst.Count-1 do
|
||||||
|
begin
|
||||||
|
fname := lst.Strings[i];
|
||||||
|
ext := extractFileExt(fname);
|
||||||
|
if (ext = '.d') or (ext = '.di') then
|
||||||
|
fProject.addSource(fname);
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
lst.Free;
|
lst.Free;
|
||||||
end;
|
end;
|
||||||
|
|
|
@ -115,7 +115,12 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.loadFromFile(const aFilename: string);
|
procedure TCESynMemo.loadFromFile(const aFilename: string);
|
||||||
|
var
|
||||||
|
ext: string;
|
||||||
begin
|
begin
|
||||||
|
ext := extractFileExt(aFilename);
|
||||||
|
if (ext <> '.d') and (ext <> '.di') then
|
||||||
|
Highlighter := nil;
|
||||||
Lines.LoadFromFile(aFilename);
|
Lines.LoadFromFile(aFilename);
|
||||||
fFilename := aFilename;
|
fFilename := aFilename;
|
||||||
FileAge(fFilename, fFileDate);
|
FileAge(fFilename, fFileDate);
|
||||||
|
|
Loading…
Reference in New Issue