private void SetGuid(AK.Wwise.TreeView.TreeViewItem in_item) { m_serializedObject.Update(); var obj = in_item.DataContext as AkWwiseTreeView.AkTreeInfo; //we set the items guid AkUtilities.SetByteArrayProperty(m_selectedItemGuid[0], obj.Guid); if (m_selectedItemID != null) { m_selectedItemID[0].intValue = obj.ID; } //When its a State or a Switch, we set the group's guid if (m_selectedItemGuid.Length == 2) { obj = in_item.Parent.DataContext as AkWwiseTreeView.AkTreeInfo; AkUtilities.SetByteArrayProperty(m_selectedItemGuid[1], obj.Guid); if (m_selectedItemID != null) { m_selectedItemID[1].intValue = obj.ID; } } m_serializedObject.ApplyModifiedProperties(); }
/// <summary> /// Handler functions for TreeViewControl /// </summary> private void AddHandlerEvents(AK.Wwise.TreeView.TreeViewItem item) { // Uncomment this when we support right click item.Click = HandleClick; item.Dragged = PrepareDragDrop; item.CustomIconBuilder = CustomIconHandler; }
private void RestoreExpansionStatus(AK.Wwise.TreeView.TreeViewItem in_item, ref string in_path) { in_path = in_path + "/" + in_item.Header; in_item.IsExpanded = GetExpansionStatus(in_path); for (var i = 0; i < in_item.Items.Count; i++) { RestoreExpansionStatus(in_item.Items[i], ref in_path); } in_path = in_path.Remove(in_path.LastIndexOf('/')); }
private bool FilterTreeview(AK.Wwise.TreeView.TreeViewItem in_item) { in_item.IsHidden = in_item.Header.IndexOf(m_filterString, System.StringComparison.OrdinalIgnoreCase) < 0; in_item.IsExpanded = true; for (var i = 0; i < in_item.Items.Count; i++) { if (!FilterTreeview(in_item.Items[i])) { in_item.IsHidden = false; } } return(in_item.IsHidden); }
private void HandleClick(object sender, System.EventArgs args) { if (UnityEngine.Event.current.button == 0) { if ((args as AK.Wwise.TreeView.TreeViewItem.ClickEventArgs).m_clickCount == 2) { LastDoubleClickedItem = (AK.Wwise.TreeView.TreeViewItem)sender; if (LastDoubleClickedItem.HasChildItems()) { LastDoubleClickedItem.IsExpanded = !LastDoubleClickedItem.IsExpanded; } } } }
private void SaveExpansionStatus(AK.Wwise.TreeView.TreeViewItem in_item, string in_path) { in_path = in_path + "/" + in_item.Header; AkWwiseProjectInfo.GetData().ExpandedItems.Add(in_path); for (var i = 0; i < in_item.Items.Count; i++) { if (in_item.Items[i].HasChildItems() && in_item.Items[i].IsExpanded) { SaveExpansionStatus(in_item.Items[i], in_path); } } in_path = in_path.Remove(in_path.LastIndexOf('/')); }
public void PopulateItem(AK.Wwise.TreeView.TreeViewItem attachTo, string itemName, System.Collections.Generic.List <AkWwiseProjectData.EventWorkUnit> Events) { var akInfoWwu = new System.Collections.Generic.List <AkWwiseProjectData.AkInfoWorkUnit>(Events.Count); for (var i = 0; i < Events.Count; i++) { akInfoWwu.Add(new AkWwiseProjectData.AkInfoWorkUnit()); akInfoWwu[i].PhysicalPath = Events[i].PhysicalPath; akInfoWwu[i].ParentPhysicalPath = Events[i].ParentPhysicalPath; akInfoWwu[i].Guid = Events[i].Guid; akInfoWwu[i].List = Events[i].List.ConvertAll(x => (AkWwiseProjectData.AkInformation)x); } PopulateItem(attachTo, itemName, akInfoWwu); }
public void PopulateItem(AK.Wwise.TreeView.TreeViewItem attachTo, string itemName, System.Collections.Generic.List <AkWwiseProjectData.AkInfoWorkUnit> workUnits) { var attachPoint = attachTo.AddItem(itemName, false, GetExpansionStatus("/" + RootItem.Header + "/" + itemName), new AkTreeInfo(WwiseObjectType.PhysicalFolder)); foreach (var wwu in workUnits) { foreach (var akInfo in wwu.List) { AddHandlerEvents(AddPathToTreeItem(attachPoint, akInfo)); } } AddHandlerEvents(attachPoint); }
private void SetGuid(AK.Wwise.TreeView.TreeViewItem in_item) { m_serializedObject.Update(); var obj = in_item.DataContext as AkWwiseTreeView.AkTreeInfo; var reference = WwiseObjectReference.FindOrCreateWwiseObject(m_type, in_item.Header, obj.Guid); var groupReference = reference as WwiseGroupValueObjectReference; if (groupReference) { obj = in_item.Parent.DataContext as AkWwiseTreeView.AkTreeInfo; groupReference.SetupGroupObjectReference(in_item.Parent.Header, obj.Guid); } m_WwiseObjectReference.objectReferenceValue = reference; m_serializedObject.ApplyModifiedProperties(); }
public AK.Wwise.TreeView.TreeViewItem GetItemByType(AK.Wwise.TreeView.TreeViewItem in_item, WwiseObjectType type) { if ((in_item.DataContext as AkTreeInfo).ObjectType == type) { return(in_item); } for (var i = 0; i < in_item.Items.Count; i++) { var item = GetItemByType(in_item.Items[i], type); if (item != null) { return(item); } } return(null); }
public AK.Wwise.TreeView.TreeViewItem GetSelectedItem(AK.Wwise.TreeView.TreeViewItem in_item) { if (in_item.IsSelected) { return(in_item); } for (var i = 0; i < in_item.Items.Count; i++) { var item = GetSelectedItem(in_item.Items[i]); if (item != null) { return(item); } } return(null); }
public AK.Wwise.TreeView.TreeViewItem GetItemByGuid(AK.Wwise.TreeView.TreeViewItem in_item, System.Guid in_guid) { var itemGuid = (in_item.DataContext as AkTreeInfo).Guid; if (itemGuid.Equals(in_guid)) { return(in_item); } for (var i = 0; i < in_item.Items.Count; i++) { var item = GetItemByGuid(in_item.Items[i], in_guid); if (item != null) { return(item); } } return(null); }
private AK.Wwise.TreeView.TreeViewItem AddPathToTreeItem(AK.Wwise.TreeView.TreeViewItem item, System.Guid itemGuid, System.Collections.Generic.List <AkWwiseProjectData.PathElement> pathAndIcons) { var parentItem = item; var path = "/" + RootItem.Header + "/" + item.Header; for (var i = 0; i < pathAndIcons.Count; i++) { var PathElem = pathAndIcons[i]; var childItem = parentItem.FindItemByName(PathElem.ElementName); path = path + "/" + PathElem.ElementName; if (childItem == null) { if (i != pathAndIcons.Count - 1) { childItem = parentItem.AddItem(PathElem.ElementName, new AkTreeInfo(System.Guid.Empty, PathElem.ObjectType), GetExpansionStatus(path)); } else { var isDraggable = !(PathElem.ObjectType == WwiseObjectType.StateGroup || PathElem.ObjectType == WwiseObjectType.SwitchGroup || PathElem.ObjectType == WwiseObjectType.Folder || PathElem.ObjectType == WwiseObjectType.Bus || PathElem.ObjectType == WwiseObjectType.WorkUnit); childItem = parentItem.AddItem(PathElem.ElementName, isDraggable, GetExpansionStatus(path), new AkTreeInfo(itemGuid, PathElem.ObjectType)); } } AddHandlerEvents(childItem); parentItem = childItem; } return(parentItem); }
public void PopulateItem(AK.Wwise.TreeView.TreeViewItem attachTo, string itemName, System.Collections.Generic.List <AkWwiseProjectData.GroupValWorkUnit> GroupWorkUnits) { var attachPoint = attachTo.AddItem(itemName, false, GetExpansionStatus("/" + RootItem.Header + "/" + itemName), new AkTreeInfo(WwiseObjectType.PhysicalFolder)); foreach (var wwu in GroupWorkUnits) { foreach (var group in wwu.List) { var groupItem = AddPathToTreeItem(attachPoint, group); AddHandlerEvents(groupItem); foreach (var child in group.values) { var item = groupItem.AddItem(child.Name, true, false, new AkTreeInfo(child.Guid, child.PathAndIcons[0].ObjectType)); AddHandlerEvents(item); } } } AddHandlerEvents(attachPoint); }
public void PopulateItem(AK.Wwise.TreeView.TreeViewItem attachTo, string itemName, System.Collections.Generic.List <AkWwiseProjectData.GroupValWorkUnit> GroupWorkUnits) { var attachPoint = attachTo.AddItem(itemName, false, GetExpansionStatus("/" + RootItem.Header + "/" + itemName), new AkTreeInfo(0, AkWwiseProjectData.WwiseObjectType.PHYSICALFOLDER)); foreach (var wwu in GroupWorkUnits) { foreach (var group in wwu.List) { var groupItem = AddPathToTreeItem(attachPoint, group); AddHandlerEvents(groupItem); for (var i = 0; i < group.values.Count; i++) { var item = groupItem.AddItem(group.values[i], true, false, new AkTreeInfo(group.valueIDs[i], group.ValueGuids[i].bytes, group.ValueIcons[i].ObjectType)); AddHandlerEvents(item); } } } AddHandlerEvents(attachPoint); }
private AK.Wwise.TreeView.TreeViewItem AddPathToTreeItem(AK.Wwise.TreeView.TreeViewItem item, AkWwiseProjectData.AkInformation AkInfo) { var parentItem = item; var path = "/" + RootItem.Header + "/" + item.Header; for (var i = 0; i < AkInfo.PathAndIcons.Count; i++) { var PathElem = AkInfo.PathAndIcons[i]; var childItem = parentItem.FindItemByName(PathElem.ElementName); path = path + "/" + PathElem.ElementName; if (childItem == null) { if (i != AkInfo.PathAndIcons.Count - 1) { childItem = parentItem.AddItem(PathElem.ElementName, new AkTreeInfo(0, System.Guid.Empty.ToByteArray(), PathElem.ObjectType), GetExpansionStatus(path)); } else { var isDraggable = !(PathElem.ObjectType == AkWwiseProjectData.WwiseObjectType.STATEGROUP || PathElem.ObjectType == AkWwiseProjectData.WwiseObjectType.SWITCHGROUP); childItem = parentItem.AddItem(PathElem.ElementName, isDraggable, GetExpansionStatus(path), new AkTreeInfo(AkInfo.ID, AkInfo.Guid, PathElem.ObjectType)); } } AddHandlerEvents(childItem); parentItem = childItem; } return(parentItem); }
private AK.Wwise.TreeView.TreeViewItem AddPathToTreeItem(AK.Wwise.TreeView.TreeViewItem item, AkWwiseProjectData.AkInfoWorkUnit AkInfo) { return(AddPathToTreeItem(item, AkInfo.Guid, AkInfo.PathAndIcons)); }
private void DelayCall() { if (s_componentPicker != null) { return; } s_componentPicker = CreateInstance <AkWwiseComponentPicker>(); //position the window below the button var pos = new UnityEngine.Rect(pickerPosition.x, pickerPosition.yMax, 0, 0); //If the window gets out of the screen, we place it on top of the button instead if (pickerPosition.yMax > UnityEngine.Screen.currentResolution.height / 2) { pos.y = pickerPosition.y - UnityEngine.Screen.currentResolution.height / 2; } //We show a drop down window which is automatically destroyed when focus is lost s_componentPicker.ShowAsDropDown(pos, new UnityEngine.Vector2(pickerPosition.width >= 250 ? pickerPosition.width : 250, UnityEngine.Screen.currentResolution.height / 2)); s_componentPicker.m_selectedItemGuid = guidProperty; s_componentPicker.m_selectedItemID = idProperty; s_componentPicker.m_serializedObject = serializedObject; s_componentPicker.m_type = objectType; //Make a backup of the tree's expansion status and replace it with an empty list to make sure nothing will get expanded //when we populate the tree var expandedItemsBackUp = AkWwiseProjectInfo.GetData().ExpandedItems; AkWwiseProjectInfo.GetData().ExpandedItems = new System.Collections.Generic.List <string>(); s_componentPicker.m_treeView.AssignDefaults(); s_componentPicker.m_treeView.SetRootItem( System.IO.Path.GetFileNameWithoutExtension(WwiseSetupWizard.Settings.WwiseProjectPath), AkWwiseProjectData.WwiseObjectType.PROJECT); //Populate the tree with the correct type if (objectType == AkWwiseProjectData.WwiseObjectType.EVENT) { s_componentPicker.m_treeView.PopulateItem(s_componentPicker.m_treeView.RootItem, "Events", AkWwiseProjectInfo.GetData().EventWwu); } else if (objectType == AkWwiseProjectData.WwiseObjectType.SWITCH) { s_componentPicker.m_treeView.PopulateItem(s_componentPicker.m_treeView.RootItem, "Switches", AkWwiseProjectInfo.GetData().SwitchWwu); } else if (objectType == AkWwiseProjectData.WwiseObjectType.STATE) { s_componentPicker.m_treeView.PopulateItem(s_componentPicker.m_treeView.RootItem, "States", AkWwiseProjectInfo.GetData().StateWwu); } else if (objectType == AkWwiseProjectData.WwiseObjectType.SOUNDBANK) { s_componentPicker.m_treeView.PopulateItem(s_componentPicker.m_treeView.RootItem, "Banks", AkWwiseProjectInfo.GetData().BankWwu); } else if (objectType == AkWwiseProjectData.WwiseObjectType.AUXBUS) { s_componentPicker.m_treeView.PopulateItem(s_componentPicker.m_treeView.RootItem, "Auxiliary Busses", AkWwiseProjectInfo.GetData().AuxBusWwu); } else if (objectType == AkWwiseProjectData.WwiseObjectType.GAMEPARAMETER) { s_componentPicker.m_treeView.PopulateItem(s_componentPicker.m_treeView.RootItem, "Game Parameters", AkWwiseProjectInfo.GetData().RtpcWwu); } else if (objectType == AkWwiseProjectData.WwiseObjectType.TRIGGER) { s_componentPicker.m_treeView.PopulateItem(s_componentPicker.m_treeView.RootItem, "Triggers", AkWwiseProjectInfo.GetData().TriggerWwu); } else if (objectType == AkWwiseProjectData.WwiseObjectType.ACOUSTICTEXTURE) { s_componentPicker.m_treeView.PopulateItem(s_componentPicker.m_treeView.RootItem, "Virtual Acoustics", AkWwiseProjectInfo.GetData().AcousticTextureWwu); } AK.Wwise.TreeView.TreeViewItem item = null; var byteArray = AkUtilities.GetByteArrayProperty(guidProperty[0]); if (byteArray != null) { item = s_componentPicker.m_treeView.GetItemByGuid(new System.Guid(byteArray)); } if (item != null) { item.ParentControl.SelectedItem = item; var itemIndexFromRoot = 0; //Expand all the parents of the selected item. //Count the number of items that are displayed before the selected item while (true) { item.IsExpanded = true; if (item.Parent != null) { itemIndexFromRoot += item.Parent.Items.IndexOf(item) + 1; item = item.Parent; } else { break; } } //Scroll down the window to make sure that the selected item is always visible when the window opens //there seems to be 1 pixel between each item so we add 2 pixels(top and bottom) var itemHeight = item.ParentControl.m_skinSelected.button.CalcSize(new UnityEngine.GUIContent(item.Header)).y + 2.0f; s_componentPicker.m_treeView.SetScrollViewPosition(new UnityEngine.Vector2(0.0f, itemHeight * itemIndexFromRoot - UnityEngine.Screen.currentResolution.height / 4)); } //Restore the tree's expansion status AkWwiseProjectInfo.GetData().ExpandedItems = expandedItemsBackUp; }