public override EditHitInfo CalcHitInfo(Point pt) { CustomTokenEditHitInfo hi = CreateHitInfo(pt) as CustomTokenEditHitInfo; if (!Bounds.Contains(pt)) { return(hi); } foreach (CustomTokenEditTokenInfo tokenInfo in VisibleItems) { if (tokenInfo.Bounds.Contains(pt)) { hi.ResetHitObject(tokenInfo); hi.ResetHitTest(TokenEditHitTest.Link); hi.InCheckBox(false); if (tokenInfo.CheckBoxGlyphBounds.Contains(pt)) { hi.InCheckBox(true); } if (tokenInfo.GlyphBounds.Contains(pt)) { hi.ResetHitTest(TokenEditHitTest.Glyph); } return(hi); } } if (ContentRect.Contains(pt)) { hi.ResetHitTest(TokenEditHitTest.EditorRect); } return(hi); }
public static ContentRect GetRect(ViewData viewData) { GameObject resultObj = new GameObject("Content"); ContentRect resultMono = resultObj.AddComponent <ContentRect>(); resultMono.ViewData = viewData; return(resultMono); }
public void UpdateGeometries(RawVector2 center, RawVector2 size) { Center = center; Size = size; BorderRect = SharpDXUtils.CenteredRect(center, size); ContentRect = BorderWidth > 0 ? BorderRect.Shrink(BorderWidth) : BorderRect; var absoluteMargins = FlickerMargins.GetAbsolute(ContentRect.Width(), ContentRect.Height()); FlickerRect = absoluteMargins.IsEmpty(0.1) ? ContentRect : ContentRect.Shrink((float)absoluteMargins.Left, (float)absoluteMargins.Top, (float)absoluteMargins.Right, (float)absoluteMargins.Bottom); FixationPoint = new D2D1.Ellipse(FlickerRect.Center(), FixationPointSize, FixationPointSize); }
protected void Initialize(Canvas canvas) { transform.SetParent(canvas.transform, false); RectTransform.anchorMin = new Vector2(0f, 0f); RectTransform.anchorMax = RectTransform.anchorMin; ViewData = new ViewData(); _moveHandle = MoveHandleRect.GetRect(ViewData); _contentRect = ContentRect.GetRect(ViewData); _contentRect.transform.SetParent(transform, false); ResizeHandleRect northResizeObj = ResizeHandleRect.GetRect(CardinalDirections.North, ViewData); ResizeHandleRect northeastResizeObj = ResizeHandleRect.GetRect(CardinalDirections.Northeast, ViewData); ResizeHandleRect eastResizeObj = ResizeHandleRect.GetRect(CardinalDirections.East, ViewData); ResizeHandleRect southeastResizeObj = ResizeHandleRect.GetRect(CardinalDirections.Southeast, ViewData); ResizeHandleRect southResizeObj = ResizeHandleRect.GetRect(CardinalDirections.South, ViewData); ResizeHandleRect southwestResizeObj = ResizeHandleRect.GetRect(CardinalDirections.Southwest, ViewData); ResizeHandleRect westResizeObj = ResizeHandleRect.GetRect(CardinalDirections.West, ViewData); ResizeHandleRect northwestResizeObj = ResizeHandleRect.GetRect(CardinalDirections.Northwest, ViewData); _resizeHandles.Add(CardinalDirections.North, northResizeObj); _resizeHandles.Add(CardinalDirections.Northeast, northeastResizeObj); _resizeHandles.Add(CardinalDirections.East, eastResizeObj); _resizeHandles.Add(CardinalDirections.Southeast, southeastResizeObj); _resizeHandles.Add(CardinalDirections.South, southResizeObj); _resizeHandles.Add(CardinalDirections.Southwest, southwestResizeObj); _resizeHandles.Add(CardinalDirections.West, westResizeObj); _resizeHandles.Add(CardinalDirections.Northwest, northwestResizeObj); foreach (KeyValuePair <CardinalDirections, ResizeHandleRect> pair in _resizeHandles) { pair.Value.transform.SetParent(transform, false); } _moveHandle.transform.SetParent(transform, false); }
internal override IInputElement InputHitTest(PTS.FSPOINT pt) { IInputElement ie = null; if (_pageContextOfThisPage.FloatingElementList != null) { for (int index = 0; index < _pageContextOfThisPage.FloatingElementList.Count && ie == null; index++) { BaseParaClient floatingElement = _pageContextOfThisPage.FloatingElementList[index]; ie = floatingElement.InputHitTest(pt); } } if (ie == null) { // Query subpage details PTS.FSSUBPAGEDETAILS subpageDetails; PTS.Validate(PTS.FsQuerySubpageDetails(PtsContext.Context, _paraHandle.Value, out subpageDetails)); if (Rect.Contains(pt)) { if (ContentRect.Contains(pt)) { pt = new PTS.FSPOINT(pt.u - ContentRect.u, pt.v - ContentRect.v); // Hittest subpage content. Subpage content may be simple or complex - // depending of set of features used in the content of the page. // (1) simple subpage (contains only one track) // (2) complex subpage (contains columns) if (PTS.ToBoolean(subpageDetails.fSimple)) { ie = PtsHelper.InputHitTestTrack(PtsContext, pt, ref subpageDetails.u.simple.trackdescr); } else { // (2) complex page (contains columns) // cBasicColumns == 0, means that subpage content is empty if (subpageDetails.u.complex.cBasicColumns != 0) { // Retrieve description for each column. PTS.FSTRACKDESCRIPTION[] arrayColumnDesc; PtsHelper.TrackListFromSubpage(PtsContext, _paraHandle.Value, ref subpageDetails, out arrayColumnDesc); // Arrange each track for (int index = 0; index < arrayColumnDesc.Length && ie == null; index++) { ie = PtsHelper.InputHitTestTrack(PtsContext, pt, ref arrayColumnDesc[index]); } } } } if (ie == null) { ie = Paragraph.Element as IInputElement; } } } return(ie); }
private void IconContainerResized(ResizeObserverEntry resizeObserverEntry) { iconContainerRect = resizeObserverEntry.ContentRect; }