xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/FileManager/App.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // App.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_APP_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_APP_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/Control/CommandBar.h"
7*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/Control/ImageList.h"
8*f6dc9357SAndroid Build Coastguard Worker 
9*f6dc9357SAndroid Build Coastguard Worker #include "AppState.h"
10*f6dc9357SAndroid Build Coastguard Worker #include "Panel.h"
11*f6dc9357SAndroid Build Coastguard Worker 
12*f6dc9357SAndroid Build Coastguard Worker class CApp;
13*f6dc9357SAndroid Build Coastguard Worker 
14*f6dc9357SAndroid Build Coastguard Worker extern CApp g_App;
15*f6dc9357SAndroid Build Coastguard Worker extern HWND g_HWND;
16*f6dc9357SAndroid Build Coastguard Worker 
17*f6dc9357SAndroid Build Coastguard Worker const unsigned kNumPanelsMax = 2;
18*f6dc9357SAndroid Build Coastguard Worker 
19*f6dc9357SAndroid Build Coastguard Worker extern bool g_IsSmallScreen;
20*f6dc9357SAndroid Build Coastguard Worker 
21*f6dc9357SAndroid Build Coastguard Worker // must be larger than context menu IDs
22*f6dc9357SAndroid Build Coastguard Worker const int kMenuCmdID_Toolbar_Start = 1070;
23*f6dc9357SAndroid Build Coastguard Worker const int kMenuCmdID_Plugin_Start = 1100;
24*f6dc9357SAndroid Build Coastguard Worker 
25*f6dc9357SAndroid Build Coastguard Worker enum
26*f6dc9357SAndroid Build Coastguard Worker {
27*f6dc9357SAndroid Build Coastguard Worker   kMenuCmdID_Toolbar_Add = kMenuCmdID_Toolbar_Start,
28*f6dc9357SAndroid Build Coastguard Worker   kMenuCmdID_Toolbar_Extract,
29*f6dc9357SAndroid Build Coastguard Worker   kMenuCmdID_Toolbar_Test,
30*f6dc9357SAndroid Build Coastguard Worker   kMenuCmdID_Toolbar_End
31*f6dc9357SAndroid Build Coastguard Worker };
32*f6dc9357SAndroid Build Coastguard Worker 
33*f6dc9357SAndroid Build Coastguard Worker class CPanelCallbackImp Z7_final: public CPanelCallback
34*f6dc9357SAndroid Build Coastguard Worker {
35*f6dc9357SAndroid Build Coastguard Worker   CApp *_app;
36*f6dc9357SAndroid Build Coastguard Worker   unsigned _index;
37*f6dc9357SAndroid Build Coastguard Worker public:
Init(CApp * app,unsigned index)38*f6dc9357SAndroid Build Coastguard Worker   void Init(CApp *app, unsigned index)
39*f6dc9357SAndroid Build Coastguard Worker   {
40*f6dc9357SAndroid Build Coastguard Worker     _app = app;
41*f6dc9357SAndroid Build Coastguard Worker     _index = index;
42*f6dc9357SAndroid Build Coastguard Worker   }
43*f6dc9357SAndroid Build Coastguard Worker   virtual void OnTab() Z7_override;
44*f6dc9357SAndroid Build Coastguard Worker   virtual void SetFocusToPath(unsigned index) Z7_override;
45*f6dc9357SAndroid Build Coastguard Worker   virtual void OnCopy(bool move, bool copyToSame) Z7_override;
46*f6dc9357SAndroid Build Coastguard Worker   virtual void OnSetSameFolder() Z7_override;
47*f6dc9357SAndroid Build Coastguard Worker   virtual void OnSetSubFolder() Z7_override;
48*f6dc9357SAndroid Build Coastguard Worker   virtual void PanelWasFocused() Z7_override;
49*f6dc9357SAndroid Build Coastguard Worker   virtual void DragBegin() Z7_override;
50*f6dc9357SAndroid Build Coastguard Worker   virtual void DragEnd() Z7_override;
51*f6dc9357SAndroid Build Coastguard Worker   virtual void RefreshTitle(bool always) Z7_override;
52*f6dc9357SAndroid Build Coastguard Worker };
53*f6dc9357SAndroid Build Coastguard Worker 
54*f6dc9357SAndroid Build Coastguard Worker 
55*f6dc9357SAndroid Build Coastguard Worker class CDropTarget;
56*f6dc9357SAndroid Build Coastguard Worker 
57*f6dc9357SAndroid Build Coastguard Worker class CApp
58*f6dc9357SAndroid Build Coastguard Worker {
59*f6dc9357SAndroid Build Coastguard Worker public:
60*f6dc9357SAndroid Build Coastguard Worker   NWindows::CWindow _window;
61*f6dc9357SAndroid Build Coastguard Worker   bool ShowSystemMenu;
62*f6dc9357SAndroid Build Coastguard Worker   bool AutoRefresh_Mode;
63*f6dc9357SAndroid Build Coastguard Worker   // bool ShowDeletedFiles;
64*f6dc9357SAndroid Build Coastguard Worker   unsigned NumPanels;
65*f6dc9357SAndroid Build Coastguard Worker   unsigned LastFocusedPanel;
66*f6dc9357SAndroid Build Coastguard Worker 
67*f6dc9357SAndroid Build Coastguard Worker   bool ShowStandardToolbar;
68*f6dc9357SAndroid Build Coastguard Worker   bool ShowArchiveToolbar;
69*f6dc9357SAndroid Build Coastguard Worker   bool ShowButtonsLables;
70*f6dc9357SAndroid Build Coastguard Worker   bool LargeButtons;
71*f6dc9357SAndroid Build Coastguard Worker 
72*f6dc9357SAndroid Build Coastguard Worker   CAppState AppState;
73*f6dc9357SAndroid Build Coastguard Worker   CPanelCallbackImp m_PanelCallbackImp[kNumPanelsMax];
74*f6dc9357SAndroid Build Coastguard Worker   CPanel Panels[kNumPanelsMax];
75*f6dc9357SAndroid Build Coastguard Worker 
76*f6dc9357SAndroid Build Coastguard Worker   NWindows::NControl::CImageList _buttonsImageList;
77*f6dc9357SAndroid Build Coastguard Worker 
78*f6dc9357SAndroid Build Coastguard Worker   #ifdef UNDER_CE
79*f6dc9357SAndroid Build Coastguard Worker   NWindows::NControl::CCommandBar _commandBar;
80*f6dc9357SAndroid Build Coastguard Worker   #endif
81*f6dc9357SAndroid Build Coastguard Worker   NWindows::NControl::CToolBar _toolBar;
82*f6dc9357SAndroid Build Coastguard Worker 
83*f6dc9357SAndroid Build Coastguard Worker   CDropTarget *_dropTargetSpec;
84*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<IDropTarget> _dropTarget;
85*f6dc9357SAndroid Build Coastguard Worker 
86*f6dc9357SAndroid Build Coastguard Worker   UString LangString_N_SELECTED_ITEMS;
87*f6dc9357SAndroid Build Coastguard Worker 
88*f6dc9357SAndroid Build Coastguard Worker   void ReloadLangItems();
89*f6dc9357SAndroid Build Coastguard Worker 
CApp()90*f6dc9357SAndroid Build Coastguard Worker   CApp():
91*f6dc9357SAndroid Build Coastguard Worker     _window(NULL),
92*f6dc9357SAndroid Build Coastguard Worker     AutoRefresh_Mode(true),
93*f6dc9357SAndroid Build Coastguard Worker     NumPanels(2),
94*f6dc9357SAndroid Build Coastguard Worker     LastFocusedPanel(0)
95*f6dc9357SAndroid Build Coastguard Worker   {
96*f6dc9357SAndroid Build Coastguard Worker     SetPanels_AutoRefresh_Mode();
97*f6dc9357SAndroid Build Coastguard Worker   }
98*f6dc9357SAndroid Build Coastguard Worker 
99*f6dc9357SAndroid Build Coastguard Worker   void CreateDragTarget();
100*f6dc9357SAndroid Build Coastguard Worker   void SetFocusedPanel(unsigned index);
101*f6dc9357SAndroid Build Coastguard Worker   void DragBegin(unsigned panelIndex);
102*f6dc9357SAndroid Build Coastguard Worker   void DragEnd();
103*f6dc9357SAndroid Build Coastguard Worker 
104*f6dc9357SAndroid Build Coastguard Worker   void OnCopy(bool move, bool copyToSame, unsigned srcPanelIndex);
105*f6dc9357SAndroid Build Coastguard Worker   void OnSetSameFolder(unsigned srcPanelIndex);
106*f6dc9357SAndroid Build Coastguard Worker   void OnSetSubFolder(unsigned srcPanelIndex);
107*f6dc9357SAndroid Build Coastguard Worker 
108*f6dc9357SAndroid Build Coastguard Worker   HRESULT CreateOnePanel(unsigned panelIndex, const UString &mainPath, const UString &arcFormat, bool needOpenArc, COpenResult &openRes);
109*f6dc9357SAndroid Build Coastguard Worker   HRESULT Create(HWND hwnd, const UString &mainPath, const UString &arcFormat, int xSizes[2], bool needOpenArc, COpenResult &openRes);
110*f6dc9357SAndroid Build Coastguard Worker   void Read();
111*f6dc9357SAndroid Build Coastguard Worker   void Save();
112*f6dc9357SAndroid Build Coastguard Worker   void ReleaseApp();
113*f6dc9357SAndroid Build Coastguard Worker 
114*f6dc9357SAndroid Build Coastguard Worker   // void SetFocus(int panelIndex) { Panels[panelIndex].SetFocusToList(); }
SetFocusToLastItem()115*f6dc9357SAndroid Build Coastguard Worker   void SetFocusToLastItem() { Panels[LastFocusedPanel].SetFocusToLastRememberedItem(); }
GetFocusedPanelIndex()116*f6dc9357SAndroid Build Coastguard Worker   unsigned GetFocusedPanelIndex() const { return LastFocusedPanel; }
IsPanelVisible(unsigned index)117*f6dc9357SAndroid Build Coastguard Worker   bool IsPanelVisible(unsigned index) const { return (NumPanels > 1 || index == LastFocusedPanel); }
GetFocusedPanel()118*f6dc9357SAndroid Build Coastguard Worker   CPanel &GetFocusedPanel() { return Panels[GetFocusedPanelIndex()]; }
119*f6dc9357SAndroid Build Coastguard Worker 
120*f6dc9357SAndroid Build Coastguard Worker   // File Menu
OpenItem()121*f6dc9357SAndroid Build Coastguard Worker   void OpenItem() { GetFocusedPanel().OpenSelectedItems(true); }
OpenItemInside(const wchar_t * type)122*f6dc9357SAndroid Build Coastguard Worker   void OpenItemInside(const wchar_t *type) { GetFocusedPanel().OpenFocusedItemAsInternal(type); }
OpenItemOutside()123*f6dc9357SAndroid Build Coastguard Worker   void OpenItemOutside() { GetFocusedPanel().OpenSelectedItems(false); }
EditItem(bool useEditor)124*f6dc9357SAndroid Build Coastguard Worker   void EditItem(bool useEditor) { GetFocusedPanel().EditItem(useEditor); }
Rename()125*f6dc9357SAndroid Build Coastguard Worker   void Rename() { GetFocusedPanel().RenameFile(); }
CopyTo()126*f6dc9357SAndroid Build Coastguard Worker   void CopyTo() { OnCopy(false, false, GetFocusedPanelIndex()); }
MoveTo()127*f6dc9357SAndroid Build Coastguard Worker   void MoveTo() { OnCopy(true, false, GetFocusedPanelIndex()); }
Delete(bool toRecycleBin)128*f6dc9357SAndroid Build Coastguard Worker   void Delete(bool toRecycleBin) { GetFocusedPanel().DeleteItems(toRecycleBin); }
129*f6dc9357SAndroid Build Coastguard Worker   HRESULT CalculateCrc2(const UString &methodName);
130*f6dc9357SAndroid Build Coastguard Worker   void CalculateCrc(const char *methodName);
131*f6dc9357SAndroid Build Coastguard Worker 
132*f6dc9357SAndroid Build Coastguard Worker   void DiffFiles(const UString &path1, const UString &path2);
133*f6dc9357SAndroid Build Coastguard Worker   void DiffFiles();
134*f6dc9357SAndroid Build Coastguard Worker 
135*f6dc9357SAndroid Build Coastguard Worker   void VerCtrl(unsigned id);
136*f6dc9357SAndroid Build Coastguard Worker 
137*f6dc9357SAndroid Build Coastguard Worker   void Split();
138*f6dc9357SAndroid Build Coastguard Worker   void Combine();
Properties()139*f6dc9357SAndroid Build Coastguard Worker   void Properties() { GetFocusedPanel().Properties(); }
Comment()140*f6dc9357SAndroid Build Coastguard Worker   void Comment() { GetFocusedPanel().ChangeComment(); }
141*f6dc9357SAndroid Build Coastguard Worker 
142*f6dc9357SAndroid Build Coastguard Worker   #ifndef UNDER_CE
143*f6dc9357SAndroid Build Coastguard Worker   void Link();
OpenAltStreams()144*f6dc9357SAndroid Build Coastguard Worker   void OpenAltStreams() { GetFocusedPanel().OpenAltStreams(); }
145*f6dc9357SAndroid Build Coastguard Worker   #endif
146*f6dc9357SAndroid Build Coastguard Worker 
CreateFolder()147*f6dc9357SAndroid Build Coastguard Worker   void CreateFolder() { GetFocusedPanel().CreateFolder(); }
CreateFile()148*f6dc9357SAndroid Build Coastguard Worker   void CreateFile() { GetFocusedPanel().CreateFile(); }
149*f6dc9357SAndroid Build Coastguard Worker 
150*f6dc9357SAndroid Build Coastguard Worker   // Edit
EditCut()151*f6dc9357SAndroid Build Coastguard Worker   void EditCut() { GetFocusedPanel().EditCut(); }
EditCopy()152*f6dc9357SAndroid Build Coastguard Worker   void EditCopy() { GetFocusedPanel().EditCopy(); }
EditPaste()153*f6dc9357SAndroid Build Coastguard Worker   void EditPaste() { GetFocusedPanel().EditPaste(); }
154*f6dc9357SAndroid Build Coastguard Worker 
SelectAll(bool selectMode)155*f6dc9357SAndroid Build Coastguard Worker   void SelectAll(bool selectMode) { GetFocusedPanel().SelectAll(selectMode); }
InvertSelection()156*f6dc9357SAndroid Build Coastguard Worker   void InvertSelection() { GetFocusedPanel().InvertSelection(); }
SelectSpec(bool selectMode)157*f6dc9357SAndroid Build Coastguard Worker   void SelectSpec(bool selectMode) { GetFocusedPanel().SelectSpec(selectMode); }
SelectByType(bool selectMode)158*f6dc9357SAndroid Build Coastguard Worker   void SelectByType(bool selectMode) { GetFocusedPanel().SelectByType(selectMode); }
159*f6dc9357SAndroid Build Coastguard Worker 
Refresh_StatusBar()160*f6dc9357SAndroid Build Coastguard Worker   void Refresh_StatusBar() { GetFocusedPanel().Refresh_StatusBar(); }
161*f6dc9357SAndroid Build Coastguard Worker 
SetListViewMode(UInt32 index)162*f6dc9357SAndroid Build Coastguard Worker   void SetListViewMode(UInt32 index) { GetFocusedPanel().SetListViewMode(index); }
GetListViewMode()163*f6dc9357SAndroid Build Coastguard Worker   UInt32 GetListViewMode() { return GetFocusedPanel().GetListViewMode(); }
GetSortID()164*f6dc9357SAndroid Build Coastguard Worker   PROPID GetSortID() { return GetFocusedPanel().GetSortID(); }
165*f6dc9357SAndroid Build Coastguard Worker 
SortItemsWithPropID(PROPID propID)166*f6dc9357SAndroid Build Coastguard Worker   void SortItemsWithPropID(PROPID propID) { GetFocusedPanel().SortItemsWithPropID(propID); }
167*f6dc9357SAndroid Build Coastguard Worker 
OpenRootFolder()168*f6dc9357SAndroid Build Coastguard Worker   void OpenRootFolder() { GetFocusedPanel().OpenDrivesFolder(); }
OpenParentFolder()169*f6dc9357SAndroid Build Coastguard Worker   void OpenParentFolder() { GetFocusedPanel().OpenParentFolder(); }
FoldersHistory()170*f6dc9357SAndroid Build Coastguard Worker   void FoldersHistory() { GetFocusedPanel().FoldersHistory(); }
RefreshView()171*f6dc9357SAndroid Build Coastguard Worker   void RefreshView() { GetFocusedPanel().OnReload(); }
RefreshAllPanels()172*f6dc9357SAndroid Build Coastguard Worker   void RefreshAllPanels()
173*f6dc9357SAndroid Build Coastguard Worker   {
174*f6dc9357SAndroid Build Coastguard Worker     for (unsigned i = 0; i < NumPanels; i++)
175*f6dc9357SAndroid Build Coastguard Worker     {
176*f6dc9357SAndroid Build Coastguard Worker       unsigned index = i;
177*f6dc9357SAndroid Build Coastguard Worker       if (NumPanels == 1)
178*f6dc9357SAndroid Build Coastguard Worker         index = LastFocusedPanel;
179*f6dc9357SAndroid Build Coastguard Worker       Panels[index].OnReload();
180*f6dc9357SAndroid Build Coastguard Worker     }
181*f6dc9357SAndroid Build Coastguard Worker   }
182*f6dc9357SAndroid Build Coastguard Worker 
183*f6dc9357SAndroid Build Coastguard Worker   /*
184*f6dc9357SAndroid Build Coastguard Worker   void SysIconsWereChanged()
185*f6dc9357SAndroid Build Coastguard Worker   {
186*f6dc9357SAndroid Build Coastguard Worker     for (unsigned i = 0; i < NumPanels; i++)
187*f6dc9357SAndroid Build Coastguard Worker     {
188*f6dc9357SAndroid Build Coastguard Worker       unsigned index = i;
189*f6dc9357SAndroid Build Coastguard Worker       if (NumPanels == 1)
190*f6dc9357SAndroid Build Coastguard Worker         index = LastFocusedPanel;
191*f6dc9357SAndroid Build Coastguard Worker       Panels[index].SysIconsWereChanged();
192*f6dc9357SAndroid Build Coastguard Worker     }
193*f6dc9357SAndroid Build Coastguard Worker   }
194*f6dc9357SAndroid Build Coastguard Worker   */
195*f6dc9357SAndroid Build Coastguard Worker 
196*f6dc9357SAndroid Build Coastguard Worker   void SetListSettings();
197*f6dc9357SAndroid Build Coastguard Worker   HRESULT SwitchOnOffOnePanel();
198*f6dc9357SAndroid Build Coastguard Worker 
199*f6dc9357SAndroid Build Coastguard Worker   CIntVector _timestampLevels;
200*f6dc9357SAndroid Build Coastguard Worker 
GetFlatMode()201*f6dc9357SAndroid Build Coastguard Worker   bool GetFlatMode() { return Panels[LastFocusedPanel].GetFlatMode(); }
202*f6dc9357SAndroid Build Coastguard Worker 
GetTimestampLevel()203*f6dc9357SAndroid Build Coastguard Worker   int GetTimestampLevel() const { return Panels[LastFocusedPanel]._timestampLevel; }
SetTimestampLevel(int level)204*f6dc9357SAndroid Build Coastguard Worker   void SetTimestampLevel(int level)
205*f6dc9357SAndroid Build Coastguard Worker   {
206*f6dc9357SAndroid Build Coastguard Worker     for (unsigned i = 0; i < kNumPanelsMax; i++)
207*f6dc9357SAndroid Build Coastguard Worker     {
208*f6dc9357SAndroid Build Coastguard Worker       CPanel &panel = Panels[i];
209*f6dc9357SAndroid Build Coastguard Worker       panel._timestampLevel = level;
210*f6dc9357SAndroid Build Coastguard Worker     }
211*f6dc9357SAndroid Build Coastguard Worker     RedrawListItems_InPanels();
212*f6dc9357SAndroid Build Coastguard Worker   }
213*f6dc9357SAndroid Build Coastguard Worker 
RedrawListItems_InPanels()214*f6dc9357SAndroid Build Coastguard Worker   void RedrawListItems_InPanels()
215*f6dc9357SAndroid Build Coastguard Worker   {
216*f6dc9357SAndroid Build Coastguard Worker     for (unsigned i = 0; i < kNumPanelsMax; i++)
217*f6dc9357SAndroid Build Coastguard Worker     {
218*f6dc9357SAndroid Build Coastguard Worker       CPanel &panel = Panels[i];
219*f6dc9357SAndroid Build Coastguard Worker       if (panel.PanelCreated)
220*f6dc9357SAndroid Build Coastguard Worker         panel.RedrawListItems();
221*f6dc9357SAndroid Build Coastguard Worker     }
222*f6dc9357SAndroid Build Coastguard Worker   }
223*f6dc9357SAndroid Build Coastguard Worker 
224*f6dc9357SAndroid Build Coastguard Worker   // bool Get_ShowNtfsStrems_Mode() { return Panels[LastFocusedPanel].Get_ShowNtfsStrems_Mode(); }
225*f6dc9357SAndroid Build Coastguard Worker 
ChangeFlatMode()226*f6dc9357SAndroid Build Coastguard Worker   void ChangeFlatMode() { Panels[LastFocusedPanel].ChangeFlatMode(); }
227*f6dc9357SAndroid Build Coastguard Worker   // void Change_ShowNtfsStrems_Mode() { Panels[LastFocusedPanel].Change_ShowNtfsStrems_Mode(); }
228*f6dc9357SAndroid Build Coastguard Worker   // void Change_ShowDeleted() { ShowDeletedFiles = !ShowDeletedFiles; }
229*f6dc9357SAndroid Build Coastguard Worker 
Get_AutoRefresh_Mode()230*f6dc9357SAndroid Build Coastguard Worker   bool Get_AutoRefresh_Mode()
231*f6dc9357SAndroid Build Coastguard Worker   {
232*f6dc9357SAndroid Build Coastguard Worker     // return Panels[LastFocusedPanel].Get_ShowNtfsStrems_Mode();
233*f6dc9357SAndroid Build Coastguard Worker     return AutoRefresh_Mode;
234*f6dc9357SAndroid Build Coastguard Worker   }
Change_AutoRefresh_Mode()235*f6dc9357SAndroid Build Coastguard Worker   void Change_AutoRefresh_Mode()
236*f6dc9357SAndroid Build Coastguard Worker   {
237*f6dc9357SAndroid Build Coastguard Worker     AutoRefresh_Mode = !AutoRefresh_Mode;
238*f6dc9357SAndroid Build Coastguard Worker     SetPanels_AutoRefresh_Mode();
239*f6dc9357SAndroid Build Coastguard Worker   }
SetPanels_AutoRefresh_Mode()240*f6dc9357SAndroid Build Coastguard Worker   void SetPanels_AutoRefresh_Mode()
241*f6dc9357SAndroid Build Coastguard Worker   {
242*f6dc9357SAndroid Build Coastguard Worker     for (unsigned i = 0; i < kNumPanelsMax; i++)
243*f6dc9357SAndroid Build Coastguard Worker       Panels[i].Set_AutoRefresh_Mode(AutoRefresh_Mode);
244*f6dc9357SAndroid Build Coastguard Worker   }
245*f6dc9357SAndroid Build Coastguard Worker 
OpenBookmark(unsigned index)246*f6dc9357SAndroid Build Coastguard Worker   void OpenBookmark(unsigned index) { GetFocusedPanel().OpenBookmark(index); }
SetBookmark(unsigned index)247*f6dc9357SAndroid Build Coastguard Worker   void SetBookmark(unsigned index) { GetFocusedPanel().SetBookmark(index); }
248*f6dc9357SAndroid Build Coastguard Worker 
249*f6dc9357SAndroid Build Coastguard Worker   void ReloadToolbars();
ReadToolbar()250*f6dc9357SAndroid Build Coastguard Worker   void ReadToolbar()
251*f6dc9357SAndroid Build Coastguard Worker   {
252*f6dc9357SAndroid Build Coastguard Worker     const UInt32 mask = ReadToolbarsMask();
253*f6dc9357SAndroid Build Coastguard Worker     if (mask & ((UInt32)1 << 31))
254*f6dc9357SAndroid Build Coastguard Worker     {
255*f6dc9357SAndroid Build Coastguard Worker       ShowButtonsLables = !g_IsSmallScreen;
256*f6dc9357SAndroid Build Coastguard Worker       LargeButtons = false;
257*f6dc9357SAndroid Build Coastguard Worker       ShowStandardToolbar = ShowArchiveToolbar = true;
258*f6dc9357SAndroid Build Coastguard Worker     }
259*f6dc9357SAndroid Build Coastguard Worker     else
260*f6dc9357SAndroid Build Coastguard Worker     {
261*f6dc9357SAndroid Build Coastguard Worker       ShowButtonsLables = ((mask & 1) != 0);
262*f6dc9357SAndroid Build Coastguard Worker       LargeButtons = ((mask & 2) != 0);
263*f6dc9357SAndroid Build Coastguard Worker       ShowStandardToolbar = ((mask & 4) != 0);
264*f6dc9357SAndroid Build Coastguard Worker       ShowArchiveToolbar  = ((mask & 8) != 0);
265*f6dc9357SAndroid Build Coastguard Worker     }
266*f6dc9357SAndroid Build Coastguard Worker   }
SaveToolbar()267*f6dc9357SAndroid Build Coastguard Worker   void SaveToolbar()
268*f6dc9357SAndroid Build Coastguard Worker   {
269*f6dc9357SAndroid Build Coastguard Worker     UInt32 mask = 0;
270*f6dc9357SAndroid Build Coastguard Worker     if (ShowButtonsLables) mask |= 1;
271*f6dc9357SAndroid Build Coastguard Worker     if (LargeButtons) mask |= 2;
272*f6dc9357SAndroid Build Coastguard Worker     if (ShowStandardToolbar) mask |= 4;
273*f6dc9357SAndroid Build Coastguard Worker     if (ShowArchiveToolbar) mask |= 8;
274*f6dc9357SAndroid Build Coastguard Worker     SaveToolbarsMask(mask);
275*f6dc9357SAndroid Build Coastguard Worker   }
276*f6dc9357SAndroid Build Coastguard Worker 
277*f6dc9357SAndroid Build Coastguard Worker   void SaveToolbarChanges();
278*f6dc9357SAndroid Build Coastguard Worker 
SwitchStandardToolbar()279*f6dc9357SAndroid Build Coastguard Worker   void SwitchStandardToolbar()
280*f6dc9357SAndroid Build Coastguard Worker   {
281*f6dc9357SAndroid Build Coastguard Worker     ShowStandardToolbar = !ShowStandardToolbar;
282*f6dc9357SAndroid Build Coastguard Worker     SaveToolbarChanges();
283*f6dc9357SAndroid Build Coastguard Worker   }
SwitchArchiveToolbar()284*f6dc9357SAndroid Build Coastguard Worker   void SwitchArchiveToolbar()
285*f6dc9357SAndroid Build Coastguard Worker   {
286*f6dc9357SAndroid Build Coastguard Worker     ShowArchiveToolbar = !ShowArchiveToolbar;
287*f6dc9357SAndroid Build Coastguard Worker     SaveToolbarChanges();
288*f6dc9357SAndroid Build Coastguard Worker   }
SwitchButtonsLables()289*f6dc9357SAndroid Build Coastguard Worker   void SwitchButtonsLables()
290*f6dc9357SAndroid Build Coastguard Worker   {
291*f6dc9357SAndroid Build Coastguard Worker     ShowButtonsLables = !ShowButtonsLables;
292*f6dc9357SAndroid Build Coastguard Worker     SaveToolbarChanges();
293*f6dc9357SAndroid Build Coastguard Worker   }
SwitchLargeButtons()294*f6dc9357SAndroid Build Coastguard Worker   void SwitchLargeButtons()
295*f6dc9357SAndroid Build Coastguard Worker   {
296*f6dc9357SAndroid Build Coastguard Worker     LargeButtons = !LargeButtons;
297*f6dc9357SAndroid Build Coastguard Worker     SaveToolbarChanges();
298*f6dc9357SAndroid Build Coastguard Worker   }
299*f6dc9357SAndroid Build Coastguard Worker 
AddToArchive()300*f6dc9357SAndroid Build Coastguard Worker   void AddToArchive() { GetFocusedPanel().AddToArchive(); }
ExtractArchives()301*f6dc9357SAndroid Build Coastguard Worker   void ExtractArchives() { GetFocusedPanel().ExtractArchives(); }
TestArchives()302*f6dc9357SAndroid Build Coastguard Worker   void TestArchives() { GetFocusedPanel().TestArchives(); }
303*f6dc9357SAndroid Build Coastguard Worker 
304*f6dc9357SAndroid Build Coastguard Worker   void OnNotify(int ctrlID, LPNMHDR pnmh);
305*f6dc9357SAndroid Build Coastguard Worker 
306*f6dc9357SAndroid Build Coastguard Worker   UString PrevTitle;
307*f6dc9357SAndroid Build Coastguard Worker   void RefreshTitle(bool always = false);
RefreshTitleAlways()308*f6dc9357SAndroid Build Coastguard Worker   void RefreshTitleAlways() { RefreshTitle(true); }
309*f6dc9357SAndroid Build Coastguard Worker   void RefreshTitlePanel(unsigned panelIndex, bool always = false);
310*f6dc9357SAndroid Build Coastguard Worker 
311*f6dc9357SAndroid Build Coastguard Worker   void MoveSubWindows();
312*f6dc9357SAndroid Build Coastguard Worker };
313*f6dc9357SAndroid Build Coastguard Worker 
314*f6dc9357SAndroid Build Coastguard Worker #endif
315