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);
        }
Ejemplo n.º 2
0
    public static ContentRect GetRect(ViewData viewData)
    {
        GameObject  resultObj  = new GameObject("Content");
        ContentRect resultMono = resultObj.AddComponent <ContentRect>();

        resultMono.ViewData = viewData;
        return(resultMono);
    }
Ejemplo n.º 3
0
            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);
            }
Ejemplo n.º 4
0
    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);
    }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 private void IconContainerResized(ResizeObserverEntry resizeObserverEntry)
 {
     iconContainerRect = resizeObserverEntry.ContentRect;
 }