Ejemplo n.º 1
0
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            if (BorderRound > 0)
            {
                e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            }

            DrawBorderAndFill(e.Graphics);

            bool disabledImage = false;

            Image image = mImage;

            if (Enabled == false)
            {
                if (mDisabledImage != null)
                {
                    image = mDisabledImage;
                }
                else
                {
                    disabledImage = true;
                }
            }
            else if (mIsMouseOver && mMouseOverImage != null)
            {
                image = mMouseOverImage;
            }

            Rectangle contentRect = ClientRectangle;

            if (BorderWidth > 0)
            {
                contentRect = new Rectangle(contentRect.X + BorderWidth, contentRect.Y + BorderWidth,
                                            contentRect.Width - BorderWidth * 2, contentRect.Height - BorderWidth * 2);
            }

            DevAge.Drawing.VisualElements.Container container    = new DevAge.Drawing.VisualElements.Container();
            DevAge.Drawing.VisualElements.TextGDI   textElement  = new DevAge.Drawing.VisualElements.TextGDI(Text);
            DevAge.Drawing.VisualElements.Image     imageElement = new DevAge.Drawing.VisualElements.Image(image);
            imageElement.AnchorArea  = new DevAge.Drawing.AnchorArea(mImageAlignment, mImageStretch);
            imageElement.Enabled     = !disabledImage;
            textElement.AnchorArea   = new DevAge.Drawing.AnchorArea(DevAge.Drawing.Utilities.StringFormatToContentAlignment(mStringFormat), false);
            textElement.StringFormat = mStringFormat;
            textElement.Font         = Font;
            textElement.ForeColor    = ForeColor;
            textElement.Enabled      = Enabled;
            container.Elements.Add(imageElement);
            container.Elements.Add(textElement);



            using (DevAge.Drawing.GraphicsCache cache = new DevAge.Drawing.GraphicsCache(e.Graphics, e.ClipRectangle))
            {
                container.Draw(cache, contentRect);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Apply to the VisualElement specified the Image properties of the current View.
        /// Derived class can call this method to apply the settings to custom VisualElement.
        /// </summary>
        /// <param name="elementImage"></param>
        protected virtual void PrepareVisualElementText(CellContext context, DevAge.Drawing.VisualElements.IText element)
        {
            if (element is DevAge.Drawing.VisualElements.TextRenderer)
            {
                DevAge.Drawing.VisualElements.TextRenderer elementText = (DevAge.Drawing.VisualElements.TextRenderer)element;

                elementText.Font            = GetDrawingFont(context.Grid);
                elementText.ForeColor       = ForeColor;
                elementText.TextFormatFlags = TextFormatFlags.Default;
                if (WordWrap)
                {
                    elementText.TextFormatFlags |= TextFormatFlags.WordBreak;
                }
                if (TrimmingMode == TrimmingMode.Char)
                {
                    elementText.TextFormatFlags |= TextFormatFlags.EndEllipsis;
                }
                else if (TrimmingMode == TrimmingMode.Word)
                {
                    elementText.TextFormatFlags |= TextFormatFlags.WordEllipsis;
                }
                elementText.TextFormatFlags |= DevAge.Windows.Forms.Utilities.ContentAligmentToTextFormatFlags(TextAlignment);
            }
            else if (element is DevAge.Drawing.VisualElements.TextGDI)
            {
                DevAge.Drawing.VisualElements.TextGDI elementTextGDI = (DevAge.Drawing.VisualElements.TextGDI)element;

                elementTextGDI.Font      = GetDrawingFont(context.Grid);
                elementTextGDI.ForeColor = ForeColor;
                if (WordWrap)
                {
                    elementTextGDI.StringFormat.FormatFlags = (StringFormatFlags)0;
                }
                else
                {
                    elementTextGDI.StringFormat.FormatFlags = StringFormatFlags.NoWrap;
                }
                if (TrimmingMode == TrimmingMode.Char)
                {
                    elementTextGDI.StringFormat.Trimming = StringTrimming.Character;
                }
                else if (TrimmingMode == TrimmingMode.Word)
                {
                    elementTextGDI.StringFormat.Trimming = StringTrimming.Word;
                }
                else
                {
                    elementTextGDI.StringFormat.Trimming = StringTrimming.None;
                }
                elementTextGDI.Alignment = TextAlignment;
            }

            //I have already set the TextFormatFlags for the alignment so the Anchor is not necessary. I have removed this code for performance reasons.
            //element.AnchorArea = new DevAge.Drawing.AnchorArea(TextAlignment, false);
            element.Value = context.GetDisplayText();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Apply to the VisualElement specified the Image properties of the current View.
        /// Derived class can call this method to apply the settings to custom VisualElement.
        /// </summary>
        protected virtual void PrepareVisualElementText(CellContext context)
        {
            if (ElementText is DevAge.Drawing.VisualElements.TextRenderer)
            {
                DevAge.Drawing.VisualElements.TextRenderer elementText = (DevAge.Drawing.VisualElements.TextRenderer)ElementText;

                elementText.TextFormatFlags = TextFormatFlags.Default | TextFormatFlags.NoPrefix;
                if (WordWrap)
                {
                    elementText.TextFormatFlags |= TextFormatFlags.WordBreak;
                }
                if (TrimmingMode == TrimmingMode.Char)
                {
                    elementText.TextFormatFlags |= TextFormatFlags.EndEllipsis;
                }
                else if (TrimmingMode == TrimmingMode.Word)
                {
                    elementText.TextFormatFlags |= TextFormatFlags.WordEllipsis;
                }
                elementText.TextFormatFlags |= DevAge.Windows.Forms.Utilities.ContentAligmentToTextFormatFlags(TextAlignment);
            }
            else if (ElementText is DevAge.Drawing.VisualElements.TextGDI)
            {
                DevAge.Drawing.VisualElements.TextGDI elementTextGDI = (DevAge.Drawing.VisualElements.TextGDI)ElementText;

                /*[email protected]: any formatflags set explicitly using ElementText
                 * will be of no use if it is simply reassigned when wordwrap is set to true*/
                //if (WordWrap)
                //    elementTextGDI.StringFormat.FormatFlags = (StringFormatFlags)0;
                if (!WordWrap)
                {
                    elementTextGDI.StringFormat.FormatFlags |= StringFormatFlags.NoWrap;
                }
                if (TrimmingMode == TrimmingMode.Char)
                {
                    elementTextGDI.StringFormat.Trimming = StringTrimming.EllipsisCharacter;
                }
                else if (TrimmingMode == TrimmingMode.Word)
                {
                    elementTextGDI.StringFormat.Trimming = StringTrimming.EllipsisWord;
                }
                else
                {
                    elementTextGDI.StringFormat.Trimming = StringTrimming.None;
                }
                elementTextGDI.Alignment = TextAlignment;
            }

            ElementText.Font      = GetDrawingFont(context.Grid);
            ElementText.ForeColor = ForeColor;
            //I have already set the TextFormatFlags for the alignment so the Anchor is not necessary. I have removed this code for performance reasons.
            //element.AnchorArea = new DevAge.Drawing.AnchorArea(TextAlignment, false);

            ElementText.Value = context.DisplayText;
        }
Ejemplo n.º 4
0
        private void Test_TextGDI(Graphics gr)
        {
            DevAge.Drawing.VisualElements.TextGDI text = new DevAge.Drawing.VisualElements.TextGDI("Test text performance");

            using (DevAge.Drawing.GraphicsCache cache = new DevAge.Drawing.GraphicsCache(gr))
            {
                for (int i = 0; i < 1000; i++)
                {
                    text.Draw(cache, panelDraw.ClientRectangle);
                }
            }
        }
Ejemplo n.º 5
0
        private void Test_TextGDI(Graphics gr)
        {
            DevAge.Drawing.VisualElements.TextGDI text = new DevAge.Drawing.VisualElements.TextGDI("Test text performance");

            using (DevAge.Drawing.GraphicsCache cache = new DevAge.Drawing.GraphicsCache(gr))
            {
                for (int i = 0; i < 1000; i++)
                    text.Draw(cache, panelDraw.ClientRectangle);
            }
        }
Ejemplo n.º 6
0
 public GDITextView()
 {
     ElementText = new DevAge.Drawing.VisualElements.TextGDI();
 }
Ejemplo n.º 7
0
		protected override void OnPaint(PaintEventArgs e)
		{
			base.OnPaint (e);

			if (BorderRound > 0)
				e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

			DrawBorderAndFill(e.Graphics);

			bool disabledImage = false;

			Image image = mImage;
			if (Enabled == false)
			{
				if (mDisabledImage != null)
					image = mDisabledImage;
				else
					disabledImage = true;
			}
			else if (mIsMouseOver && mMouseOverImage != null)
				image = mMouseOverImage;

			Rectangle contentRect = ClientRectangle;
			if (BorderWidth > 0)
				contentRect = new Rectangle(contentRect.X + BorderWidth, contentRect.Y + BorderWidth,
											contentRect.Width - BorderWidth * 2, contentRect.Height - BorderWidth * 2);

            DevAge.Drawing.VisualElements.Container container = new DevAge.Drawing.VisualElements.Container();
            DevAge.Drawing.VisualElements.TextGDI textElement = new DevAge.Drawing.VisualElements.TextGDI(Text);
            DevAge.Drawing.VisualElements.Image imageElement = new DevAge.Drawing.VisualElements.Image(image);
            imageElement.AnchorArea = new DevAge.Drawing.AnchorArea(mImageAlignment, mImageStretch);
            imageElement.Enabled = !disabledImage;
            textElement.AnchorArea = new DevAge.Drawing.AnchorArea(DevAge.Drawing.Utilities.StringFormatToContentAlignment(mStringFormat), false);
            textElement.StringFormat = mStringFormat;
            textElement.Font = Font;
            textElement.ForeColor = ForeColor;
            textElement.Enabled = Enabled;
            container.Elements.Add(imageElement);
            container.Elements.Add(textElement);



            using (DevAge.Drawing.GraphicsCache cache = new DevAge.Drawing.GraphicsCache(e.Graphics, e.ClipRectangle))
            {
                container.Draw(cache, contentRect);
            }
		}
Ejemplo n.º 8
0
			public GDITextView()
			{
				ElementText = new DevAge.Drawing.VisualElements.TextGDI();
			}