ADD: Option - "Window view"

This commit is contained in:
Alexander Koblov 2007-09-09 11:38:06 +00:00
commit f9b87de4db
11 changed files with 752 additions and 169 deletions

View file

@ -37,7 +37,7 @@ uses
type
TOnToolButtonClick = procedure (NumberOfButton : Integer) of object;
TOnToolButtonClick = procedure (Sender: TObject; NumberOfButton : Integer) of object;
TChangeLineCount = procedure (AddSize : Integer) of object;
{ TKAStoolBar }
@ -275,7 +275,7 @@ procedure TKAStoolBar.ToolButtonClick(Sender: TObject);
begin
inherited Click;
if Assigned(FOnToolButtonClick) then
FOnToolButtonClick((Sender as TSpeedButton).Tag);
FOnToolButtonClick(Self, (Sender as TSpeedButton).Tag);
end;
procedure TKAStoolBar.UpdateButtonsTag;

View file

@ -7,4 +7,5 @@
в файловых панелях
11.06.2007 Добавил возможность определить различные цвета для различных типов файлов.
Можно указать для одного цвета несколько масок, разделяя их точкой с запятой,
например, *.zip;*.rar;*.arj.
например, *.zip;*.rar;*.arj.
09.09.2007 Добавил опции "Вид окна"

View file

@ -1,7 +1,7 @@
object ButtonChangeDlg: TButtonChangeDlg
Left = 166
Left = 17
Height = 304
Top = 105
Top = 251
Width = 578
HelpContext = 270
HorzScrollBar.Page = 577
@ -145,6 +145,7 @@ object ButtonChangeDlg: TButtonChangeDlg
DropDownCount = 20
Font.Height = -11
Font.Name = 'MS Sans Serif'
ItemHeight = 13
MaxLength = 0
TabOrder = 4
end
@ -179,9 +180,9 @@ object ButtonChangeDlg: TButtonChangeDlg
end
object cbRunMinimized: TCheckBox
Left = 422
Height = 26
Height = 13
Top = 110
Width = 134
Width = 88
Caption = 'Run mi&nimized'
TabOrder = 8
end
@ -225,7 +226,6 @@ object ButtonChangeDlg: TButtonChangeDlg
ItemHeight = 36
Style = lbOwnerDrawFixed
TabOrder = 13
TopIndex = -1
end
object kedtToolTip: TKASEdit
Left = 120
@ -270,9 +270,9 @@ object ButtonChangeDlg: TButtonChangeDlg
end
object cbRunMaximized: TCheckBox
Left = 422
Height = 26
Height = 13
Top = 130
Width = 139
Width = 91
Caption = 'Run ma&ximized'
TabOrder = 9
end
@ -281,7 +281,7 @@ object ButtonChangeDlg: TButtonChangeDlg
Height = 82
Width = 121
Caption = 'Appearance'
ClientHeight = 61
ClientHeight = 64
ClientWidth = 117
TabOrder = 3
object lblSize: TLabel
@ -305,9 +305,9 @@ object ButtonChangeDlg: TButtonChangeDlg
end
object cbFlatIcons: TCheckBox
Left = 6
Height = 26
Height = 13
Top = 18
Width = 96
Width = 65
Caption = 'F&lat icons'
Checked = True
State = cbChecked
@ -315,9 +315,9 @@ object ButtonChangeDlg: TButtonChangeDlg
end
object cbSmallIcons: TCheckBox
Left = 6
Height = 26
Height = 13
Top = 38
Width = 109
Width = 73
Caption = 'S&mall icons'
TabOrder = 2
end

View file

@ -60,7 +60,7 @@ type
procedure FormShow(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure btnAddButtonClick(Sender: TObject);
procedure ktbBarToolButtonClick(NumberOfButton : Integer);
procedure ktbBarToolButtonClick(Sender: TObject; NumberOfButton : Integer);
procedure Save;
procedure btnDeleteButtonClick(Sender: TObject);
procedure btnOpenFileClick(Sender: TObject);
@ -121,7 +121,7 @@ begin
end;
(*Select button on panel*)
procedure TButtonChangeDlg.ktbBarToolButtonClick(NumberOfButton : Integer);
procedure TButtonChangeDlg.ktbBarToolButtonClick(Sender: TObject; NumberOfButton : Integer);
begin
Save;
cbCommand.Text := ktbBar.Commands[NumberOfButton];

198
fmain.lfm
View file

@ -1,7 +1,7 @@
inherited frmMain: TfrmMain
Left = 238
Left = 290
Height = 336
Top = 137
Top = 146
Width = 525
HorzScrollBar.Page = 524
VertScrollBar.Page = 316
@ -55,7 +55,7 @@ inherited frmMain: TfrmMain
Alignment = taLeftJustify
ParentColor = False
TabOrder = 0
OnToolButtonClick = dskLeftToolButtonClick
OnToolButtonClick = dskToolButtonClick
CheckToolButton = True
FlatButtons = True
IsDiskPanel = True
@ -66,10 +66,10 @@ inherited frmMain: TfrmMain
Top = 1
Width = 381
Align = alClient
Alignment = taRightJustify
Alignment = taLeftJustify
Anchors = [akTop, akLeft, akBottom]
TabOrder = 1
OnToolButtonClick = dskRightToolButtonClick
OnToolButtonClick = dskToolButtonClick
OnChangeLineCount = dskRightChangeLineCount
CheckToolButton = True
FlatButtons = True
@ -218,32 +218,168 @@ inherited frmMain: TfrmMain
FullRepaint = False
TabOrder = 2
TabStop = True
object nbLeft: TNotebook
Left = 1
Height = 204
Top = 1
Width = 391
Align = alLeft
OnCloseTabClicked = NoteBookCloseTabClicked
Options = [nboShowCloseButtons]
TabOrder = 0
end
object MainSplitter: TSplitter
Left = 392
Left = 171
Height = 204
Top = 1
Width = 4
ResizeStyle = rsLine
end
object nbRight: TNotebook
Left = 396
object pnlLeft: TPanel
Left = 1
Height = 204
Top = 1
Width = 128
Width = 170
Align = alLeft
BevelOuter = bvNone
Caption = 'pnlLeft'
ClientHeight = 204
ClientWidth = 170
TabOrder = 0
object nbLeft: TNotebook
Height = 180
Hint = 'Left'
Top = 24
Width = 170
Align = alClient
OnCloseTabClicked = NoteBookCloseTabClicked
OnPageChanged = nbPageChanged
Options = [nboShowCloseButtons]
TabOrder = 0
end
object pnlLeftTools: TPanel
Height = 24
Width = 170
Align = alTop
BevelOuter = bvNone
ClientHeight = 24
ClientWidth = 170
TabOrder = 1
object btnLeftDrive: TSpeedButton
Height = 24
Width = 48
Action = actLeftOpenDrives
Align = alLeft
Color = clBtnFace
NumGlyphs = 0
end
object btnLeftHome: TSpeedButton
Left = 147
Height = 24
Width = 23
Align = alRight
Caption = '~'
Color = clBtnFace
NumGlyphs = 0
OnClick = btnLeftClick
end
object btnLeftUp: TSpeedButton
Left = 124
Height = 24
Width = 23
Align = alRight
Caption = '..'
Color = clBtnFace
NumGlyphs = 0
OnClick = btnLeftClick
end
object btnLeftRoot: TSpeedButton
Left = 101
Height = 24
Width = 23
Align = alRight
Caption = '/'
Color = clBtnFace
NumGlyphs = 0
OnClick = btnLeftClick
end
object lblLeftDriveInfo: TLabel
Left = 48
Height = 24
Width = 53
Align = alClient
Alignment = taCenter
ParentColor = False
end
end
end
object pnlRight: TPanel
Left = 175
Height = 204
Top = 1
Width = 349
Align = alClient
OnCloseTabClicked = NoteBookCloseTabClicked
Options = [nboShowCloseButtons]
BevelOuter = bvNone
Caption = 'pnlRight'
ClientHeight = 204
ClientWidth = 349
TabOrder = 1
object nbRight: TNotebook
Height = 180
Hint = 'Right'
Top = 24
Width = 349
Align = alClient
OnCloseTabClicked = NoteBookCloseTabClicked
OnPageChanged = nbPageChanged
Options = [nboShowCloseButtons]
TabOrder = 0
end
object pnlRightTools: TPanel
Height = 24
Width = 349
Align = alTop
BevelOuter = bvNone
ClientHeight = 24
ClientWidth = 349
TabOrder = 1
object btnRightDrive: TSpeedButton
Height = 24
Width = 48
Action = actRightOpenDrives
Align = alLeft
Color = clBtnFace
NumGlyphs = 0
end
object btnRightHome: TSpeedButton
Left = 326
Height = 24
Width = 23
Align = alRight
Caption = '~'
Color = clBtnFace
NumGlyphs = 0
OnClick = btnRightClick
end
object btnRightUp: TSpeedButton
Left = 303
Height = 24
Width = 23
Align = alRight
Caption = '..'
Color = clBtnFace
NumGlyphs = 0
OnClick = btnRightClick
end
object btnRightRoot: TSpeedButton
Left = 280
Height = 24
Width = 23
Align = alRight
Caption = '/'
Color = clBtnFace
NumGlyphs = 0
OnClick = btnRightClick
end
object lblRightDriveInfo: TLabel
Left = 48
Height = 24
Width = 232
Align = alClient
Alignment = taCenter
ParentColor = False
end
end
end
end
object MainToolBar: TKAStoolBar
@ -439,8 +575,8 @@ inherited frmMain: TfrmMain
end
end
object actionLst: TActionList
left = 289
top = 64
left = 312
top = 8
object actExit: TAction
Category = 'File'
Caption = 'Exit'
@ -789,6 +925,18 @@ inherited frmMain: TfrmMain
DisableIfNoHandler = True
OnExecute = actOpenVFSListExecute
end
object actLeftOpenDrives: TAction
Category = 'Commands'
DisableIfNoHandler = True
OnExecute = actLeftOpenDrivesExecute
ShortCut = 32880
end
object actRightOpenDrives: TAction
Category = 'Commands'
DisableIfNoHandler = True
OnExecute = actRightOpenDrivesExecute
ShortCut = 32881
end
end
object pmHotList: TPopupMenu
left = 152
@ -818,4 +966,8 @@ inherited frmMain: TfrmMain
OnClick = DeleteClick
end
end
object pmDrivesMenu: TPopupMenu
left = 80
top = 136
end
end

355
fmain.pas
View file

@ -55,23 +55,40 @@ type
actChMod: TAction;
actChown: TAction;
actExtractFiles: TAction;
actRightOpenDrives: TAction;
actLeftOpenDrives: TAction;
actOpenVFSList: TAction;
actPackFiles: TAction;
actRemoveTab: TAction;
actNewTab: TAction;
dskLeft: TKAStoolBar;
dskRight: TKAStoolBar;
lblRightDriveInfo: TLabel;
lblLeftDriveInfo: TLabel;
MainToolBar: TKASToolBar;
MenuItem1: TMenuItem;
mnuExtractFiles: TMenuItem;
nbLeft: TNotebook;
nbRight: TNotebook;
pnlLeftTools: TPanel;
pnlRightTools: TPanel;
pnlRight: TPanel;
pnlLeft: TPanel;
pnlDisk: TPanel;
btnLeftDrive: TSpeedButton;
btnLeftHome: TSpeedButton;
btnLeftUp: TSpeedButton;
btnLeftRoot: TSpeedButton;
btnRightDrive: TSpeedButton;
btnRightHome: TSpeedButton;
btnRightUp: TSpeedButton;
btnRightRoot: TSpeedButton;
pmDrivesMenu: TPopupMenu;
tbDelete: TMenuItem;
tbEdit: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
mnuMain: TMainMenu;
nbLeft: TNotebook;
nbRight: TNotebook;
pnlNotebooks: TPanel;
pnlSyncSize: TPanel;
pnlCommand: TPanel;
@ -179,17 +196,20 @@ type
pmToolBar: TPopupMenu;
MainSplitter: TSplitter;
procedure actExtractFilesExecute(Sender: TObject);
procedure actLeftOpenDrivesExecute(Sender: TObject);
procedure actOpenVFSListExecute(Sender: TObject);
procedure actPackFilesExecute(Sender: TObject);
procedure actRightOpenDrivesExecute(Sender: TObject);
procedure btnLeftClick(Sender: TObject);
procedure btnRightClick(Sender: TObject);
procedure DeleteClick(Sender: TObject);
procedure dskRightChangeLineCount(AddSize: Integer);
procedure dskLeftToolButtonClick(NumberOfButton: Integer);
procedure dskRightToolButtonClick(NumberOfButton: Integer);
procedure dskToolButtonClick(Sender: TObject; NumberOfButton: Integer);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure MainToolBarMouseDown(Sender: TOBject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure MainToolBarToolButtonClick(NumberOfButton : Integer);
procedure MainToolBarToolButtonClick(Sender: TObject; NumberOfButton : Integer);
procedure actExitExecute(Sender: TObject);
procedure actNewTabExecute(Sender: TObject);
procedure actRemoveTabExecute(Sender: TObject);
@ -197,6 +217,7 @@ type
procedure frmMainKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure frmMainShow(Sender: TObject);
procedure mnuHelpClick(Sender: TObject);
procedure nbPageChanged(Sender: TObject);
procedure NotebookCloseTabClicked(Sender: TObject);
procedure pnlKeysResize(Sender: TObject);
procedure actViewExecute(Sender: TObject);
@ -264,6 +285,7 @@ type
{ Private declarations }
PanelSelected:TFilePanelSelect;
bAltPress:Boolean;
DrivesList : TList;
IsPanelsCreated : Boolean;
function ExecuteCommandFromEdit(sCmd:String):Boolean;
@ -295,6 +317,8 @@ type
procedure SetNotActFrmByActFrm;
procedure SetActiveFrame(panel: TFilePanelSelect);
procedure UpdateDiskCount;
procedure CreateDrivesMenu;
procedure DrivesMenuClick(Sender: TObject);
procedure CreateDiskPanel(dskPanel : TKASToolBar);
procedure CreatePanel(AOwner:TWinControl; APanel:TFilePanelSelect; sPath : String);
function AddPage(ANoteBook:TNoteBook):TPage;
@ -356,6 +380,49 @@ begin
end;
procedure TfrmMain.actRightOpenDrivesExecute(Sender: TObject);
var
p : TPoint;
begin
pmDrivesMenu.Tag := 1; // indicate that is right panel menu
p := Classes.Point(btnRightDrive.Left,btnRightDrive.Height);
p := pnlRightTools.ClientToScreen(p);
pmDrivesMenu.Items[dskRight.Tag].Checked := True;
pmDrivesMenu.PopUp(p.x, p.y);
end;
procedure TfrmMain.btnLeftClick(Sender: TObject);
begin
with Sender as TSpeedButton do
begin
if Caption = '/' then
FrameLeft.pnlFile.ActiveDir := ExtractFileDrive(FrameLeft.pnlFile.ActiveDir);
if Caption = '..' then
FrameLeft.pnlFile.cdUpLevel;
if Caption = '~' then
FrameLeft.pnlFile.ActiveDir := GetHomeDir;
end;
FrameLeft.pnlFile.LoadPanel;
SetActiveFrame(fpLeft);
end;
procedure TfrmMain.btnRightClick(Sender: TObject);
begin
with Sender as TSpeedButton do
begin
if Caption = '/' then
FrameRight.pnlFile.ActiveDir := ExtractFileDrive(FrameRight.pnlFile.ActiveDir);
if Caption = '..' then
FrameRight.pnlFile.cdUpLevel;
if Caption = '~' then
FrameRight.pnlFile.ActiveDir := GetHomeDir;
end;
FrameRight.pnlFile.LoadPanel;
SetActiveFrame(fpRight);
end;
procedure TfrmMain.actExtractFilesExecute(Sender: TObject);
var
fl : TFileList;
@ -377,6 +444,17 @@ begin
end;
procedure TfrmMain.actLeftOpenDrivesExecute(Sender: TObject);
var
p : TPoint;
begin
pmDrivesMenu.Tag := 0; // indicate that is left panel menu
p := Classes.Point(btnLeftDrive.Left,btnLeftDrive.Height);
p := pnlLeftTools.ClientToScreen(p);
pmDrivesMenu.Items[dskLeft.Tag].Checked := True;
pmDrivesMenu.PopUp(p.x, p.y);
end;
procedure TfrmMain.actOpenVFSListExecute(Sender: TObject);
begin
ActiveFrame.pnlFile.LoadVFSListInPanel;
@ -408,68 +486,60 @@ begin
pnlSyncSize.Height := pnlSyncSize.Height + AddSize;
end;
procedure TfrmMain.dskLeftToolButtonClick(NumberOfButton: Integer);
procedure TfrmMain.dskToolButtonClick(Sender: TObject; NumberOfButton: Integer);
var
Command : String;
dskPanel : TKASToolBar;
FrameFilePanel : TFrameFilePanel;
btnDrive : TSpeedButton;
begin
if dskLeft.Buttons[NumberOfButton].GroupIndex = 0 then
begin
Command := dskLeft.Commands[NumberOfButton];
if Command = '/' then
FrameLeft.pnlFile.ActiveDir := ExtractFileDrive(FrameLeft.pnlFile.ActiveDir);
if Command = '..' then
FrameLeft.pnlFile.cdUpLevel;
if Command = '~' then
FrameLeft.pnlFile.ActiveDir := GetHomeDir;
end
dskPanel := (Sender as TKASToolBar);
if (dskPanel.Align = alLeft) or (not gDriveBar2 and (PanelSelected = fpLeft)) then
begin
FrameFilePanel := FrameLeft;
btnDrive := btnLeftDrive;
PanelSelected := fpLeft;
end
else
begin
if IsAvailable(dskLeft.Commands[NumberOfButton]) then
begin
FrameLeft.pnlFile.ActiveDir := dskLeft.Commands[NumberOfButton];
dskLeft.Tag := NumberOfButton;
end
else
begin
dskLeft.Buttons[dskLeft.Tag].Down := True;
msgOK(lngGetString(clngMsgDiskNotAvail));
end;
end;
FrameLeft.pnlFile.LoadPanel;
begin
FrameFilePanel := FrameRight;
btnDrive := btnRightDrive;
PanelSelected := fpRight;
end;
SetActiveFrame(fpLeft);
end;
procedure TfrmMain.dskRightToolButtonClick(NumberOfButton: Integer);
var
Command : String;
begin
if dskRight.Buttons[NumberOfButton].GroupIndex = 0 then
if dskPanel.Buttons[NumberOfButton].GroupIndex = 0 then
begin
Command := dskRight.Commands[NumberOfButton];
Command := dskPanel.Commands[NumberOfButton];
if Command = '/' then
FrameRight.pnlFile.ActiveDir := ExtractFileDrive(FrameRight.pnlFile.ActiveDir);
FrameFilePanel.pnlFile.ActiveDir := ExtractFileDrive(FrameFilePanel.pnlFile.ActiveDir);
if Command = '..' then
FrameRight.pnlFile.cdUpLevel;
FrameFilePanel.pnlFile.cdUpLevel;
if Command = '~' then
FrameRight.pnlFile.ActiveDir := GetHomeDir;
FrameFilePanel.pnlFile.ActiveDir := GetHomeDir;
end
else
begin
if IsAvailable(dskRight.Commands[NumberOfButton]) then
if IsAvailable(dskPanel.Commands[NumberOfButton]) then
begin
FrameRight.pnlFile.ActiveDir := dskRight.Commands[NumberOfButton];
dskRight.Tag := NumberOfButton;
FrameFilePanel.pnlFile.ActiveDir := dskPanel.Commands[NumberOfButton];
dskPanel.Tag := NumberOfButton;
if gDriveMenuButton then // if show drive button
begin
btnDrive.Glyph := dskRight.Buttons[NumberOfButton].Glyph;
btnDrive.Caption := dskRight.Buttons[NumberOfButton].Caption;
end;
end
else
begin
dskRight.Buttons[dskRight.Tag].Down := True;
dskPanel.Buttons[dskPanel.Tag].Down := True;
msgOK(lngGetString(clngMsgDiskNotAvail));
end;
end;
FrameRight.pnlFile.LoadPanel;
FrameFilePanel.pnlFile.LoadPanel;
SetActiveFrame(fpRight);
SetActiveFrame(PanelSelected);
end;
@ -483,20 +553,20 @@ if (Button = mbRight) then
Point := Mouse.CursorPos;
if (Sender is TSpeedButton) then
begin
pmToolBar.Tag := (Sender as TSpeedButton).Tag;
tbDelete.Enabled := true;
pmToolBar.Tag := (Sender as TSpeedButton).Tag;
tbDelete.Enabled := true;
end
else
begin
pmToolBar.Tag := -1;
tbDelete.Enabled := false;
pmToolBar.Tag := -1;
tbDelete.Enabled := false;
end;
pmToolBar.PopUp(Point.X, Point.Y);
end;
end;
procedure TfrmMain.MainToolBarToolButtonClick(NumberOfButton : Integer);
procedure TfrmMain.MainToolBarToolButtonClick(Sender: TObject; NumberOfButton : Integer);
begin
ExecCmd(MainToolBar.Commands[NumberOfButton]);
DebugLn(MainToolBar.Commands[NumberOfButton]);
@ -587,10 +657,20 @@ begin
//DebugLN('dskLeft.Width == ' + IntToStr(dskLeft.Width));
//DebugLN('dskRight.Width == ' + IntToStr(dskRight.Width));
DrivesList := GetAllDrives;
CreateDrivesMenu;
(*Create Disk Panels*)
CreateDiskPanel(dskLeft);
CreateDiskPanel(dskRight);
dskLeft.Visible := gDriveBar2;
if gDriveBar2 then
CreateDiskPanel(dskLeft);
dskRight.Visible := gDriveBar1;
if gDriveBar1 then
CreateDiskPanel(dskRight);
pnlSyncSize.Visible := gDriveBar1;
(*/Create Disk Panels*)
(*Tool Bar*)
@ -601,6 +681,15 @@ begin
LoadShortCuts;
{Load some options from layout page}
MainToolBar.Visible := gButtonBar;
btnLeftDrive.Visible := gDriveMenuButton;
btnRightDrive.Visible := gDriveMenuButton;
pnlCommand.Visible := gCmdLine;
pnlKeys.Visible := gKeyButtons;
nbLeft.ShowTabs := gDirectoryTabs;
nbRight.ShowTabs := gDirectoryTabs;
IsPanelsCreated := True;
end;
@ -609,6 +698,17 @@ begin
end;
procedure TfrmMain.nbPageChanged(Sender: TObject);
begin
with Sender as TNoteBook do
begin
if (Hint = 'Left') and (FrameLeft <> nil) then
FrameLeft.pnlFile.UpdatePrompt;
if (Hint = 'Right') and (FrameRight <> nil) then
FrameRight.pnlFile.UpdatePrompt;
end;
end;
procedure TfrmMain.NoteBookCloseTabClicked(Sender: TObject);
begin
With (Sender As TPage) do
@ -845,7 +945,7 @@ end;
procedure TfrmMain.FormResize(Sender: TObject);
begin
nbLeft.Width:= (frmMain.Width div 2) - (MainSplitter.Width div 2);
pnlLeft.Width:= (frmMain.Width div 2) - (MainSplitter.Width div 2);
//DebugLN('pnlDisk.Width == ' + IntToStr(pnlDisk.Width));
@ -2191,6 +2291,10 @@ end;
procedure TfrmMain.UpdateDiskCount;
begin
DrivesList.Clear;
DrivesList := GetAllDrives;
if gDriveMenuButton then
CreateDrivesMenu;
// delete all disk buttons
dskRight.DeleteAllToolButtons;
dskLeft.DeleteAllToolButtons;
@ -2199,20 +2303,112 @@ begin
CreateDiskPanel(dskRight);
end;
procedure TfrmMain.CreateDrivesMenu;
var
I, Count : Integer;
Drive : PDrive;
miTmp : TMenuItem;
begin
pmDrivesMenu.Items.Clear;
Count := DrivesList.Count - 1;
for I := 0 to Count do
begin
Drive := PDrive(DrivesList.Items[I]);
with Drive^ do
begin
miTmp := TMenuItem.Create(pmDrivesMenu);
miTmp.Tag := I;
miTmp.Caption := Name;
miTmp.Hint := Path;
if gDriveMenuButton then
begin
if Pos(Path, FrameLeft.pnlFile.ActiveDir) = 1 then
begin
btnLeftDrive.Glyph := PixMapManager.GetStretchBitmap(DriveIcon, btnLeftDrive.Color, btnLeftDrive.Height - 4);
btnLeftDrive.Caption := Name;
dskLeft.Tag := I;
end;
if Pos(Path, FrameRight.pnlFile.ActiveDir) = 1 then
begin
btnRightDrive.Glyph := PixMapManager.GetStretchBitmap(DriveIcon, btnRightDrive.Color, btnRightDrive.Height - 4);
btnRightDrive.Caption := Name;
dskRight.Tag := I;
end;
end;
// get disk icon
if gIconsSize > 16 then
miTmp.Bitmap := PixMapManager.GetStretchBitmap(DriveIcon, clMenu, 16)
else
miTmp.Bitmap := PixMapManager.GetBitmap(DriveIcon, clMenu);
miTmp.RadioItem := True;
miTmp.AutoCheck := True;
miTmp.GroupIndex := 1;
miTmp.OnClick := @DrivesMenuClick;
pmDrivesMenu.Items.Add(miTmp);
end; // with
end; // for
end;
procedure TfrmMain.DrivesMenuClick(Sender: TObject);
var
iIconIndex : Integer;
begin
with Sender as TMenuItem do
begin
if IsAvailable(Hint) then
begin
case pmDrivesMenu.Tag of
0:
begin
FrameLeft.pnlFile.ActiveDir := Hint;
if gDriveBar2 then
dskLeft.Buttons[Tag].Down := True;
dskLeft.Tag := Tag;
FrameLeft.pnlFile.LoadPanel;
SetActiveFrame(fpLeft);
iIconIndex := PDrive(DrivesList[Tag])^.DriveIcon;
btnLeftDrive.Glyph := PixMapManager.GetStretchBitmap(iIconIndex, btnLeftDrive.Color, btnLeftDrive.Height - 4);
btnLeftDrive.Caption := Caption;
end;
1:
begin
FrameRight.pnlFile.ActiveDir := Hint;
if gDriveBar1 then
dskRight.Buttons[Tag].Down := True;
dskRight.Tag := Tag;
FrameRight.pnlFile.LoadPanel;
SetActiveFrame(fpRight);
iIconIndex := PDrive(DrivesList[Tag])^.DriveIcon;
btnRightDrive.Glyph := PixMapManager.GetStretchBitmap(iIconIndex, btnRightDrive.Color, btnRightDrive.Height - 4);
btnRightDrive.Caption := Caption;
end;
end; // case
end
else
begin
pmDrivesMenu.Items[dskLeft.Tag].Checked := True;
msgOK(lngGetString(clngMsgDiskNotAvail));
end;
end;
end;
procedure TfrmMain.CreateDiskPanel(dskPanel: TKASToolBar);
var
Drives : TList;
I, Count, btnIndex : Integer;
Drive : PDrive;
ButtonIcon : TBitMap;
begin
//dskPanel.InitBounds; // Update information
Drives := GetAllDrives;
Count := Drives.Count - 1;
dskPanel.FlatButtons := gDriveBarFlat;
Count := DrivesList.Count - 1;
for I := 0 to Count do
begin
Drive := PDrive(Drives.Items[I]);
Drive := PDrive(DrivesList.Items[I]);
with Drive^ do
begin
dskPanel.AddButton(Name, Path, Path, '');
@ -2235,24 +2431,12 @@ begin
end;
{/Set chosen drive}
//**********************************
// get drive icon
if gIconsSize > 16 then
begin
ButtonIcon:= TBitMap.Create;
with ButtonIcon do
begin
Width:=dskPanel.Buttons[I].Height;
Height:=Width;
Canvas.Brush.Color := dskPanel.Buttons[I].Color;
Canvas.FillRect(Canvas.ClipRect);
Canvas.StretchDraw(Canvas.ClipRect,PixMapManager.GetBitmap(DriveIcon, dskPanel.Buttons[I].Color));
dskPanel.Buttons[I].Glyph := ButtonIcon;
end;
end
dskPanel.Buttons[I].Glyph := PixMapManager.GetStretchBitmap(DriveIcon, dskPanel.Buttons[I].Color, dskPanel.Buttons[I].Height - 4)
else
//**********************************
dskPanel.Buttons[I].Glyph := PixMapManager.GetBitmap(DriveIcon, dskPanel.Buttons[I].Color);
dskPanel.Buttons[I].Glyph := PixMapManager.GetBitmap(DriveIcon, dskPanel.Buttons[I].Color);
{Set Buttons Transparent. Is need? }
dskPanel.Buttons[I].Glyph.Transparent := True;
dskPanel.Buttons[I].Transparent := True;
@ -2274,8 +2458,17 @@ begin
end;
procedure TfrmMain.CreatePanel(AOwner: TWinControl; APanel:TFilePanelSelect; sPath : String);
var
lblDriveInfo : TLabel;
begin
with TFrameFilePanel.Create(AOwner, lblCommandPath, edtCommand) do
case APanel of
fpLeft:
lblDriveInfo := lblLeftDriveInfo;
fpRight:
lblDriveInfo := lblRightDriveInfo;
end;
with TFrameFilePanel.Create(AOwner, lblDriveInfo, lblCommandPath, edtCommand) do
begin
edtCmdLine:=edtCommand;
PanelSelect:=APanel;
@ -2288,6 +2481,8 @@ begin
pnlFile.LoadPanel;
UpDatelblInfo;
dgPanel.Color := gBackColor;
pnlHeader.Visible := gCurDir;
pnlFooter.Visible := gStatusBar;
lblLPath.OnClick:=@FramelblLPathClick;
lblLPath.OnMouseDown := @FramelblLPathMouseDown;
edtRename.OnExit:=@FrameRightedtRenameExit;
@ -2312,7 +2507,7 @@ begin
ANoteBook.ActivePage:= IntToStr(x);
Result:=ANoteBook.Page[x];
ANoteBook.ShowTabs:= (ANoteBook.PageCount > 1) or Boolean(gDirTabOptions and tb_always_visible);
ANoteBook.ShowTabs:= ((ANoteBook.PageCount > 1) or Boolean(gDirTabOptions and tb_always_visible)) and gDirectoryTabs;
if Boolean(gDirTabOptions and tb_multiple_lines) then
ANoteBook.Options := ANoteBook.Options + [nboMultiLine];
end;
@ -2329,7 +2524,7 @@ begin
end;}
ANoteBook.Pages.Delete(iPageIndex);
end;
ANoteBook.ShowTabs:= (ANoteBook.PageCount > 1) or Boolean(gDirTabOptions and tb_always_visible);
ANoteBook.ShowTabs:= ((ANoteBook.PageCount > 1) or Boolean(gDirTabOptions and tb_always_visible)) and gDirectoryTabs;
end;
procedure TfrmMain.LoadTabs(ANoteBook: TNoteBook);
@ -2342,7 +2537,7 @@ var
sCaption, sActiveCaption : String;
iActiveTab : Integer;
begin
if ANoteBook.Align = alLeft then
if ANoteBook.Hint = 'Left' then
begin
TabsSection := 'lefttabs';
Section := 'left';
@ -2390,7 +2585,7 @@ var
TabsSection, Section : String;
sPath : String;
begin
if ANoteBook.Align = alLeft then
if ANoteBook.Hint = 'Left' then
begin
TabsSection := 'lefttabs';
Section := 'left';

View file

@ -1,16 +1,16 @@
inherited frmOptions: TfrmOptions
Left = 164
Height = 369
Top = 85
Left = 259
Height = 398
Top = 82
Width = 577
HorzScrollBar.Page = 576
VertScrollBar.Page = 368
VertScrollBar.Page = 397
VertScrollBar.Range = 41
ActiveControl = btnOK
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = 'Options'
ClientHeight = 369
ClientHeight = 398
ClientWidth = 577
Icon.Data = {
36030000424D3603000000000000360000002800000010000000100000000100
@ -43,7 +43,7 @@ inherited frmOptions: TfrmOptions
Position = poMainFormCenter
object Panel1: TPanel
Height = 43
Top = 326
Top = 355
Width = 577
Align = alBottom
ClientHeight = 43
@ -77,7 +77,7 @@ inherited frmOptions: TfrmOptions
end
end
object tvTreeView: TTreeView
Height = 326
Height = 355
Width = 121
Align = alLeft
DefaultItemHeight = 16
@ -86,7 +86,7 @@ inherited frmOptions: TfrmOptions
TabOrder = 1
OnChange = tvTreeViewChange
Items.Data = {
F9FFFFFF0100070000000000000000000000FFFFFFFFFFFFFFFF000000000000
F9FFFFFF0100080000000000000000000000FFFFFFFFFFFFFFFF000000000000
00000000000000080000004C616E67756167650100000001000000FFFFFFFFFF
FFFFFF00000000000000000000000000090000004265686176696F7273020000
0002000000FFFFFFFFFFFFFFFF0000000000000000000000000005000000546F
@ -97,31 +97,32 @@ inherited frmOptions: TfrmOptions
07000000FFFFFFFFFFFFFFFF000000000000000000000000000A00000046696C
652074797065730500000005000000FFFFFFFFFFFFFFFF000000000000000000
0000000008000000486F74206B6579730600000006000000FFFFFFFFFFFFFFFF
0000000000000000000000000007000000506C7567696E73
0000000000000000000000000007000000506C7567696E7308000000FFFFFFFF
FFFFFFFFFFFFFFFF00000000000000000000000000060000004C61796F7574
}
end
object Panel3: TPanel
Left = 121
Height = 326
Height = 355
Width = 456
Align = alClient
Caption = 'Panel3'
ClientHeight = 326
ClientHeight = 355
ClientWidth = 456
TabOrder = 2
object nbNotebook: TNotebook
Left = 1
Height = 301
Height = 330
Top = 24
Width = 454
Align = alClient
PageIndex = 7
PageIndex = 8
ShowTabs = False
TabOrder = 0
object pgLng: TPage
Caption = 'pgLng'
ClientWidth = 446
ClientHeight = 300
ClientHeight = 304
object lngList: TListBox
Height = 300
Width = 446
@ -132,7 +133,7 @@ inherited frmOptions: TfrmOptions
object pgBehav: TPage
Caption = 'pgBehav'
ClientWidth = 446
ClientHeight = 300
ClientHeight = 304
object lblTerm: TLabel
Left = 8
Height = 14
@ -170,8 +171,8 @@ inherited frmOptions: TfrmOptions
Height = 164
Top = 66
Width = 202
ClientHeight = 146
ClientWidth = 198
ClientHeight = 164
ClientWidth = 202
ParentCtl3D = False
TabOrder = 2
object cbDirSelect: TCheckBox
@ -225,8 +226,8 @@ inherited frmOptions: TfrmOptions
Height = 162
Top = 66
Width = 188
ClientHeight = 144
ClientWidth = 184
ClientHeight = 162
ClientWidth = 188
TabOrder = 3
object lblIconsSize: TLabel
Left = 6
@ -267,7 +268,7 @@ inherited frmOptions: TfrmOptions
object pgTools: TPage
Caption = 'pgTools'
ClientWidth = 446
ClientHeight = 300
ClientHeight = 304
object cbExtEditor: TCheckBox
Left = 3
Height = 13
@ -326,7 +327,7 @@ inherited frmOptions: TfrmOptions
object pgFonts: TPage
Caption = 'pgFonts'
ClientWidth = 446
ClientHeight = 300
ClientHeight = 304
object lblMainFont: TLabel
Left = 6
Height = 14
@ -487,7 +488,7 @@ inherited frmOptions: TfrmOptions
object pgColor: TPage
Caption = 'pgColor'
ClientWidth = 446
ClientHeight = 300
ClientHeight = 304
object cTextLabel: TLabel
Left = 25
Height = 14
@ -812,8 +813,8 @@ inherited frmOptions: TfrmOptions
Top = 26
Width = 185
Caption = 'Example'
ClientHeight = 154
ClientWidth = 181
ClientHeight = 172
ClientWidth = 185
TabOrder = 12
object pbExample: TPaintBox
Left = 8
@ -827,7 +828,7 @@ inherited frmOptions: TfrmOptions
object pgHotKey: TPage
Caption = 'pgHotKey'
ClientWidth = 446
ClientHeight = 300
ClientHeight = 304
object lblActions: TLabel
Left = 6
Height = 14
@ -892,9 +893,9 @@ inherited frmOptions: TfrmOptions
object pgPlugins: TPage
Caption = 'pgPlugins'
ClientWidth = 446
ClientHeight = 300
ClientHeight = 304
object pcPluginsTypes: TPageControl
Height = 300
Height = 304
Width = 446
ActivePage = tsWCX
Align = alClient
@ -902,8 +903,6 @@ inherited frmOptions: TfrmOptions
TabOrder = 0
object tsWCX: TTabSheet
Caption = 'Packer plugins (.WCX)'
ClientHeight = 274
ClientWidth = 438
OnShow = tsWCXShow
object lblAbout: TLabel
Left = 14
@ -991,7 +990,7 @@ inherited frmOptions: TfrmOptions
object tsWFX: TTabSheet
Caption = 'File system plugins (.WFX)'
ChildSizing.LeftRightSpacing = 239
ClientHeight = 274
ClientHeight = 278
ClientWidth = 438
OnShow = tsWFXShow
object lblInstalledPlugins: TLabel
@ -1055,15 +1054,15 @@ inherited frmOptions: TfrmOptions
object pgFileTypesColors: TPage
Caption = 'pgFileTypesColors'
ClientWidth = 446
ClientHeight = 300
ClientHeight = 304
object gbFileTypesColors: TGroupBox
Left = 10
Height = 274
Top = 2
Width = 425
Caption = 'File types colors'
ClientHeight = 256
ClientWidth = 421
ClientHeight = 274
ClientWidth = 425
TabOrder = 0
object lblCategoryName: TLabel
Left = 45
@ -1188,6 +1187,115 @@ inherited frmOptions: TfrmOptions
end
end
end
object pgLayout: TPage
Caption = 'Layout'
ClientWidth = 446
ClientHeight = 322
object gbScreenLayout: TGroupBox
Left = 11
Height = 292
Top = 4
Width = 389
Caption = ' Screen layout '
ClientHeight = 274
ClientWidth = 385
TabOrder = 0
object cbShowMainToolBar: TCheckBox
Left = 10
Height = 13
Top = 16
Width = 98
Caption = 'Show &button bar'
TabOrder = 0
end
object cbShowDiskPanel: TCheckBox
Left = 10
Height = 13
Top = 38
Width = 111
Caption = 'Show &drive buttons'
OnChange = cbShowDiskPanelChange
TabOrder = 1
end
object cbShowDriveMenuButton: TCheckBox
Left = 10
Height = 13
Top = 96
Width = 135
Caption = 'Show d&rive menu button'
TabOrder = 4
end
object cbShowCurDir: TCheckBox
Left = 10
Height = 13
Top = 140
Width = 126
Caption = 'Show &current directory'
TabOrder = 6
end
object cbShowTabHeader: TCheckBox
Left = 10
Height = 13
Top = 162
Width = 121
Caption = 'Show &tabstop header'
Checked = True
Enabled = False
State = cbChecked
TabOrder = 7
end
object cbShowStatusBar: TCheckBox
Left = 10
Height = 13
Top = 184
Width = 96
Caption = 'Show &status bar'
TabOrder = 8
end
object cbShowCmdLine: TCheckBox
Left = 10
Height = 13
Top = 206
Width = 115
Caption = 'Show command &line'
TabOrder = 9
end
object cbShowKeysPanel: TCheckBox
Left = 10
Height = 13
Top = 228
Width = 146
Caption = 'Show &function key buttons'
TabOrder = 10
end
object cbFlatDiskPanel: TCheckBox
Left = 26
Height = 13
Top = 74
Width = 65
Caption = 'Flat icons'
Enabled = False
TabOrder = 3
end
object cbTwoDiskPanels: TCheckBox
Left = 26
Height = 13
Top = 57
Width = 304
Caption = 'Show two drive button bars (fixed width, above file windows)'
Enabled = False
TabOrder = 2
end
object cbShowTabs: TCheckBox
Left = 10
Height = 13
Top = 118
Width = 99
Caption = 'Sho&w folder tabs'
TabOrder = 5
end
end
end
end
object pnlCaption: TPanel
Left = 1

View file

@ -108,6 +108,18 @@ type
gbExample: TGroupBox;
gbFileTypesColors: TGroupBox;
gbMisc: TGroupBox;
gbScreenLayout: TGroupBox;
cbFlatDiskPanel: TCheckBox;
cbShowMainToolBar: TCheckBox;
cbShowCmdLine: TCheckBox;
cbShowCurDir: TCheckBox;
cbShowDiskPanel: TCheckBox;
cbShowDriveMenuButton: TCheckBox;
cbShowKeysPanel: TCheckBox;
cbShowStatusBar: TCheckBox;
cbShowTabHeader: TCheckBox;
cbShowTabs: TCheckBox;
cbTwoDiskPanels: TCheckBox;
ilTreeView: TImageList;
lblIconsSize: TLabel;
lblInstalledPlugins: TLabel;
@ -137,6 +149,7 @@ type
pcPluginsTypes: TPageControl;
pcPluginsType: TPageControl;
pgFileTypesColors: TPage;
pgLayout: TPage;
pgPlugins: TPage;
pnlCaption: TPanel;
Panel3: TPanel;
@ -172,6 +185,7 @@ type
procedure cbCategoryColorChange(Sender: TObject);
procedure cbColorBoxChange(Sender: TObject);
procedure cbExtChange(Sender: TObject);
procedure cbShowDiskPanelChange(Sender: TObject);
procedure clbWCXListClick(Sender: TObject);
procedure cbTextColorChange(Sender: TObject);
procedure cbColorBoxDropDown(Sender: TObject);
@ -301,6 +315,12 @@ begin
clbWCXList.ItemIndex := cbExt.ItemIndex;
end;
procedure TfrmOptions.cbShowDiskPanelChange(Sender: TObject);
begin
cbTwoDiskPanels.Enabled := cbShowDiskPanel.Checked;
cbFlatDiskPanel.Enabled := cbShowDiskPanel.Checked;
end;
procedure TfrmOptions.clbWCXListClick(Sender: TObject);
begin
cbWCXPath.Text := clbWCXList.Items[clbWCXList.ItemIndex];
@ -353,6 +373,20 @@ begin
cbExtDiffer.Caption:=lngGetString(clngDlgOptExtDiff);
cbSeparateExt.Caption:=lngGetString(clngDlgOptSeparateExt);
{Layout page}
cbShowMainToolBar.Checked := gButtonBar;
cbShowDiskPanel.Checked := gDriveBar1;
cbTwoDiskPanels.Checked := gDriveBar2;
cbFlatDiskPanel.Checked := gDriveBarFlat;
cbShowDriveMenuButton.Checked := gDriveMenuButton;
cbShowTabs.Checked := gDirectoryTabs;
cbShowCurDir.Checked := gCurDir;
cbShowTabHeader.Checked := gTabHeader;
cbShowStatusBar.Checked := gStatusBar;
cbShowCmdLine.Checked := gCmdLine;
cbShowKeysPanel.Checked := gKeyButtons;
cbDirSelect.Checked:=gDirSelect;
cbCaseSensitiveSort.Checked:=gCaseSensitiveSort;
cbLynxLike.Checked:=gLynxLike;
@ -430,6 +464,21 @@ end;
procedure TfrmOptions.btnOKClick(Sender: TObject);
begin
inherited;
{Layout page}
gButtonBar := cbShowMainToolBar.Checked;
gDriveBar1 := cbShowDiskPanel.Checked;
gDriveBar2 := cbTwoDiskPanels.Checked;
gDriveBarFlat := cbFlatDiskPanel.Checked;
gDriveMenuButton := cbShowDriveMenuButton.Checked;
gDirectoryTabs := cbShowTabs.Checked;
gCurDir := cbShowCurDir.Checked;
gTabHeader := cbShowTabHeader.Checked;
gStatusBar := cbShowStatusBar.Checked;
gCmdLine := cbShowCmdLine.Checked;
gKeyButtons := cbShowKeysPanel.Checked;
// gInterfaceFlat :=
gTerm:=edtTerm.Text;
if lngList.ItemIndex>-1 then
gLng:=lngList.Items[lngList.ItemIndex];

View file

@ -35,7 +35,6 @@ type
lblLInfo: TLabel;
pnlHeader: TPanel;
lblLPath: TLabel;
lblFree: TLabel;
edtRename: TEdit;
dgPanel: TDrawGrid;
pnAltSearch: TPanel;
@ -73,7 +72,7 @@ type
pnlFile:TFilePanel;
edtCmdLine:TComboBox;
PanelSelect:TFilePanelSelect;
constructor Create(AOwner :TWinControl; lblCommandPath:TLabel; cmbCommand:TComboBox);
constructor Create(AOwner :TWinControl; lblDriveInfo : TLabel; lblCommandPath:TLabel; cmbCommand:TComboBox);
destructor Destroy; override;
procedure LoadPanel;
procedure SetFocus;
@ -660,7 +659,7 @@ end;
constructor TFrameFilePanel.Create(AOwner : TWinControl; lblCommandPath:TLabel; cmbCommand:TComboBox);
constructor TFrameFilePanel.Create(AOwner : TWinControl; lblDriveInfo : TLabel; lblCommandPath:TLabel; cmbCommand:TComboBox);
var
x:Integer;
begin
@ -672,7 +671,7 @@ begin
pnlHeader:=TPanel.Create(Self);
pnlHeader.Parent:=Self;
pnlHeader.Height:=41;
pnlHeader.Height:=24;
pnlHeader.Align:=alTop;
// pnlHeader.Width:=AOwner.Width;
@ -682,14 +681,9 @@ begin
// pnlHeader.Color:=clRed;
lblFree:=TLabel.Create(pnlHeader);
lblFree.Parent:=pnlHeader;
lblFree.Width:=pnlHeader.Width*2 div 3;
// lblFree.AutoSize:=True;
lblLPath:=TLabel.Create(pnlHeader);
lblLPath.Parent:=pnlHeader;
lblLPath.Top:=19;
lblLPath.Top := 2;
lblLPath.AutoSize:=False;
lblLPath.Width:=pnlHeader.Width - 4;
lblLPath.Color:=clActiveCaption;
@ -773,7 +767,7 @@ begin
lblLPath.OnMouseLeave:=@lblLPathMouseLeave;
pnlFile:=TFilePanel.Create(AOwner, dgPanel,lblLPath,lblCommandPath, lblFree, cmbCommand);
pnlFile:=TFilePanel.Create(AOwner, dgPanel,lblLPath,lblCommandPath, lblDriveInfo, cmbCommand);
// setup column widths
for x:=0 to 4 do

View file

@ -32,6 +32,20 @@ type
end;
var
{Layout page}
gButtonBar,
gDriveBar1,
gDriveBar2,
gDriveBarFlat,
gDriveMenuButton,
gDirectoryTabs,
gCurDir,
gTabHeader,
gStatusBar,
gCmdLine,
gKeyButtons,
gInterfaceFlat : Boolean;
gDirSortFirst:Boolean=True; // want to show dir first in panels
gDirHistoryCount:Integer=30; // how many history we remember
gShowSystemFiles:Boolean=True;
@ -49,6 +63,8 @@ var
gSeparateExt:Boolean=False; // draw filename and extension separate
gDropReadOnlyFlag : Boolean = True;
{Tools page}
gUseExtEdit:Boolean=False;
gUseExtView:Boolean=False;
gUseExtDiff:Boolean=False;
@ -70,6 +86,8 @@ var
gViewerPos:TControlPosition;
gEditorPos:TControlPosition;
{File panels color page}
gBackColor, //Background color
gBackColor2, //Background color 2
gForeColor, //text color
@ -188,6 +206,22 @@ begin
Result := False;
writeln('Loading configuration...');
InitGlobs;
{Layout page}
gButtonBar := gIni.ReadBool('Layout', 'ButtonBar', True);
gDriveBar1 := gIni.ReadBool('Layout', 'DriveBar1', True);
gDriveBar2 := gIni.ReadBool('Layout', 'DriveBar2', True);
gDriveBarFlat := gIni.ReadBool('Layout', 'DriveBarFlat', True);
gDriveMenuButton := gIni.ReadBool('Layout', 'DriveMenuButton', True);
gDirectoryTabs := gIni.ReadBool('Layout', 'DirectoryTabs', True);
gCurDir := gIni.ReadBool('Layout', 'CurDir', True);
gTabHeader := gIni.ReadBool('Layout', 'TabHeader', True);
gStatusBar := gIni.ReadBool('Layout', 'StatusBar', True);
gCmdLine := gIni.ReadBool('Layout', 'CmdLine', True);
gKeyButtons := gIni.ReadBool('Layout', 'KeyButtons', True);
gInterfaceFlat := gIni.ReadBool('Layout', 'InterfaceFlat', True);
gShowSystemFiles := gIni.ReadBool('Configuration', 'ShowSystemFiles', False);
gLng := gIni.ReadString('Configuration', 'Language', gLng);
gTerm := gIni.ReadString('Configuration', 'Term', gTerm);
@ -290,6 +324,21 @@ var
begin
glsDirHistory.SaveToFile(gpIniDir+'dirhistory.txt');
{Layout page}
gIni.WriteBool('Layout', 'ButtonBar', gButtonBar);
gIni.WriteBool('Layout', 'DriveBar1', gDriveBar1);
gIni.WriteBool('Layout', 'DriveBar2', gDriveBar2);
gIni.WriteBool('Layout', 'DriveBarFlat', gDriveBarFlat);
gIni.WriteBool('Layout', 'DriveMenuButton', gDriveMenuButton);
gIni.WriteBool('Layout', 'DirectoryTabs', gDirectoryTabs);
gIni.WriteBool('Layout', 'CurDir', gCurDir);
gIni.WriteBool('Layout', 'TabHeader', gTabHeader);
gIni.WriteBool('Layout', 'StatusBar', gStatusBar);
gIni.WriteBool('Layout', 'CmdLine', gCmdLine);
gIni.WriteBool('Layout', 'KeyButtons', gKeyButtons);
gIni.WriteBool('Layout', 'InterfaceFlat', gInterfaceFlat);
gIni.WriteBool('Configuration', 'ShowSystemFiles', gShowSystemFiles);
gIni.WriteString('Configuration', 'Language', gLng);
gIni.WriteString('Configuration', 'Term', gTerm);

View file

@ -63,6 +63,7 @@ type
destructor Destroy; override;
procedure Load(const sFileName:String);
function GetBitmap(iIndex:Integer; BkColor : TColor):TBitmap;
function GetStretchBitmap(iIndex: Integer; BkColor : TColor; iSize : Integer): TBitmap;
function DrawBitmap(iIndex: Integer; Canvas : TCanvas; Rect : TRect) : Boolean;
Function GetIconByFile(fi:PFileRecItem; PanelMode: TPanelMode):Integer;
end;
@ -223,6 +224,10 @@ begin
end;
function TPixMapManager.GetBitmap(iIndex: Integer; BkColor : TColor): Graphics.TBitmap;
{$IFDEF MSWINDOWS}
var
memstream: TMemoryStream;
{$ENDIF}
begin
if iIndex<FimgList.Count then
Result:=Graphics.TBitmap(FimgList.Items[iIndex])
@ -243,10 +248,22 @@ begin
end;
try
(*For pseudo transparent*)
ImageList_DrawEx(SysImgList, iIndex - $1000, Result.Canvas.Handle, 0, 0, 0, 0, GetRGBColor(BkColor), clNone, ILD_NORMAL);
(*For pseudo transparent*)
ImageList_DrawEx(SysImgList, iIndex - $1000, Result.Canvas.Handle, 0, 0, 0, 0, GetRGBColor(BkColor), clNone, ILD_NORMAL);
{ For drawing color transparent bitmaps }
memstream := TMemoryStream.create;
try
Result.SaveToStream(memstream);
memstream.position := 0;
Result.LoadFromStream(memstream);
finally
memstream.free;
end;
Result.Transparent := True;
Result.TransparentColor := BkColor;
except
Result:=nil;
Result:=nil;
end;
end;
@ -255,6 +272,21 @@ begin
{$ENDIF}
end;
function TPixMapManager.GetStretchBitmap(iIndex: Integer; BkColor: TColor;
iSize: Integer): Graphics.TBitmap;
begin
Result := Graphics.TBitMap.Create;
with Result do
begin
Width := iSize;
Height := iSize;
Canvas.Brush.Color := BkColor;
Canvas.FillRect(Canvas.ClipRect);
Canvas.StretchDraw(Canvas.ClipRect, GetBitmap(iIndex, BkColor));
end;
end;
function TPixMapManager.DrawBitmap(iIndex: Integer; Canvas: TCanvas; Rect: TRect): Boolean;
begin
@ -303,6 +335,9 @@ begin
Exit;
end;
if FPS_ISDIR(iMode) then
{$IFDEF MSWINDOWS}
if not FileExists(sName + '\desktop.ini') then
{$ENDIF}
begin
Result:=FiDirIconID;
Exit;
@ -312,7 +347,7 @@ begin
Result:=FiLinkIconID;
Exit;
end;
if sExt='' then
if (sExt = '') and (not FPS_ISDIR(iMode)) then
begin
Result:=FiDefaultIconID;
Exit;
@ -350,7 +385,7 @@ begin
//WriteLN('FileInfo.iIcon == ' + IntToStr(FileInfo.iIcon));
if (FExtList.IndexOf(Ext)<0) and (Ext <> 'exe') and (Ext <> 'ico') and (Ext <> 'lnk') then
if (FExtList.IndexOf(Ext)<0) and (Ext <> 'exe') and (Ext <> 'ico') and (Ext <> 'lnk') and (not FPS_ISDIR(iMode)) then
FExtList.AddObject(Ext, TObject(Result));
{$ELSE}
Result:=FiDefaultIconID;