FR2_SearchView.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using UnityEditor;
  2. using UnityEngine;
  3. namespace vietlabs.fr2
  4. {
  5. public class FR2_SearchView
  6. {
  7. private bool caseSensitive;
  8. private string searchTerm = string.Empty;
  9. public static GUIStyle toolbarSearchField;
  10. public static GUIStyle toolbarSearchFieldCancelButton;
  11. public static GUIStyle toolbarSearchFieldCancelButtonEmpty;
  12. public static void InitSearchStyle()
  13. {
  14. toolbarSearchField = "ToolbarSeachTextFieldPopup";
  15. toolbarSearchFieldCancelButton = "ToolbarSeachCancelButton";
  16. toolbarSearchFieldCancelButtonEmpty = "ToolbarSeachCancelButtonEmpty";
  17. }
  18. public bool DrawLayout()
  19. {
  20. bool dirty = false;
  21. if (toolbarSearchField == null)
  22. {
  23. InitSearchStyle();
  24. }
  25. GUILayout.BeginHorizontal(EditorStyles.toolbar);
  26. {
  27. bool v = GUILayout.Toggle(caseSensitive, "Aa", EditorStyles.toolbarButton, GUILayout.Width(24f));
  28. if (v != caseSensitive)
  29. {
  30. caseSensitive = v;
  31. dirty = true;
  32. }
  33. GUILayout.Space(2f);
  34. string value = GUILayout.TextField(searchTerm, toolbarSearchField, GUILayout.Width(140f));
  35. if (searchTerm != value)
  36. {
  37. searchTerm = value;
  38. dirty = true;
  39. }
  40. GUIStyle style = string.IsNullOrEmpty(searchTerm)
  41. ? toolbarSearchFieldCancelButtonEmpty
  42. : toolbarSearchFieldCancelButton;
  43. if (GUILayout.Button("Cancel", style))
  44. {
  45. searchTerm = string.Empty;
  46. dirty = true;
  47. }
  48. }
  49. GUILayout.EndHorizontal();
  50. return dirty;
  51. }
  52. }
  53. }