0.2.0: Added drag and drop between entries in list and fixed some bugs
This commit is contained in:
parent
dea60c6e4a
commit
1e1736f94a
8 changed files with 150 additions and 38 deletions
|
|
@ -59,9 +59,10 @@ namespace Game.NavigationTool.Editor
|
|||
}
|
||||
|
||||
HandleDragAndDropEvents();
|
||||
HandleManipulatedEntry();
|
||||
HandleManipulatedEntry(styles);
|
||||
FavoritesGUIUtility.EndDraw();
|
||||
}
|
||||
|
||||
|
||||
private void HandleDragAndDropEvents()
|
||||
{
|
||||
Favorites favorites = FavoritesUtility.GetFavorites();
|
||||
|
|
@ -76,20 +77,18 @@ namespace Game.NavigationTool.Editor
|
|||
|
||||
if (!viewTools.IsSearching())
|
||||
toParent = FavoritesGUIUtility.hoverEntry;
|
||||
|
||||
|
||||
favorites.AddRangeByPath(DragAndDrop.paths, toParent);
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandleManipulatedEntry()
|
||||
private static void HandleManipulatedEntry(Styles styles)
|
||||
{
|
||||
Favorites favorites = FavoritesUtility.GetFavorites();
|
||||
Favorites.Entry entry = FavoritesGUIUtility.manipulatingEntry;
|
||||
|
||||
switch (FavoritesGUIUtility.manipulatingState)
|
||||
{
|
||||
case EManipulatingState.BeginClick:
|
||||
break;
|
||||
case EManipulatingState.PerformedClick:
|
||||
if (entry.isAsset)
|
||||
{
|
||||
|
|
@ -102,23 +101,23 @@ namespace Game.NavigationTool.Editor
|
|||
favorites.Save();
|
||||
}
|
||||
|
||||
FavoritesGUIUtility.ClearManipulating();
|
||||
break;
|
||||
case EManipulatingState.EndClick:
|
||||
FavoritesGUIUtility.ClearManipulating();
|
||||
break;
|
||||
case EManipulatingState.BeginDrag:
|
||||
Rect rect = FavoritesGUIUtility.manipulatingRect;
|
||||
rect.position = Event.current.mousePosition - FavoritesGUIUtility.manipulatingMouseOffset;
|
||||
FavoritesGUIUtility.DrawShadowEntry(rect, entry, styles);
|
||||
break;
|
||||
case EManipulatingState.PerformedDrag:
|
||||
FavoritesGUIUtility.ClearManipulating();
|
||||
break;
|
||||
case EManipulatingState.EndDrag:
|
||||
favorites.Move(entry, FavoritesGUIUtility.hoverEntry);
|
||||
FavoritesGUIUtility.ClearManipulating();
|
||||
break;
|
||||
case EManipulatingState.PerformedContextClick:
|
||||
FavoritesGUIUtility.ClearManipulating();
|
||||
EditorFavoritesPopupWindowContextMenu.Show(Event.current.mousePosition, entry);
|
||||
break;
|
||||
case EManipulatingState.EndClick:
|
||||
case EManipulatingState.EndDrag:
|
||||
case EManipulatingState.EndContextClick:
|
||||
FavoritesGUIUtility.ClearManipulating();
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue