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);
if(node.type == pictureFile && previewPicture)
{
- node.bitmap = Bitmap { };
+ node.bitmap = Bitmap { alphaBlend = true };
node.bitmap.Load(filePath, null, displaySystem);
}
class FileSystemBoxBits
{
- bool foldersOnly:1, filesOnly:1, details:1, treeBranches:1, previewPictures:1;
+ bool foldersOnly:1, filesOnly:1, details:1, treeBranches:1, previewPictures:1, navigateFolders:1;
//bool header:1, freeSelect:1, fullRowSelect:1, multiSelect:1, autoScroll:1, alwaysHL : 1, moveRows:1, resizable:1;
//bool moveFields:1, clearHeader:1, alwaysEdit:1, collapse:1, treeBranch:1, rootCollapse:1, heightSet:1;
//bool sortable:1, noDragging:1, fillLastField:1, expandOnAdd:1;
FileSystemNode selection;
virtual bool Window::NotifyNodeSelect(FileSystemBox box, FileSystemNode node);
+ virtual bool Window::NotifyNodeOpen(FileSystemBox box, FileSystemNode node);
property char * path
{
delete path;
if(value && value[0])
path = CopyString(value);
+ if(locationBox)
+ locationBox.path = value;
if(created)
Load();
}
}
get { return bits.treeBranches; }
};
+ property bool navigateFolders { set { bits.navigateFolders = value; bits.foldersOnly = !value; } get { return bits.navigateFolders; } };
property FileSystemNode node
{
}
}
+ 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()
{
return true;
}
+ bool NotifyDoubleClick(ListBox listBox, int x, int y, Modifiers mods)
+ {
+ return OpenNode();
+ }
+
+ bool NotifyKeyDown(ListBox listBox, DataRow row, Key key, unichar ch)
+ {
+ bool result;
+ if((SmartKey)key == enter)
+ result = OpenNode();
+ else
+ result = true;
+ return true;
+ }
};
+ bool OpenNode()
+ {
+ bool result;
+ if(selection && selection.type.isFolder && bits.navigateFolders)
+ {
+ property::path = selection.path;
+ result = true;
+ }
+ else
+ result = NotifyNodeOpen(this.master, this, selection);
+ return result;
+ }
+
// Edit Menu
Menu editMenu { menu, "Edit", e };
MenuItem itemEditCut