if(icon)
{
+ w = icon.width;
+ h = icon.height;
+ }
+ if(type == pictureFile && fsb.previewPictures && bitmap)
+ {
+ surface.SetForeground(white);
+ surface.blend = true;
+ //#ifndef __linux__
+ //surface.Filter(bitmap, (clientSize.w - w) / 2,(clientSize.h - h) / 2, 0,0, w, h, bitmap.width, bitmap.height);
+ //surface.Filter(bitmap, x + indent/* * indentSize*/ + 2, y, 0, 0, w, h, bitmap.width, bitmap.height);
+ surface.Filter(bitmap, x,y,0,0, w, h, bitmap.width, bitmap.height);
+ //#else
+ // Until Filter / Stretch works with X
+ //surface.Blit(bitmap, (clientSize.w - bitmap.width) / 2,(clientSize.h - bitmap.height) / 2, 0,0, bitmap.width, bitmap.height);
+ // surface.blend = true;
+ //surface.Blit(bitmap, x + indent/* * indentSize*/ + 2, y,0,0, w, h);
+ //surface.Blit(bitmap, x,y,0,0, bitmap.width, bitmap.height);
+ //#endif
+ //bitmap.Free();
+ //delete bitmap;
+ }
+ else if(icon)
+ {
//surface.blend = true;
//surface.alphaWrite = blend;
surface.SetForeground(white);
FileSystemNode node { stats = stats };
- //if(stats.attribs.isFile) // TODO fix this in ecere
+ //if(stats.attribs.isFile) // -- should work now
if(stats.attribs.isDirectory)
{
extension[0] = '\0';
if(node.type == pictureFile && previewPicture)
{
- node.bitmap = Bitmap { };
+ node.bitmap = Bitmap { alphaBlend = true };
node.bitmap.Load(filePath, null, displaySystem);
}
delete path;
if(value && value[0])
path = CopyString(value);
+ if(locationBox)
+ locationBox.path = value;
if(created)
Load();
}
}
}
+ PathBox locationBox;
+
void Select(FileSystemNode node)
{
if(node.row)
return null;
}
+ void Refresh()
+ {
+ Load();
+ }
+
private:
FileSystemBoxBits bits;
}
}
- DataField nameField { dataType = "FileSystemNode", width = 240, userData = this };
+ DataField nameField { dataType = "FileSystemNode", width = 240, userData = this, freeData = false };
DataField typeField { header = "Type", dataType = /*"String"*/ "char *", width = 40, freeData = false };
- DataField sizeField { header = "Size", dataType = "FileSize", width = 96, alignment = right };
+ DataField sizeField { header = "Size", dataType = "FileSize", width = 96, alignment = right, freeData = false };
bool OnPostCreate()
{
{
if((!bits.foldersOnly && !bits.filesOnly) ||
(bits.foldersOnly && listing.stats.attribs.isDirectory) ||
- (bits.filesOnly && !listing.stats.attribs.isDirectory/*listing.stats.attribs.isFile*/)) // TOCHECK: isFile broken?
+ (bits.filesOnly && listing.stats.attribs.isFile))
{
FileSystemNode node = MakeFileSystemNode(listing.stats, listing.name, listing.path, bits.previewPictures, displaySystem);
DataRow row = list.AddRow();
root = MakeFileSystemNode(FileStats { attribs = FileExists(path)}, path, path, bits.previewPictures, displaySystem);
#ifdef __WIN32__
//root.name = rootName;
- AddTreeNode(root, true, false, null, list);
+ AddTreeNode(root, true, false, null);//, list);
#else
//root.name = "/";
#endif
AddTreeNode(root, false, true, null);
// How can this make sense for linux?
- #ifdef __WIN32__
+ /*#ifdef __WIN32__
while(listing.Find())
{
int len = strlen(listing.name);
node.row.collapsed = true;
Sort(nameField, 1);
SelectRow(root.row);
- #endif
+ #endif*/
LoadTreeNode(root);
list.Sort(nameField, 1);
}
{
FileListing listing { path, extensions = extensions };
if(node.children.count == 1)
- DeleteNode(node.children.first);
+ DeleteNode(node.children.first);
while(listing.Find())
{
- if((!bits.foldersOnly && !bits.filesOnly) ||
+ if(!listing.stats.attribs.isRemovable && ((!bits.foldersOnly && !bits.filesOnly) ||
(bits.foldersOnly && listing.stats.attribs.isDirectory) ||
- (bits.filesOnly && !listing.stats.attribs.isDirectory/*listing.stats.attribs.isFile*/)) // TOCHECK: isFile broken?
+ (bits.filesOnly && listing.stats.attribs.isFile)))
{
FileSystemNode child = MakeFileSystemNode(listing.stats, listing.name, listing.path, bits.previewPictures, displaySystem);
AddTreeNode(child, true, false, node);
{
if((!bits.foldersOnly && !bits.filesOnly) ||
(bits.foldersOnly && listing.stats.attribs.isDirectory) ||
- (bits.filesOnly && !listing.stats.attribs.isDirectory/*listing.stats.attribs.isFile*/)) // TOCHECK: isFile broken?
+ (bits.filesOnly && listing.stats.attribs.isFile))
{
FileSystemNode child = MakeFileSystemNode(listing.stats, listing.name, listing.path, bits.previewPictures, displaySystem);
AddTreeNode(child, true, false, parent);