public CompletablesWindow(Rect aStartPos, GUIContent aContent, GUIStyle aStyle, params GUILayoutOption[] aOptions) : base(aStartPos, aContent, aStyle, aOptions) { completablesList = new DataControlList() { RequestRepaint = Repaint, Columns = new List <ColumnList.Column>() { new ColumnList.Column() { Text = TC.get("Analytics.Completable.Id") }, new ColumnList.Column() { Text = TC.get("Analytics.Completable.Start") }, new ColumnList.Column() { Text = TC.get("Analytics.Completable.End") }, new ColumnList.Column() { Text = TC.get("Analytics.Completable.Progress") }, new ColumnList.Column() { Text = TC.get("Analytics.Completable.Score") }, new ColumnList.Column() { Text = TC.get("Repeatable"), SizeOptions = new GUILayoutOption[] { GUILayout.Width(70) } } }, drawCell = (rect, row, column, isActive, isFocused) => { var completable = completablesList.list[row] as CompletableDataControl; switch (column) { case 0: completable.renameElement(EditorGUI.TextField(rect, completable.getId())); break; case 1: if (GUI.Button(rect, completable.getStart().getContent().ToString())) { MilestoneEditorWindow.ShowMilestoneEditor(rect, completable.getStart()); } break; case 2: if (GUI.Button(rect, completable.getEnd().getContent().ToString())) { MilestoneEditorWindow.ShowMilestoneEditor(rect, completable.getEnd()); } break; case 3: if (GUI.Button(rect, TC.get("Analytics.Completable.Define"))) { ProgressEditorWindow.ShowProgressEditor(rect, completable.getProgress()); } break; case 4: { if (Available) { ScoreEditor(rect, completable.getScore()); } else { EditorGUI.HelpBox(rect, TC.get("Condition.Var.Warning"), MessageType.Error); } } break; case 5: completable.setRepeatable(GUI.Toggle(rect, completable.getRepeatable(), "?")); break; } } }; }