Skip to content

Commit 8acb29d

Browse files
author
Joachim Meyer
committed
UITree nodes with children will now toggleCollapsed when doubleclicked. When you doubleclick in the ExampleBrowser an example it will open automatically.
1 parent ad81509 commit 8acb29d

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

IDE/Contents/Source/ExampleBrowserWindow.cpp

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ ExampleBrowserWindow::ExampleBrowserWindow() : UIWindow(L"Example Browser", 320,
4545
templateContainer->getRootNode()->toggleCollapsed();
4646

4747
templateContainer->getRootNode()->addEventListener(this, UITreeEvent::SELECTED_EVENT);
48+
templateContainer->getRootNode()->addEventListener(this, UITreeEvent::EXECUTED_EVENT);
4849

4950
vector<OSFileEntry> templates = OSBasics::parseFolder(RESOURCE_PATH"Standalone/Examples/Lua", false);
5051
for(int i=0; i < templates.size(); i++) {
@@ -104,12 +105,21 @@ void ExampleBrowserWindow::handleEvent(Event *event) {
104105
}
105106
}
106107

107-
if(event->getEventType() == "UITreeEvent" && event->getEventCode() == UITreeEvent::SELECTED_EVENT) {
108-
if(event->getDispatcher() == templateContainer->getRootNode()) {
109-
UITreeEvent *treeEvent = (UITreeEvent*) event;
110-
ExampleTemplateUserData *data = (ExampleTemplateUserData *)treeEvent->selection->getUserData();
111-
if(data->type == 1)
112-
templateFolder = data->templateFolder;
108+
if(event->getEventType() == "UITreeEvent") {
109+
if (event->getDispatcher() == templateContainer->getRootNode()) {
110+
UITreeEvent *treeEvent = (UITreeEvent*)event;
111+
if (event->getEventCode() == UITreeEvent::SELECTED_EVENT){
112+
ExampleTemplateUserData *data = (ExampleTemplateUserData *)treeEvent->selection->getUserData();
113+
if (data->type == 1)
114+
templateFolder = data->templateFolder;
115+
}
116+
if (event->getEventCode() == UITreeEvent::EXECUTED_EVENT){
117+
UITree *node = treeEvent->selection;
118+
if (node) {
119+
ExampleTemplateUserData *data = (ExampleTemplateUserData*)node->getUserData();
120+
dispatchEvent(new UIEvent(), UIEvent::OK_EVENT);
121+
}
122+
}
113123
}
114124
}
115125

Modules/Contents/UI/Source/PolyUITree.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,11 @@ void UITree::handleEvent(Event *event) {
196196
}
197197
break;
198198
case InputEvent::EVENT_DOUBLECLICK:
199-
dispatchEvent(new UITreeEvent(this), UITreeEvent::EXECUTED_EVENT);
199+
if (hasTreeChildren()){
200+
toggleCollapsed();
201+
} else {
202+
dispatchEvent(new UITreeEvent(this), UITreeEvent::EXECUTED_EVENT);
203+
}
200204
break;
201205
default:
202206
break;

0 commit comments

Comments
 (0)