#endif
-#ifdef __OS2__
-
-#define INCL_BASE
-#include <os2.h>
-#ifndef __EMX__
-#include <direct.h>
-#endif
-#include <stdlib.h>
-#include <ctype.h>
-extern bool wxIsDriveAvailable(const wxString& dirName);
+#if defined(__OS2__) || defined(__DOS__)
+ #ifdef __OS2__
+ #define INCL_BASE
+ #include <os2.h>
+ #ifndef __EMX__
+ #include <direct.h>
+ #endif
+ #include <stdlib.h>
+ #include <ctype.h>
+ #endif
+ extern bool wxIsDriveAvailable(const wxString& dirName);
#endif // __OS2__
#if defined(__WXMAC__)
wxPROPERTY( DefaultPath , wxString , SetDefaultPath , GetDefaultPath , , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
wxPROPERTY( Filter , wxString , SetFilter , GetFilter ,, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
wxPROPERTY( DefaultFilter , int , SetFilterIndex, GetFilterIndex,, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY_FLAGS( WindowStyle, wxGenericDirCtrlStyle, long, SetWindowStyleFlag, GetWindowStyleFlag, , 0, wxT("Helpstring"), wxT("group") )
wxEND_PROPERTIES_TABLE()
wxBEGIN_HANDLERS_TABLE(wxGenericDirCtrl)
#endif
BEGIN_EVENT_TABLE(wxGenericDirCtrl, wxControl)
- EVT_TREE_ITEM_EXPANDING (-1, wxGenericDirCtrl::OnExpandItem)
- EVT_TREE_ITEM_COLLAPSED (-1, wxGenericDirCtrl::OnCollapseItem)
- EVT_TREE_BEGIN_LABEL_EDIT (-1, wxGenericDirCtrl::OnBeginEditItem)
- EVT_TREE_END_LABEL_EDIT (-1, wxGenericDirCtrl::OnEndEditItem)
+ EVT_TREE_ITEM_EXPANDING (wxID_TREECTRL, wxGenericDirCtrl::OnExpandItem)
+ EVT_TREE_ITEM_COLLAPSED (wxID_TREECTRL, wxGenericDirCtrl::OnCollapseItem)
+ EVT_TREE_BEGIN_LABEL_EDIT (wxID_TREECTRL, wxGenericDirCtrl::OnBeginEditItem)
+ EVT_TREE_END_LABEL_EDIT (wxID_TREECTRL, wxGenericDirCtrl::OnEndEditItem)
EVT_SIZE (wxGenericDirCtrl::OnSize)
END_EVENT_TABLE()
{
int style = wxDIR_FILES;
if (m_showHidden) style |= wxDIR_HIDDEN;
- if (d.GetFirst(& eachFilename, m_currentFilterStr, style))
+ // Process each filter (ex: "JPEG Files (*.jpg;*.jpeg)|*.jpg;*.jpeg")
+ wxStringTokenizer strTok;
+ wxString curFilter;
+ strTok.SetString(m_currentFilterStr,wxT(";"));
+ while(strTok.HasMoreTokens())
{
- do
+ curFilter = strTok.GetNextToken();
+ if (d.GetFirst(& eachFilename, m_currentFilterStr, style))
{
- if ((eachFilename != wxT(".")) && (eachFilename != wxT("..")))
+ do
{
- filenames.Add(eachFilename);
+ if ((eachFilename != wxT(".")) && (eachFilename != wxT("..")))
+ {
+ filenames.Add(eachFilename);
+ }
}
+ while (d.GetNext(& eachFilename));
}
- while (d.GetNext(& eachFilename));
}
}
filenames.Sort(wxDirCtrlStringCompareFunction);
return m_smallImageList;
}
-#if wxUSE_MIMETYPE
+#if wxUSE_MIMETYPE && wxUSE_IMAGE
// VS: we don't need this function w/o wxMimeTypesManager because we'll only have
// one icon and we won't resize it
static wxBitmap CreateAntialiasedBitmap(const wxImage& img)
{
- wxImage smallimg (16, 16);
+ const unsigned int size = 16;
+
+ wxImage smallimg (size, size);
unsigned char *p1, *p2, *ps;
unsigned char mr = img.GetMaskRed(),
mg = img.GetMaskGreen(),
unsigned x, y;
unsigned sr, sg, sb, smask;
- p1 = img.GetData(), p2 = img.GetData() + 3 * 32, ps = smallimg.GetData();
+ p1 = img.GetData(), p2 = img.GetData() + 3 * size*2, ps = smallimg.GetData();
smallimg.SetMaskColour(mr, mr, mr);
- for (y = 0; y < 16; y++)
+ for (y = 0; y < size; y++)
{
- for (x = 0; x < 16; x++)
+ for (x = 0; x < size; x++)
{
sr = sg = sb = smask = 0;
if (p1[0] != mr || p1[1] != mg || p1[2] != mb)
ps[0] = sr >> 2, ps[1] = sg >> 2, ps[2] = sb >> 2;
ps += 3;
}
- p1 += 32 * 3, p2 += 32 * 3;
+ p1 += size*2 * 3, p2 += size*2 * 3;
}
-
+
return wxBitmap(smallimg);
}
+// This function is currently not unused anymore
+#if 0
// finds empty borders and return non-empty area of image:
static wxImage CutEmptyBorders(const wxImage& img)
{
return img.GetSubImage(wxRect(left, top, right - left + 1, bottom - top + 1));
}
+#endif // #if 0
+
#endif // wxUSE_MIMETYPE
int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime)
wxIconLocation iconLoc;
wxIcon ic;
- if ( ft && ft->GetIcon(&iconLoc) )
+
{
- ic = wxIcon(iconLoc);
+ wxLogNull logNull;
+ if ( ft && ft->GetIcon(&iconLoc) )
+ {
+ ic = wxIcon( iconLoc.GetFileName() );
+ }
}
-
+
delete ft;
if ( !ic.Ok() )
wxBitmap bmp;
bmp.CopyFromIcon(ic);
+ if ( !bmp.Ok() )
+ {
+ int newid = file;
+ m_HashTable->Put(extension, new wxFileIconEntry(newid));
+ return newid;
+ }
+
+ const unsigned int size = 16;
+
int id = m_smallImageList->GetImageCount();
- if ((bmp.GetWidth() == 16) && (bmp.GetHeight() == 16))
+ if ((bmp.GetWidth() == (int) size) && (bmp.GetHeight() == (int) size))
+ {
m_smallImageList->Add(bmp);
+ }
+#if wxUSE_IMAGE
else
{
wxImage img = bmp.ConvertToImage();
- if ((img.GetWidth() != 32) || (img.GetHeight() != 32))
- m_smallImageList->Add(CreateAntialiasedBitmap(CutEmptyBorders(img).Rescale(32, 32)));
+ if ((img.GetWidth() != size*2) || (img.GetHeight() != size*2))
+// m_smallImageList->Add(CreateAntialiasedBitmap(CutEmptyBorders(img).Rescale(size*2, size*2)));
+ m_smallImageList->Add(CreateAntialiasedBitmap(img.Rescale(size*2, size*2)));
else
m_smallImageList->Add(CreateAntialiasedBitmap(img));
}
+#endif // wxUSE_IMAGE
+
m_HashTable->Put(extension, new wxFileIconEntry(id));
return id;