//private BitmapDrawable GetDrawable(string imageEntryImage)
        //{
        //    int resID = Resources.GetIdentifier(imageEntryImage, "drawable", this.Context.PackageName);
        //    var drawable = ContextCompat.GetDrawable(this.Context, resID);
        //    var bitmap = ((BitmapDrawable)drawable).Bitmap;
        //    return new BitmapDrawable(Resources, Bitmap.CreateScaledBitmap(bitmap, element.ImageWidth * 2, element.ImageHeight * 2, true));
        //}

        //protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        //{
        //    base.OnElementPropertyChanged(sender, e);

        //    if (Control == null) return;

        ////    this.Control.SetRawInputType(InputTypes.ClassText);
        //    //GradientDrawable gd = new GradientDrawable();

        //    //gd.SetColor(global::Android.Graphics.Color.Transparent);
        //    //this.Control.SetBackgroundDrawable(gd);
        //    //this.Control.SetRawInputType(InputTypes.TextFlagNoSuggestions);
        //    //Control.SetHintTextColor(ColorStateList.ValueOf(global::Android.Graphics.Color.White));
        //    //if (e.PropertyName == CustomEntry.IsBorderErrorVisibleProperty.PropertyName)
        //    //    UpdateBorders();
        //}



        #region Utility methods

        private void UpdateBackground(CustomEntry entryEx)
        {
            if (_renderer != null)
            {
                _renderer.Dispose();
                _renderer = null;
            }
            _renderer = new BorderRenderer();

            Control.Background = _renderer.GetBorderBackground(entryEx.BorderColor, entryEx.BackgroundColor, entryEx.BorderWidth, entryEx.BorderRadius);
        }
Example #2
0
        internal static void Draw(Graphics graphics, Pen pen, Rectangle rect, Color backColor, ControlStyle controlStyle)
        {
            // Fill  the ellipse . In this case reduce the height and width of rect by 1 so that it is painted filled only inside the border
            graphics.FillEllipse(SolidBrushCache.GetInstance().Get(backColor), new Rectangle(rect.Left, rect.Top, rect.Width - 1, rect.Height - 1));

            // Draw border
            if (rect.Width > 1 && rect.Height > 1)
            {
                BorderRenderer.DrawEllipseBorder(graphics, pen, rect, controlStyle);
            }
        }
    void Start()
    {
        // Disable the pointer graphic (until the user holds down on the touchpad)
        //if(Pointer!= null)
        Pointer.enabled = false;

        // Ensure we mark the player as not teleporting
        CurrentTeleportState = TeleportState.None;

        // Standard plane mesh used for "fade out" graphic when you teleport
        // This way you don't need to supply a simple plane mesh in the inspector
        PlaneMesh = new Mesh();
        Vector3[] verts = new Vector3[]
        {
            new Vector3(-1, -1, 0),
            new Vector3(-1, 1, 0),
            new Vector3(1, 1, 0),
            new Vector3(1, -1, 0)
        };
        int[] elts = new int[] { 0, 1, 2, 0, 2, 3 };
        PlaneMesh.vertices  = verts;
        PlaneMesh.triangles = elts;
        PlaneMesh.RecalculateBounds();

        // Set some standard variables
        MaterialFadeID    = Shader.PropertyToID("_Fade");
        EnabledAnimatorID = Animator.StringToHash("Enabled");

        RoomBorder = GetComponent <BorderRenderer>();

        Vector3 p0, p1, p2, p3;

        if (GetChaperoneBounds(out p0, out p1, out p2, out p3))
        {
            // Rotate to match camera rig rotation
            var originRotationMatrix = Matrix4x4.TRS(Vector3.zero, OriginTransform.rotation, Vector3.one);

            BorderPointSet p = new BorderPointSet(new Vector3[] {
                originRotationMatrix *p0,
                originRotationMatrix *p1,
                originRotationMatrix *p2,
                originRotationMatrix *p3,
                originRotationMatrix *p0,
            });
            RoomBorder.Points = new BorderPointSet[]
            {
                p
            };
        }

        RoomBorder.enabled = false;
    }
Example #4
0
        public void Render(D2D.RenderTarget renderTarget, FrameworkElement rootElement, FrameworkElement fe)
        {
            var textBlock = fe as TextBlock;

            if (textBlock != null)
            {
                TextBlockRenderer.Render(this, renderTarget, rootElement, textBlock);
                return;
            }

            var rectangle = fe as Rectangle;

            if (rectangle != null)
            {
                RectangleRenderer.Render(this, renderTarget, rootElement, rectangle);
                return;
            }

            var border = fe as Border;

            if (border != null)
            {
                BorderRenderer.Render(this, renderTarget, rootElement, border);
                return;
            }

            var ellipse = fe as Ellipse;

            if (ellipse != null)
            {
                EllipseRenderer.Render(this, renderTarget, rootElement, ellipse);
                return;
            }

            var line = fe as Line;

            if (line != null)
            {
                LineRenderer.Render(this, renderTarget, rootElement, line);
                return;
            }

            var path = fe as Path;

            if (path != null)
            {
                PathRenderer.Render(this, renderTarget, rootElement, path);
                return;
            }

            FrameworkElementRenderer.Render(this, renderTarget, rootElement, fe);
        }
Example #5
0
        /// <summary>
        /// draw border
        /// </summary>
        /// <param name="graphics"></param>
        /// <param name="Pen"></param>
        /// <param name="borderSize"></param>
        /// <param name="rect"></param>
        public void DrawBorder(Graphics graphics, Pen Pen, int borderSize, Rectangle rect, bool rightToLeft)
        {
            // back up the original properties
            float        originalwidth     = Pen.Width;
            PenAlignment originalAlignment = Pen.Alignment;

            Pen.Width     = borderSize;
            Pen.Alignment = PenAlignment.Inset;
            BorderRenderer.PaintBorder(graphics, Pen, rect, ControlStyle.TwoD, true);

            // restore the original properties
            Pen.Width     = originalwidth;
            Pen.Alignment = originalAlignment;
        }
        /// <summary>
        /// draw border
        /// </summary>
        /// <param name="graphics"></param>
        /// <param name="Pen"></param>
        /// <param name="borderSize"></param>
        /// <param name="rect"></param>
        public void DrawBorder(Graphics graphics, Pen Pen, int borderSize, Rectangle rect, bool rightToLeft)
        {
            // back up the original properties
            float        originalwidth     = Pen.Width;
            PenAlignment originalAlignment = Pen.Alignment;

            Pen.Alignment = PenAlignment.Inset;

            //     draw_3d_rect (Gui, hDC, &Rect, TRUE);
            BorderRenderer.PaintBorder(graphics, Pen, rect, ControlStyle.ThreeDSunken, true);

            //  InflateRect (&Rect, -factor, -factor);
            rect.Inflate(-1, -1);

            //   Gui->ctx->gui_.dc_->frame_rect (&Rect, FIX_SYS_COLOR_BTNTEXT, 1, 0L);
            BorderRenderer.PaintBorder(graphics, SystemPens.ControlText, rect, ControlStyle.TwoD, true);

            Pen.Alignment = originalAlignment;
        }
Example #7
0
    void Start()
    {
        if (SelectableMesh == null)
        {
            SelectableMesh = new Mesh();
        }
        if (_SelectableMeshBorder == null)
        {
            _SelectableMeshBorder = new BorderPointSet[0];
        }

        Border        = GetComponent <BorderRenderer>();
        Border.Points = SelectableMeshBorder;

        AlphaShaderID = Shader.PropertyToID("_Alpha");
#if UNITY_EDITOR
        UnityEditor.SceneView.RepaintAll();
#endif
    }
    void Start()
    {
        // Disable the pointer graphic (until the user holds down on the touchpad)
        Pointer.enabled = false;

        // Standard plane mesh used for "fade out" graphic when you teleport
        // This way you don't need to supply a simple plane mesh in the inspector
        PlaneMesh = new Mesh();
        Vector3[] verts = new Vector3[]
        {
            new Vector3(-1, -1, 0),
            new Vector3(-1, 1, 0),
            new Vector3(1, 1, 0),
            new Vector3(1, -1, 0)
        };
        int[] elts = new int[] { 0, 1, 2, 0, 2, 3 };
        PlaneMesh.vertices  = verts;
        PlaneMesh.triangles = elts;
        PlaneMesh.RecalculateBounds();

        // Set some standard variables
        MaterialFadeID    = Shader.PropertyToID("_Fade");
        EnabledAnimatorID = Animator.StringToHash("Enabled");

        RoomBorder = GetComponent <BorderRenderer>();

        Vector3 p0, p1, p2, p3;

        if (GetChaperoneBounds(out p0, out p1, out p2, out p3))
        {
            BorderPointSet p = new BorderPointSet(new Vector3[] {
                p0, p1, p2, p3, p0
            });
            RoomBorder.Points = new BorderPointSet[]
            {
                p
            };
        }

        RoomBorder.enabled = false;
    }
Example #9
0
        /// <summary>
        /// Paint the border excluding clip rectangle of Group Box control.
        /// </summary>
        /// <param name="g"></param>
        /// <param name="bounds"></param>
        /// <param name="pen"></param>
        /// <param name="controlStyle"></param>
        /// <param name="textRect"></param>
        /// <param name="font"></param>
        /// <param name="keepTopBorderMargin"></param>
        internal static void DrawBorder(Graphics g, Rectangle bounds, Pen pen, ControlStyle controlStyle, Rectangle textRect, Font font, bool keepTopBorderMargin)
        {
            if (!keepTopBorderMargin)
            {
                // adjust the border according to text rectangle.
                bounds.Y      += textRect.Height / 2;
                bounds.Height -= textRect.Height / 2;
            }
            else
            {
                // adjust the border according to font height.
                bounds.Y      += font.Height / 2;
                bounds.Height -= font.Height / 2;
            }
            Region originalClip = g.Clip;

            g.ExcludeClip(textRect); // Don't draw border in text area

            BorderRenderer.PaintBorder(g, pen, bounds, controlStyle, true);

            g.Clip = originalClip; // reset original clip
        }
Example #10
0
        /// <summary>
        /// draw image
        /// </summary>
        /// <param name="gr"></param>
        /// <param name="displayRect"></param>
        internal void drawImage(Graphics gr, Rectangle displayRect)
        {
            bool hasBorder = Style == ControlStyle.TwoD || Style == ControlStyle.ThreeDSunken;

            setBackgroundImage(displayRect);
            if (DisplayImage != null)
            {
#if !PocketPC
                if (ImageAnimator.CanAnimate(DisplayImage))
                {
                    AnimateImage();
                }
#endif
                using (Region imageRegion = new Region(displayRect))
                {
                    Region r = gr.Clip;
                    gr.Clip = imageRegion;
                    Size      size = ImageUtils.ImageSize(DisplayImage, ImageStyle, displayRect.Size, false);
                    Rectangle rect = new Rectangle(displayRect.X, displayRect.Y,
                                                   size.Width, size.Height);
                    if (hasBorder)
                    {
                        rect.X++;
                        rect.Y++;
                    }
#if !PocketPC //tmp
                    gr.DrawImage(DisplayImage, rect);
#else
                    // This is probably what the original call is doing - need to verify
                    gr.DrawImage(DisplayImage, displayRect.X, displayRect.Y);
#endif
                    gr.Clip = r;
                }
            }

            BorderRenderer.PaintBorder(gr, displayRect, FgColor, Style, false);
        }
Example #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="type"></param>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        internal override void handleEvent(EventType type, Object sender, EventArgs e)
        {
            MapData mapData = ControlsMap.getInstance().getMapData(sender);

            if (mapData == null)
            {
                return;
            }

            Object guiMgObject = mapData.getControl();

            if (guiMgObject == null)
            {
                guiMgObject = mapData.getForm();
            }
            var contextIDGuard = new Manager.ContextIDGuard(Manager.GetContextID(guiMgObject));

            try
            {
                switch (type)
                {
#if !PocketPC
                case EventType.SCROLL:
                {
                    if (sender is ScrollableControl)
                    {
                        ScrollableControl scrollableControl = sender as ScrollableControl;
                        TagData           tg = (TagData)scrollableControl.Tag;
                        if (scrollableControl.BackgroundImage != null)
                        {
                            scrollableControl.Invalidate();
                        }
                        else
                        {
                            //This is a.Net bug. When scrollbar gets hidden during the process of thumb drag, framework still keeps
                            //a rectangular bar visible to keep dragging on. Now, this rectangle is not removed even when the scrolling is stopped.
                            //The workaround is to repaint the form if scrollbar is not present on the form when scroll dragging is stopped.

                            ScrollEventArgs se = (ScrollEventArgs)e;
                            if (se.Type == ScrollEventType.ThumbPosition)
                            {
                                bool hasVerticalScrollBar = scrollableControl.AutoScrollMinSize.Height > scrollableControl.ClientSize.Height;

                                if (!hasVerticalScrollBar)
                                {
                                    scrollableControl.Invalidate();
                                }
                            }
                        }
                    }
                }
                break;
#endif
                case EventType.RESIZE:
                    onResize((Control)sender);
                    break;
                }
                DefaultContainerHandler.getInstance().handleEvent(type, sender, e);

#if PocketPC
                // paint the subform's border. Do it after the controls are painted, so we can paint over them.
                if (type == EventType.PAINT && ((MgPanel)sender).BorderStyle != BorderStyle.None)
                {
                    BorderRenderer.PaintBorder(((PaintEventArgs)e).Graphics, ((Control)sender).ClientRectangle,
                                               Color.Black, ControlStyle.Windows, false);
                }
#endif
            }
            finally
            {
                contextIDGuard.Dispose();
            }
        }
Example #12
0
    void Start()
    {
        // Disable the pointer graphic (until the user holds down on the touchpad)
        Pointer.enabled = false;

        // Standard plane mesh used for "fade out" graphic when you teleport
        // This way you don't need to supply a simple plane mesh in the inspector
        PlaneMesh = new Mesh();
        Vector3[] verts = new Vector3[]
        {
            new Vector3(-1, -1, 0),
            new Vector3(-1, 1, 0),
            new Vector3(1, 1, 0),
            new Vector3(1, -1, 0)
        };
        int[] elts = new int[] { 0, 1, 2, 0, 2, 3 };
        PlaneMesh.vertices = verts;
        PlaneMesh.triangles = elts;
        PlaneMesh.RecalculateBounds();

        // Set some standard variables
        MaterialFadeID = Shader.PropertyToID("_Fade");
        EnabledAnimatorID = Animator.StringToHash("Enabled");

        RoomBorder = GetComponent<BorderRenderer>();

        Vector3 p0, p1, p2, p3;
        if (GetChaperoneBounds(out p0, out p1, out p2, out p3))
        {
            BorderPointSet p = new BorderPointSet(new Vector3[] {
                    p0, p1, p2, p3, p0
                });
            RoomBorder.Points = new BorderPointSet[]
            {
                p
            };
        }

        RoomBorder.enabled = false;
    }
Example #13
0
        public async Task Render(D2D.RenderTarget renderTarget, FrameworkElement rootElement, FrameworkElement fe)
        {
            var textBlock = fe as TextBlock;

            if (textBlock != null)
            {
                await TextBlockRenderer.Render(this, renderTarget, rootElement, textBlock);

                return;
            }

            var rectangle = fe as Jupiter.Shapes.Rectangle;

            if (rectangle != null)
            {
                await RectangleRenderer.Render(this, renderTarget, rootElement, rectangle);

                return;
            }

            var border = fe as Border;

            if (border != null)
            {
                await BorderRenderer.Render(this, renderTarget, rootElement, border);

                return;
            }

            var image = fe as Image;

            if (image != null)
            {
                await ImageRenderer.Render(this, renderTarget, rootElement, image);

                return;
            }

            var ellipse = fe as Ellipse;

            if (ellipse != null)
            {
#pragma warning disable 4014
                EllipseRenderer.Render(this, renderTarget, rootElement, ellipse);
#pragma warning restore 4014
                return;
            }

            var line = fe as Line;

            if (line != null)
            {
                await LineRenderer.Render(this, renderTarget, rootElement, line);

                return;
            }

            var path = fe as Jupiter.Shapes.Path;

            if (path != null)
            {
                await PathRenderer.Render(this, renderTarget, rootElement, path);

                return;
            }

            await FrameworkElementRenderer.Render(this, renderTarget, rootElement, fe);
        }
Example #14
0
    void Start()
    {
        if (SelectableMesh == null)
            SelectableMesh = new Mesh();
        if (_SelectableMeshBorder == null)
            _SelectableMeshBorder = new BorderPointSet[0];

        Border = GetComponent<BorderRenderer>();
        Border.Points = SelectableMeshBorder;

        AlphaShaderID = Shader.PropertyToID("_Alpha");
        #if UNITY_EDITOR
        UnityEditor.SceneView.RepaintAll();
        #endif
    }
Example #15
0
    void OnValidate()
    {
        Border = GetComponent<BorderRenderer>();
        Border.Points = SelectableMeshBorder;

        if(AlphaShaderID == -1)
            AlphaShaderID = Shader.PropertyToID("_Alpha");
    }