mirror of
https://github.com/winscp/winscp.git
synced 2026-10-24 02:28:55 +03:00
For file list (dirview) use of drag images was disabled already in Bug 1274. Now disabling it for tree view (driveview) too and consequently removing all related support code. That gets rid of global GlobalDragImageList, which the 64-bit linker has problems with. https://winscp.net/tracker/1274 https://winscp.net/tracker/618 Source commit: 10f13c6de6259711dbd0688402d9a11423fcc8b0
183 lines
8.0 KiB
C++
183 lines
8.0 KiB
C++
//---------------------------------------------------------------------------
|
|
#ifndef UnixDirViewH
|
|
#define UnixDirViewH
|
|
//---------------------------------------------------------------------------
|
|
#include <SysUtils.hpp>
|
|
#include <Controls.hpp>
|
|
#include <Classes.hpp>
|
|
#include <Forms.hpp>
|
|
#include "CustomUnixDirView.hpp"
|
|
//---------------------------------------------------------------------------
|
|
class TTerminal;
|
|
class TUnixDirView;
|
|
class TCustomUnixDriveView;
|
|
class TRemoteFile;
|
|
class TRemoteProperties;
|
|
//---------------------------------------------------------------------------
|
|
#ifdef DESIGN_ONLY
|
|
class TRemoteFile
|
|
{
|
|
};
|
|
#endif
|
|
//---------------------------------------------------------------------------
|
|
enum TTransferDirection { tdToRemote, tdToLocal };
|
|
enum TTransferType { ttCopy, ttMove };
|
|
typedef void __fastcall (__closure *TDDDragFileName)
|
|
(TObject * Sender, TRemoteFile * File, UnicodeString & FileName);
|
|
typedef void __fastcall (__closure *TThumbnailNeededEvent)
|
|
(TUnixDirView * Sender, TListItem * Item, TRemoteFile * File, const TSize & Size, TBitmap *& Bitmap);
|
|
//---------------------------------------------------------------------------
|
|
class PACKAGE TUnixDirView : public TCustomUnixDirView
|
|
{
|
|
friend class TCustomUnixDriveView;
|
|
private:
|
|
bool FDDAllowMove;
|
|
bool FDirLoadedAfterChangeDir;
|
|
TNotifyEvent FOnDisplayProperties;
|
|
bool FFullLoad;
|
|
int FHiddenCount;
|
|
int FFilteredCount;
|
|
TTerminal *FTerminal;
|
|
bool FShowInaccesibleDirectories;
|
|
TDDDragFileName FOnDDDragFileName;
|
|
bool __fastcall GetActive();
|
|
TCustomUnixDriveView * FDriveView;
|
|
TNotifyEvent FOnRead;
|
|
TNotifyEvent FOnStartReading;
|
|
TThumbnailNeededEvent FOnThumbnailNeeded;
|
|
TObject * FAnnouncedDriveViewState;
|
|
void __fastcall SetTerminal(TTerminal *value);
|
|
void __fastcall DoSetTerminal(TTerminal *value, bool Replace);
|
|
void __fastcall SetShowInaccesibleDirectories(bool value);
|
|
protected:
|
|
virtual void __fastcall DDDragDetect(int grfKeyState, const TPoint &DetectStart,
|
|
const TPoint &Point, TDragDetectStatus DragStatus);
|
|
virtual void __fastcall DDMenuDone(TObject* Sender, HMENU AMenu);
|
|
virtual void __fastcall DDChooseEffect(int grfKeyState, int &dwEffect, int PreferredEffect);
|
|
virtual void __fastcall AddToDragFileList(TFileList* FileList, TListItem* Item);
|
|
void __fastcall DoReadDirectory(TObject * Sender, bool ReloadOnly);
|
|
void __fastcall DoReadDirectoryImpl(TObject * Sender, bool ReloadOnly);
|
|
void __fastcall DoStartReadDirectory(TObject * Sender);
|
|
virtual bool __fastcall DoExecFile(TListItem * Item, bool ForceEnter);
|
|
virtual void __fastcall ExecuteFile(TListItem * Item);
|
|
virtual bool __fastcall GetDirOK();
|
|
virtual void __fastcall GetDisplayInfo(TListItem * ListItem, tagLVITEMW &DispInfo);
|
|
virtual TDropEffectSet __fastcall GetDragSourceEffects();
|
|
virtual bool __fastcall GetIsRoot();
|
|
virtual UnicodeString __fastcall GetPath();
|
|
virtual UnicodeString __fastcall GetPathName();
|
|
void __fastcall ChangeDirectory(UnicodeString Path);
|
|
virtual void __fastcall InternalEdit(const tagLVITEMW & HItem);
|
|
virtual TColor __fastcall ItemColor(TListItem * Item);
|
|
virtual UnicodeString __fastcall ItemFileName(TListItem * Item);
|
|
virtual int __fastcall ItemImageIndex(TListItem * Item, bool Cache);
|
|
virtual TBitmap * __fastcall ItemThumbnail(TListItem * Item, const TSize & Size);
|
|
virtual TObject * __fastcall ItemData(TListItem * Item);
|
|
virtual bool __fastcall ItemIsFile(TListItem * Item);
|
|
virtual bool __fastcall ItemMatchesFilter(TListItem * Item, const TFileFilter &Filter);
|
|
virtual Word __fastcall ItemOverlayIndexes(TListItem * Item);
|
|
virtual void __fastcall LoadFiles();
|
|
virtual void __fastcall PerformItemDragDropOperation(TListItem * Item, int Effect, bool Paste);
|
|
virtual void __fastcall SetAddParentDir(bool Value);
|
|
virtual void __fastcall SetItemImageIndex(TListItem * Item, int Index);
|
|
virtual void __fastcall SetPath(UnicodeString Value);
|
|
virtual void __fastcall SortItems();
|
|
virtual bool __fastcall TargetHasDropHandler(TListItem * Item, int Effect);
|
|
virtual TDateTime __fastcall ItemFileTime(TListItem * Item,
|
|
TDateTimePrecision & Precision);
|
|
DYNAMIC bool __fastcall CanEdit(TListItem* Item);
|
|
void __fastcall SetDriveView(TCustomUnixDriveView * Value);
|
|
virtual int __fastcall HiddenCount();
|
|
virtual int __fastcall FilteredCount();
|
|
DYNAMIC void __fastcall UpdatePathLabelCaption();
|
|
|
|
__property TCustomUnixDriveView * DriveView = { read = FDriveView, write = SetDriveView };
|
|
|
|
public:
|
|
__fastcall TUnixDirView(TComponent* Owner);
|
|
virtual __fastcall ~TUnixDirView();
|
|
virtual void __fastcall CreateDir(UnicodeString DirName);
|
|
void __fastcall CreateDirEx(UnicodeString DirName, const TRemoteProperties * Properties);
|
|
virtual void __fastcall DisplayPropertiesMenu();
|
|
virtual void __fastcall ExecuteHomeDirectory();
|
|
virtual void __fastcall ExecuteParentDirectory();
|
|
virtual void __fastcall ExecuteRootDirectory();
|
|
virtual void __fastcall ReloadDirectory();
|
|
virtual bool __fastcall ItemIsDirectory(TListItem * Item);
|
|
virtual bool __fastcall ItemIsParentDirectory(TListItem * Item);
|
|
virtual UnicodeString __fastcall ItemFullFileName(TListItem * Item);
|
|
virtual __int64 __fastcall ItemFileSize(TListItem * Item);
|
|
virtual void __fastcall SetItemCalculatedSize(TListItem * Item, __int64 Size);
|
|
virtual bool __fastcall PasteFromClipBoard(UnicodeString TargetPath = L"");
|
|
void __fastcall UpdateFiles();
|
|
void __fastcall DisplayContextMenu(const TPoint &Where);
|
|
void __fastcall ReplaceTerminal(TTerminal * value);
|
|
virtual void __fastcall AnnounceState(TObject * State);
|
|
virtual void __fastcall RestoreState(TObject * State);
|
|
virtual TObject * __fastcall SaveState();
|
|
|
|
__property bool Active = { read = GetActive };
|
|
__property TTerminal *Terminal = { read = FTerminal, write = SetTerminal };
|
|
__published:
|
|
__property bool DDAllowMove = { read = FDDAllowMove, write = FDDAllowMove, default = false };
|
|
__property TDDDragFileName OnDDDragFileName = { read = FOnDDDragFileName,
|
|
write = FOnDDDragFileName};
|
|
__property OnBusy;
|
|
__property OnChangeFocus;
|
|
__property bool ShowInaccesibleDirectories =
|
|
{ read=FShowInaccesibleDirectories, write=SetShowInaccesibleDirectories,
|
|
default=true };
|
|
|
|
__property OnUpdateStatusBar;
|
|
__property PathLabel;
|
|
|
|
__property AddParentDir;
|
|
__property DimmHiddenFiles;
|
|
__property ShowHiddenFiles;
|
|
__property TargetPopupMenu;
|
|
__property OnSelectItem;
|
|
__property OnStartLoading;
|
|
__property OnLoaded;
|
|
__property OnExecFile;
|
|
__property OnMatchMask;
|
|
__property OnGetOverlay;
|
|
__property OnGetItemColor;
|
|
__property OnDDDragEnter;
|
|
__property OnDDDragLeave;
|
|
__property OnDDDragOver;
|
|
__property OnDDDrop;
|
|
__property OnDDQueryContinueDrag;
|
|
__property OnDDGiveFeedback;
|
|
__property OnDDChooseEffect;
|
|
__property OnDDDragDetect;
|
|
__property OnDDEnd;
|
|
__property OnDDCreateDragFileList;
|
|
__property OnDDTargetHasDropHandler;
|
|
__property OnDDProcessDropped;
|
|
__property OnDDError;
|
|
__property OnDDExecuted;
|
|
__property OnDDFileOperation;
|
|
__property OnDDFileOperationExecuted;
|
|
__property OnDDCreateDataObject;
|
|
|
|
__property OnContextPopup;
|
|
__property OnHistoryChange;
|
|
__property OnHistoryGo;
|
|
__property OnPathChange;
|
|
|
|
__property ColumnClick;
|
|
__property MultiSelect;
|
|
__property TNotifyEvent OnDisplayProperties = { read = FOnDisplayProperties, write = FOnDisplayProperties };
|
|
__property ReadOnly;
|
|
__property DirViewStyle;
|
|
__property TNotifyEvent OnRead = { read = FOnRead, write = FOnRead };
|
|
__property TNotifyEvent OnStartReading = { read = FOnStartReading, write = FOnStartReading };
|
|
__property TThumbnailNeededEvent OnThumbnailNeeded = { read = FOnThumbnailNeeded, write = FOnThumbnailNeeded };
|
|
|
|
// The only way to make Items stored automatically and survive handle recreation.
|
|
// Though we should implement custom persisting to avoid publishing this
|
|
__property Items;
|
|
};
|
|
//---------------------------------------------------------------------------
|
|
#endif
|