private void filesList_Selection_Changed(object o, EventArgs args) { if (filesList.Selection.GetSelectedRows().Length > 0) { TreePath path = filesList.Selection.GetSelectedRows()[0]; if (!selectedRows.ContainsKey(currentPath)) { selectedRows.Add(currentPath, path.ToString()); } else { selectedRows[currentPath] = path.ToString(); } } }
public static void TreeviewScrollToLastRow(Gtk.TreeView tv, Gtk.ListStore store, int nrows) { TreeIter iter = new TreeIter(); bool iterOk = store.GetIterFirst(out iter); if (!iterOk) { return; } for (int i = 0; i < (nrows - 1); i++) { iterOk = tv.Model.IterNext(ref iter); } if (!iterOk) { return; } TreePath path = store.GetPath(iter); LogB.Debug(path.ToString()); tv.ScrollToCell(path, tv.Columns[0], true, 0, 0); }
bool GetCellPosition(int mx, int my, out int cellx, out int celly, out TreeIter iter, out TreePath path) { TreeViewColumn col; iter = TreeIter.Zero; if (!keyBindingsTree.GetPathAtPos(mx, my, out path, out col, out cellx, out celly)) { return(false); } if (!keyBindingsTree.Model.GetIterFromString(out iter, path.ToString())) { return(false); } int sp, w; if (col.CellGetPosition(this, out sp, out w)) { if (cellx >= sp && cellx < sp + w) { return(true); } } return(false); }
private static bool treeviewSelectRow(Gtk.TreeView tv, Gtk.TreeStore store, int rowNum, bool scrollToRow) { if (rowNum == -1) { return(false); } //set the selected int count = 0; TreeIter iter; bool iterOk = store.GetIterFirst(out iter); while (iterOk) { if (count == rowNum) { //1 select row tv.Selection.SelectIter(iter); //2 scroll to that row if (scrollToRow) { TreePath path = store.GetPath(iter); LogB.Debug(path.ToString()); tv.ScrollToCell(path, tv.Columns[0], true, 0, 0); } return(true); } count++; store.IterNext(ref iter); } return(false); }
TViewModel GetParentVM(TreePath path) { TreeIter iterParent, iter; store.GetIterFromString(out iter, path.ToString()); store.IterParent(out iterParent, iter); return(store.GetValue(iterParent, COL_DATA) as TViewModel); }
public int[] getSelectedIndexes() { TreePath[] paths = this.Selection.GetSelectedRows(); int[] ret = new int[paths.Length]; for (int i = 0; i < paths.Length; i++) { TreePath path = paths[i]; ret[i] = int.Parse(path.ToString()); Console.WriteLine("selectat->" + ret[i]); } return(ret); }
// TODO remove this function again. It is redundant to the existing ExpandToPath() function which does exactly the same, see http://wrapl.sourceforge.net/doc/Gtk/Gtk/TreeView.html public static void ExpandRowWithParents(this TreeView treeView, TreeIter iter) { Stack <TreePath> stack = new Stack <TreePath>(); TreeStore treeStore = treeView.Model as TreeStore; TreePath tp = treeStore.GetPath(iter); do { stack.Push(new TreePath(tp.ToString())); // clone }while (tp.Up()); while (stack.Count > 0) { treeView.ExpandRow(stack.Pop(), false); } }
void treeViewFontStyles_SelectionChanged(object sender, EventArgs args) { string fontstyle_selected = ""; TreeSelection selection = (sender as TreeView).Selection; TreeModel model; TreeIter iter; // iter - points to selected row if (selection.GetSelected(out model, out iter)) { TreePath tree_path = model.GetPath(iter); string select_path = tree_path.ToString(); int idx_column = 0; object selected_object = model.GetValue(iter, idx_column); fontstyle_selected = (string)selected_object; } entryFontStyle.Text = fontstyle_selected; switch (fontstyle_selected) { case "Regular": ApplyTextTags(textviewDemoText.Buffer, "style:normal"); ApplyTextTags(textviewDemoText.Buffer, "fontweight:normal"); break; case "Italic": ApplyTextTags(textviewDemoText.Buffer, "style:italic"); ApplyTextTags(textviewDemoText.Buffer, "fontweight:normal"); break; case "Bold": ApplyTextTags(textviewDemoText.Buffer, "style:normal"); ApplyTextTags(textviewDemoText.Buffer, "fontweight:bold"); break; case "Bold Italic": ApplyTextTags(textviewDemoText.Buffer, "style:italic"); ApplyTextTags(textviewDemoText.Buffer, "fontweight:bold"); break; default: break; } return; }
//selects a row that has an uniqueID (usually at col 0) public static void TreeviewSelectRowWithID(Gtk.TreeView tv, Gtk.TreeStore store, int colNum, int id, bool scrollToRow) { if (id <= 0) { return; } int rowNum = getRowNumOfThisID(store, colNum, id); if (rowNum == -1) { return; } //set the selected int count = 0; TreeIter iter; bool iterOk = store.GetIterFirst(out iter); while (iterOk) { if (count == rowNum) { //1 select row tv.Selection.SelectIter(iter); //2 scroll to that row if (scrollToRow) { TreePath path = store.GetPath(iter); LogB.Debug(path.ToString()); tv.ScrollToCell(path, tv.Columns[0], true, 0, 0); } return; } count++; store.IterNext(ref iter); } }
void treeViewFontSizes_SelectionChanged(object sender, EventArgs args) { int fontsize_selected = -1; TreeSelection selection = (sender as TreeView).Selection; TreeModel model; TreeIter iter; // iter - points to selected row if (selection.GetSelected(out model, out iter)) { TreePath tree_path = model.GetPath(iter); string select_path = tree_path.ToString(); int idx_column = 0; object selected_object = model.GetValue(iter, idx_column); fontsize_selected = (int)selected_object; } entryFontSize.Text = fontsize_selected.ToString(); ApplyTextTags(textviewDemoText.Buffer, "fontsize:" + fontsize_selected.ToString()); return; }
public static void Serialize(TreePath value, TextWriter sw) { sw.Write('"'); sw.Write(value.ToString()); sw.Write('"'); }
protected override void printData(string [] statValues) { if (numContinuous != -1) { int bestPos = findBestContinuous(statValues, numContinuous); if (bestPos != -1) { statValues = markBestContinuous(statValues, numContinuous, bestPos); } } if (toReport) { bool allowedRow = false; for (int i = 0; i < markedRows.Count; i++) { if (Convert.ToInt32(markedRows[i]) == rowsPassedToReport) { allowedRow = true; break; } } if (allowedRow) { reportString += "<TR>"; //in report, if there are more than 5 jumps, break the row if (maxJumps > 5) { //show 5 jumps in a row (every jump has 2 cols: TC + TF) int countCols = -3; //jumper, index , fall, count (from -3 to 0) int countRows = 0; for (int i = 0; i < statValues.Length; i++) { //if a jump is shorter than the others, //there's no need of filling rows with '-' in every cell if (countCols >= 1 && statValues[i] == "-") { break; } //when countCols is 0, and countRows is 0 we should print the first 'Count' if (countCols == 0 && countRows == 0) { reportString += "<TD>1-5</TD>"; } //change line if (countCols >= 10) { reportString += "</TR><TR><TD> </TD><TD> </TD><TD> </TD>"; countRows++; countCols = 0; reportString += "<TD>" + (countRows * 5 + 1) + "-" + (countRows * 5 + 5) + "</TD>"; } reportString += "<TD>" + statValues[i] + "</TD>"; countCols++; } } else { for (int i = 0; i < statValues.Length; i++) { reportString += "<TD>" + statValues[i] + "</TD>"; } } reportString += "</TR>\n"; } rowsPassedToReport++; } else { //iter = store.AppendValues (statValues); iter = new TreeIter(); //iter = store.Append (iter); //doesn't work //store.Append (out iter); //add new row and make iter point to it iter = store.AppendNode(); //addAllNoneIfNeeded(statValues.Length); TreePath myPath = store.GetPath(iter); if (statValues[0] != Catalog.GetString("AVG") && statValues[0] != Catalog.GetString("SD")) { store.SetValue(iter, 0, true); //first col is true if it's not AVG or SD markedRows.Add(myPath.ToString()); //LogB.Information("FROM PRINTDATA (EVOLUTION) Added to markedRows row:{0}", myPath.ToString()); } for (int i = 0; i < statValues.Length; i++) { store.SetValue(iter, i + 1, statValues[i]); } } }
private static string Convert(TreePath value) { return(value != null ? "'" + value.ToString().Replace("'", "''") + "'" : "null"); }
public void RebuildTable() { if ((null == model) || (null == items) || (null == table)) { iFolderViewGroup.log.Info("NULL Reference Exception: Object, model is -{0}-items is-{1}-table is -{2}-", model, items, table); return; // prevent null pointer exception } int numOfItems = model.IterNChildren(); if (numOfItems > 0) { int availableWidth = currentWidth - (int)(contentVBox.BorderWidth * 2) - (int)(table.BorderWidth * 2); int numOfColumns = availableWidth / ItemMaxWidth; if (numOfColumns < 1) { numOfColumns = 1; // Force at least one column } int numOfRows = numOfItems / numOfColumns; if ((numOfItems % numOfColumns) > 0) { numOfRows++; } bFirstTableBuild = false; /// /// Clear out the old items /// items.Clear(); foreach (Widget w in table.Children) { table.Remove(w); w.Destroy(); } table.Resize((uint)numOfRows, (uint)numOfColumns); int currentRow = 0; int currentColumn = 0; TreeIter iter; if (model.GetIterFirst(out iter)) { do { iFolderHolder holder = (iFolderHolder)model.GetValue(iter, 0); if (holder != null) { iFolderViewItem item = new iFolderViewItem(holder, this, iter, ItemMaxWidth); if (null == item) { iFolderViewGroup.log.Info("NULL Reference Exception: Object item is NULL"); return; //prevent null pointer exception } table.Attach(item, (uint)currentColumn, (uint)currentColumn + 1, (uint)currentRow, (uint)currentRow + 1, AttachOptions.Shrink | AttachOptions.Fill, 0, 0, 0); // Save off the item so we can quickly reference it later TreePath path = model.GetPath(iter); items[path.ToString()] = item; // Register for the click events item.LeftClicked += new EventHandler(OnItemLeftClicked); item.RightClicked += new EventHandler(OnItemRightClicked); item.DoubleClicked += new EventHandler(OnItemDoubleClicked); currentColumn = ((currentColumn + 1) % numOfColumns); if (currentColumn == 0) { currentRow++; } } } while (model.IterNext(ref iter)); } table.ShowAll(); } else { items.Clear(); foreach (Widget w in table.Children) { table.Remove(w); w.Destroy(); } } }