xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Far/Plugin.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // 7zip/Far/Plugin.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_7ZIP_FAR_PLUGIN_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_7ZIP_FAR_PLUGIN_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/MyCom.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker // #include "../../../Windows/COM.h"
9*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/FileFind.h"
10*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/PropVariant.h"
11*f6dc9357SAndroid Build Coastguard Worker 
12*f6dc9357SAndroid Build Coastguard Worker #include "../Common/WorkDir.h"
13*f6dc9357SAndroid Build Coastguard Worker 
14*f6dc9357SAndroid Build Coastguard Worker #include "../Agent/Agent.h"
15*f6dc9357SAndroid Build Coastguard Worker 
16*f6dc9357SAndroid Build Coastguard Worker #include "FarUtils.h"
17*f6dc9357SAndroid Build Coastguard Worker 
18*f6dc9357SAndroid Build Coastguard Worker const UInt32 kNumInfoLinesMax = 64;
19*f6dc9357SAndroid Build Coastguard Worker 
20*f6dc9357SAndroid Build Coastguard Worker class CPlugin
21*f6dc9357SAndroid Build Coastguard Worker {
22*f6dc9357SAndroid Build Coastguard Worker   CAgent *_agent;
23*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<IInFolderArchive> m_ArchiveHandler;
24*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<IFolderFolder> _folder;
25*f6dc9357SAndroid Build Coastguard Worker 
26*f6dc9357SAndroid Build Coastguard Worker   // NWindows::NCOM::CComInitializer m_ComInitializer;
27*f6dc9357SAndroid Build Coastguard Worker   UString m_CurrentDir;
28*f6dc9357SAndroid Build Coastguard Worker 
29*f6dc9357SAndroid Build Coastguard Worker   UString m_PannelTitle;
30*f6dc9357SAndroid Build Coastguard Worker   FString m_FileName;
31*f6dc9357SAndroid Build Coastguard Worker   NWindows::NFile::NFind::CFileInfo m_FileInfo;
32*f6dc9357SAndroid Build Coastguard Worker 
33*f6dc9357SAndroid Build Coastguard Worker   UString _archiveTypeName;
34*f6dc9357SAndroid Build Coastguard Worker 
35*f6dc9357SAndroid Build Coastguard Worker   InfoPanelLine m_InfoLines[kNumInfoLinesMax];
36*f6dc9357SAndroid Build Coastguard Worker 
37*f6dc9357SAndroid Build Coastguard Worker   char m_FileNameBuffer[1024];
38*f6dc9357SAndroid Build Coastguard Worker   char m_CurrentDirBuffer[1024];
39*f6dc9357SAndroid Build Coastguard Worker   char m_PannelTitleBuffer[1024];
40*f6dc9357SAndroid Build Coastguard Worker 
41*f6dc9357SAndroid Build Coastguard Worker   AString PanelModeColumnTypes;
42*f6dc9357SAndroid Build Coastguard Worker   AString PanelModeColumnWidths;
43*f6dc9357SAndroid Build Coastguard Worker   // PanelMode _panelMode;
44*f6dc9357SAndroid Build Coastguard Worker   void AddColumn(PROPID aPropID);
45*f6dc9357SAndroid Build Coastguard Worker 
46*f6dc9357SAndroid Build Coastguard Worker   void EnterToDirectory(const UString &dirName);
47*f6dc9357SAndroid Build Coastguard Worker   void GetPathParts(UStringVector &pathParts);
48*f6dc9357SAndroid Build Coastguard Worker   void SetCurrentDirVar();
49*f6dc9357SAndroid Build Coastguard Worker   // HRESULT AfterUpdate(CWorkDirTempFile &tempFile, const UStringVector &pathVector);
50*f6dc9357SAndroid Build Coastguard Worker 
51*f6dc9357SAndroid Build Coastguard Worker public:
52*f6dc9357SAndroid Build Coastguard Worker 
53*f6dc9357SAndroid Build Coastguard Worker   bool PasswordIsDefined;
54*f6dc9357SAndroid Build Coastguard Worker   UString Password;
55*f6dc9357SAndroid Build Coastguard Worker 
56*f6dc9357SAndroid Build Coastguard Worker   CPlugin(const FString &fileName, CAgent *agent, UString archiveTypeName);
57*f6dc9357SAndroid Build Coastguard Worker   ~CPlugin();
58*f6dc9357SAndroid Build Coastguard Worker 
59*f6dc9357SAndroid Build Coastguard Worker   void ReadPluginPanelItem(PluginPanelItem &panelItem, UInt32 itemIndex);
60*f6dc9357SAndroid Build Coastguard Worker 
61*f6dc9357SAndroid Build Coastguard Worker   int GetFindData(PluginPanelItem **panelItems,int *itemsNumber,int opMode);
62*f6dc9357SAndroid Build Coastguard Worker   void FreeFindData(PluginPanelItem *panelItem,int ItemsNumber);
63*f6dc9357SAndroid Build Coastguard Worker   int SetDirectory(const char *aszDir, int opMode);
64*f6dc9357SAndroid Build Coastguard Worker   void GetOpenPluginInfo(struct OpenPluginInfo *info);
65*f6dc9357SAndroid Build Coastguard Worker   int DeleteFiles(PluginPanelItem *panelItems, unsigned itemsNumber, int opMode);
66*f6dc9357SAndroid Build Coastguard Worker 
67*f6dc9357SAndroid Build Coastguard Worker   HRESULT ExtractFiles(
68*f6dc9357SAndroid Build Coastguard Worker       bool decompressAllItems,
69*f6dc9357SAndroid Build Coastguard Worker       const UInt32 *indices,
70*f6dc9357SAndroid Build Coastguard Worker       UInt32 numIndices,
71*f6dc9357SAndroid Build Coastguard Worker       bool silent,
72*f6dc9357SAndroid Build Coastguard Worker       NExtract::NPathMode::EEnum pathMode,
73*f6dc9357SAndroid Build Coastguard Worker       NExtract::NOverwriteMode::EEnum overwriteMode,
74*f6dc9357SAndroid Build Coastguard Worker       const UString &destPath,
75*f6dc9357SAndroid Build Coastguard Worker       bool passwordIsDefined, const UString &password);
76*f6dc9357SAndroid Build Coastguard Worker 
77*f6dc9357SAndroid Build Coastguard Worker   NFar::NFileOperationReturnCode::EEnum GetFiles(struct PluginPanelItem *panelItem, unsigned itemsNumber,
78*f6dc9357SAndroid Build Coastguard Worker       int move, char *destPath, int opMode);
79*f6dc9357SAndroid Build Coastguard Worker 
80*f6dc9357SAndroid Build Coastguard Worker   NFar::NFileOperationReturnCode::EEnum GetFilesReal(struct PluginPanelItem *panelItems,
81*f6dc9357SAndroid Build Coastguard Worker       unsigned itemsNumber, int move, const char *_aDestPath, int opMode, bool showBox);
82*f6dc9357SAndroid Build Coastguard Worker 
83*f6dc9357SAndroid Build Coastguard Worker   NFar::NFileOperationReturnCode::EEnum PutFiles(struct PluginPanelItem *panelItems, unsigned itemsNumber,
84*f6dc9357SAndroid Build Coastguard Worker       int move, int opMode);
85*f6dc9357SAndroid Build Coastguard Worker   HRESULT CreateFolder();
86*f6dc9357SAndroid Build Coastguard Worker 
87*f6dc9357SAndroid Build Coastguard Worker   HRESULT ShowAttributesWindow();
88*f6dc9357SAndroid Build Coastguard Worker 
89*f6dc9357SAndroid Build Coastguard Worker   int ProcessKey(int key, unsigned controlState);
90*f6dc9357SAndroid Build Coastguard Worker };
91*f6dc9357SAndroid Build Coastguard Worker 
92*f6dc9357SAndroid Build Coastguard Worker HRESULT CompressFiles(const CObjectVector<PluginPanelItem> &pluginPanelItems);
93*f6dc9357SAndroid Build Coastguard Worker 
94*f6dc9357SAndroid Build Coastguard Worker #endif
95