///<summary> /// Updates the selection status bar with data from the specified DataView, /// if the specified DataView is active ///</summary> public void UpdateSelection(DataView dv) { if (dataBook.NPages == 0) { return; } DataView curdv = ((DataViewDisplay)dataBook.CurrentPageWidget).View; if (curdv != dv) { return; } Bless.Util.Range sel = dv.Selection; SelectionStatusbar.Pop(0); string str; if (sel.IsEmpty() == true) { str = Catalog.GetString("Selection: None"); } else { string startString = BaseConverter.ConvertToString(sel.Start, numberBase, true, true, 1); string endString = BaseConverter.ConvertToString(sel.End, numberBase, true, true, 1); string sizeString = BaseConverter.ConvertToString(sel.Size, numberBase, true, true, 1); str = string.Format(Catalog.GetString("Selection: {0} to {1}") + " " + Catalog.GetPluralString("({2} byte)", "({2} bytes)", (int)sel.Size), startString, endString, sizeString); } SelectionStatusbar.Push(0, str); }
private void OnClipboardGet(Clipboard cb, SelectionData sd, uint n) { if (saved_selection.IsEmpty()) { sd.Text = BaseConverter.ConvertToString(saved_offset, number_base, true, true, 1); } else { string start = BaseConverter.ConvertToString(saved_selection.Start, number_base, true, true, 1); string end = BaseConverter.ConvertToString(saved_selection.End, number_base, true, true, 1); sd.Text = string.Format("{0},{1}", start, end); } }
public void DifferenceTest() { Range r1 = new Range(5, 10); Range r2 = new Range(6, 9); Range r3 = new Range(); r1.Difference(r2, r3); Assert.AreEqual(5, r1.Start, "#1"); Assert.AreEqual(5, r1.End, "#2"); Assert.AreEqual(10, r3.Start, "#3"); Assert.AreEqual(10, r3.End, "#4"); Range r4 = new Range(5, 10); Range r5 = new Range(5, 8); r4.Difference(r5, r3); Assert.AreEqual(9, r4.Start, "#5"); Assert.AreEqual(10, r4.End, "#6"); Assert.AreEqual(true, r3.IsEmpty(), "#7"); }
///<summary>Check if the specified range of bytes in a ByteBuffer equals a byte pattern</summary> bool RangeEqualsPattern(ByteBuffer bb, Bless.Util.Range sel, byte[] pattern) { int i = 0; int len = pattern.Length; if (sel.IsEmpty()) { return(false); } while (i < len && pattern[i] == bb[sel.Start + i]) { i++; } if (i != len) { return(false); } else { return(true); } }