Просмотр исходного кода

Fixing left and right klick doubleclick toggleing in the UITree. Adding doubleclick to the NewFileWindow.

Joachim Meyer 11 лет назад
Родитель
Сommit
a41c82fd2c
2 измененных файлов с 17 добавлено и 7 удалено
  1. 16 6
      IDE/Contents/Source/NewFileWindow.cpp
  2. 1 1
      Modules/Contents/UI/Source/PolyUITree.cpp

+ 16 - 6
IDE/Contents/Source/NewFileWindow.cpp

@@ -41,6 +41,7 @@ NewFileWindow::NewFileWindow() : UIWindow(L"Create New File", 580, 280) {
 	templateContainer->getRootNode()->toggleCollapsed();
 	
 	templateContainer->getRootNode()->addEventListener(this, UITreeEvent::SELECTED_EVENT);
+	templateContainer->getRootNode()->addEventListener(this, UITreeEvent::EXECUTED_EVENT);
 	
 	
 	vector<OSFileEntry> templates = OSBasics::parseFolder(RESOURCE_PATH"FileTemplates", false);
@@ -105,22 +106,31 @@ void NewFileWindow::handleEvent(Event *event) {
 	if(event->getEventType() == "UIEvent") {
 		if(event->getEventCode() == UIEvent::CLICK_EVENT) {
 			if(event->getDispatcher() == okButton) {
-				dispatchEvent(new UIEvent(), UIEvent::OK_EVENT);						
+				dispatchEvent(new UIEvent(), UIEvent::OK_EVENT);
 			}
 			
 			if(event->getDispatcher() == cancelButton) {
-				dispatchEvent(new UIEvent(), UIEvent::CLOSE_EVENT);				
+				dispatchEvent(new UIEvent(), UIEvent::CLOSE_EVENT);
 			}									
 		}
 	}
 	}
 	
-	if(event->getEventType() == "UITreeEvent" && event->getEventCode() == UITreeEvent::SELECTED_EVENT) {
-		if(event->getDispatcher() == templateContainer->getRootNode()) {
-			UITreeEvent *treeEvent = (UITreeEvent*) event;
+	if(event->getEventType() == "UITreeEvent") {
+		if (event->getEventCode() == UITreeEvent::SELECTED_EVENT){
+			if (event->getDispatcher() == templateContainer->getRootNode()) {
+				UITreeEvent *treeEvent = (UITreeEvent*)event;
+				FileTemplateUserData *data = (FileTemplateUserData *)treeEvent->selection->getUserData();
+				if (data->type == 1)
+					templatePath = data->templatePath;
+			}
+		}
+		if (event->getEventCode() == UITreeEvent::EXECUTED_EVENT){
+			UITreeEvent *treeEvent = (UITreeEvent*)event;
 			FileTemplateUserData *data = (FileTemplateUserData *)treeEvent->selection->getUserData();
-			if(data->type == 1)
+			if (data->type == 1)
 				templatePath = data->templatePath;
+			dispatchEvent(new UIEvent(), UIEvent::OK_EVENT);
 		}
 	}
 	

+ 1 - 1
Modules/Contents/UI/Source/PolyUITree.cpp

@@ -196,7 +196,7 @@ void UITree::handleEvent(Event *event) {
 				}
 			break;						
 			case InputEvent::EVENT_DOUBLECLICK:
-				if (hasTreeChildren()){
+				if (hasTreeChildren() && ((InputEvent*)event)->getMouseButton() == 0){
 					toggleCollapsed();
 				} else {
 					dispatchEvent(new UITreeEvent(this), UITreeEvent::EXECUTED_EVENT);