Added wxUniv project file for dialogs

Fixed filelist.txt bug
Backported wxFileDialog fixes for wxUniv/MSW
wxFileSystem doc fixes
VC++ internal compiler error fix for statbar.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18310 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2002-12-17 22:31:37 +00:00
parent 812919f6af
commit 7f65647a0b
10 changed files with 169 additions and 92 deletions

View File

@@ -30,8 +30,8 @@
#if wxUSE_FILEDLG
#if !defined(__UNIX__) && !defined(__DOS__)
#error wxFileDialog currently only supports Unix and DOS
#if !defined(__UNIX__) && !defined(__DOS__) && !defined(__WIN32__)
#error wxFileDialog currently only supports Unix, win32 and DOS
#endif
#include "wx/checkbox.h"
@@ -76,7 +76,9 @@
#endif
#include <time.h>
#if defined(__UNIX__) || defined(__DOS__)
#include <unistd.h>
#endif
// ----------------------------------------------------------------------------
// constants
@@ -252,7 +254,7 @@ wxFileIconsTable::wxFileIconsTable() :
static wxBitmap CreateAntialiasedBitmap(const wxImage& img)
{
wxImage small(16, 16);
wxImage smallimg (16, 16);
unsigned char *p1, *p2, *ps;
unsigned char mr = img.GetMaskRed(),
mg = img.GetMaskGreen(),
@@ -261,8 +263,8 @@ static wxBitmap CreateAntialiasedBitmap(const wxImage& img)
unsigned x, y;
unsigned sr, sg, sb, smask;
p1 = img.GetData(), p2 = img.GetData() + 3 * 32, ps = small.GetData();
small.SetMaskColour(mr, mr, mr);
p1 = img.GetData(), p2 = img.GetData() + 3 * 32, ps = smallimg.GetData();
smallimg.SetMaskColour(mr, mr, mr);
for (y = 0; y < 16; y++)
{
@@ -295,7 +297,7 @@ static wxBitmap CreateAntialiasedBitmap(const wxImage& img)
p1 += 32 * 3, p2 += 32 * 3;
}
return wxBitmap(small);
return wxBitmap(smallimg);
}
// finds empty borders and return non-empty area of image:
@@ -364,7 +366,16 @@ int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime)
m_HashTable.Put(extension, new wxFileIconEntry(newid));
return newid;
}
#ifdef __WIN32__
wxBitmap myBitmap (ic.GetWidth(), ic.GetHeight() ) ;
wxMemoryDC memDC;
memDC.SelectObject( myBitmap );
memDC.DrawIcon(ic,0,0);
memDC.SelectObject( wxNullBitmap );
wxImage img = myBitmap.ConvertToImage();
#else
wxImage img = ic.ConvertToImage();
#endif
delete ft;
int id = m_ImageList.GetImageCount();
@@ -396,7 +407,7 @@ int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime)
// ----------------------------------------------------------------------------
static
int ListCompare( long data1, long data2, long WXUNUSED(data) )
int ListCompare( long data1, long data2, long WXUNUSED(data))
{
wxFileData *fd1 = (wxFileData*)data1 ;
wxFileData *fd2 = (wxFileData*)data2 ;
@@ -456,8 +467,12 @@ wxFileData::wxFileData( const wxString &name, const wxString &fname )
// struct passwd *user = getpwuid( buff.st_uid );
// struct group *grp = getgrgid( buff.st_gid );
m_isDir = S_ISDIR( buff.st_mode );
m_isExe = ((buff.st_mode & S_IXUSR ) == S_IXUSR );
#ifdef __VISUALC__
m_isDir = ((buff.st_mode & _S_IFDIR ) == _S_IFDIR );
#else
m_isDir = S_ISDIR( buff.st_mode );
#endif // VC++
m_isExe = ((buff.st_mode & wxS_IXUSR ) == wxS_IXUSR );
m_size = buff.st_size;
@@ -470,9 +485,9 @@ wxFileData::wxFileData( const wxString &name, const wxString &fname )
char buffer[10];
sprintf( buffer, "%c%c%c",
((( buff.st_mode & S_IRUSR ) == S_IRUSR ) ? 'r' : '-'),
((( buff.st_mode & S_IWUSR ) == S_IWUSR ) ? 'w' : '-'),
((( buff.st_mode & S_IXUSR ) == S_IXUSR ) ? 'x' : '-') );
((( buff.st_mode & wxS_IRUSR ) == wxS_IRUSR ) ? 'r' : '-'),
((( buff.st_mode & wxS_IWUSR ) == wxS_IWUSR ) ? 'w' : '-'),
((( buff.st_mode & wxS_IXUSR ) == wxS_IXUSR ) ? 'x' : '-') );
#if wxUSE_UNICODE
m_permissions = wxConvUTF8.cMB2WC( buffer );
#else
@@ -788,7 +803,7 @@ void wxFileCtrl::UpdateFiles()
}
}
SortItems(ListCompare, 0);
SortItems((wxListCtrlCompare)ListCompare, 0);
if ( my_style & wxLC_REPORT )
{
@@ -851,7 +866,7 @@ void wxFileCtrl::MakeDir()
if (id != -1)
{
SortItems( ListCompare, 0 );
SortItems( (wxListCtrlCompare) ListCompare, 0 );
id = FindItem( 0, (long)fd );
EnsureVisible( id );
EditLabel( id );