#include "wx/generic/dirctrlg.h"
#ifdef __WXMSW__
+#include <windows.h>
#include <direct.h>
#include <stdlib.h>
#include <ctype.h>
/* width height ncolors chars_per_pixel */
"16 16 3 1",
/* colors */
-" s None c None",
-". c #000000",
-"+ c #ffffff",
+" s None c None",
+". c #000000",
+"+ c #ffffff",
/* pixels */
" ",
" ........ ",
/* Computer */
static char * icon4_xpm[] = {
"16 16 7 1",
-" s None c None",
-". c #808080",
-"X c #c0c0c0",
-"o c Black",
-"O c Gray100",
-"+ c #008080",
-"@ c Blue",
+" s None c None",
+". c #808080",
+"X c #c0c0c0",
+"o c Black",
+"O c Gray100",
+"+ c #008080",
+"@ c Blue",
" ........... ",
" .XXXXXXXXXX.o",
" .OOOOOOOOO..o",
/* Drive */
static char * icon5_xpm[] = {
"16 16 7 1",
-" s None c None",
-". c #808080",
-"X c #c0c0c0",
-"o c Black",
-"O c Gray100",
-"+ c Green",
-"@ c #008000",
+" s None c None",
+". c #808080",
+"X c #c0c0c0",
+"o c Black",
+"O c Gray100",
+"+ c Green",
+"@ c #008000",
" ",
" ",
" ",
/* CD-ROM */
static char *icon6_xpm[] = {
"16 16 10 1",
-" s None c None",
-". c #808080",
-"X c #c0c0c0",
-"o c Yellow",
-"O c Blue",
-"+ c Black",
-"@ c Gray100",
-"# c #008080",
-"$ c Green",
-"% c #008000",
+" s None c None",
+". c #808080",
+"X c #c0c0c0",
+"o c Yellow",
+"O c Blue",
+"+ c Black",
+"@ c Gray100",
+"# c #008080",
+"$ c Green",
+"% c #008000",
" ... ",
" ..XoX.. ",
" .O.XoXXX+ ",
/* Floppy */
static char * icon7_xpm[] = {
"16 16 7 1",
-" s None c None",
-". c #808080",
-"X c Gray100",
-"o c #c0c0c0",
-"O c Black",
-"+ c Cyan",
-"@ c Red",
+" s None c None",
+". c #808080",
+"X c Gray100",
+"o c #c0c0c0",
+"O c Black",
+"+ c Cyan",
+"@ c Red",
" ......X",
" .ooooooO",
" .+++++OO",
/* Removeable */
static char * icon8_xpm[] = {
"16 16 7 1",
-" s None c None",
-". c #808080",
-"X c #c0c0c0",
-"o c Black",
-"O c Gray100",
-"+ c Red",
-"@ c #800000",
+" s None c None",
+". c #808080",
+"X c #c0c0c0",
+"o c Black",
+"O c Gray100",
+"+ c Red",
+"@ c #800000",
" ",
" ",
" ",
static bool wxIsDriveAvailable(const wxString dirName)
{
#ifdef __WIN32__
- UINT errorMode = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
+ UINT errorMode = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
#endif
- bool success = TRUE;
+ bool success = TRUE;
// Check if this is a root directory and if so,
// whether the drive is avaiable.
- if (dirName.Len() == 3 && dirName[1] == wxT(':'))
+ if (dirName.Len() == 3 && dirName[(size_t)1] == wxT(':'))
{
- wxString dirNameLower(dirName.Lower());
+ wxString dirNameLower(dirName.Lower());
int currentDrive = _getdrive();
- int thisDrive = (int) (dirNameLower[0] - 'a' + 1) ;
+ int thisDrive = (int) (dirNameLower[(size_t)0] - 'a' + 1) ;
int err = _chdrive( thisDrive ) ;
_chdrive( currentDrive );
}
}
#ifdef __WIN32__
- (void) SetErrorMode(errorMode);
+ (void) SetErrorMode(errorMode);
#endif
- return success;
+ return success;
}
#endif
bool wxDirItemDataEx::HasSubDirs()
{
- if (m_path.IsEmpty())
- return TRUE;
+ if (m_path.IsEmpty())
+ return TRUE;
- // On WIN32, must check if this volume is mounted or
- // we get an error dialog for e.g. drive a:
+ // On WIN32, must check if this volume is mounted or
+ // we get an error dialog for e.g. drive a:
#ifdef __WIN32__
- if (!wxIsDriveAvailable(m_path))
- return FALSE;
+ if (!wxIsDriveAvailable(m_path))
+ return FALSE;
#endif
wxString search = m_path;
-
- if (m_path.Last() != wxFILE_SEP_PATH)
- {
- search += wxString(wxFILE_SEP_PATH);
- }
- search += wxT("*");
+
+ if (m_path.Last() != wxFILE_SEP_PATH)
+ {
+ search += wxString(wxFILE_SEP_PATH);
+ }
+ search += wxT("*");
wxLogNull log;
wxString path = wxFindFirstFile( search, wxDIR );
m_imageList->Add(wxIcon(icon7_xpm));
m_imageList->Add(wxIcon(icon8_xpm));
#elif defined(__WXMSW__)
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_CLOSED_FOLDER"), wxBITMAP_TYPE_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_OPEN_FOLDER"), wxBITMAP_TYPE_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_FILE"), wxBITMAP_TYPE_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_COMPUTER"), wxBITMAP_TYPE_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_DRIVE"), wxBITMAP_TYPE_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_CDROM"), wxBITMAP_TYPE_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_FLOPPY"), wxBITMAP_TYPE_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_REMOVEABLE"), wxBITMAP_TYPE_RESOURCE));
+ m_imageList->Add(wxIcon(wxT("wxICON_SMALL_CLOSED_FOLDER"), wxBITMAP_TYPE_ICO_RESOURCE));
+ m_imageList->Add(wxIcon(wxT("wxICON_SMALL_OPEN_FOLDER"), wxBITMAP_TYPE_ICO_RESOURCE));
+ m_imageList->Add(wxIcon(wxT("wxICON_SMALL_FILE"), wxBITMAP_TYPE_ICO_RESOURCE));
+ m_imageList->Add(wxIcon(wxT("wxICON_SMALL_COMPUTER"), wxBITMAP_TYPE_ICO_RESOURCE));
+ m_imageList->Add(wxIcon(wxT("wxICON_SMALL_DRIVE"), wxBITMAP_TYPE_ICO_RESOURCE));
+ m_imageList->Add(wxIcon(wxT("wxICON_SMALL_CDROM"), wxBITMAP_TYPE_ICO_RESOURCE));
+ m_imageList->Add(wxIcon(wxT("wxICON_SMALL_FLOPPY"), wxBITMAP_TYPE_ICO_RESOURCE));
+ m_imageList->Add(wxIcon(wxT("wxICON_SMALL_REMOVEABLE"), wxBITMAP_TYPE_ICO_RESOURCE));
#else
#error "Sorry, we don't have icons available for this platforms."
#endif
path.Printf(wxT("%c:\\"), (char) (drive + 'a' - 1));
name.Printf(wxT("(%c:)"), (char) (drive + 'a' - 1));
- if (wxIsDriveAvailable(path))
+ if (wxIsDriveAvailable(path))
{
AddSection(path, name);
#ifdef __WXMSW__
// Check if this is a root directory and if so,
// whether the drive is avaiable.
- if (!wxIsDriveAvailable(dirName))
- {
+ if (!wxIsDriveAvailable(dirName))
+ {
data->m_isExpanded = FALSE;
wxMessageBox(wxT("Sorry, this drive is not available."));
- return;
- }
+ return;
+ }
#endif
// This may take a longish time. Go to busy cursor
wxDir d;
wxString eachFilename;
+ wxLogNull log;
d.Open(dirName);
if (d.IsOpened())
// Now do the filenames -- but only if we're allowed to
if ((GetWindowStyle() & wxDIRCTRL_DIR_ONLY) == 0)
{
+ wxLogNull log;
+
d.Open(dirName);
if (d.IsOpened())
options = wxDIR_DIRS;
}
- wxDir dir2(path);
- wxString str;
- // Have to test for wxDIR_DIRS separately in case m_currentFilterStr is non-empty and
- // and filters out any directories
- if (dir2.GetFirst(& str, m_currentFilterStr, options) || dir2.GetFirst(& str, wxEmptyString, wxDIR_DIRS))
+ wxLogNull log;
+ wxDir dir2;
+ if (dir2.Open(path))
{
- m_treeCtrl->SetItemHasChildren(id);
- }
+ wxString str;
+ // Have to test for wxDIR_DIRS separately in case m_currentFilterStr is non-empty and
+ // and filters out any directories
+ if (dir2.GetFirst(& str, m_currentFilterStr, options) || dir2.GetFirst(& str, wxEmptyString, wxDIR_DIRS))
+ {
+ m_treeCtrl->SetItemHasChildren(id);
+ }
+ }
}
// Add the sorted filenames
wxDir d;
wxString eachFilename;
+ wxLogNull log;
d.Open(dirName);
if (d.IsOpened())
// 1) dir ctrl
m_dirCtrl = new wxGenericDirCtrl(this, ID_DIRCTRL,
defaultPath, wxPoint(5, 5),
- wxSize(300, 200), wxDIRCTRL_DIR_ONLY);
+ wxSize(300, 200), wxDIRCTRL_DIR_ONLY|wxSUNKEN_BORDER);
topsizer->Add( m_dirCtrl, 1, wxTOP|wxLEFT|wxRIGHT | wxEXPAND, 10 );