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

Fixes that if you clicked twice on an asset in the AssetBrowser, it would be viually deselected. You now can choose assets by doubleclicking them in the browser.

Joachim Meyer 11 лет назад
Родитель
Сommit
ad815096a0
1 измененных файлов с 19 добавлено и 9 удалено
  1. 19 9
      IDE/Contents/Source/TextureBrowser.cpp

+ 19 - 9
IDE/Contents/Source/TextureBrowser.cpp

@@ -215,6 +215,7 @@ void AssetList::showFolder(String folderPath) {
 			if(hasExtension(entry.extension)) {
 				AssetEntry *newEntry = new AssetEntry(entry.fullPath, entry.name, entry.extension, NULL);
 				newEntry->selectShape->addEventListener(this, InputEvent::EVENT_MOUSEDOWN);
+				newEntry->selectShape->addEventListener(this, InputEvent::EVENT_DOUBLECLICK);
 				assetEntries.push_back(newEntry);
 				newEntry->setPosition(xPos, yPos);
 				xPos += 120;
@@ -244,14 +245,19 @@ void AssetList::handleEvent(Event *event) {
 		showFolder(currentFolderPath);
 	} else {
 		for(int i=0; i < assetEntries.size(); i++) {
-			if(event->getDispatcher() == assetEntries[i]->selectShape && event->getEventCode() == InputEvent::EVENT_MOUSEDOWN) {
-				assetEntries[i]->selectShape->visible = true;
-				selectedPath = assetEntries[i]->assetPath;
-				if(currentEntry) {
-					currentEntry->selectShape->visible = false;
+			if (event->getDispatcher() == assetEntries[i]->selectShape) {
+				if (event->getEventCode() == InputEvent::EVENT_MOUSEDOWN){
+					if (currentEntry) {
+						currentEntry->selectShape->visible = false;
+					}
+					assetEntries[i]->selectShape->visible = true;
+					selectedPath = assetEntries[i]->assetPath;
+					currentEntry = assetEntries[i];
+					selectedResource = assetEntries[i]->resource;
+				}
+				if (event->getEventCode() == InputEvent::EVENT_DOUBLECLICK){
+					dispatchEvent(new UIEvent(), UIEvent::OK_EVENT);
 				}
-				currentEntry = assetEntries[i];
-                selectedResource = assetEntries[i]->resource;
 			}
 		}
 	}
@@ -281,9 +287,10 @@ AssetBrowser::AssetBrowser() : UIWindow(L"Asset Browser", 850, 500) {
 	
 		
 	assetList = new AssetList();
-	
+	assetList->addEventListener(this, UIEvent::OK_EVENT);
+
 	listContainer = new UIScrollContainer(assetList, false, true, 640, 480-topPadding-padding-padding);
-	listContainer->setPosition(220,topPadding+padding);		
+	listContainer->setPosition(220,topPadding+padding);
 	addChild(listContainer);
 
 	cancelButton = new UIButton(L"Cancel", 100);
@@ -409,6 +416,9 @@ void AssetBrowser::handleEvent(Event *event) {
                 removeAllHandlers();
 			}									
 		}
+		if (event->getEventCode() == UIEvent::OK_EVENT){
+			dispatchEvent(new UIEvent(), UIEvent::OK_EVENT);
+		}
 	}
 	
 	if(event->getEventType() == "UITreeEvent" && event->getEventCode() == UITreeEvent::SELECTED_EVENT) {