summaryrefslogtreecommitdiffstats
path: root/installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/UI/FileManager/RootFolder.cpp
diff options
context:
space:
mode:
authortjenssen <tim.jenssen@nokia.com>2012-03-13 13:38:26 +0100
committerKarsten Heimrich <karsten.heimrich@nokia.com>2012-03-13 17:35:19 +0100
commitfea754a77e599328c0a7d0801792ae1b5bc155fc (patch)
tree74d1b6fe4c43ca93e71585ea0719ec0e342ea90b /installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/UI/FileManager/RootFolder.cpp
parentc1da312f182ad1b81a1f0ce627e4f9b3eddbf92b (diff)
remove old 7zip version
Change-Id: I8fa14b3132599ddd164633ad932eff4ef7734c74 Reviewed-by: Karsten Heimrich <karsten.heimrich@nokia.com>
Diffstat (limited to 'installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/UI/FileManager/RootFolder.cpp')
-rw-r--r--installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/UI/FileManager/RootFolder.cpp278
1 files changed, 0 insertions, 278 deletions
diff --git a/installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/UI/FileManager/RootFolder.cpp b/installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/UI/FileManager/RootFolder.cpp
deleted file mode 100644
index bf9083bc4..000000000
--- a/installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/UI/FileManager/RootFolder.cpp
+++ /dev/null
@@ -1,278 +0,0 @@
-// RootFolder.cpp
-
-#include "StdAfx.h"
-
-#include "resource.h"
-
-#include "RootFolder.h"
-
-#include "Common/StringConvert.h"
-#include "../../PropID.h"
-#include "Windows/Defs.h"
-#include "Windows/PropVariant.h"
-
-#ifdef _WIN32
-#include "FSDrives.h"
-#include "PhysDriveFolder.h"
-#include "NetFolder.h"
-#endif
-#include "SysIconUtils.h"
-#include "LangUtils.h"
-
-using namespace NWindows;
-
-
-static const STATPROPSTG kProperties[] =
-{
- { NULL, kpidName, VT_BSTR}
-};
-
-// static const wchar_t *kMyComputerTitle = L"Computer";
-// static const wchar_t *kMyNetworkTitle = L"Network";
-
-#ifdef _WIN32
-UString RootFolder_GetName_Computer(int &iconIndex)
-{
- iconIndex = GetIconIndexForCSIDL(CSIDL_DRIVES);
- return LangString(IDS_COMPUTER, 0x03020300);
-}
-
-UString RootFolder_GetName_Network(int &iconIndex)
-{
- iconIndex = GetIconIndexForCSIDL(CSIDL_NETWORK);
- return LangString(IDS_NETWORK, 0x03020301);
-}
-
-UString RootFolder_GetName_Documents(int &iconIndex)
-{
- iconIndex = GetIconIndexForCSIDL(CSIDL_PERSONAL);
- return LangString(IDS_DOCUMENTS, 0x03020302); ;
-}
-
-const int ROOT_INDEX_COMPUTER = 0;
-const int ROOT_INDEX_DOCUMENTS = 1;
-const int ROOT_INDEX_NETWORK = 2;
-
-void CRootFolder::Init()
-{
- _names[ROOT_INDEX_COMPUTER] = RootFolder_GetName_Computer(_iconIndices[ROOT_INDEX_COMPUTER]);
- _names[ROOT_INDEX_DOCUMENTS] = RootFolder_GetName_Documents(_iconIndices[ROOT_INDEX_DOCUMENTS]);
- _names[ROOT_INDEX_NETWORK] = RootFolder_GetName_Network(_iconIndices[ROOT_INDEX_NETWORK]);
-};
-#else
-void CRootFolder::Init()
-{
-}
-#endif
-
-STDMETHODIMP CRootFolder::LoadItems()
-{
- Init();
- return S_OK;
-}
-
-STDMETHODIMP CRootFolder::GetNumberOfItems(UInt32 *numItems)
-{
-#ifdef _WIN32
- *numItems = kNumRootFolderItems;
-#else
- *numItems = 1; // only "/" !
-#endif
- return S_OK;
-}
-
-STDMETHODIMP CRootFolder::GetProperty(UInt32 itemIndex, PROPID propID, PROPVARIANT *value)
-{
- NCOM::CPropVariant prop;
- switch(propID)
- {
- case kpidIsDir: prop = true; break;
-#ifdef _WIN32
- case kpidName: prop = _names[itemIndex]; break;
-#else
- case kpidName: prop = L"/"; break;
-#endif
- }
- prop.Detach(value);
- return S_OK;
-}
-
-#ifdef _WIN32
-UString GetMyDocsPath()
-{
- UString us;
- WCHAR s[MAX_PATH + 1];
- if (SHGetSpecialFolderPathW(0, s, CSIDL_PERSONAL, FALSE))
- us = s;
- #ifndef _UNICODE
- else
- {
- CHAR s2[MAX_PATH + 1];
- if (SHGetSpecialFolderPathA(0, s2, CSIDL_PERSONAL, FALSE))
- us = GetUnicodeString(s2);
- }
- #endif
- if (us.Length() > 0 && us[us.Length() - 1] != L'\\')
- us += L'\\';
- return us;
-}
-#endif
-
-STDMETHODIMP CRootFolder::BindToFolder(UInt32 index, IFolderFolder **resultFolder)
-{
-#ifdef _WIN32
- if (index == ROOT_INDEX_COMPUTER)
- {
- CFSDrives *fsDrivesSpec = new CFSDrives;
- CMyComPtr<IFolderFolder> subFolder = fsDrivesSpec;
- fsDrivesSpec->Init();
- *resultFolder = subFolder.Detach();
- }
- else if (index == ROOT_INDEX_NETWORK)
- {
- CNetFolder *netFolderSpec = new CNetFolder;
- CMyComPtr<IFolderFolder> subFolder = netFolderSpec;
- netFolderSpec->Init(0, 0, _names[ROOT_INDEX_NETWORK] + L'\\');
- *resultFolder = subFolder.Detach();
- }
- else if (index == ROOT_INDEX_DOCUMENTS)
- {
- UString s = GetMyDocsPath();
- if (!s.IsEmpty())
- {
- NFsFolder::CFSFolder *fsFolderSpec = new NFsFolder::CFSFolder;
- CMyComPtr<IFolderFolder> subFolder = fsFolderSpec;
- RINOK(fsFolderSpec->Init(s, NULL));
- *resultFolder = subFolder.Detach();
- }
- }
- else
- return E_INVALIDARG;
- return S_OK;
-#else
- return E_INVALIDARG;
-#endif
-}
-
-static bool AreEqualNames(const UString &name1, const UString &name2)
-{
- return (name1 == name2 || name1 == (name2 + UString(WCHAR_PATH_SEPARATOR)));
-}
-
-STDMETHODIMP CRootFolder::BindToFolder(const wchar_t *name, IFolderFolder **resultFolder)
-{
- *resultFolder = 0;
- UString name2 = name;
- name2.Trim();
- if (name2.IsEmpty())
- {
- CRootFolder *rootFolderSpec = new CRootFolder;
- CMyComPtr<IFolderFolder> rootFolder = rootFolderSpec;
- rootFolderSpec->Init();
- *resultFolder = rootFolder.Detach();
- return S_OK;
- }
-#ifdef _WIN32
- for (int i = 0; i < kNumRootFolderItems; i++)
- if (AreEqualNames(name2, _names[i]))
- return BindToFolder((UInt32)i, resultFolder);
- if (AreEqualNames(name2, L"My Documents") ||
- AreEqualNames(name2, L"Documents"))
- return BindToFolder((UInt32)ROOT_INDEX_DOCUMENTS, resultFolder);
- if (AreEqualNames(name2, L"My Computer") ||
- AreEqualNames(name2, L"Computer"))
- return BindToFolder((UInt32)ROOT_INDEX_COMPUTER, resultFolder);
-#endif
- if (name2 == UString(WCHAR_PATH_SEPARATOR))
- {
- CMyComPtr<IFolderFolder> subFolder = this;
- *resultFolder = subFolder.Detach();
- return S_OK;
- }
-
- if (name2.Length () < 2)
- return E_INVALIDARG;
-
- CMyComPtr<IFolderFolder> subFolder;
-
-#ifdef _WIN32
- if (name2.Left(4) == L"\\\\.\\")
- {
- CPhysDriveFolder *folderSpec = new CPhysDriveFolder;
- subFolder = folderSpec;
- RINOK(folderSpec->Init(name2.Mid(4, 2)));
- }
- else
-#endif
- {
- if (name2[name2.Length () - 1] != WCHAR_PATH_SEPARATOR)
- name2 += WCHAR_PATH_SEPARATOR;
- NFsFolder::CFSFolder *fsFolderSpec = new NFsFolder::CFSFolder;
- subFolder = fsFolderSpec;
- if (fsFolderSpec->Init(name2, 0) != S_OK)
- {
-#ifdef _WIN32
- if (name2[0] == WCHAR_PATH_SEPARATOR)
- {
- CNetFolder *netFolderSpec = new CNetFolder;
- subFolder = netFolderSpec;
- netFolderSpec->Init(name2);
- }
- else
-#endif
- return E_INVALIDARG;
- }
- }
- *resultFolder = subFolder.Detach();
- return S_OK;
-}
-
-STDMETHODIMP CRootFolder::BindToParentFolder(IFolderFolder **resultFolder)
-{
- *resultFolder = 0;
- return S_OK;
-}
-
-STDMETHODIMP CRootFolder::GetNumberOfProperties(UInt32 *numProperties)
-{
- *numProperties = sizeof(kProperties) / sizeof(kProperties[0]);
- return S_OK;
-}
-
-STDMETHODIMP CRootFolder::GetPropertyInfo(UInt32 index,
- BSTR *name, PROPID *propID, VARTYPE *varType)
-{
- if (index >= sizeof(kProperties) / sizeof(kProperties[0]))
- return E_INVALIDARG;
- const STATPROPSTG &prop = kProperties[index];
- *propID = prop.propid;
- *varType = prop.vt;
- *name = 0;
- return S_OK;
-}
-
-STDMETHODIMP CRootFolder::GetFolderProperty(PROPID propID, PROPVARIANT *value)
-{
- NWindows::NCOM::CPropVariant prop;
- switch(propID)
- {
- case kpidType: prop = L"RootFolder"; break;
- case kpidPath: prop = L""; break;
- }
- prop.Detach(value);
- return S_OK;
-}
-
-STDMETHODIMP CRootFolder::GetSystemIconIndex(UInt32 index, INT32 *iconIndex)
-{
-#ifdef _WIN32
- *iconIndex = _iconIndices[index];
-#else
- *iconIndex = -1; // FIXME - folder icon ?
-#endif
- return S_OK;
-}
-
-
-
-