|
|
@@ -11,6 +11,7 @@ class HierarchyFrameMenus extends Atomic.ScriptObject {
|
|
|
super();
|
|
|
|
|
|
MenuItemSources.createMenuItemSource("hierarchy create items", createItems);
|
|
|
+ MenuItemSources.createMenuItemSource("node context general", nodeGeneralContextItems);
|
|
|
|
|
|
this.subscribeToEvent(EditorEvents.ContentFolderChanged, (ev: EditorEvents.ContentFolderChangedEvent) => {
|
|
|
this.contentFolder = ev.path;
|
|
|
@@ -20,11 +21,11 @@ class HierarchyFrameMenus extends Atomic.ScriptObject {
|
|
|
|
|
|
handlePopupMenu(target: Atomic.UIWidget, refid: string, node: Atomic.Node): boolean {
|
|
|
|
|
|
- if (!target || !refid) return;
|
|
|
+ if (!target || !refid) return false;
|
|
|
|
|
|
if (target.id == "create popup") {
|
|
|
|
|
|
- var child:Atomic.Node;
|
|
|
+ var child: Atomic.Node;
|
|
|
|
|
|
if (refid == "create_node") {
|
|
|
|
|
|
@@ -49,7 +50,7 @@ class HierarchyFrameMenus extends Atomic.ScriptObject {
|
|
|
|
|
|
if (child) {
|
|
|
|
|
|
- this.sendEvent(EditorEvents.ActiveNodeChange, { node: child });
|
|
|
+ this.sendEvent(EditorEvents.ActiveNodeChange, { node: child });
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -61,6 +62,51 @@ class HierarchyFrameMenus extends Atomic.ScriptObject {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ handleNodeContextMenu(target: Atomic.UIWidget, refid: string): boolean {
|
|
|
+
|
|
|
+ if (target.id == "node context menu") {
|
|
|
+
|
|
|
+ var node = <Atomic.Node> target['node'];
|
|
|
+
|
|
|
+ if (!node) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (refid == "delete_node") {
|
|
|
+
|
|
|
+ node.removeAllComponents();
|
|
|
+ node.remove();
|
|
|
+
|
|
|
+ } else if (refid == "duplicate_node") {
|
|
|
+
|
|
|
+ var newnode = node.clone();
|
|
|
+ this.sendEvent(EditorEvents.ActiveNodeChange, { node: newnode });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ return false;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ createNodeContextMenu(parent: Atomic.UIWidget, node: Atomic.Node, x: number, y: number) {
|
|
|
+
|
|
|
+
|
|
|
+ var menu = new Atomic.UIMenuWindow(parent, "node context menu");
|
|
|
+
|
|
|
+ menu['node'] = node;
|
|
|
+
|
|
|
+ var srcName: string = "node context general";
|
|
|
+
|
|
|
+ var src = MenuItemSources.getMenuItemSource(srcName);
|
|
|
+ menu.show(src, x, y);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
contentFolder: string;
|
|
|
|
|
|
}
|
|
|
@@ -77,3 +123,9 @@ var createItems = {
|
|
|
Light: ["create_light", undefined, "JavascriptBitmap"]
|
|
|
}
|
|
|
};
|
|
|
+
|
|
|
+var nodeGeneralContextItems = {
|
|
|
+ "Duplicate": ["duplicate_node", undefined, ""],
|
|
|
+ "-1": null,
|
|
|
+ "Delete": ["delete_node", undefined, ""]
|
|
|
+};
|