mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-16 14:16:09 -06:00
53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
#include "CtrlLib/CtrlLib.h"
|
|
|
|
using namespace Upp;
|
|
|
|
struct App : TopWindow {
|
|
TreeCtrl tree;
|
|
|
|
typedef App CLASSNAME;
|
|
|
|
void OpenDir(int id) {
|
|
String path = tree[id];
|
|
|
|
for(FindFile ff(AppendFileName(path, "*.*")); ff; ff.Next()) {
|
|
String n = ff.GetName();
|
|
|
|
if(n != "." && n != ".." && ff.IsFolder()) {
|
|
tree.Add(id, CtrlImg::Dir(),
|
|
AppendFileName(path, n), n, true);
|
|
}
|
|
}
|
|
|
|
// I expect to get the +/- sign removed if a folder does not contain other folders
|
|
// using the following code:
|
|
if (tree.GetChildCount(id) == 0)
|
|
{
|
|
TreeCtrl::Node node = tree.GetNode(id);
|
|
node.CanOpen(false);
|
|
tree.SetNode(id, node);
|
|
}
|
|
}
|
|
|
|
void CloseDir(int id) {
|
|
tree.RemoveChildren(id);
|
|
}
|
|
|
|
App() {
|
|
Add(tree.SizePos());
|
|
|
|
tree.WhenOpen = THISBACK(OpenDir);
|
|
tree.WhenClose = THISBACK(CloseDir);
|
|
|
|
String dir = "u:/upp.src";
|
|
|
|
tree.SetRoot(CtrlImg::Dir(), dir);
|
|
|
|
Sizeable();
|
|
}
|
|
};
|
|
|
|
GUI_APP_MAIN
|
|
{
|
|
App().Run();
|
|
}
|