summaryrefslogtreecommitdiff
path: root/UMain.pas
diff options
context:
space:
mode:
Diffstat (limited to 'UMain.pas')
-rw-r--r--UMain.pas532
1 files changed, 210 insertions, 322 deletions
diff --git a/UMain.pas b/UMain.pas
index 359397f..69258e2 100644
--- a/UMain.pas
+++ b/UMain.pas
@@ -22,7 +22,7 @@ unit UMain;
interface
uses
- gtk2, gdk2, gdk2pixbuf, glib2, pango, StrUtils, SysUtils, Types, Classes, DateUtils,
+ gtk2, gdk2, gdk2pixbuf, lazglib2, lazgobject2, pango, StrUtils, SysUtils, Types, Classes, DateUtils,
GTKForms, GTKControls, GTKMenus, GTKStdCtrls, GTKExtCtrls, GTKView, GTKConsts, GTKUtils,
GTKClasses, GTKPixbuf, UEngines, UConfig, UGnome, UVFSCore, UCoreClasses;
@@ -175,7 +175,6 @@ type
function NotebookFindNotebookAtPointerEvent(Sender: TObject; const AbsX, AbsY: integer): TEphyNotebook;
function NotebookMoveTabToAnotherNotebook(Sender: TObject; Destination: TEphyNotebook; const SourceTabNo, DestTabNo: integer): boolean;
procedure NotebookTabFocusOnlyEvent(Sender: TObject; const TabNum: integer);
- procedure miFilePropertiesClick(Sender: TObject);
procedure PasswordButtonClick(Sender: TObject);
procedure miPathBoxCopyPathClick(Sender: TObject);
procedure miCopyNamesClick(Sender: TObject);
@@ -221,22 +220,22 @@ type
procedure EditViewFile(LeftPanel: boolean; AListView: TGTKListView; View, NewFile: boolean);
procedure RunFile(Path: string; Engine: TPanelEngine; CustomAction: integer);
function ActivateCommandLine(Key: word; const ActualPosition: boolean = False): boolean;
- procedure ApplySettings(RebuildListViews, RebuildIcons, Startup: boolean);
+ procedure ApplySettings(RebuildListViews, RebuildIcons, AStartup: boolean);
procedure RefreshBookmarksMenu;
procedure PopupFileMenuPos;
procedure HandleFormFocusIn;
procedure SwitchPanelCtrlLeftRight(LeftPanel, LeftArrowPressed: boolean);
procedure FillMounterBar;
- procedure RebuildListViews(DoRefresh: boolean);
+ procedure RebuildListViews(ADoRefresh: boolean);
procedure FillPluginMenu;
procedure NewTab(LeftPanel, SendSelectedDirToBg: boolean; CustomPath: string = '');
- procedure SwitchTab(TabNo: integer; LeftPanel, SetFocus: boolean);
+ procedure SwitchTab(TabNo: integer; LeftPanel, ASetFocus: boolean);
procedure CloseTab(TabNo: integer; LeftPanel, CloseVFSEngine: boolean);
procedure AddTabs(LeftPanel: boolean; TabList: TStringList; TabSortIDs, TabSortTypes: TList; SetTabActive: integer);
function HandleVFSArchive(LeftPanel: boolean; const FullPath, HighlightItem, TargetPath: string): boolean;
function CloseVFS(LeftPanel, SuppressRefresh: boolean): string;
procedure ShowBookmarkQuick(LeftPanel: boolean);
- procedure SetTabLabel(Notebook: TEphyNotebook; PageIndex: integer; ALabel, Tooltip: string);
+ procedure SetTabLabel(Notebook: TEphyNotebook; PageIndex: integer; ALabel, ATooltip: string);
procedure NewTabInternal(LeftPanel: boolean; _Engine: TPanelEngine; _Path: string; NewTabPosition: integer; SwitchToNewTab: boolean);
procedure CopyFilenamesToClipboard(FullPaths, LeftPanel: boolean);
function HandleRunFromArchive(var APath: string; Engine: TPanelEngine; Command, FileTypeDesc: string; BypassDialog: boolean): boolean;
@@ -263,7 +262,7 @@ uses ULibc,
UCoreUtils, ULocale, UChecksum, UChecksumDruid, USplitFile,
UFileTypeSettings, UFileAssoc, UChmod, UChown, USymlink,
UPreferences, UViewer, UToolTips, UMounterPrefs, UColumns,
- UTestPlugin, UConnectionManager, USearch, UProperties,
+ UTestPlugin, UConnectionManager, USearch,
URunFromVFS, uVFSprototypes, UQuickConnect,
UConnectionProperties, UError;
@@ -309,13 +308,13 @@ begin
ConstructMenu;
InplaceEditTimer := TGTKTimer.Create(Self);
InplaceEditTimer.Enabled := False;
- InplaceEditTimer.OnTimer := InplaceEditTimerTimer;
+ InplaceEditTimer.OnTimer := @InplaceEditTimerTimer;
RebuildListViewsTimer := TGTKTimer.Create(Self);
RebuildListViewsTimer.Enabled := False;
- RebuildListViewsTimer.OnTimer := RebuildListViewsTimerTimer;
+ RebuildListViewsTimer.OnTimer := @RebuildListViewsTimerTimer;
RightMouseSelectPopupTimer := TGTKTimer.Create(Self);
RightMouseSelectPopupTimer.Enabled := False;
- RightMouseSelectPopupTimer.OnTimer := RightMouseSelectPopupTimerTimer;
+ RightMouseSelectPopupTimer.OnTimer := @RightMouseSelectPopupTimerTimer;
MounterBarHandleBox := TGTKHandleBox.Create(Self);
MounterBarHandleBox.SetSizeRequest(10, -1);
MainVBox.AddControlEx(MounterBarHandleBox, False, True, 0);
@@ -344,7 +343,7 @@ begin
OpenTerminalButton.BorderStyle := bsNone;
OpenTerminalButton.CanFocus := False;
OpenTerminalButton.Tooltip := LANGOpenTerminalButton_Tooltip;
- OpenTerminalButton.OnClick := OpenTerminalButtonClick;
+ OpenTerminalButton.OnClick := @OpenTerminalButtonClick;
CommandLineHBox.AddControlEx(CommandLineLabel, False, False, 0);
CommandLineHBox.AddControlEx(CommandLineCombo, True, True, 5);
CommandLineHBox.AddControlEx(TGTKVSeparator.Create(Self), False, False, 2);
@@ -391,13 +390,13 @@ begin
F6Button.Caption := LANGF6Button_Caption;
F7Button.Caption := LANGF7Button_Caption;
F8Button.Caption := LANGF8Button_Caption;
- F2Button.OnClick := F6ButtonClick;
- F3Button.OnClick := F3F4ButtonClick;
- F4Button.OnClick := F3F4ButtonClick;
- F5Button.OnClick := F5ButtonClick;
- F6Button.OnClick := F6ButtonClick;
- F7Button.OnClick := F7ButtonClick;
- F8Button.OnClick := F8ButtonClick;
+ F2Button.OnClick := @F6ButtonClick;
+ F3Button.OnClick := @F3F4ButtonClick;
+ F4Button.OnClick := @F3F4ButtonClick;
+ F5Button.OnClick := @F5ButtonClick;
+ F6Button.OnClick := @F6ButtonClick;
+ F7Button.OnClick := @F7ButtonClick;
+ F8Button.OnClick := @F8ButtonClick;
F2Button.CanFocus := False;
F3Button.CanFocus := False;
F4Button.CanFocus := False;
@@ -405,51 +404,51 @@ begin
F6Button.CanFocus := False;
F7Button.CanFocus := False;
F8Button.CanFocus := False;
- PanelSeparator.OnMouseUp := PanelSeparatorMouseUp;
+ PanelSeparator.OnMouseUp := @PanelSeparatorMouseUp;
// Events
- OnResize := FormResize;
- OnDestroy := FormDestroy;
- OnKeyDown := FormKeyDown;
- OnClose := FormClose;
- g_signal_connect_after(FWidget, 'event-after', G_CALLBACK(@form_event_handler), nil);
- PanelSeparator.OnResize := PanelSeparatorResize;
- LeftListView.OnKeyDown := ListViewKeyDown;
- RightListView.OnKeyDown := ListViewKeyDown;
- LeftListView.OnEnter := ListViewEnter;
- RightListView.OnEnter := ListViewEnter;
- LeftPathLabelEventBox.OnMouseDown := PathLabelMouseDown;
- RightPathLabelEventBox.OnMouseDown := PathLabelMouseDown;
- LeftUpButton.OnClick := PathButtonClick;
- LeftRootButton.OnClick := PathButtonClick;
- LeftHomeButton.OnClick := PathButtonClick;
- RightUpButton.OnClick := PathButtonClick;
- RightRootButton.OnClick := PathButtonClick;
- RightHomeButton.OnClick := PathButtonClick;
- LeftEqualButton.OnClick := miTargetSourceClick;
- RightEqualButton.OnClick := miTargetSourceClick;
- LeftDisconnectButton.OnClick := DisconnectButtonClick;
- RightDisconnectButton.OnClick := DisconnectButtonClick;
- LeftLeaveArchiveButton.OnClick := LeaveArchiveButtonClick;
- RightLeaveArchiveButton.OnClick := LeaveArchiveButtonClick;
- LeftListView.CompareFunc := CompareFunc;
- RightListView.CompareFunc := CompareFunc;
- LeftListView.CellDataFunc := ListViewCellDataFunc;
- RightListView.CellDataFunc := ListViewCellDataFunc;
- LeftListView.OnMouseDown := ListViewMouseDown;
- RightListView.OnMouseDown := ListViewMouseDown;
- LeftListView.OnMouseUp := ListViewMouseUp;
- RightListView.OnMouseUp := ListViewMouseUp;
-{ LeftListView.OnDblClick := ListViewDblClick;
- RightListView.OnDblClick := ListViewDblClick;}
- LeftListView.OnSelectionChanged := ListViewSelectionChanged;
- RightListView.OnSelectionChanged := ListViewSelectionChanged;
- LeftListView.OnMouseMove := ListViewMouseMove;
- RightListView.OnMouseMove := ListViewMouseMove;
- LeftQuickFindEntry.OnEnter := QuickFindEntryEnter;
- RightQuickFindEntry.OnEnter := QuickFindEntryEnter;
- LeftPanelNotebook.OnTabSwitched := TabNotebookSwitchPage;
- RightPanelNotebook.OnTabSwitched := TabNotebookSwitchPage;
+ OnResize := @FormResize;
+ OnDestroy := @FormDestroy;
+ OnKeyDown := @FormKeyDown;
+ OnClose := @FormClose;
+ g_signal_connect_data(PGObject(FWidget), 'event-after', TGCallback(@form_event_handler), nil, nil, [G_CONNECT_AFTER]);
+ PanelSeparator.OnResize := @PanelSeparatorResize;
+ LeftListView.OnKeyDown := @ListViewKeyDown;
+ RightListView.OnKeyDown := @ListViewKeyDown;
+ LeftListView.OnEnter := @ListViewEnter;
+ RightListView.OnEnter := @ListViewEnter;
+ LeftPathLabelEventBox.OnMouseDown := @PathLabelMouseDown;
+ RightPathLabelEventBox.OnMouseDown := @PathLabelMouseDown;
+ LeftUpButton.OnClick := @PathButtonClick;
+ LeftRootButton.OnClick := @PathButtonClick;
+ LeftHomeButton.OnClick := @PathButtonClick;
+ RightUpButton.OnClick := @PathButtonClick;
+ RightRootButton.OnClick := @PathButtonClick;
+ RightHomeButton.OnClick := @PathButtonClick;
+ LeftEqualButton.OnClick := @miTargetSourceClick;
+ RightEqualButton.OnClick := @miTargetSourceClick;
+ LeftDisconnectButton.OnClick := @DisconnectButtonClick;
+ RightDisconnectButton.OnClick := @DisconnectButtonClick;
+ LeftLeaveArchiveButton.OnClick := @LeaveArchiveButtonClick;
+ RightLeaveArchiveButton.OnClick := @LeaveArchiveButtonClick;
+ LeftListView.CompareFunc := @CompareFunc;
+ RightListView.CompareFunc := @CompareFunc;
+ LeftListView.CellDataFunc := @ListViewCellDataFunc;
+ RightListView.CellDataFunc := @ListViewCellDataFunc;
+ LeftListView.OnMouseDown := @ListViewMouseDown;
+ RightListView.OnMouseDown := @ListViewMouseDown;
+ LeftListView.OnMouseUp := @ListViewMouseUp;
+ RightListView.OnMouseUp := @ListViewMouseUp;
+{ LeftListView.OnDblClick := @ListViewDblClick;
+ RightListView.OnDblClick := @ListViewDblClick;}
+ LeftListView.OnSelectionChanged := @ListViewSelectionChanged;
+ RightListView.OnSelectionChanged := @ListViewSelectionChanged;
+ LeftListView.OnMouseMove := @ListViewMouseMove;
+ RightListView.OnMouseMove := @ListViewMouseMove;
+ LeftQuickFindEntry.OnEnter := @QuickFindEntryEnter;
+ RightQuickFindEntry.OnEnter := @QuickFindEntryEnter;
+ LeftPanelNotebook.OnTabSwitched := @TabNotebookSwitchPage;
+ RightPanelNotebook.OnTabSwitched := @TabNotebookSwitchPage;
LeftPanelNotebook.PopupMenu := TabPopupMenu;
RightPanelNotebook.PopupMenu := TabPopupMenu;
AfterStart;
@@ -495,10 +494,10 @@ begin
RightBookmarkButton.CanFocus := False;
LeftPasswordButton.CanFocus := False;
RightPasswordButton.CanFocus := False;
- LeftBookmarkButton.OnClick := BookmarkButtonClick;
- RightBookmarkButton.OnClick := BookmarkButtonClick;
- LeftPasswordButton.OnClick := PasswordButtonClick;
- RightPasswordButton.OnClick := PasswordButtonClick;
+ LeftBookmarkButton.OnClick := @BookmarkButtonClick;
+ RightBookmarkButton.OnClick := @BookmarkButtonClick;
+ LeftPasswordButton.OnClick := @PasswordButtonClick;
+ RightPasswordButton.OnClick := @PasswordButtonClick;
LeftScrolledWindow := TGTKScrolledWindow.Create(Self);
RightScrolledWindow := TGTKScrolledWindow.Create(Self);
LeftListView := TGTKListView.CreateTyped(Self, True, [lcPointer]);
@@ -577,12 +576,12 @@ begin
LeftPanelNotebook.AllowDragDrop := True;
LeftPanelNotebook.AllowDragOutside := True;
LeftPanelNotebook.ShowTooltips := True;
- LeftPanelNotebook.OnNotebookReordered := NotebookReordered;
- LeftPanelNotebook.OnTabClose := NotebookTabClosed;
- LeftPanelNotebook.OnTabDoubleClick := NotebookTabDoubleClick;
- LeftPanelNotebook.OnFindNotebookAtPointer := NotebookFindNotebookAtPointerEvent;
- LeftPanelNotebook.OnMoveTabToAnotherNotebook := NotebookMoveTabToAnotherNotebook;
- LeftPanelNotebook.OnTabFocusOnlyEvent := NotebookTabFocusOnlyEvent;
+ LeftPanelNotebook.OnNotebookReordered := @NotebookReordered;
+ LeftPanelNotebook.OnTabClose := @NotebookTabClosed;
+ LeftPanelNotebook.OnTabDoubleClick := @NotebookTabDoubleClick;
+ LeftPanelNotebook.OnFindNotebookAtPointer := @NotebookFindNotebookAtPointerEvent;
+ LeftPanelNotebook.OnMoveTabToAnotherNotebook := @NotebookMoveTabToAnotherNotebook;
+ LeftPanelNotebook.OnTabFocusOnlyEvent := @NotebookTabFocusOnlyEvent;
RightPanelNotebook := TEphyNotebook.Create(Self);
RightPanelNotebook.Visible := False;
RightPanelNotebook.SetSizeRequest(10, -1);
@@ -593,12 +592,12 @@ begin
RightPanelNotebook.AllowDragDrop := True;
RightPanelNotebook.AllowDragOutside := True;
RightPanelNotebook.ShowTooltips := True;
- RightPanelNotebook.OnNotebookReordered := NotebookReordered;
- RightPanelNotebook.OnTabClose := NotebookTabClosed;
- RightPanelNotebook.OnTabDoubleClick := NotebookTabDoubleClick;
- RightPanelNotebook.OnFindNotebookAtPointer := NotebookFindNotebookAtPointerEvent;
- RightPanelNotebook.OnMoveTabToAnotherNotebook := NotebookMoveTabToAnotherNotebook;
- RightPanelNotebook.OnTabFocusOnlyEvent := NotebookTabFocusOnlyEvent;
+ RightPanelNotebook.OnNotebookReordered := @NotebookReordered;
+ RightPanelNotebook.OnTabClose := @NotebookTabClosed;
+ RightPanelNotebook.OnTabDoubleClick := @NotebookTabDoubleClick;
+ RightPanelNotebook.OnFindNotebookAtPointer := @NotebookFindNotebookAtPointerEvent;
+ RightPanelNotebook.OnMoveTabToAnotherNotebook := @NotebookMoveTabToAnotherNotebook;
+ RightPanelNotebook.OnTabFocusOnlyEvent := @NotebookTabFocusOnlyEvent;
LeftListBox := TGTKVBox.Create(Self);
LeftListBox.AddControlEx(LeftScrolledWindow, True, True, 0);
RightListBox := TGTKVBox.Create(Self);
@@ -702,54 +701,54 @@ begin
miChangePermissions := TGTKMenuItem.CreateTyped(Self, itImageText);
miChangePermissions.Caption := LANGmiChangePermissions_Caption;
miChangePermissions.StockIcon := 'gtk-convert';
- miChangePermissions.OnClick := miChangePermissionsClick;
+ miChangePermissions.OnClick := @miChangePermissionsClick;
mnuFile.Add(miChangePermissions);
miChangeOwner := TGTKMenuItem.Create(Self);
miChangeOwner.Caption := LANGmiChangeOwner_Caption;
- miChangeOwner.OnClick := miChangeOwnerClick;
+ miChangeOwner.OnClick := @miChangeOwnerClick;
mnuFile.Add(miChangeOwner);
mnuFile.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miCreateSymlink := TGTKMenuItem.CreateTyped(Self, itImageText);
miCreateSymlink.Caption := LANGmiCreateSymlink_Caption;
miCreateSymlink.StockIcon := 'gtk-jump-to';
- miCreateSymlink.OnClick := miCreateSymlinkClick;
+ miCreateSymlink.OnClick := @miCreateSymlinkClick;
mnuFile.Add(miCreateSymlink);
miEditSymlink := TGTKMenuItem.Create(Self);
miEditSymlink.Caption := LANGmiEditSymlink_Caption;
- miEditSymlink.OnClick := miEditSymlinkClick;
+ miEditSymlink.OnClick := @miEditSymlinkClick;
mnuFile.Add(miEditSymlink);
mnuFile.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miSplitFile := TGTKMenuItem.Create(Self);
miSplitFile.Caption := LANGmiSplitFileCaption;
- miSplitFile.OnClick := miSplitFileClick;
+ miSplitFile.OnClick := @miSplitFileClick;
mnuFile.Add(miSplitFile);
miMergeFiles := TGTKMenuItem.Create(Self);
miMergeFiles.Caption := LANGmiMergeFilesCaption;
- miMergeFiles.OnClick := miMergeFilesClick;
+ miMergeFiles.OnClick := @miMergeFilesClick;
mnuFile.Add(miMergeFiles);
mnuFile.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miVerifyChecksums := TGTKMenuItem.Create(Self);
miVerifyChecksums.Caption := LANGmiVerifyChecksums;
- miVerifyChecksums.OnClick := miVerifyChecksumsClick;
+ miVerifyChecksums.OnClick := @miVerifyChecksumsClick;
mnuFile.Add(miVerifyChecksums);
miCreateChecksums := TGTKMenuItem.Create(Self);
miCreateChecksums.Caption := LANGmiCreateChecksumsCaption;
- miCreateChecksums.OnClick := miCreateChecksumsClick;
+ miCreateChecksums.OnClick := @miCreateChecksumsClick;
mnuFile.Add(miCreateChecksums);
mnuFile.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miDiff := TGTKMenuItem.Create(Self);
miDiff.Caption := '_Diff';
- miDiff.OnClick := miDiffClick;
+ miDiff.OnClick := @miDiffClick;
mnuFile.Add(miDiff);
miSynchronizeDirs := TGTKMenuItem.Create(Self);
miSynchronizeDirs.Caption := 'S_ynchronize directories';
- miSynchronizeDirs.OnClick := miSynchronizeDirsClick;
+ miSynchronizeDirs.OnClick := @miSynchronizeDirsClick;
mnuFile.Add(miSynchronizeDirs);
mnuFile.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miExit := TGTKMenuItem.CreateTyped(Self, itImageText);
miExit.Caption := LANGmiExit_Caption;
miExit.StockIcon := 'gtk-quit';
- miExit.OnClick := miExitClick;
+ miExit.OnClick := @miExitClick;
mnuFile.Add(miExit);
mnuMark := TGTKMenuItem.Create(Self);
@@ -760,28 +759,28 @@ begin
miSelectGroup.Caption := LANGmiSelectGroup_Caption;
miSelectGroup.ShortCuts.Add(MakeGDKShortCut(GDK_KP_PLUS, False, False, False, False));
miSelectGroup.StockIcon := 'gtk-add';
- miSelectGroup.OnClick := mnuMarkClick;
+ miSelectGroup.OnClick := @mnuMarkClick;
mnuMark.Add(miSelectGroup);
miUnselectGroup := TGTKMenuItem.CreateTyped(Self, itImageText);
miUnselectGroup.Caption := LANGmiUnselectGroup_Caption;
miUnselectGroup.ShortCuts.Add(MakeGDKShortCut(GDK_KP_MINUS, False, False, False, False));
miUnselectGroup.StockIcon := 'gtk-remove';
- miUnselectGroup.OnClick := mnuMarkClick;
+ miUnselectGroup.OnClick := @mnuMarkClick;
mnuMark.Add(miUnselectGroup);
miSelectAll := TGTKMenuItem.Create(Self);
miSelectAll.Caption := LANGmiSelectAll_Caption;
miSelectAll.ShortCuts.Add(MakeGDKShortCut(GDK_KP_PLUS, False, False, False, True));
- miSelectAll.OnClick := mnuMarkClick;
+ miSelectAll.OnClick := @mnuMarkClick;
mnuMark.Add(miSelectAll);
miUnselectAll := TGTKMenuItem.Create(Self);
miUnselectAll.Caption := LANGmiUnselectAll_Caption;
miUnselectAll.ShortCuts.Add(MakeGDKShortCut(GDK_KP_MINUS, False, False, False, True));
- miUnselectAll.OnClick := mnuMarkClick;
+ miUnselectAll.OnClick := @mnuMarkClick;
mnuMark.Add(miUnselectAll);
miInvertSelection := TGTKMenuItem.Create(Self);
miInvertSelection.Caption := LANGmiInvertSelection_Caption;
miInvertSelection.ShortCuts.Add(MakeGDKShortCut(GDK_KP_ASTERISK, False, False, False, False));
- miInvertSelection.OnClick := mnuMarkClick;
+ miInvertSelection.OnClick := @mnuMarkClick;
mnuMark.Add(miInvertSelection);
mnuCommands := TGTKMenuItem.Create(Self);
@@ -792,43 +791,43 @@ begin
miSearch.StockIcon := 'gtk-find';
miSearch.Caption := LANGmiSearchCaption2;
miSearch.ShortCuts.AddName('<Alt>F7');
- miSearch.OnClick := miSearchClick;
+ miSearch.OnClick := @miSearchClick;
mnuCommands.Add(miSearch);
mnuCommands.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miRefresh := TGTKMenuItem.CreateTyped(Self, itImageText);
miRefresh.Caption := LANGmiRefresh_Caption;
miRefresh.StockIcon := 'gtk-refresh';
miRefresh.ShortCuts.AddName('<Control>R');
- miRefresh.OnClick := miRefreshClick;
+ miRefresh.OnClick := @miRefreshClick;
mnuCommands.Add(miRefresh);
miShowDirectorySizes := TGTKMenuItem.CreateTyped(Self, itImageText);
miShowDirectorySizes.Caption := LANGmiShowDirectorySizes_Caption;
- miShowDirectorySizes.OnClick := miShowDirectorySizesClick;
+ miShowDirectorySizes.OnClick := @miShowDirectorySizesClick;
mnuCommands.Add(miShowDirectorySizes);
mnuCommands.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miCopyNames := TGTKMenuItem.CreateTyped(Self, itImageText);
miCopyNames.Caption := LANGCopyFileNamesToClipboard;
miCopyNames.ShortCuts.AddName('<Shift>F2');
- miCopyNames.OnClick := miCopyNamesClick;
+ miCopyNames.OnClick := @miCopyNamesClick;
mnuCommands.Add(miCopyNames);
miCopyFullPaths := TGTKMenuItem.CreateTyped(Self, itImageText);
miCopyFullPaths.Caption := LANGCopyFullPathNamesToClipboard;
miCopyFullPaths.ShortCuts.AddName('<Control>F2');
miCopyFullPaths.StockIcon := 'gtk-copy';
- miCopyFullPaths.OnClick := miCopyNamesClick;
+ miCopyFullPaths.OnClick := @miCopyNamesClick;
mnuCommands.Add(miCopyFullPaths);
mnuCommands.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miNewTab := TGTKMenuItem.CreateTyped(Self, itImageText);
miNewTab.Caption := LANGmiNewTab_Caption;
miNewTab.ShortCuts.AddName('<Control>T');
- miNewTab.OnClick := miDuplicateTabClick;
+ miNewTab.OnClick := @miDuplicateTabClick;
miNewTab.StockIcon := 'gtk-index';
mnuCommands.Add(miNewTab);
mnuCommands.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miTargetSource := TGTKMenuItem.CreateTyped(Self, itImageText);
miTargetSource.Caption := LANGmiTargetSource_Caption;
// miTargetSource.ShortCuts.AddName('<Alt>O');
- miTargetSource.OnClick := miTargetSourceClick;
+ miTargetSource.OnClick := @miTargetSourceClick;
mnuCommands.Add(miTargetSource);
mnuShow := TGTKMenuItem.Create(Self);
@@ -838,7 +837,7 @@ begin
miShowDotFiles := TGTKMenuItem.CreateTyped(Self, itCheck);
miShowDotFiles.Caption := LANGmiShowDotFiles_Caption;
miShowDotFiles.Checked := ConfShowDotFiles;
- miShowDotFiles.OnClick := miShowDotFilesClick;
+ miShowDotFiles.OnClick := @miShowDotFilesClick;
miShowDotFiles.ShortCuts.Add(ShowDotFilesShortcut);
mnuShow.Add(miShowDotFiles);
mnuShow.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
@@ -857,20 +856,20 @@ begin
miShowTwoMounterBar.Checked := ConfShowMounterBar = 2;
mnuShow.Add(miShowTwoMounterBar);
// Assign of the events has to be done after all radio items are created
- miNoMounterBar.OnClick := miShowMounterBarClick;
- miShowOneMounterBar.OnClick := miShowMounterBarClick;
- miShowTwoMounterBar.OnClick := miShowMounterBarClick;
+ miNoMounterBar.OnClick := @miShowMounterBarClick;
+ miShowOneMounterBar.OnClick := @miShowMounterBarClick;
+ miShowTwoMounterBar.OnClick := @miShowMounterBarClick;
mnuBookmarks := TGTKMenuItem.Create(Self);
mnuBookmarks.Caption := LANGmnuBookmarks_Caption;
- mnuBookmarks.OnPopup := mnuBookmarksPopup;
- mnuBookmarks.OnClick := mnuBookmarksPopup;
+ mnuBookmarks.OnPopup := @mnuBookmarksPopup;
+ mnuBookmarks.OnClick := @mnuBookmarksPopup;
MainMenu.Items.Add(mnuBookmarks);
// mnuBookmarks.Add(TGTKMenuItem.CreateTyped(Self, itTearOff));
miAddBookmark := TGTKMenuItem.CreateTyped(Self, itImageText);
miAddBookmark.Caption := LANGmiAddBookmark_Caption;
miAddBookmark.StockIcon := 'gtk-add';
- miAddBookmark.OnClick := miAddBookmarkClick;
+ miAddBookmark.OnClick := @miAddBookmarkClick;
mnuBookmarks.Add(miAddBookmark);
miEditBookmarks := TGTKMenuItem.CreateTyped(Self, itImageText);
miEditBookmarks.Caption := LANGmiEditBookmarks_Caption;
@@ -884,7 +883,7 @@ begin
BookmarkPopup := TGTKMenuItem.Create(Self);
BookmarkPopupDelete := TGTKMenuItem.Create(Self);
BookmarkPopupDelete.Caption := LANGBookmarkPopupDelete_Caption;
- BookmarkPopupDelete.OnClick := BookmarkPopupDeleteClick;
+ BookmarkPopupDelete.OnClick := @BookmarkPopupDeleteClick;
BookmarkPopup.Add(BookmarkPopupDelete);
mnuNetwork := TGTKMenuItem.Create(Self);
@@ -899,13 +898,13 @@ begin
mnuNetwork.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miOpenConnection := TGTKMenuItem.CreateTyped(Self, itImageText);
miOpenConnection.Caption := LANGmiOpenConnectionCaption;
- miOpenConnection.OnClick := miOpenConnectionClick;
+ miOpenConnection.OnClick := @miOpenConnectionClick;
miOpenConnection.StockIcon := 'gtk-connect';
miOpenConnection.ShortCuts.AddName('<Control>F');
mnuNetwork.Add(miOpenConnection);
miQuickConnect := TGTKMenuItem.CreateTyped(Self, itImageText);
miQuickConnect.Caption := LANGmiQuickConnectCaption;
- miQuickConnect.OnClick := miQuickConnectClick;
+ miQuickConnect.OnClick := @miQuickConnectClick;
miQuickConnect.ShortCuts.AddName('<Control>N');
mnuNetwork.Add(miQuickConnect);
mnuNetwork.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
@@ -914,7 +913,7 @@ begin
miDisconnect.Enabled := False;
miDisconnect.ShortCuts.AddName('<Shift><Control>F');
miDisconnect.StockIcon := 'gtk-disconnect';
- miDisconnect.OnClick := miDisconnectClick;
+ miDisconnect.OnClick := @miDisconnectClick;
mnuNetwork.Add(miDisconnect);
mnuPlugins := TGTKMenuItem.Create(Self);
@@ -923,7 +922,7 @@ begin
// mnuPlugins.Add(TGTKMenuItem.CreateTyped(Self, itTearOff));
miTestPlugin := TGTKMenuItem.CreateTyped(Self, itImageText);
miTestPlugin.Caption := LANGmiTestPluginCaption;
- miTestPlugin.OnClick := miTestPluginClick;
+ miTestPlugin.OnClick := @miTestPluginClick;
mnuPlugins.Add(miTestPlugin);
mnuPlugins.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
@@ -934,24 +933,24 @@ begin
miPreferences := TGTKMenuItem.CreateTyped(Self, itImageText);
miPreferences.Caption := LANGmiPreferences_Caption;
miPreferences.StockIcon := 'gtk-preferences';
- miPreferences.OnClick := miPreferencesClick;
+ miPreferences.OnClick := @miPreferencesClick;
mnuSettings.Add(miPreferences);
miFileTypes := TGTKMenuItem.CreateTyped(Self, itImageText);
miFileTypes.Caption := LANGmiFileTypes_Caption;
- miFileTypes.OnClick := miFileTypesClick;
+ miFileTypes.OnClick := @miFileTypesClick;
mnuSettings.Add(miFileTypes);
miMounterSettings := TGTKMenuItem.CreateTyped(Self, itImageText);
miMounterSettings.Caption := LANGmiMounterSettingsCaption;
- miMounterSettings.OnClick := miMounterSettingsClick;
+ miMounterSettings.OnClick := @miMounterSettingsClick;
mnuSettings.Add(miMounterSettings);
miColumns := TGTKMenuItem.CreateTyped(Self, itImageText);
miColumns.Caption := LANGmiColumnsCaption;
- miColumns.OnClick := miColumnsClick;
+ miColumns.OnClick := @miColumnsClick;
mnuSettings.Add(miColumns);
mnuSettings.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miSavePosition := TGTKMenuItem.CreateTyped(Self, itImageText);
miSavePosition.Caption := LANGmiSavePositionCaption;
- miSavePosition.OnClick := miSavePositionClick;
+ miSavePosition.OnClick := @miSavePositionClick;
mnuSettings.Add(miSavePosition);
mnuHelp := TGTKMenuItem.Create(Self);
@@ -961,7 +960,7 @@ begin
miAbout := TGTKMenuItem.CreateTyped(Self, itImageText);
miAbout.Caption := LANGmiAbout_Caption;
miAbout.StockIcon := 'gtk-about';
- miAbout.OnClick := miAboutClick;
+ miAbout.OnClick := @miAboutClick;
mnuHelp.Add(miAbout);
// Splitter popup menu
@@ -971,52 +970,52 @@ begin
Item := TGTKMenuItem.Create(Self);
Item.Caption := Format('%d - %d', [i * 10, (10 - i) * 10]);
Item.Data := Pointer(i * 10);
- Item.OnClick := SplitterPopupMenuClick;
+ Item.OnClick := @SplitterPopupMenuClick;
SplitterPopupMenu.Add(Item);
end;
// Files popup menu
FilePopupMenu := TGTKMenuItem.Create(Self);
- FilePopupMenu.OnPopup := FilePopupMenuPopup;
+ FilePopupMenu.OnPopup := @FilePopupMenuPopup;
// Mounter popup menu
MounterButtonPopupMenu := TGTKMenuItem.Create(Self);
- MounterButtonPopupMenu.OnPopup := MounterButtonPopupMenuPopup;
+ MounterButtonPopupMenu.OnPopup := @MounterButtonPopupMenuPopup;
miMount := TGTKMenuItem.CreateTyped(Self, itImageText);
miMount.Caption := LANGmiMountCaption;
miMount.StockIcon := 'gtk-connect';
- miMount.OnClick := miMountClick;
+ miMount.OnClick := @miMountClick;
MounterButtonPopupMenu.Add(miMount);
miUmount := TGTKMenuItem.CreateTyped(Self, itImageText);
miUmount.Caption := LANGmiUmountCaption;
miUmount.StockIcon := 'gtk-disconnect';
- miUmount.OnClick := miUmountClick;
+ miUmount.OnClick := @miUmountClick;
MounterButtonPopupMenu.Add(miUmount);
miEject := TGTKMenuItem.CreateTyped(Self, itImageText);
miEject.Caption := LANGmiEjectCaption;
// miEject.StockIcon := 'gtk-cdrom';
- miEject.OnClick := miEjectClick;
+ miEject.OnClick := @miEjectClick;
MounterButtonPopupMenu.Add(miEject);
// Tab popup menu
TabPopupMenu := TGTKMenuItem.Create(Self);
- TabPopupMenu.OnPopup := TabPopupMenuPopup;
+ TabPopupMenu.OnPopup := @TabPopupMenuPopup;
miDuplicateTab := TGTKMenuItem.CreateTyped(Self, itImageText);
miDuplicateTab.Caption := LANGmiDuplicateTabCaption;
miDuplicateTab.ShortCuts.AddName('<Control>T');
- miDuplicateTab.OnClick := miDuplicateTabClick;
+ miDuplicateTab.OnClick := @miDuplicateTabClick;
miDuplicateTab.StockIcon := 'gtk-index';
TabPopupMenu.Add(miDuplicateTab);
TabPopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miCloseTab := TGTKMenuItem.CreateTyped(Self, itImageText);
miCloseTab.Caption := LANGmiCloseTabCaption;
miCloseTab.ShortCuts.AddName('<Control>W');
- miCloseTab.OnClick := miCloseTabClick;
+ miCloseTab.OnClick := @miCloseTabClick;
miCloseTab.StockIcon := 'gtk-close';
TabPopupMenu.Add(miCloseTab);
miCloseAllTabs := TGTKMenuItem.CreateTyped(Self, itImageText);
miCloseAllTabs.Caption := LANGmiCloseAllTabsCaption;
- miCloseAllTabs.OnClick := miCloseAllTabsClick;
+ miCloseAllTabs.OnClick := @miCloseAllTabsClick;
TabPopupMenu.Add(miCloseAllTabs);
// Path box popup menu
@@ -1025,13 +1024,13 @@ begin
miPathBoxRefresh.Caption := LANGmiRefresh_Caption;
miPathBoxRefresh.StockIcon := 'gtk-refresh';
miPathBoxRefresh.ShortCuts.AddName('<Control>R');
- miPathBoxRefresh.OnClick := miRefreshClick;
+ miPathBoxRefresh.OnClick := @miRefreshClick;
PathBoxPopupMenu.Add(miPathBoxRefresh);
PathBoxPopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
miPathBoxCopyPath := TGTKMenuItem.CreateTyped(Self, itImageText);
miPathBoxCopyPath.Caption := LANGCopyPathToClipboard;
miPathBoxCopyPath.StockIcon := 'gtk-copy';
- miPathBoxCopyPath.OnClick := miPathBoxCopyPathClick;
+ miPathBoxCopyPath.OnClick := @miPathBoxCopyPathClick;
PathBoxPopupMenu.Add(miPathBoxCopyPath);
end;
@@ -1056,10 +1055,10 @@ begin
// Apply on the other side
if LeftLV then AListView := FMain.RightListView
else AListView := FMain.LeftListView;
- HandlerID := gulong(g_object_get_data(G_OBJECT(AListView.Columns[i].FColumn), 'Width_Notify_Handler'));
- g_signal_handler_block(AListView.Columns[i].FColumn, HandlerID);
+ HandlerID := gulong(g_object_get_data(PGObject(AListView.Columns[i].FColumn), 'Width_Notify_Handler'));
+ g_signal_handler_block(PGObject(AListView.Columns[i].FColumn), HandlerID);
AListView.Columns[i].FixedWidth := ConfColumnSizes[AListView.Columns[i].Tag];
- g_signal_handler_unblock(AListView.Columns[i].FColumn, HandlerID);
+ g_signal_handler_unblock(PGObject(AListView.Columns[i].FColumn), HandlerID);
break;
end;
end;
@@ -1074,7 +1073,7 @@ begin
GetFirstLastPanelColumn(FirstColumn, LastColumn);
// Temporarily disable the fixed height mode to be able to add columns the Pascal way
- g_object_set(ListView.FWidget, 'fixed_height_mode', 0, nil);
+ g_object_set(PGObject(ListView.FWidget), 'fixed_height_mode', [0, nil]);
for i := 1 to ConstNumPanelColumns do
if ConfColumnVisible[i] then begin
@@ -1095,7 +1094,7 @@ begin
Column.Caption := ConfColumnTitlesShort[ConfColumnIDs[i]];
- g_object_set(G_OBJECT(Column.FColumn), 'sizing', 2, 'fixed-width', ConfColumnSizes[i], nil);
+ g_object_set(PGObject(Column.FColumn), 'sizing', [2, 'fixed-width', ConfColumnSizes[i], nil]);
gtk_tree_view_column_set_spacing(Column.FColumn, 1); // Bug with column spacing?
@@ -1105,7 +1104,7 @@ begin
Column.SetProperty('ypad', 0);
Column.SetProperty('yalign', 0.5);
Column.Tag := i;
- g_object_set_data(G_OBJECT(Column.FColumn), 'Column_ID', Pointer(i));
+ g_object_set_data(PGObject(Column.FColumn), 'Column_ID', Pointer(i));
if ConfRowHeight > 0 then Column.SetProperty('height', ConfRowHeight);
Column.SortID := ListView.Columns.Count - 1;
ColumnSortIDs[Column.SortID + 1] := ConfColumnIDs[i];
@@ -1113,7 +1112,7 @@ begin
{ gtk_cell_renderer_text_set_fixed_height_from_font(PGtkCellRendererText(Column.FRenderer), 1);
gtk_cell_renderer_set_fixed_size(PGtkCellRenderer(Column.FRenderer), ConfColumnSizes[i], ConfRowHeight); }
if ConfColumnIDs[i] < 3 then begin // Filename column
- Column.OnEdited := ListViewEdited;
+ Column.OnEdited := @ListViewEdited;
Column.SetProperty('ellipsize', 3);
end;
if ConfColumnIDs[i] in [4, 8, 9] then begin
@@ -1121,9 +1120,9 @@ begin
Column.Alignment := 1;
end;
Column.SetProperty('single-paragraph-mode', 1);
- Column.OnClicked := ListViewColumnClicked;
- HandlerID := g_signal_connect(Column.FColumn, 'notify::width', G_CALLBACK(@ListViewColumnResized), ListView);
- g_object_set_data(G_OBJECT(Column.FColumn), 'Width_Notify_Handler', Pointer(HandlerID));
+ Column.OnClicked := @ListViewColumnClicked;
+ HandlerID := g_signal_connect_data(PGObject(Column.FColumn), 'notify::width', TGCallback(@ListViewColumnResized), ListView, nil, G_CONNECT_DEFAULT);
+ g_object_set_data(PGObject(Column.FColumn), 'Width_Notify_Handler', Pointer(HandlerID));
end;
// Set the list font
@@ -1131,7 +1130,7 @@ begin
FontDesc := pango_font_description_from_string(PChar(ConfPanelFont));
gtk_widget_modify_font(ListView.FWidget, FontDesc);
end else gtk_widget_modify_font(ListView.FWidget, nil);
- g_object_set(ListView.FWidget, 'fixed_height_mode', 1, nil);
+ g_object_set(PGObject(ListView.FWidget), 'fixed_height_mode', [1, nil]);
end;
procedure TFMain.FormDestroy(Sender: TObject);
@@ -1205,7 +1204,7 @@ begin
end else
while Assigned(LeftTabEngines[i]) and (TPanelEngine(LeftTabEngines[i]) is TVFSEngine) do begin
s := TPanelEngine(LeftTabEngines[i]).SavePath;
- LeftTabEngines[i] := InternalCloseEngine(LeftTabEngines[i], LeftLocalEngine);
+ LeftTabEngines[i] := InternalCloseEngine(TPanelEngine(LeftTabEngines[i]), LeftLocalEngine);
if s <> '' then LeftPanelTabs[i] := s
else LeftPanelTabs[i] := TPanelEngine(LeftTabEngines[i]).Path;
end;
@@ -1224,7 +1223,7 @@ begin
end else
while Assigned(RightTabEngines[i]) and (TPanelEngine(RightTabEngines[i]) is TVFSEngine) do begin
s := TPanelEngine(RightTabEngines[i]).SavePath;
- RightTabEngines[i] := InternalCloseEngine(RightTabEngines[i], RightLocalEngine);
+ RightTabEngines[i] := InternalCloseEngine(TPanelEngine(RightTabEngines[i]), RightLocalEngine);
if s <> '' then RightPanelTabs[i] := s
else RightPanelTabs[i] := TPanelEngine(RightTabEngines[i]).Path;
end;
@@ -1347,8 +1346,8 @@ begin
Application.ProcessMessages; // Need to process all messages before unlocking
InternalLockInit(False);
- LeftListView.OnColumnsChanged := ListViewColumnsChanged;
- RightListView.OnColumnsChanged := ListViewColumnsChanged;
+ LeftListView.OnColumnsChanged := @ListViewColumnsChanged;
+ RightListView.OnColumnsChanged := @ListViewColumnsChanged;
LeftListView.SetFocus;
end;
@@ -1720,7 +1719,6 @@ var Data: PDataItem;
LeftPanel: boolean;
DataList: TList;
Engine: TPanelEngine;
- AListView: TGTKListView;
Ext: string;
begin
if LeftListView.Focused then LeftPanel := True
@@ -1729,11 +1727,9 @@ begin
if LeftPanel then begin
DataList := LeftPanelData;
Engine := LeftPanelEngine;
- AListView := LeftListView;
end else begin
DataList := RightPanelData;
Engine := RightPanelEngine;
- AListView := RightListView;
end;
DeactivateQuickFind(LeftPanel);
Data := DataList[ItemIndex];
@@ -2306,24 +2302,24 @@ begin
if Editing and (InplaceEditItem.Data = Data) and (ColumnID < 3) and ((ColumnID = 0) or (ColumnID = 1) or Assigned(tree_column^.editable_widget))
then begin
if (ColumnID = 0) or (ColumnID = 1) then s := FDisplayName else s := nil;
- g_object_set(cell, 'text', s, 'foreground-gdk', AFGColor, nil);
- g_object_set(cell, 'background-gdk', ABGColor, nil);
+ g_object_set(PGObject(cell), 'text', [s, 'foreground-gdk', AFGColor, nil]);
+ g_object_set(PGObject(cell), 'background-gdk', [ABGColor, nil]);
end
else begin // not editing
if ConfDirsInBold then begin
- if IsDir or UpDir then g_object_set(cell, 'markup', PChar(Format('<span weight="bold">%s</span>', [QuoteMarkupStr(ColumnData[ColumnID])])), 'foreground-gdk', AFGColor, nil)
- else g_object_set(cell, 'markup', PChar(QuoteMarkupStr(ColumnData[ColumnID])), 'foreground-gdk', AFGColor, nil);
- end else g_object_set(cell, 'text', ColumnData[ColumnID], 'foreground-gdk', AFGColor, nil);
- g_object_set(cell, 'background-gdk', ABGColor, nil);
+ if IsDir or UpDir then g_object_set(PGObject(cell), 'markup', [PChar(Format('<span weight="bold">%s</span>', [QuoteMarkupStr(ColumnData[ColumnID])])), 'foreground-gdk', AFGColor, nil])
+ else g_object_set(PGObject(cell), 'markup', [PChar(QuoteMarkupStr(ColumnData[ColumnID])), 'foreground-gdk', AFGColor, nil]);
+ end else g_object_set(PGObject(cell), 'text', [ColumnData[ColumnID], 'foreground-gdk', AFGColor, nil]);
+ g_object_set(PGObject(cell), 'background-gdk', [ABGColor, nil]);
end;
end else // this is the image column
if ConfUseFileTypeIcons then begin // Assign icons
- g_object_set(cell, 'cell-background-gdk', ABGColor, nil);
+ g_object_set(PGObject(cell), 'cell-background-gdk', [ABGColor, nil]);
if Sel and (not (Sender as TGTKView).Focused) then begin
if Sender = LeftListView then RedrawLeftInactive := True
else RedrawRightInactive := True;
end;
- if Icon <> nil then g_object_set(cell, 'pixbuf', Icon, nil);
+ if Icon <> nil then g_object_set(PGObject(cell), 'pixbuf', [Icon, nil]);
end;
end;
end;
@@ -3530,7 +3526,7 @@ begin
FFileTypeSettings.CleanItems;
x := AssocList;
AssocList := FFileTypeSettings.IntAssocList;
- FFileTypeSettings.IntAssocList := x;
+ FFileTypeSettings.IntAssocList := TList(x);
RecreateIcons(AssocList);
DoRefresh(True, True, True);
DoRefresh(False, True, True);
@@ -4103,7 +4099,7 @@ begin
Item.Caption := Format(LANGPopupRunS, [QuoteMarkupStr(StrToUTF8(ShortFName), True)]);
Item.StockIcon := 'gtk-execute';
Item.Data := Pointer(1);
- Item.OnClick := FilePopupMenuItemClick;
+ Item.OnClick := @FilePopupMenuItemClick;
Item.Enabled := Engine.FileCanRun(FileName);
FilePopupMenu.Add(Item);
end else begin
@@ -4113,7 +4109,7 @@ begin
else Item.Caption := Format(LANGPopupOpenS, [QuoteMarkupStr(StrToUTF8(ShortFName), True)]);
Item.StockIcon := 'gtk-open';
Item.Data := Pointer(1);
- Item.OnClick := FilePopupMenuItemClick;
+ Item.OnClick := @FilePopupMenuItemClick;
FilePopupMenu.Add(Item);
// Open directory in background tab
@@ -4121,7 +4117,7 @@ begin
Item := TGTKMenuItem.CreateTyped(Self, itImageText);
Item.Caption := LANGOpenDirectoryInBackgroundTab;
Item.Data := Pointer(3);
- Item.OnClick := FilePopupMenuItemClick;
+ Item.OnClick := @FilePopupMenuItemClick;
FilePopupMenu.Add(Item);
end;
end;
@@ -4138,7 +4134,7 @@ begin
Item := TGTKMenuItem.CreateTyped(Self, itImageText);
Item.Caption := Format(LANGPopupOpenWithS, [TAssocAction(ActionList[j]).ActionName]);
Item.Data := ActionList[j];
- Item.OnClick := FilePopupMenuItemClick;
+ Item.OnClick := @FilePopupMenuItemClick;
FilePopupMenu.Add(Item);
end;
Break;
@@ -4156,7 +4152,7 @@ begin
if ((j = 0) and (Assoc.DefaultAction > Assoc.ActionList.Count - 1)) or (j = Assoc.DefaultAction)
then Item.Caption := Item.Caption + LANGPopupDefault;
Item.Data := Assoc.ActionList[j];
- Item.OnClick := FilePopupMenuItemClick;
+ Item.OnClick := @FilePopupMenuItemClick;
FilePopupMenu.Add(Item);
end;
end;
@@ -4165,7 +4161,7 @@ begin
Item := TGTKMenuItem.CreateTyped(Self, itImageText);
Item.Caption := LANGPopupOpenWith;
Item.Data := Pointer(2);
- Item.OnClick := FilePopupMenuItemClick;
+ Item.OnClick := @FilePopupMenuItemClick;
FilePopupMenu.Add(Item);
end;
@@ -4176,59 +4172,50 @@ begin
Item.Caption := LANGPopupViewFile;
Item.StockIcon := 'gtk-find';
Item.Data := Pointer(200); // This number HAVE to be here due to F3F4ButtonClick method using
- Item.OnClick := F3F4ButtonClick;
+ Item.OnClick := @F3F4ButtonClick;
FilePopupMenu.Add(Item);
Item := TGTKMenuItem.CreateTyped(Self, itImageText);
Item.Caption := LANGPopupEditFile;
Item.Data := Pointer(201); // Here too
- Item.OnClick := F3F4ButtonClick;
+ Item.OnClick := @F3F4ButtonClick;
FilePopupMenu.Add(Item);
end;
if not DataItem^.IsDir then FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
Item := TGTKMenuItem.CreateTyped(Self, itImageText);
Item.Caption := LANGPopupMakeSymlink;
Item.StockIcon := 'gtk-jump-to';
- Item.OnClick := miCreateSymlinkClick;
+ Item.OnClick := @miCreateSymlinkClick;
FilePopupMenu.Add(Item);
if DataItem^.IsLnk then begin
Item := TGTKMenuItem.CreateTyped(Self, itImageText);
Item.Caption := LANGmiEditSymlink_Caption;
- Item.OnClick := miEditSymlinkClick;
+ Item.OnClick := @miEditSymlinkClick;
FilePopupMenu.Add(Item);
end;
FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
Item := TGTKMenuItem.CreateTyped(Self, itImageText);
Item.Caption := LANGmiChangePermissions_Caption;
Item.StockIcon := 'gtk-convert';
- Item.OnClick := miChangePermissionsClick;
+ Item.OnClick := @miChangePermissionsClick;
Item.Enabled := not UpDir;
FilePopupMenu.Add(Item);
Item := TGTKMenuItem.CreateTyped(Self, itImageText);
Item.Caption := LANGmiChangeOwner_Caption;
- Item.OnClick := miChangeOwnerClick;
+ Item.OnClick := @miChangeOwnerClick;
Item.Enabled := not UpDir;
FilePopupMenu.Add(Item);
FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
Item := TGTKMenuItem.CreateTyped(Self, itImageText);
Item.Caption := LANGPopupRename;
- Item.OnClick := F6ButtonClick;
+ Item.OnClick := @F6ButtonClick;
Item.Enabled := not UpDir;
FilePopupMenu.Add(Item);
Item := TGTKMenuItem.CreateTyped(Self, itImageText);
Item.Caption := LANGPopupDelete;
Item.StockIcon := 'gtk-delete';
- Item.OnClick := F8ButtonClick;
+ Item.OnClick := @F8ButtonClick;
Item.Enabled := not UpDir;
FilePopupMenu.Add(Item);
-// FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator));
- Item := TGTKMenuItem.CreateTyped(Self, itImageText);
- Item.Caption := LANGFilePopupMenu_Properties;
- Item.StockIcon := 'gtk-properties';
- Item.OnClick := miFilePropertiesClick;
- Item.Enabled := False;
- Item.Visible := False;
-// Item.Enabled := not UpDir;
- FilePopupMenu.Add(Item);
FreeDataItem(DataItem);
end;
@@ -4363,7 +4350,7 @@ begin
end;
end;
-procedure TFMain.ApplySettings(RebuildListViews, RebuildIcons, Startup: boolean);
+procedure TFMain.ApplySettings(RebuildListViews, RebuildIcons, AStartup: boolean);
var i: integer;
begin
ButtonsBox.Visible := ConfShowFuncButtons;
@@ -4419,7 +4406,7 @@ begin
end;
// Refresh the lists
- if not Startup then begin
+ if not AStartup then begin
DoRefresh(True, True, True);
DoRefresh(False, True, True);
if RebuildListViews then begin
@@ -4451,8 +4438,8 @@ begin
Item := TGTKMenuItem.CreateTyped(Self, itLabel);
Item.Caption := Format('_%s %s', [Chr(Ord('a') + i), StrToUTF8(QuoteMarkupStr(Bookmarks[i]))]);
Item.Data := Pointer(i);
- Item.OnClick := miBookmarkClick;
- Item.OnMouseUp := BookmarkItemMouseUp;
+ Item.OnClick := @miBookmarkClick;
+ Item.OnMouseUp := @BookmarkItemMouseUp;
if i < Length(ShortcutKeys) - 1 then Item.ShortCuts.AddName(Format('<Alt>%s', [ShortcutKeys[i + 1]]));
mnuBookmarks.Add(Item);
end;
@@ -4602,9 +4589,9 @@ var menu_requisition: TGtkRequisition;
max_x, max_y: integer;
begin
(* Calculate our preferred position. *)
- gdk_window_get_origin(PGtkWidget(user_data).Window, x, y);
- x^ := x^ + PGtkWidget(user_data).allocation.x + PGtkWidget(user_data).allocation.width;
- y^ := y^ + PGtkWidget(user_data).allocation.y + PGtkWidget(user_data).allocation.height;
+ gdk_window_get_origin(PGtkWidget(user_data)^.Window, x, y);
+ x^ := x^ + PGtkWidget(user_data)^.allocation.x + PGtkWidget(user_data)^.allocation.width;
+ y^ := y^ + PGtkWidget(user_data)^.allocation.y + PGtkWidget(user_data)^.allocation.height;
(* Now make sure we are on the screen. *)
gtk_widget_size_request(PGtkWidget(menu), @menu_requisition);
@@ -4621,7 +4608,7 @@ begin
miAddBookmark.Visible := True;
miEditBookmarks.Visible := False;
miBookmarksSeparator.Visible := mnuBookmarks.Count > 3;
- gtk_menu_popup(PGtkMenu(mnuBookmarks.FMenu), nil, nil, menu_position_cb, (Sender as TGTKControl).FWidget, 1, GDK_CURRENT_TIME);
+ gtk_menu_popup(PGtkMenu(mnuBookmarks.FMenu), nil, nil, @menu_position_cb, (Sender as TGTKControl).FWidget, 1, GDK_CURRENT_TIME);
if (Sender = LeftBookmarkButton) {and (not LeftLastFocused)} then LeftListView.SetFocus else
if (Sender = RightBookmarkButton) {and LeftLastFocused} then RightListView.SetFocus;
end;
@@ -4667,7 +4654,7 @@ begin
if LeftPanel then AListView := LeftListView
else AListView := RightListView;
FilePopupMenuPopup(AListView);
- gtk_menu_popup(PGtkMenu(FilePopupMenu.FMenu), nil, nil, file_popup_position_cb, AListView, 0, gtk_get_current_event_time());
+ gtk_menu_popup(PGtkMenu(FilePopupMenu.FMenu), nil, nil, @file_popup_position_cb, AListView, 0, gtk_get_current_event_time());
end;
(********************************************************************************************************************************)
@@ -4782,7 +4769,7 @@ procedure TFMain.FillMounterBar;
Button.Tooltip := Format(LANGMountPointDevice, [StrToUTF8(MountPath), StrToUTF8(Device)]);
Button.BorderStyle := bsNone;
Button.PopupMenu := MounterButtonPopupMenu;
- Button.OnMouseDown := MounterButtonMouseDown;
+ Button.OnMouseDown := @MounterButtonMouseDown;
// Check the icon
b := FileExists(IconPath);
@@ -4806,7 +4793,7 @@ procedure TFMain.FillMounterBar;
(Button as TGTKImageToggleButton).Checked := Mounted;
end else (Button as TGTKImageButton).Icon := Pixmap;
- Button.OnClick := MounterButtonClick; // It has to be here because setting the Checked property causes the signal emitting
+ Button.OnClick := @MounterButtonClick; // It has to be here because setting the Checked property causes the signal emitting
Table.AddControlEx(2*i + 1, 0, 1, 1, Button, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 1);
List.Add(Button);
@@ -4850,7 +4837,7 @@ var Item: TMounterItem;
begin
if not (Sender is TGTKButton) then Exit;
try
- Item := Pointer((Sender as TGTKButton).Tag);
+ Item := TMounterItem((Sender as TGTKButton).Tag);
if (not Assigned(Item)) or (Item.MountPath = '') then DebugMsg(['*** Error in mounter button: incorrect data']) else begin
if MounterTableListLeft.IndexOf(Sender) > -1 then LeftPanel := True else
if MounterTableListRight.IndexOf(Sender) > -1 then LeftPanel := False else LeftPanel := LeftLastFocused;
@@ -4867,7 +4854,7 @@ begin
if Pos(Item.MountPath, Engine.Path) = 1 then b := Item.Eject;
(Sender as TGTKToggleButton).OnClick := nil;
(Sender as TGTKToggleButton).Checked := Item.Mounted;
- (Sender as TGTKToggleButton).OnClick := MounterButtonClick;
+ (Sender as TGTKToggleButton).OnClick := @MounterButtonClick;
end else if not b then b := Item.Mount;
if b then begin
@@ -4929,7 +4916,7 @@ begin
if ConfMounterPushDown then begin
(LastMounterButton as TGTKToggleButton).OnClick := nil;
(LastMounterButton as TGTKToggleButton).Checked := TMounterItem(LastMounterButton.Tag).Mounted;
- (LastMounterButton as TGTKToggleButton).OnClick := MounterButtonClick;
+ (LastMounterButton as TGTKToggleButton).OnClick := @MounterButtonClick;
end;
end;
@@ -4941,7 +4928,7 @@ begin
if ConfMounterPushDown then begin
(LastMounterButton as TGTKToggleButton).OnClick := nil;
(LastMounterButton as TGTKToggleButton).Checked := TMounterItem(LastMounterButton.Tag).Mounted;
- (LastMounterButton as TGTKToggleButton).OnClick := MounterButtonClick;
+ (LastMounterButton as TGTKToggleButton).OnClick := @MounterButtonClick;
end;
end;
@@ -4953,7 +4940,7 @@ begin
if ConfMounterPushDown then begin
(LastMounterButton as TGTKToggleButton).OnClick := nil;
(LastMounterButton as TGTKToggleButton).Checked := TMounterItem(LastMounterButton.Tag).Mounted;
- (LastMounterButton as TGTKToggleButton).OnClick := MounterButtonClick;
+ (LastMounterButton as TGTKToggleButton).OnClick := @MounterButtonClick;
end;
end;
@@ -5060,7 +5047,7 @@ begin
gtk_tree_view_set_headers_visible(PGtkTreeView(SourceListView.FWidget), True);
end;
-procedure TFMain.RebuildListViews(DoRefresh: boolean);
+procedure TFMain.RebuildListViews(ADoRefresh: boolean);
begin
LeftListView.OnColumnsChanged := nil;
RightListView.OnColumnsChanged := nil;
@@ -5074,23 +5061,23 @@ begin
RightListView.Columns.Clear;
ConstructColumns(LeftListView);
ConstructColumns(RightListView);
- if DoRefresh then begin
+ if ADoRefresh then begin
Application.ProcessMessages;
FMain.DoRefresh(True, True, True);
FMain.DoRefresh(False, True, True);
LeftListView.SetSortInfo(ConfMainWindowLeftSortColumn, TGTKTreeViewSortOrder(ConfMainWindowLeftSortType));
RightListView.SetSortInfo(ConfMainWindowRightSortColumn, TGTKTreeViewSortOrder(ConfMainWindowRightSortType));
end;
- LeftListView.OnColumnsChanged := ListViewColumnsChanged;
- RightListView.OnColumnsChanged := ListViewColumnsChanged;
+ LeftListView.OnColumnsChanged := @ListViewColumnsChanged;
+ RightListView.OnColumnsChanged := @ListViewColumnsChanged;
end;
procedure TFMain.RebuildListViewsTimerTimer(Sender: TObject);
begin
RebuildListViewsTimer.Enabled := False;
RebuildListViews(True);
- LeftListView.OnMouseUp := ListViewMouseUp;
- RightListView.OnMouseUp := ListViewMouseUp;
+ LeftListView.OnMouseUp := @ListViewMouseUp;
+ RightListView.OnMouseUp := @ListViewMouseUp;
end;
(********************************************************************************************************************************)
@@ -5111,7 +5098,7 @@ begin
MenuItem2 := TGTKMenuItem.CreateTyped(Self, itImageText);
MenuItem2.Caption := LANGPluginAbout;
MenuItem2.Tag := i;
- MenuItem2.OnClick := miPluginAboutClick;
+ MenuItem2.OnClick := @miPluginAboutClick;
mnuPlugins.Add(MenuItem1);
MenuItem1.Add(MenuItem2);
end;
@@ -5125,7 +5112,7 @@ begin
InternalLock;
FTestPlugin := TFTestPlugin.Create(Self);
if (FTestPlugin.Run = mbOK) and (PluginList.Count > 0) then begin
- Engine := TVFSEngine.Create(PluginList[FTestPlugin.PluginOptionMenu.ItemIndex]);
+ Engine := TVFSEngine.Create(TVFSPlugin(PluginList[FTestPlugin.PluginOptionMenu.ItemIndex]));
if not Engine.VFSOpenURI(FTestPlugin.CommandEntry.Text, nil, nil, nil, nil, nil) then begin
Application.MessageBox(LANGCouldntOpenURI, [mbOK], mbError, mbOK, mbOK);
Exit;
@@ -5151,9 +5138,9 @@ const Authors : array[0..1] of PChar = ('', nil);
var AboutBox: PGtkWidget;
VFSItem: TVFSPlugin;
begin
- VFSItem := PluginList[(Sender as TGTKMenuItem).Tag];
+ VFSItem := TVFSPlugin(PluginList[(Sender as TGTKMenuItem).Tag]);
InternalLock;
- if (libGnomeUI2Handle = nil) or (@gnome_about_new = nil) then
+ if (libGnomeUI2Handle = nil) or (gnome_about_new = nil) then
Application.MessageBox(Format(LANGPluginAboutInside, [VFSItem.ModuleName, VFSItem.ModuleAbout, VFSItem.ModuleCopyright]))
else begin
AboutBox := gnome_about_new(PChar(VFSItem.ModuleName), nil, PChar(VFSItem.ModuleCopyright), PChar(VFSItem.ModuleAbout), @Authors, nil, nil, AppIcon64.FPixbuf);
@@ -5235,7 +5222,7 @@ begin
end;
if not DockedToNotebook then begin
- ANotebook.InsertPage(0, AVBoxList[0], StrToUTF8(APathSave));
+ ANotebook.InsertPage(0, TGTKControl(AVBoxList[0]), StrToUTF8(APathSave));
SetTabLabel(ANotebook, 0, StrToUTF8(APathSave), StrToUTF8(ATabList[0]));
end;
@@ -5290,7 +5277,7 @@ begin
NewTabInternal(LeftPanel, AEngine, APath, NewTabPosition, not SendSelectedDirToBg);
end;
-procedure TFMain.SwitchTab(TabNo: integer; LeftPanel, SetFocus: boolean);
+procedure TFMain.SwitchTab(TabNo: integer; LeftPanel, ASetFocus: boolean);
var ANotebook: TEphyNotebook;
AListView: TGTKListView;
AVBoxList: TList;
@@ -5315,7 +5302,7 @@ begin
if (AVBoxList.Count < TabNo) or (TabNo < -1) then Exit;
// Remove any objects
- g_object_ref(AScrolledWindow.FWidget);
+ g_object_ref(PGObject(AScrolledWindow.FWidget));
if ListBox.ChildrenCount > 0 then ListBox.RemoveControl(AScrolledWindow);
if AVBoxList.Count > 0 then
for i := 0 to AVBoxList.Count - 1 do
@@ -5330,8 +5317,8 @@ begin
ListBox.Visible := True;
ANotebook.Visible := False;
end;
- g_object_unref(AScrolledWindow.FWidget);
- if SetFocus then AListView.SetFocus;
+ g_object_unref(PGObject(AScrolledWindow.FWidget));
+ if ASetFocus then AListView.SetFocus;
end;
procedure TFMain.TabNotebookSwitchPage(Sender: TObject; const NewTabNum: integer; const ShouldFocus: boolean);
@@ -5361,8 +5348,8 @@ begin
AListView := RightListView;
end;
SwitchTab(NewTabNum, LeftPanel, ShouldFocus);
- if LeftPanel then LeftPanelEngine := TabEngines[NewTabNum]
- else RightPanelEngine := TabEngines[NewTabNum];
+ if LeftPanel then LeftPanelEngine := TPanelEngine(TabEngines[NewTabNum])
+ else RightPanelEngine := TPanelEngine(TabEngines[NewTabNum]);
ChangingDir(LeftPanel, ATabList[NewTabNum], PathsHighlight[NewTabNum], '', False, True);
AListView.SetSortInfo(Integer(TabSortIDs[NewTabNum]),
TGTKTreeViewSortOrder(Integer(TabSortTypes[NewTabNum])));
@@ -5435,13 +5422,13 @@ begin
end;
if TabNo > 0 then begin
- Engine := TabEngines[TabNo];
+ Engine := TPanelEngine(TabEngines[TabNo]);
if (Engine is TVFSEngine) and CloseVFSEngine and (not CheckForUnsavedConnection(Engine as TVFSEngine, True)) then Exit;
end;
if (ANotebook.ChildrenCount > 2) and (TabNo >= 0) then begin
// Close one tab, leave tab bar visible
- Engine := TabEngines[TabNo];
+ Engine := TPanelEngine(TabEngines[TabNo]);
// !!!!!!!!
NewPageIndex := ANotebook.PageIndex - Ord((TabNo = ANotebook.PageIndex) and (TabNo = ANotebook.ChildrenCount - 1))
+ Ord((TabNo = ANotebook.PageIndex) and (ANotebook.ChildrenCount > TabNo + 1));
@@ -5471,8 +5458,8 @@ begin
// Change dir to the opposite
if (TabNo >= 0) and (TabNo = ANotebook.PageIndex) then begin // we should not change directory while closing all tabs...
i := Ord(not Boolean(ANotebook.PageIndex));
- if LeftPanel then LeftPanelEngine := TabEngines[i]
- else RightPanelEngine := TabEngines[i];
+ if LeftPanel then LeftPanelEngine := TPanelEngine(TabEngines[i])
+ else RightPanelEngine := TPanelEngine(TabEngines[i]);
ChangingDir(LeftPanel, ATabList[i], PathsHighlight[i]);
AListView.SetSortInfo(Integer(TabSortIDs[i]), TGTKTreeViewSortOrder(Integer(TabSortTypes[i])));
end;
@@ -5482,10 +5469,10 @@ begin
ATabList.Clear;
PathsHighlight.Clear;
for i := 0 to TabEngines.Count - 1 do
- if (TPanelEngine(TabEngines[i]) is TVFSEngine) and CloseVFSEngine and ((LeftPanel and (LeftPanelEngine <> TabEngines[i])) or
- ((not LeftPanel) and (RightPanelEngine <> TabEngines[i])))
+ if (TPanelEngine(TabEngines[i]) is TVFSEngine) and CloseVFSEngine and ((LeftPanel and (LeftPanelEngine <> TPanelEngine(TabEngines[i]))) or
+ ((not LeftPanel) and (RightPanelEngine <> TPanelEngine(TabEngines[i]))))
then begin
- Engine := TabEngines[i];
+ Engine := TPanelEngine(TabEngines[i]);
while Engine is TVFSEngine do
try
if (i <> TabNo) and (not CheckForUnsavedConnection(Engine as TVFSEngine, False)) then Exit;
@@ -5569,7 +5556,7 @@ begin
TabNotebookSwitchPage(ANotebook, SetTabActive, True);
end;
-procedure TFMain.SetTabLabel(Notebook: TEphyNotebook; PageIndex: integer; ALabel, Tooltip: string);
+procedure TFMain.SetTabLabel(Notebook: TEphyNotebook; PageIndex: integer; ALabel, ATooltip: string);
var g: PChar;
begin
if (ConfTabMaxLength > 0) and (g_utf8_strlen(PChar(ALabel), -1) > ConfTabMaxLength) then begin
@@ -5580,7 +5567,7 @@ begin
libc_free(g);
end;
Notebook.SetTabCaption(PageIndex, ALabel);
- Notebook.SetTabTooltip(PageIndex, Tooltip);
+ Notebook.SetTabTooltip(PageIndex, ATooltip);
end;
procedure TFMain.NotebookReordered(Sender: TObject; const Source, Dest: integer);
@@ -5889,7 +5876,7 @@ begin
miEditBookmarks.Visible := False;
miBookmarksSeparator.Visible := False;
- gtk_menu_popup(PGtkMenu(mnuBookmarks.FMenu), nil, nil, menu_position_cb, SenderControl.FWidget, 1, GDK_CURRENT_TIME);
+ gtk_menu_popup(PGtkMenu(mnuBookmarks.FMenu), nil, nil, @menu_position_cb, SenderControl.FWidget, 1, GDK_CURRENT_TIME);
if LeftPanel then LeftListView.SetFocus else RightListView.SetFocus;
end;
@@ -6053,105 +6040,6 @@ begin
libc_chdir('/');
end;
-
-(********************************************************************************************************************************)
-procedure TFMain.miFilePropertiesClick(Sender: TObject);
-var LeftPanel: boolean;
- AListView: TGTKListView;
- Engine: TPanelEngine;
- DataList: TList;
- i: integer;
- SelCount: longint;
- AFile, NextItem1, NextItem2: string;
- Stat: PDataItem;
-{ AWorkingThread: TWorkerThread;
- AFProgress: TFProgress; }
-begin
- try
- InternalLock;
- Stat := nil;
- if LeftListView.Focused then LeftPanel := True else
- if RightListView.Focused then LeftPanel := False else
- LeftPanel := LeftLastFocused;
- if LeftPanel then begin
- AListView := LeftListView;
- Engine := LeftPanelEngine;
- DataList := LeftPanelData;
- end else begin
- AListView := RightListView;
- Engine := RightPanelEngine;
- DataList := RightPanelData;
- end;
-
- SelCount := 0;
- if DataList.Count > 0 then
- for i := 0 to DataList.Count - 1 do
- with PDataItem(DataList[i])^ do
- if Selected and (not UpDir) then Inc(SelCount);
- if (SelCount = 0) and ((not Assigned(AListView.Selected)) {or PDataItem(AListView.Selected.Data)^.UpDir}) then begin
- Application.MessageBox(LANGNoFilesSelected, [mbOK], mbInfo, mbNone, mbOK);
- Exit;
- end;
-
- AFile := '';
- if SelCount = 0 then AFile := PDataItem(AListView.Selected.Data)^.FName else
- for i := 0 to DataList.Count - 1 do
- with PDataItem(DataList[i])^ do
- if Selected and (not UpDir) then begin
- AFile := FName;
- Break;
- end;
-
- if AFile <> '' then
- try
- FProperties := TFProperties.Create(Self);
- Stat := Engine.GetFileInfo(IncludeTrailingPathDelimiter(Engine.Path) + AFile, True, True, nil);
- if not Assigned(Stat) then Exit;
-// FProperties.AssignMode(Stat^.Mode, AFile, Stat^.UID, Stat^.GID);
- FProperties.DisplayFileName := AFile;
- if FProperties.Run = mbOK then begin
-{ FindNextSelected(AListView, DataList, NextItem1, NextItem2);
-
- AWorkingThread := TWorkerThread.Create;
- AFProgress := TFProgress.Create(Self);
- try
- AFProgress.SetNumBars(False);
- AFProgress.ProgressBar.Value := 0;
- AFProgress.Label1.Caption := LANGChownProgress;
- AWorkingThread.ProgressForm := AFProgress;
- if Assigned(AListView.Selected) then AWorkingThread.SelectedItem := AListView.Selected.Data;
- AWorkingThread.ParamBool1 := FChown.RecursiveCheckButton.Checked;
- AWorkingThread.ParamCardinal1 := FChown.LastUID;
- AWorkingThread.ParamCardinal2 := FChown.LastGID;
- AWorkingThread.Engine := Engine;
- AWorkingThread.LeftPanel := LeftPanel;
- AWorkingThread.DataList := DataList;
- AWorkingThread.WorkerProcedure := ChownFilesWorker;
- AWorkingThread.Resume;
- AFProgress.ParentForm := FMain;
- if (SelCount > 1) or FChown.RecursiveCheckButton.Checked then AFProgress.ShowModal;
- ProcessProgressThread(AWorkingThread, AFProgress);
- AFProgress.Close;
- finally
- AFProgress.Free;
- AWorkingThread.Free;
- end; }
-
- NextItem1 := '';
- NextItem2 := '';
- ChangingDir(LeftPanel, Engine.Path, NextItem1, NextItem2);
- DoRefresh(not LeftPanel, True, True);
- end;
- finally
- FreeDataItem(Stat);
- FProperties.Free;
- end;
- finally
- Application.ProcessMessages;
- InternalLockInit(False);
- end;
-end;
-
(********************************************************************************************************************************)
procedure TFMain.CopyFilenamesToClipboard(FullPaths, LeftPanel: boolean);
var DataList: TList;