First nonminimal wxPalmOS functionality: enumeration of available volumes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31137 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -284,7 +284,7 @@
|
|||||||
// Default is 1
|
// Default is 1
|
||||||
//
|
//
|
||||||
// Recommended setting: 1 (but may be safely disabled if you don't use it)
|
// Recommended setting: 1 (but may be safely disabled if you don't use it)
|
||||||
#define wxUSE_FSVOLUME 0
|
#define wxUSE_FSVOLUME 1
|
||||||
|
|
||||||
// use wxTextBuffer class: required by wxTextFile
|
// use wxTextBuffer class: required by wxTextFile
|
||||||
#define wxUSE_TEXTBUFFER 0
|
#define wxUSE_TEXTBUFFER 0
|
||||||
|
@@ -36,31 +36,13 @@
|
|||||||
#include "wx/intl.h"
|
#include "wx/intl.h"
|
||||||
#endif // WX_PRECOMP
|
#endif // WX_PRECOMP
|
||||||
|
|
||||||
#include "wx/dir.h"
|
#include "wx/arrstr.h"
|
||||||
#include "wx/hashmap.h"
|
|
||||||
#include "wx/dynlib.h"
|
|
||||||
#include "wx/arrimpl.cpp"
|
|
||||||
|
|
||||||
#include "wx/volume.h"
|
#include "wx/volume.h"
|
||||||
|
|
||||||
#include "wx/palmos/missing.h"
|
#include "VFSMgr.h"
|
||||||
|
|
||||||
#if wxUSE_BASE
|
#if wxUSE_BASE
|
||||||
|
|
||||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
// Dynamic library function defs.
|
|
||||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
|
|
||||||
static wxDynamicLibrary s_mprLib;
|
|
||||||
|
|
||||||
typedef DWORD (WINAPI* WNetOpenEnumPtr)(DWORD, DWORD, DWORD, LPNETRESOURCE, LPHANDLE);
|
|
||||||
typedef DWORD (WINAPI* WNetEnumResourcePtr)(HANDLE, LPDWORD, LPVOID, LPDWORD);
|
|
||||||
typedef DWORD (WINAPI* WNetCloseEnumPtr)(HANDLE);
|
|
||||||
|
|
||||||
static WNetOpenEnumPtr s_pWNetOpenEnum;
|
|
||||||
static WNetEnumResourcePtr s_pWNetEnumResource;
|
|
||||||
static WNetCloseEnumPtr s_pWNetCloseEnum;
|
|
||||||
|
|
||||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
// Globals/Statics
|
// Globals/Statics
|
||||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
@@ -82,7 +64,9 @@ struct FileInfo
|
|||||||
unsigned m_flags;
|
unsigned m_flags;
|
||||||
wxFSVolumeKind m_type;
|
wxFSVolumeKind m_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
WX_DECLARE_STRING_HASH_MAP(FileInfo, FileInfoMap);
|
WX_DECLARE_STRING_HASH_MAP(FileInfo, FileInfoMap);
|
||||||
|
|
||||||
// Cygwin bug (?) destructor for global s_fileInfo is called twice...
|
// Cygwin bug (?) destructor for global s_fileInfo is called twice...
|
||||||
static FileInfoMap& GetFileInfoMap()
|
static FileInfoMap& GetFileInfoMap()
|
||||||
{
|
{
|
||||||
@@ -123,41 +107,6 @@ static bool FilteredAdd(wxArrayString& list, const wxChar* filename,
|
|||||||
return false;
|
return false;
|
||||||
} // FilteredAdd
|
} // FilteredAdd
|
||||||
|
|
||||||
//=============================================================================
|
|
||||||
// Function: BuildListFromNN
|
|
||||||
// Purpose: Append or remove items from the list
|
|
||||||
// Notes: - There is no way to find all disconnected NN items, or even to find
|
|
||||||
// all items while determining which are connected and not. So this
|
|
||||||
// function will find either all items or connected items.
|
|
||||||
//=============================================================================
|
|
||||||
static void BuildListFromNN(wxArrayString& list, NETRESOURCE* pResSrc,
|
|
||||||
unsigned flagsSet, unsigned flagsUnset)
|
|
||||||
{
|
|
||||||
} // BuildListFromNN
|
|
||||||
|
|
||||||
//=============================================================================
|
|
||||||
// Function: CompareFcn
|
|
||||||
// Purpose: Used to sort the NN list alphabetically, case insensitive.
|
|
||||||
//=============================================================================
|
|
||||||
static int CompareFcn(wxString* first, wxString* second)
|
|
||||||
{
|
|
||||||
return wxStricmp(first->c_str(), second->c_str());
|
|
||||||
} // CompareFcn
|
|
||||||
|
|
||||||
//=============================================================================
|
|
||||||
// Function: BuildRemoteList
|
|
||||||
// Purpose: Append Network Neighborhood items to the list.
|
|
||||||
// Notes: - Mounted gets transalated into Connected. FilteredAdd is told
|
|
||||||
// to ignore the Mounted flag since we need to handle it in a weird
|
|
||||||
// way manually.
|
|
||||||
// - The resulting list is sorted alphabetically.
|
|
||||||
//=============================================================================
|
|
||||||
static bool BuildRemoteList(wxArrayString& list, NETRESOURCE* pResSrc,
|
|
||||||
unsigned flagsSet, unsigned flagsUnset)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
} // BuildRemoteList
|
|
||||||
|
|
||||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
// wxFSVolume
|
// wxFSVolume
|
||||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
@@ -171,6 +120,27 @@ wxArrayString wxFSVolumeBase::GetVolumes(int flagsSet, int flagsUnset)
|
|||||||
{
|
{
|
||||||
wxArrayString list;
|
wxArrayString list;
|
||||||
|
|
||||||
|
UInt16 refNum;
|
||||||
|
UInt32 it = vfsIteratorStart;
|
||||||
|
|
||||||
|
while (it != vfsIteratorStop)
|
||||||
|
{
|
||||||
|
status_t err = VFSVolumeEnumerate(&refNum, &it);
|
||||||
|
if (err == errNone)
|
||||||
|
{
|
||||||
|
// manual: "Volume labels can be up to 255 characters long."
|
||||||
|
char label[256];
|
||||||
|
err = VFSVolumeGetLabel(refNum,label,256);
|
||||||
|
if (err == errNone)
|
||||||
|
{
|
||||||
|
list.Add(wxString::FromAscii(label));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (err != errNone)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
} // GetVolumes
|
} // GetVolumes
|
||||||
|
|
||||||
@@ -212,7 +182,7 @@ bool wxFSVolumeBase::Create(const wxString& name)
|
|||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
// Function: IsOk
|
// Function: IsOk
|
||||||
// Purpose: returns TRUE if the volume is legal.
|
// Purpose: returns true if the volume is legal.
|
||||||
// Notes: For fixed disks, it must exist. For removable disks, it must also
|
// Notes: For fixed disks, it must exist. For removable disks, it must also
|
||||||
// be present. For Network Shares, it must also be logged in, etc.
|
// be present. For Network Shares, it must also be logged in, etc.
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
Reference in New Issue
Block a user