private void HighLightPrevious() { if (FindListIsEmpty) { return; } TreeCell currItem = findList.Keys.ElementAt(0); TreeCell targetItem = findList.Keys.ElementAt(findList.Keys.Count - 1); TreeCell temp; for (int i = 1; i < findList.Keys.Count; i++) { temp = findList.Keys.ElementAt(i); if (findList[temp]) { targetItem = findList.Keys.ElementAt(i - 1); currItem = temp; break; } } findList[currItem] = false; findList[targetItem] = true; EnsureNodeVisible(targetItem); RefreshTreeList(); UpdateShowResult(); }
void treeList_CustomDrawNodeCell(object sender, CustomDrawNodeCellEventArgs e) { if (FindListIsEmpty) { return; } int filterTextIndex = e.CellText.IndexOf(filterCellText, StringComparison.CurrentCultureIgnoreCase); if (filterTextIndex == -1) { return; } TreeCell temp = new TreeCell(e.Node.Id, e.Column); if (NeedHighLight(temp)) { using (SolidBrush brush = new SolidBrush(BackGroundColor)) { e.Cache.FillRectangle(brush, e.Bounds); } } TextEditViewInfo tevi = e.EditViewInfo as TextEditViewInfo; if (tevi == null) { return; } e.Appearance.BackColor = Color.Empty; e.Cache.Paint.DrawMultiColorString(e.Cache, tevi.MaskBoxRect, e.CellText, filterCellText, e.Appearance, e.Appearance.ForeColor, HighLightColor, false, filterTextIndex); e.Handled = true; }
private void OnRowExpanded(object o, RowExpandedArgs args) { TreeIter child; if (memberStore.IterNthChild(out child, args.Iter, 0)) { TreeCell cell = (TreeCell)memberStore.GetValue(child, 0); if (cell.Message == dummyText) { // Find parent node TreeIter piter; memberStore.IterParent(out piter, child); NodeInfo parent = ((TreeCell)memberStore.GetValue(piter, 0)).Node; // remove dummy value memberStore.Remove(ref child); // Insert children if (parent != null) { AddChildren(parent, args.Iter); // For reasons I can't fathom, if nodes are added the `args.Iter' // row isn't expanded until the 2nd click. So first-click // populates the children, 2nd-click shows them. // // This is annoying. // // Explicitly expand the row. treeView.ExpandRow(args.Path, false); } } } }
private void OnRenderCellIcon(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter) { #if SHOW_ICONS TreeCell tc = (TreeCell)memberStore.GetValue(iter, 0); ((CellRendererPixbuf)cell).Pixbuf = tc.Icon; #endif }
private void OnRenderCellText(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter) { TreeCell tc = (TreeCell)memberStore.GetValue(iter, 0); ((CellRendererText)cell).Text = tc.Message != null ? tc.Message : Formatter.GetDescription(tc.Node); }
private bool NeedHighLight(TreeCell cell) { foreach (TreeCell item in findList.Keys) { if (item.NodeID == cell.NodeID && item.Column == cell.Column) { return(findList[item]); } } return(false); }
private static TreeCell AddCell(ExtList <TreeCell> row, GEDCOMIndividualRecord iRec, CellKind cellKind) { TreeCell result = new TreeCell(); result.ColIndex = row.Add(result); result.Kind = cellKind; result.Rec = iRec; result.Row = row; if (iRec != null) { result.Name = iRec.GetPrimaryFullName(); } return(result); }
public void GenTree(StreamWriter writer, GEDCOMIndividualRecord iRec) { try { var tableRows = new ExtList <ExtList <TreeCell> >(true); try { Step(tableRows, 0, 0, null, iRec, 1); writer.WriteLine("<table border=\"0\" cellspacing=\"0\">"); int num = tableRows.Count; for (int r = 0; r < num; r++) { var row = tableRows[r]; writer.WriteLine("<tr>"); int num2 = row.Count; for (int c = 0; c < num2; c++) { TreeCell cell = row[c]; string nm = " "; string st = ""; if (cell.Kind != CellKind.ckSpace) { if (cell.Kind == CellKind.ckPerson && cell.Name != "") { nm = "<a href=\"#" + cell.Rec.XRef + "\">" + cell.Name + "</a>"; } st = " bgcolor=\"silver\""; } writer.WriteLine("<td" + st + ">" + nm + "</td>"); } writer.WriteLine("</tr>"); } writer.WriteLine("</tr></table>"); } finally { tableRows.Dispose(); } } catch (Exception ex) { writer.WriteLine(ex.Message); } }
private static void DrawLine(ExtList <ExtList <TreeCell> > table, TreeCell cellAncestor, TreeCell cellDescendant) { int r = table.IndexOf(cellDescendant.Row); int r2 = table.IndexOf(cellAncestor.Row); int y; if (r > r2) { y = r2; r2 = r; r = y; } int x = cellDescendant.ColIndex - 1; for (y = r; y <= r2; y++) { var row = table[y]; row[x].Kind = CellKind.ckLine; } }
private void HighLightNext() { if (FindListIsEmpty) { return; } bool needBreak = false; TreeCell currItem = null; TreeCell targetItem = null; foreach (TreeCell item in findList.Keys) { if (needBreak) { targetItem = item; break; } if (findList[item]) { currItem = item; needBreak = true; } } if (targetItem == null) { targetItem = findList.Keys.ElementAt(0); } findList[currItem] = false; findList[targetItem] = true; EnsureNodeVisible(targetItem); RefreshTreeList(); UpdateShowResult(); }
public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); _debuger.hero = (GameObject)EditorGUILayout.ObjectField("Host", _debuger.hero, typeof(GameObject), true); if (EditorGUI.EndChangeCheck()) { UpdateHost(); } EditorGUI.BeginChangeCheck(); _listDrawer.Draw(serializedObject); FireFxCanvas canvas = TreeCenter.currCanvas as FireFxCanvas; if (canvas != null) { TreeCell main = TreeCenter.selection.main; if (main != null) { EditStyles.DrawHorizontalSeperator(); GUILayout.Label("Current Cell : " + main.cellType, EditStyles.boldLabel); PInspectorCore[] ps = main.GetProperties(); PInspectorCore.BeginLabelWidth(ps); EditorGUI.BeginChangeCheck(); GUILayout.BeginHorizontal(); GUILayout.Label("Name", GUILayout.Width(PInspectorCore.labelWidth)); main.editName = EditorGUILayout.DelayedTextField(main.editName); GUILayout.EndHorizontal(); if (EditorGUI.EndChangeCheck()) { PPaintCenter.RepaintClients(); } PInspectorCore.useLabelString = TreeCenter.useChn; for (int i = 0; i < ps.Length; i++) { if (!main.OnInspectorDraw(ps[i], _debuger) && !ps[i].hideInInspector) { ps[i].Draw(); } main.AfterInspectorDraw(ps[i]); } PInspectorCore.useLabelString = false; PInspectorCore.EndLabelWidth(); } if (Application.isPlaying) { if (main != null) { EditStyles.DrawHorizontalSeperator(); } GUILayout.Space(10); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Play", GUILayout.Width(100))) { _debuger.Play(canvas); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); } } if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(_debuger); } }
private void Step(ExtList <ExtList <TreeCell> > table, int rowIndex, int colIndex, TreeCell prev, GEDCOMIndividualRecord cur, int gen) { if (cur == null) { return; } if (rowIndex < 0) { rowIndex = 0; } if (rowIndex > table.Count) { rowIndex = table.Count; } var row = AddRow(table, rowIndex, 0); int num = (colIndex - 1) << 1; for (int i = 0; i <= num; i++) { AddCell(row, null, CellKind.ckSpace); } if (prev != null) { AddCell(row, null, CellKind.ckLine); } TreeCell curCell = AddCell(row, cur, CellKind.ckPerson); if (cur.ChildToFamilyLinks.Count > 0 && gen < 5) { GEDCOMFamilyRecord family = cur.ChildToFamilyLinks[0].Family; GEDCOMIndividualRecord iFather = family.Husband.Value as GEDCOMIndividualRecord; GEDCOMIndividualRecord iMother = family.Wife.Value as GEDCOMIndividualRecord; if (iFather != null || iMother != null) { AddCell(row, null, CellKind.ckLine); AddCell(row, null, CellKind.ckSpace); rowIndex = table.IndexOf(row); if (iFather != null) { AddRow(table, rowIndex, colIndex + 1); } Step(table, rowIndex, colIndex + 1, curCell, iFather, gen + 1); rowIndex = table.IndexOf(row); if (iMother != null) { AddRow(table, rowIndex + 1, colIndex + 1); } Step(table, rowIndex + 2, colIndex + 1, curCell, iMother, gen + 1); } } WideTable(table, curCell.ColIndex + 1); if (prev != null) { DrawLine(table, prev, curCell); } }
public override bool CanInsertTo(TreeCell obj) { return(base.CanInsertTo(obj) && obj is FireFxEmitCell_Line); }
public override bool CanInsertTo(TreeCell obj) { return(obj != null && obj.IsLeaf == false && IsAncestorOf(obj) == false); }
public override bool CanInsertTo(TreeCell obj) { return(base.CanInsertTo(obj) && obj.IsSelfOrDescendOf <FireFxCellBase>()); }
private void EnsureNodeVisible(TreeCell cell) { treeList.MakeNodeVisible(treeList.FindNodeByID(cell.NodeID)); treeList.FocusedColumn = cell.Column; }