#include <sys/stat.h>
#include <dirent.h>
#include <pwd.h>
-#include <grp.h>
-#include <time.h>
+#ifndef __VMS
+# include <grp.h>
+#endif
+# include <time.h>
#include <unistd.h>
#include "wx/generic/home.xpm"
class wxFileIconEntry : public wxObject
{
- public:
- wxFileIconEntry(int i) { id = i; }
+public:
+ wxFileIconEntry(int i) { id = i; }
- int id;
+ int id;
};
class wxFileIconsTable
{
- public:
-
- wxFileIconsTable();
+public:
+ wxFileIconsTable();
- int GetIconID(const wxString& extension, const wxString& mime = wxEmptyString);
- wxImageList *GetImageList() { return &m_ImageList; }
+ int GetIconID(const wxString& extension, const wxString& mime = wxEmptyString);
+ wxImageList *GetImageList() { return &m_ImageList; }
- protected:
- wxImageList m_ImageList;
- wxHashTable m_HashTable;
+protected:
+ wxImageList m_ImageList;
+ wxHashTable m_HashTable;
};
static wxFileIconsTable *g_IconsTable = NULL;
struct stat buff;
stat( m_fileName.fn_str(), &buff );
-#ifndef __EMX__
+#if !defined( __EMX__ ) && !defined(__VMS)
struct stat lbuff;
lstat( m_fileName.fn_str(), &lbuff );
m_isLink = S_ISLNK( lbuff.st_mode );
BEGIN_EVENT_TABLE(wxFileCtrl,wxListCtrl)
EVT_LIST_DELETE_ITEM(-1, wxFileCtrl::OnListDeleteItem)
+ EVT_LIST_DELETE_ALL_ITEMS(-1, wxFileCtrl::OnListDeleteAllItems)
EVT_LIST_END_LABEL_EDIT(-1, wxFileCtrl::OnListEndLabelEdit)
END_EVENT_TABLE()
-
wxFileCtrl::wxFileCtrl()
{
m_dirName = wxT("/");
res = wxFileNameFromPath( f );
fd = new wxFileData( res, f );
wxString s = fd->GetName();
- if (m_showHidden || (s[0] != wxT('.')))
+ if (m_showHidden || (s[0u] != wxT('.')))
{
Add( fd, item );
item.m_itemId++;
res = wxFileNameFromPath( f );
fd = new wxFileData( res, f );
wxString s = fd->GetName();
- if (m_showHidden || (s[0] != wxT('.')))
+ if (m_showHidden || (s[0u] != wxT('.')))
{
Add( fd, item );
item.m_itemId++;
SortItems( ListCompare, 0 );
- SetColumnWidth( 1, wxLIST_AUTOSIZE );
- SetColumnWidth( 2, wxLIST_AUTOSIZE );
- SetColumnWidth( 3, wxLIST_AUTOSIZE );
+ if (my_style & wxLC_REPORT)
+ {
+ SetColumnWidth( 1, wxLIST_AUTOSIZE );
+ SetColumnWidth( 2, wxLIST_AUTOSIZE );
+ SetColumnWidth( 3, wxLIST_AUTOSIZE );
+ }
}
void wxFileCtrl::SetWild( const wxString &wild )
delete fd;
}
+void wxFileCtrl::OnListDeleteAllItems( wxListEvent &WXUNUSED(event) )
+{
+ wxListItem item;
+ item.m_mask = wxLIST_MASK_DATA;
+
+ item.m_itemId = GetNextItem( -1, wxLIST_NEXT_ALL );
+ while ( item.m_itemId != -1 )
+ {
+ GetItem( item );
+ wxFileData *fd = (wxFileData*)item.m_data;
+ delete fd;
+ item.m_data = 0;
+ SetItem( item );
+ item.m_itemId = GetNextItem( item.m_itemId, wxLIST_NEXT_ALL );
+ }
+}
+
void wxFileCtrl::OnListEndLabelEdit( wxListEvent &event )
{
wxFileData *fd = (wxFileData*)event.m_item.m_data;
Centre( wxBOTH );
+/*
if (m_fileName.IsEmpty())
m_list->SetFocus();
else
+*/
m_text->SetFocus();
wxEndBusyCursor();
return;
}
- if (filename[0] == wxT('~'))
+ if (filename[0u] == wxT('~'))
{
filename.Remove( 0, 1 );
wxString tmp( wxGetUserHome() );
}
if (dir != wxT("/")) dir += wxT("/");
- if (filename[0] != wxT('/'))
+ if (filename[0u] != wxT('/'))
{
dir += filename;
filename = dir;
SetPath( filename );
+ // change to the directory where the user went if asked
+ if ( m_dialogStyle & wxCHANGE_DIR )
+ {
+ wxString cwd;
+ wxSplitPath(filename, &cwd, NULL, NULL);
+
+ if ( cwd != wxGetWorkingDirectory() )
+ {
+ wxSetWorkingDirectory(cwd);
+ }
+ }
+
wxCommandEvent event;
wxDialog::OnOK(event);
}
item.m_mask = wxLIST_MASK_TEXT;
item.m_itemId = m_list->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
- while ( item.m_itemId != -1 ) {
+ while ( item.m_itemId != -1 )
+ {
m_list->GetItem( item );
paths.Add( dir + item.m_text );
- item.m_itemId = m_list->GetNextItem( item.m_itemId + 1,
+ item.m_itemId = m_list->GetNextItem( item.m_itemId,
wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
}
}
item.m_mask = wxLIST_MASK_TEXT;
item.m_itemId = m_list->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
- while ( item.m_itemId != -1 ) {
+ while ( item.m_itemId != -1 )
+ {
m_list->GetItem( item );
files.Add( item.m_text );
- item.m_itemId = m_list->GetNextItem( item.m_itemId + 1,
+ item.m_itemId = m_list->GetNextItem( item.m_itemId,
wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
}
}
}
}
-wxString wxLoadFileSelector( const wxChar *what, const wxChar *extension, const wxChar *default_name, wxWindow *parent )
+wxString wxLoadFileSelector( const wxChar *what, const wxChar *ext, const wxChar *default_name, wxWindow *parent )
{
- wxChar *ext = (wxChar *)extension;
+ wxString prompt = wxString::Format(_("Load %s file"), what);
- wxChar prompt[50];
- wxString str = _("Load %s file");
- wxSprintf(prompt, str, what);
+ if (*ext == wxT('.'))
+ ext++;
- if (*ext == wxT('.')) ext++;
- wxChar wild[60];
- wxSprintf(wild, wxT("*.%s"), ext);
+ wxString wild = wxString::Format(_T("*.%s"), ext);
- return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent);
+ return wxFileSelector(prompt, (const wxChar *) NULL, default_name,
+ ext, wild, 0, parent);
}
wxString wxSaveFileSelector(const wxChar *what, const wxChar *extension, const wxChar *default_name,
{
wxChar *ext = (wxChar *)extension;
- wxChar prompt[50];
- wxString str = _("Save %s file");
- wxSprintf(prompt, str, what);
+ wxString prompt = wxString::Format(_("Save %s file"), what);
+
+ if (*ext == wxT('.'))
+ ext++;
- if (*ext == wxT('.')) ext++;
- wxChar wild[60];
- wxSprintf(wild, wxT("*.%s"), ext);
+ wxString wild = wxString::Format(_T("*.%s"), ext);
- return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent);
+ return wxFileSelector(prompt, (const wxChar *) NULL, default_name,
+ ext, wild, 0, parent);
}