📄 panel.h
字号:
UString _currentFolderPrefix;
CObjectVector<CFolderLink> _parentFolders;
NWindows::NDLL::CLibrary _library;
CMyComPtr<IFolderFolder> _folder;
// CMyComPtr<IFolderGetSystemIconIndex> _folderGetSystemIconIndex;
UStringVector _fastFolders;
void GetSelectedNames(UStringVector &selectedNames);
void SaveSelectedState(CSelectedState &s);
void RefreshListCtrl(const CSelectedState &s);
void RefreshListCtrlSaveFocused();
UString GetItemName(int itemIndex) const;
UString GetItemPrefix(int itemIndex) const;
UString GetItemRelPath(int itemIndex) const;
bool IsItemFolder(int itemIndex) const;
UInt64 GetItemSize(int itemIndex) const;
////////////////////////
// PanelFolderChange.cpp
void SetToRootFolder();
HRESULT BindToPath(const UString &fullPath, bool &archiveIsOpened, bool &encrypted); // can be prefix
HRESULT BindToPathAndRefresh(const UString &path);
void OpenDrivesFolder();
void SetBookmark(int index);
void OpenBookmark(int index);
void LoadFullPath();
void LoadFullPathAndShow();
void FoldersHistory();
void OpenParentFolder();
void CloseOpenFolders();
void OpenRootFolder();
HRESULT Create(HWND mainWindow, HWND parentWindow,
UINT id,
const UString ¤tFolderPrefix,
CPanelCallback *panelCallback,
CAppState *appState, bool &archiveIsOpened, bool &encrypted);
void SetFocusToList();
void SetFocusToLastRememberedItem();
void ReadListViewInfo();
void SaveListViewInfo();
CPanel() :
// _virtualMode(flase),
_exStyle(0),
_showDots(false),
_showRealFileIcons(false),
_needSaveInfo(false),
_startGroupSelect(0),
_selectionIsDefined(false),
_ListViewMode(3),
_flatMode(false),
_xSize(300),
_mySelectMode(false),
_enableItemChangeNotify(true),
_dontShowMode(false)
{}
void SetExtendedStyle()
{
if (_listView != 0)
_listView.SetExtendedListViewStyle(_exStyle);
}
bool _needSaveInfo;
UString _typeIDString;
CListViewInfo _listViewInfo;
CItemProperties _properties;
CItemProperties _visibleProperties;
PROPID _sortID;
// int _sortIndex;
bool _ascending;
void Release();
~CPanel();
void OnLeftClick(LPNMITEMACTIVATE itemActivate);
bool OnRightClick(LPNMITEMACTIVATE itemActivate, LRESULT &result);
void OnTimer();
void OnReload();
bool OnContextMenu(HANDLE windowHandle, int xPos, int yPos);
CMyComPtr<IContextMenu> _sevenZipContextMenu;
CMyComPtr<IContextMenu> _systemContextMenu;
HRESULT CreateShellContextMenu(
const CRecordVector<UInt32> &operatedIndices,
CMyComPtr<IContextMenu> &systemContextMenu);
void CreateSystemMenu(HMENU menu,
const CRecordVector<UInt32> &operatedIndices,
CMyComPtr<IContextMenu> &systemContextMenu);
void CreateSevenZipMenu(HMENU menu,
const CRecordVector<UInt32> &operatedIndices,
CMyComPtr<IContextMenu> &sevenZipContextMenu);
void CreateFileMenu(HMENU menu,
CMyComPtr<IContextMenu> &sevenZipContextMenu,
CMyComPtr<IContextMenu> &systemContextMenu,
bool programMenu);
void CreateFileMenu(HMENU menu);
bool InvokePluginCommand(int id);
bool InvokePluginCommand(int id, IContextMenu *sevenZipContextMenu,
IContextMenu *systemContextMenu);
void InvokeSystemCommand(const char *command);
void Properties();
void EditCut();
void EditCopy();
void EditPaste();
int _startGroupSelect;
bool _selectionIsDefined;
bool _selectMark;
int _prevFocusedItem;
// void SortItems(int index);
void SortItemsWithPropID(PROPID propID);
void GetSelectedItemsIndices(CRecordVector<UInt32> &indices) const;
void GetOperatedItemIndices(CRecordVector<UInt32> &indices) const;
void GetAllItemIndices(CRecordVector<UInt32> &indices) const;
void GetOperatedIndicesSmart(CRecordVector<UInt32> &indices) const;
// void GetOperatedListViewIndices(CRecordVector<UInt32> &indices) const;
void KillSelection();
UString GetFolderTypeID() const;
bool IsRootFolder() const;
bool IsFSFolder() const;
bool IsFSDrivesFolder() const;
UString GetFsPath() const;
UString GetDriveOrNetworkPrefix() const;
bool DoesItSupportOperations() const;
bool _processTimer;
bool _processNotify;
class CDisableTimerProcessing
{
bool _processTimerMem;
bool _processNotifyMem;
CPanel &_panel;
public:
CDisableTimerProcessing(CPanel &panel): _panel(panel)
{
Disable();
}
void Disable()
{
_processTimerMem = _panel._processTimer;
_processNotifyMem = _panel._processNotify;
_panel._processTimer = false;
_panel._processNotify = false;
}
void Restore()
{
_panel._processTimer = _processTimerMem;
_panel._processNotify = _processNotifyMem;
}
~CDisableTimerProcessing()
{
Restore();
}
CDisableTimerProcessing& operator=(const CDisableTimerProcessing &) {; }
};
// bool _passwordIsDefined;
// UString _password;
void RefreshListCtrl();
void MessageBoxInfo(LPCWSTR message, LPCWSTR caption);
void MessageBox(LPCWSTR message);
void MessageBox(LPCWSTR message, LPCWSTR caption);
void MessageBoxMyError(LPCWSTR message);
void MessageBoxError(HRESULT errorCode, LPCWSTR caption);
void MessageBoxError(HRESULT errorCode);
void MessageBoxLastError(LPCWSTR caption);
void MessageBoxLastError();
void MessageBoxErrorLang(UINT resourceID, UInt32 langID);
void OpenFocusedItemAsInternal();
void OpenSelectedItems(bool internal);
void OpenFolderExternal(int index);
void OpenFolder(int index);
HRESULT OpenParentArchiveFolder();
HRESULT OpenItemAsArchive(const UString &name,
const UString &folderPath,
const UString &filePath,
const UString &virtualFilePath,
bool &encrypted);
HRESULT OpenItemAsArchive(const UString &name);
HRESULT OpenItemAsArchive(int index);
void OpenItemInArchive(int index, bool tryInternal, bool tryExternal,
bool editMode);
HRESULT OnOpenItemChanged(const UString &folderPath, const UString &itemName, bool usePassword, const UString &password);
LRESULT OnOpenItemChanged(LPARAM lParam);
void OpenItem(int index, bool tryInternal, bool tryExternal);
void EditItem();
void EditItem(int index);
void RenameFile();
void ChangeComment();
void SetListViewMode(UInt32 index);
UInt32 GetListViewMode() const { return _ListViewMode; };
void ChangeFlatMode();
bool GetFlatMode() const { return _flatMode; };
void RefreshStatusBar();
void OnRefreshStatusBar();
void AddToArchive();
void GetFilePaths(const CRecordVector<UInt32> &indices, UStringVector &paths);
void ExtractArchives();
void TestArchives();
HRESULT CopyTo(const CRecordVector<UInt32> &indices, const UString &folder,
bool moveMode, bool showErrorMessages, UStringVector *messages,
bool &usePassword, UString &password);
HRESULT CopyTo(const CRecordVector<UInt32> &indices, const UString &folder,
bool moveMode, bool showErrorMessages, UStringVector *messages)
{
bool usePassword = false;
UString password;
if (_parentFolders.Size() > 0)
{
const CFolderLink &fl = _parentFolders.Back();
usePassword = fl.UsePassword;
password = fl.Password;
}
return CopyTo(indices, folder, moveMode, showErrorMessages, messages, usePassword, password);
}
HRESULT CopyFrom(const UString &folderPrefix, const UStringVector &filePaths,
bool showErrorMessages, UStringVector *messages);
void CopyFromNoAsk(const UStringVector &filePaths);
void CopyFromAsk(const UStringVector &filePaths);
// empty folderPath means create new Archive to path of first fileName.
void DropObject(IDataObject * dataObject, const UString &folderPath);
// empty folderPath means create new Archive to path of first fileName.
void CompressDropFiles(const UStringVector &fileNames, const UString &folderPath);
void RefreshTitle(bool always = false) { _panelCallback->RefreshTitle(always); }
void RefreshTitleAlways() { RefreshTitle(true); }
UString GetItemsInfoString(const CRecordVector<UInt32> &indices);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -