private void UpdateSpecialShow() { if (BindProperty != null) { var att = BindProperty.Attributes[typeof(EngineNS.Editor.Editor_HexAttribute)]; if (att != null) { if (NumericObject.GetType() == typeof(UInt64)) { var value = (UInt64)(NumericObject); var formatStr = "{0,0:X}"; var tagStr = String.Format(formatStr, value); textBox.Text = tagStr; textBlock.Text = tagStr; } } } }
private void textBlock_MouseMove(object sender, System.Windows.Input.MouseEventArgs e) { if (mDraged) { var screenPos = new ResourceLibrary.Win32.POINT(); ResourceLibrary.Win32.GetCursorPos(ref screenPos); if (screenPos.Y <= mMouseDownScreenRect.Top) { screenPos.Y = mMouseDownScreenRect.Bottom - 1; ResourceLibrary.Win32.SetCursorPos(screenPos.X, screenPos.Y); mScreenHeightCount--; } else if (screenPos.Y >= mMouseDownScreenRect.Bottom) { screenPos.Y = mMouseDownScreenRect.Top + 1; ResourceLibrary.Win32.SetCursorPos(screenPos.X, screenPos.Y); mScreenHeightCount++; } var pos = e.GetPosition((UIElement)sender); pos.Y += mScreenHeightCount * mMouseDownScreenRect.Height; if (mMouseMoved == false) { var length = pos.Y - mMouseLeftButtonDownPoint.Y; if (System.Math.Abs(length) > 0) { mMouseMoved = true; } } var delta = mMouseLeftButtonDownPoint.Y - pos.Y; Attribute attr = null; if (BindProperty != null) { attr = BindProperty.Attributes[typeof(EngineNS.Editor.Editor_MultipleOfTwoAttribute)] as EngineNS.Editor.Editor_MultipleOfTwoAttribute; } if (attr != null) { if (System.Math.Abs(delta) > 10) { if (NumericObject.GetType() == typeof(SByte)) { if (delta > 0) { var value = (SByte)NumericObject; NumericObject = (SByte)(value * 2); } else { var value = (SByte)NumericObject; NumericObject = (SByte)(value / 2); } } else if (NumericObject.GetType() == typeof(Int16)) { if (delta > 0) { var value = (Int16)NumericObject; NumericObject = (Int16)(value * 2); } else { var value = (Int16)NumericObject; NumericObject = (Int16)(value / 2); } } else if (NumericObject.GetType() == typeof(Int32)) { if (delta > 0) { var value = (Int32)NumericObject; NumericObject = (Int32)(value * 2); } else { var value = (Int32)NumericObject; NumericObject = (Int32)(value / 2); } } else if (NumericObject.GetType() == typeof(Int64)) { if (delta > 0) { var value = (Int64)NumericObject; NumericObject = (Int64)(value * 2); } else { var value = (Int64)NumericObject; NumericObject = (Int64)(value / 2); } } else if (NumericObject.GetType() == typeof(Byte)) { if (delta > 0) { var value = (Byte)NumericObject; NumericObject = (Byte)(value * 2); } else { var value = (Byte)NumericObject; NumericObject = (Byte)(value / 2); } } else if (NumericObject.GetType() == typeof(UInt16)) { if (delta > 0) { var value = (UInt16)NumericObject; NumericObject = (UInt16)(value * 2); } else { var value = (UInt16)NumericObject; NumericObject = (UInt16)(value / 2); } } else if (NumericObject.GetType() == typeof(UInt32)) { if (delta > 0) { var value = (UInt32)NumericObject; NumericObject = (UInt32)(value * 2); } else { var value = (UInt32)NumericObject; NumericObject = (UInt32)(value / 2); } } else if (NumericObject.GetType() == typeof(UInt64)) { if (delta > 0) { var value = (UInt64)NumericObject; NumericObject = (UInt64)(value * 2); } else { var value = (UInt64)NumericObject; NumericObject = (UInt64)(value / 2); } } else if (NumericObject.GetType() == typeof(Single)) { if (delta > 0) { var value = (Single)NumericObject; NumericObject = (Single)(value * 2); } else { var value = (Single)NumericObject; NumericObject = (Single)(value / 2); } } else if (NumericObject.GetType() == typeof(Double)) { if (delta > 0) { var value = (Double)NumericObject; NumericObject = (Double)(value * 2); } else { var value = (Double)NumericObject; NumericObject = (Double)(value / 2); } } mMouseLeftButtonDownPoint = pos; } } else { //if (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)) // delta *= 2; if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) { delta /= 20; } if (NumericObject.GetType() == typeof(SByte)) { SByte value = (SByte)mValueStore; value += (SByte)delta; if (IsShiftDown) { value = (SByte)(value / 5 * 5); } NumericObject = value; } else if (NumericObject.GetType() == typeof(Int16)) { Int16 value = (Int16)mValueStore; value += (Int16)delta; if (IsShiftDown) { value = (Int16)(value / 5 * 5); } NumericObject = value; } else if (NumericObject.GetType() == typeof(Int32)) { Int32 value = (Int32)mValueStore; value += (Int32)delta; if (IsShiftDown) { value = (Int32)(value / 5 * 5); } NumericObject = value; } else if (NumericObject.GetType() == typeof(Int64)) { Int64 value = (Int64)mValueStore; value += (Int64)delta; if (IsShiftDown) { value = (Int64)(value / 5 * 5); } NumericObject = value; } else if (NumericObject.GetType() == typeof(Byte)) { Byte value = (Byte)mValueStore; value += (Byte)delta; if (IsShiftDown) { value = (Byte)(value / 5 * 5); } NumericObject = value; } else if (NumericObject.GetType() == typeof(UInt16)) { UInt16 value = (UInt16)mValueStore; value += (UInt16)delta; if (IsShiftDown) { value = (UInt16)(value / 5 * 5); } NumericObject = value; } else if (NumericObject.GetType() == typeof(UInt32)) { UInt32 value = (UInt32)mValueStore; value += (UInt32)delta; if (IsShiftDown) { value = (UInt32)(value / 5 * 5); } NumericObject = value; } else if (NumericObject.GetType() == typeof(UInt64)) { UInt64 value = (UInt64)mValueStore; value += (UInt64)delta; if (IsShiftDown) { value = (UInt64)(value / 5 * 5); } NumericObject = value; } else if (NumericObject.GetType() == typeof(Single)) { Single value = (Single)mValueStore; value += (Single)delta; if (IsShiftDown) { value = (int)value / 5 * 5; } NumericObject = value; } else if (NumericObject.GetType() == typeof(Double)) { Double value = (Double)mValueStore; value += delta; if (IsShiftDown) { value = (int)value / 5 * 5; } NumericObject = value; } } OnValueManualChanged?.Invoke(); e.Handled = true; } }
/// <summary> /// Reads next <see cref="PdfObject"/> from PDF stream. /// </summary> /// <param name="reader">The <see cref="PdfReader"/> to use.</param> /// <returns>Read PdfObject.</returns> public static PdfObject ReadObject(this PdfReader reader) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } reader.MoveToNonWhiteSpace(); char firstChar = reader.Peek(); switch (firstChar) { case '%': // Skip comment reader.SkipWhile(c => !Chars.IsEndOfLine(c)); reader.SkipWhile(Chars.IsEndOfLine); // Then try read next object return(ReadObject(reader)); case 't': reader.ReadToken(BooleanObject.TrueToken); return(new BooleanObject(true, true)); case 'f': reader.ReadToken(BooleanObject.FalseToken); return(new BooleanObject(false, true)); case 'n': reader.ReadToken(NullObject.NullToken); return(new NullObject()); case '(': return(LiteralStringObject.FromReader(reader)); case '<': if (reader.Peek(1) == '<') { return(DictionaryObject.FromReader(reader)); } else { return(HexadecimalStringObject.FromReader(reader)); } case '/': return(NameObject.FromReader(reader)); case '[': return(ArrayObject.FromReader(reader)); case '+': case '-': return(NumericObject.FromReader(reader)); } if (char.IsDigit(firstChar)) { int indRefLength = IsIndirectReference(reader); if (indRefLength >= 5) { var indRefStr = reader.ReadString(indRefLength); var objectId = PdfObjectId.FromString(indRefStr.Substring(0, indRefLength - 2)); return(new IndirectReference(objectId)); } return(NumericObject.FromReader(reader)); } throw new NotImplementedException(); }