}
return node;
}*/
-static FileSystemNode MakeFileSystemNode(const FileStats stats,
- const char * fileName, const char * filePath,
- const bool previewPicture, const DisplaySystem displaySystem)
+static FileSystemNode MakeFileSystemNode(const FileStats stats, const char * fileName, const char * filePath, const bool previewPicture, const DisplaySystem displaySystem)
{
int len = strlen(fileName);
char info[MAX_LOCATION];
class FileSystemBoxBits
{
- bool foldersOnly:1, filesOnly:1, details:1, treeBranches:1, previewPictures:1, navigateFolders:1;
+ bool foldersOnly:1, details:1, treeBranches:1, previewPictures: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();
}
//isset { return path && path[0]; }
}
- property bool foldersOnly { set { bits.foldersOnly = value; bits.filesOnly = !value; } get { return bits.foldersOnly; } };
- property bool filesOnly { set { bits.filesOnly = value; bits.foldersOnly = !value; } get { return bits.filesOnly; } };
+ property bool foldersOnly { set { bits.foldersOnly = value; } get { return bits.foldersOnly; } };
property bool previewPictures { set { bits.previewPictures = value; } get { return bits.previewPictures; } };
property char * extensions { set { delete extensions; if(value && value[0]) extensions = CopyString(value); } get { return extensions; } }
property bool details { set { bits.details = value; } get { return bits.details; } };
}
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;
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
list.Clear();
while(listing.Find())
{
- if((!bits.foldersOnly && !bits.filesOnly) ||
- (bits.foldersOnly && listing.stats.attribs.isDirectory) ||
- (bits.filesOnly && !listing.stats.attribs.isDirectory/*listing.stats.attribs.isFile*/)) // TOCHECK: isFile broken?
+ if(!bits.foldersOnly || listing.stats.attribs.isDirectory)
{
FileSystemNode node = MakeFileSystemNode(listing.stats, listing.name, listing.path, bits.previewPictures, displaySystem);
DataRow row = list.AddRow();
while(listing.Find())
{
- if((!bits.foldersOnly && !bits.filesOnly) ||
- (bits.foldersOnly && listing.stats.attribs.isDirectory) ||
- (bits.filesOnly && !listing.stats.attribs.isDirectory/*listing.stats.attribs.isFile*/)) // TOCHECK: isFile broken?
+ if(!bits.foldersOnly || listing.stats.attribs.isDirectory)
{
FileSystemNode child = MakeFileSystemNode(listing.stats, listing.name, listing.path, bits.previewPictures, displaySystem);
AddTreeNode(child, true, false, node);
FileListing listing { path, extensions = extensions };
while(listing.Find())
{
- if((!bits.foldersOnly && !bits.filesOnly) ||
- (bits.foldersOnly && listing.stats.attribs.isDirectory) ||
- (bits.filesOnly && !listing.stats.attribs.isDirectory/*listing.stats.attribs.isFile*/)) // TOCHECK: isFile broken?
+ if(!bits.foldersOnly || listing.stats.attribs.isDirectory)
{
FileSystemNode child = MakeFileSystemNode(listing.stats, listing.name, listing.path, bits.previewPictures, displaySystem);
AddTreeNode(child, true, false, parent);