private void RadBookItem_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (!this.CanBeTurned) { return; } this.mousePoint = e.GetPosition((IInputElement)this); if (!FoldHelper.MouseWithinFoldAreas(this.mousePoint, this) && this.FoldSize != new Size(0.0, 0.0)) { return; } this.draggedCorner = FoldHelper.GetQuadrant(this.mousePoint, this); this.targetCorner = RadBookItem.GetOppositeCorner(this.draggedCorner); this.UpdatePageFold(); if (this.doubleClickMode && this.PageFlipMode == PageFlipMode.DoubleClick) { if (this.mouseDoubleClick != null) { this.mouseDoubleClick((object)this, new MouseClickEventArgs(this.targetCorner)); } this.doubleClickMode = false; this.doubleClickTimer.Stop(); } else { this.singleClickMode = this.PageFlipMode == PageFlipMode.SingleClick; this.doubleClickMode = this.PageFlipMode == PageFlipMode.DoubleClick; this.dragStarted = true; if (this.PageFlipMode == PageFlipMode.SingleClick) { this.singleClickTimer.Start(); } else if (this.PageFlipMode == PageFlipMode.DoubleClick) { this.doubleClickTimer.Start(); } else { this.singleClickTimer.Stop(); this.doubleClickTimer.Stop(); } if (this.mouseDragStart == null) { return; } this.mouseDragStart((object)this, new DragStartedEventArgs(this.draggedCorner, this.mousePoint)); } }
private void UpdatePageFold() { if (this.Position == PagePosition.Right) { if (FoldHelper.MouseWithinTopRightFoldArea(this.mousePoint, this.FoldSize, this.ActualWidth)) { this.RaiseCornerEnterMove(FoldPosition.TopRight, 0.0, 0.0); this.lastEnteredCorner = FoldPosition.TopRight; } else if (FoldHelper.MouseWithinBottomRightFoldArea(this.mousePoint, this.FoldSize, this.ActualWidth, this.ActualHeight)) { this.RaiseCornerEnterMove(FoldPosition.BottomRight, 0.0, 0.0); this.lastEnteredCorner = FoldPosition.BottomRight; } else { this.RaiseCornerLeave(FoldHelper.GetQuadrant(this.mousePoint, this)); this.lastEnteredCorner = FoldPosition.None; } } else if (FoldHelper.MouseWithinTopLeftFoldArea(this.mousePoint, this.FoldSize)) { this.RaiseCornerEnterMove(FoldPosition.TopLeft, 0.0, 0.0); this.lastEnteredCorner = FoldPosition.TopLeft; } else if (FoldHelper.MouseWithinBottomLeftFoldArea(this.mousePoint, this.FoldSize, this.ActualHeight)) { this.RaiseCornerEnterMove(FoldPosition.BottomLeft, 0.0, 0.0); this.lastEnteredCorner = FoldPosition.BottomLeft; } else { this.RaiseCornerLeave(FoldHelper.GetQuadrant(this.mousePoint, this)); this.lastEnteredCorner = FoldPosition.None; } }