UnityMol  0.9.6-875
UnityMol viewer / In developement
GUILayoutx.cs
Go to the documentation of this file.
1 
66 using UnityEngine;
67 
68 public class GUILayoutx {
69 
70  public delegate void DoubleClickCallback(int index);
71 
72  public static int SelectionList(int selected, GUIContent[] list) {
73  return SelectionList(selected, list, "List Item", null);
74  }
75 
76  public static int SelectionList(int selected, GUIContent[] list, GUIStyle elementStyle) {
77  return SelectionList(selected, list, elementStyle, null);
78  }
79 
80  public static int SelectionList(int selected, GUIContent[] list, DoubleClickCallback callback) {
81  return SelectionList(selected, list, "List Item", callback);
82  }
83 
84  public static int SelectionList(int selected, GUIContent[] list, GUIStyle elementStyle, DoubleClickCallback callback) {
85  for (int i = 0; i < list.Length; ++i) {
86  Rect elementRect = GUILayoutUtility.GetRect(list[i], elementStyle);
87  bool hover = elementRect.Contains(Event.current.mousePosition);
88  if (hover && Event.current.type == EventType.MouseDown && Event.current.clickCount == 1 ) {
89  selected = i;
90  Event.current.Use();
91  } else if (hover && callback != null && Event.current.type == EventType.MouseDown && Event.current.clickCount == 2) {
92  callback(i);
93  Event.current.Use();
94  } else if (Event.current.type == EventType.repaint) {
95  elementStyle.Draw(elementRect, list[i], hover, false, i == selected, false);
96  }
97  }
98  return selected;
99  }
100 
101  public static int SelectionList(int selected, string[] list) {
102  return SelectionList(selected, list, "List Item", null);
103  }
104 
105  public static int SelectionList(int selected, string[] list, GUIStyle elementStyle) {
106  return SelectionList(selected, list, elementStyle, null);
107  }
108 
109  public static int SelectionList(int selected, string[] list, DoubleClickCallback callback) {
110  return SelectionList(selected, list, "List Item", callback);
111  }
112 
113  public static int SelectionList(int selected, string[] list, GUIStyle elementStyle, DoubleClickCallback callback) {
114  for (int i = 0; i < list.Length; ++i) {
115  Rect elementRect = GUILayoutUtility.GetRect(new GUIContent(list[i]), elementStyle);
116  bool hover = elementRect.Contains(Event.current.mousePosition);
117  if (hover && Event.current.type == EventType.MouseDown && Event.current.clickCount == 1) {
118  selected = i;
119  Event.current.Use();
120  } else if (hover && callback != null && Event.current.type == EventType.MouseDown && Event.current.clickCount == 2) {
121  callback(i);
122  Event.current.Use();
123  } else if (Event.current.type == EventType.repaint) {
124  elementStyle.Draw(elementRect, list[i], hover, false, i == selected, false);
125  }
126  }
127  return selected;
128  }
129 
130 }
static int SelectionList(int selected, GUIContent[] list)
Definition: GUILayoutx.cs:72
static int SelectionList(int selected, string[] list, GUIStyle elementStyle, DoubleClickCallback callback)
Definition: GUILayoutx.cs:113
static int SelectionList(int selected, GUIContent[] list, GUIStyle elementStyle, DoubleClickCallback callback)
Definition: GUILayoutx.cs:84
static int SelectionList(int selected, string[] list, GUIStyle elementStyle)
Definition: GUILayoutx.cs:105
delegate void DoubleClickCallback(int index)
static int SelectionList(int selected, GUIContent[] list, GUIStyle elementStyle)
Definition: GUILayoutx.cs:76
static int SelectionList(int selected, GUIContent[] list, DoubleClickCallback callback)
Definition: GUILayoutx.cs:80
static int SelectionList(int selected, string[] list, DoubleClickCallback callback)
Definition: GUILayoutx.cs:109
static int SelectionList(int selected, string[] list)
Definition: GUILayoutx.cs:101