예제 #1
0
        /// <summary>
        /// </summary>
        /// <exception cref="ArgumentNullException">
        /// <para>
        ///		<paramref name="g"/> is <see langword="null"/>.
        /// </para>
        /// -or-
        /// <para>
        ///		<paramref name="text"/> is <see langword="null"/>.
        /// </para>
        /// -or-
        /// <para>
        ///		<paramref name="font"/> is <see langword="null"/>.
        /// </para>
        /// </exception>
        public void DrawText(
            Graphics g,
            Rectangle bounds,
            NuGenControlState state,
            string text,
            Font font,
            Color foreColor,
            ContentAlignment textAlignment
            )
        {
            if (g == null)
            {
                throw new ArgumentNullException("g");
            }

            if (text == null)
            {
                throw new ArgumentNullException("text");
            }

            if (font == null)
            {
                throw new ArgumentNullException("font");
            }

            using (StringFormat sf = NuGenControlPaint.ContentAlignmentToStringFormat(textAlignment))
            {
                sf.HotkeyPrefix = HotkeyPrefix.Show;
                sf.Trimming     = StringTrimming.EllipsisCharacter;
                sf.FormatFlags  = StringFormatFlags.NoWrap;

                this.DrawText(g, bounds, state, text, font, foreColor, sf);
            }
        }
예제 #2
0
        /// <summary>
        /// </summary>
        /// <param name="paintParams"></param>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para>
        /// </exception>
        public void DrawText(NuGenTextPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            using (SolidBrush sb = new SolidBrush(paintParams.ForeColor))
                using (StringFormat sf = NuGenControlPaint.ContentAlignmentToStringFormat(paintParams.TextAlign))
                {
                    paintParams.Graphics.DrawString(paintParams.Text, paintParams.Font, sb, paintParams.Bounds, sf);
                }
        }
예제 #3
0
        /// <summary>
        /// </summary>
        /// <param name="paintParams"></param>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para>
        /// </exception>
        public void DrawItem(NuGenItemPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics          g      = paintParams.Graphics;
            Rectangle         bounds = paintParams.Bounds;
            NuGenControlState state  = paintParams.State;
            ContentAlignment  align  = paintParams.ContentAlign;
            Image             image  = paintParams.Image;
            string            text   = paintParams.Text;

            /* Background */

            NuGenListBoxRenderer.DrawItemBackground(g, bounds, state, paintParams.BackgroundColor);

            /* Image */

            Rectangle imageBounds = NuGenItemService.GetImageBounds(bounds, image, align);

            if (image != null)
            {
                this.DrawImage(g, imageBounds, state, image);
            }

            /* Text */

            if (text != null)
            {
                using (StringFormat sf = NuGenControlPaint.ContentAlignmentToStringFormat(align))
                {
                    sf.FormatFlags = StringFormatFlags.NoWrap;
                    sf.Trimming    = StringTrimming.EllipsisCharacter;
                    this.DrawText(
                        g,
                        NuGenItemService.GetTextBounds(bounds, imageBounds, align),
                        state,
                        text,
                        paintParams.Font,
                        paintParams.ForeColor,
                        sf
                        );
                }
            }
        }
예제 #4
0
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            Graphics g = e.Graphics;

            using (SolidBrush sb = new SolidBrush(Settings.Default.PenColor))
                using (StringFormat sf = NuGenControlPaint.ContentAlignmentToStringFormat(ContentAlignment.MiddleCenter))
                {
                    g.DrawString(
                        _countDownBlock.CurrentSpan.ToString()
                        , this.Font
                        , sb
                        , this.ClientRectangle
                        , sf
                        );
                }
        }
예제 #5
0
        /*
         * DrawItem
         */

        private new void DrawItem(NuGenItemPaintParams paintParams)
        {
            Debug.Assert(paintParams != null, "paintParams != null");

            Graphics          g      = paintParams.Graphics;
            Rectangle         bounds = paintParams.Bounds;
            NuGenControlState state  = paintParams.State;
            Image             image  = paintParams.Image;
            ContentAlignment  align  = paintParams.ContentAlign;
            string            text   = paintParams.Text;

            Rectangle imageBounds = Rectangle.Empty;

            if (image != null)
            {
                imageBounds = NuGenSmoothNavigationBarRenderer.GetLargeImageBounds(bounds, image, align);
                this.DrawImage(g, imageBounds, state, image);
            }

            Rectangle textBounds = NuGenSmoothNavigationBarRenderer.GetTextRectangle(bounds, imageBounds, align);

            if (text != null)
            {
                using (StringFormat sf = NuGenControlPaint.ContentAlignmentToStringFormat(align))
                {
                    sf.FormatFlags = StringFormatFlags.NoWrap;
                    sf.Trimming    = StringTrimming.EllipsisCharacter;
                    this.DrawText(
                        g,
                        textBounds,
                        state,
                        text,
                        paintParams.Font,
                        paintParams.ForeColor,
                        sf
                        );
                }
            }
        }
예제 #6
0
파일: Day.cs 프로젝트: carlhuth/GenXSource
        internal void Draw(Graphics e, NuGenDateItem queryInfo)
        {
            StringFormat      dateAlign    = new StringFormat();
            StringFormat      textAlign    = new StringFormat();
            Font              boldFont     = new Font(m_month.DateFont.Name, m_month.DateFont.Size, m_month.DateFont.Style | FontStyle.Bold);
            Color             bgColor1     = m_month.Colors.Days.BackColor1;
            Color             bgColor2     = m_month.Colors.Days.BackColor2;
            NuGenGradientMode gradientMode = m_month.Colors.Days.GradientMode;
            Color             textColor    = m_month.Colors.Days.Text;
            Color             dateColor    = m_month.Colors.Days.Date;
            Brush             dateBrush    = new SolidBrush(dateColor);
            Brush             textBrush    = new SolidBrush(textColor);
            Brush             bgBrush      = new SolidBrush(bgColor1);

            string dateString;

            m_imageRect = new Rectangle();
            string text    = "";
            bool   drawDay = false;
            bool   enabled = true;
            Image  bgImage = null;

            int i = -1;

            bool boldedDate = false;

            NuGenDateItem[] info;
            m_dayImage = null;

            dateAlign = NuGenControlPaint.ContentAlignmentToStringFormat(m_month.DateAlign);
            textAlign = NuGenControlPaint.ContentAlignmentToStringFormat(m_month.TextAlign);

            if ((m_month.SelectedMonth.Month == m_date.Month) || (m_month.Calendar.ShowTrailingDates))
            {
                drawDay = true;
            }

            if (((m_date.DayOfWeek == DayOfWeek.Saturday) && (m_month.Colors.Weekend.Saturday)) ||
                ((m_date.DayOfWeek == DayOfWeek.Sunday) && (m_month.Colors.Weekend.Sunday)))
            {
                bgColor1     = m_month.Colors.Weekend.BackColor1;
                bgColor2     = m_month.Colors.Weekend.BackColor2;
                dateColor    = m_month.Colors.Weekend.Date;
                textColor    = m_month.Colors.Weekend.Text;
                gradientMode = m_month.Colors.Weekend.GradientMode;
            }

            if (m_month.SelectedMonth.Month != m_date.Month)
            {
                bgColor1     = m_month.Colors.Trailing.BackColor1;
                bgColor2     = m_month.Colors.Trailing.BackColor2;
                gradientMode = m_month.Colors.Trailing.GradientMode;
                dateColor    = m_month.Colors.Trailing.Date;
                textColor    = m_month.Colors.Trailing.Text;
            }

            // Check if formatting should be applied
            if ((m_month.FormatTrailing) || (m_month.SelectedMonth.Month == m_date.Month))
            {
                // check of there is formatting for this day
                if (queryInfo != null)
                {
                    info    = new NuGenDateItem[1];
                    info[0] = queryInfo;
                }
                else
                {
                    info = m_calendar.GetDateInfo(this.Date);
                }
                if (info.Length > 0)
                {
                    i = 0;
                }
                // go through the available dateitems
                while ((i < info.Length) && (drawDay))
                {
                    if (info.Length > 0)
                    {
                        NuGenDateItem dateInfo = info[i];

                        if (dateInfo.BackColor1 != Color.Empty)
                        {
                            bgColor1 = dateInfo.BackColor1;
                        }
                        if (dateInfo.BackColor2 != Color.Empty)
                        {
                            bgColor2 = dateInfo.BackColor2;
                        }
                        gradientMode = dateInfo.GradientMode;
                        if (dateInfo.DateColor != Color.Empty)
                        {
                            dateColor = dateInfo.DateColor;
                        }
                        if (dateInfo.TextColor != Color.Empty)
                        {
                            textColor = dateInfo.TextColor;
                        }
                        text = dateInfo.Text;

                        if (dateInfo.Weekend)
                        {
                            bgColor1     = m_month.Colors.Weekend.BackColor1;
                            bgColor2     = m_month.Colors.Weekend.BackColor2;
                            gradientMode = m_month.Colors.Weekend.GradientMode;
                            dateColor    = m_month.Colors.Weekend.Date;
                            textColor    = m_month.Colors.Weekend.Text;
                        }
                        boldedDate = dateInfo.BoldedDate;
                        enabled    = dateInfo.Enabled;
                        if (!dateInfo.Enabled)
                        {
                            bgColor1     = m_month.Colors.Disabled.BackColor1;
                            bgColor2     = m_month.Colors.Disabled.BackColor2;
                            gradientMode = m_month.Colors.Disabled.GradientMode;
                            dateColor    = m_month.Colors.Disabled.Date;
                            textColor    = m_month.Colors.Disabled.Text;
                        }

                        m_dayImage = dateInfo.Image;

                        if (m_dayImage != null)
                        {
                            m_imageRect = ImageRect(m_month.ImageAlign);
                        }

                        bgImage = dateInfo.BackgroundImage;
                    }

                    if (m_state == NuGenDayState.Selected)
                    {
                        dateColor = m_month.Colors.Selected.Date;
                        textColor = m_month.Colors.Selected.Text;
                    }
                    if ((m_state == NuGenDayState.Focus) && (m_month.Calendar.ShowFocus))
                    {
                        dateColor = m_month.Colors.Focus.Date;
                        textColor = m_month.Colors.Focus.Text;
                    }


                    if (bgImage != null)
                    {
                        e.DrawImage(bgImage, m_rect);
                    }
                    else
                    {
                        if (gradientMode == NuGenGradientMode.None)
                        {
                            if (bgColor1 != Color.Transparent)
                            {
                                bgBrush = new SolidBrush(Color.FromArgb(m_month.Transparency.Background, bgColor1));
                                e.FillRectangle(bgBrush, m_rect);
                            }
                        }
                        else
                        {
                            m_calendar.DrawGradient(e, Rectangle, bgColor1, bgColor2, gradientMode);
                        }
                    }


                    ControlPaint.DrawBorder(e, m_rect, m_month.Colors.Days.Border, m_month.BorderStyles.Normal);
                    if (m_dayImage != null)
                    {
                        if (enabled)
                        {
                            e.DrawImageUnscaled(m_dayImage, m_imageRect);
                        }
                        else
                        {
                            ControlPaint.DrawImageDisabled(e, m_dayImage, m_imageRect.X, m_imageRect.Y, m_month.Colors.Disabled.BackColor1);
                        }
                    }

                    // Check if we should append month name to date
                    if ((m_month.ShowMonthInDay) &&
                        ((m_date.AddDays(-1).Month != m_date.Month) ||
                         (m_date.AddDays(1).Month != m_date.Month)))
                    {
                        dateString = m_date.Day.ToString() + " " + m_calendar._dateTimeFormat.GetMonthName(m_date.Month);
                    }
                    else
                    {
                        dateString = m_date.Day.ToString();
                    }

                    if (dateColor != Color.Transparent)
                    {
                        dateBrush = new SolidBrush(Color.FromArgb(m_month.Transparency.Text, dateColor));
                        CharacterRange[] characterRanges = { new CharacterRange(0, dateString.Length) };
                        dateAlign.SetMeasurableCharacterRanges(characterRanges);
                        m_dateRgn = new Region[1];
                        // Should date be bolded ?
                        if (!boldedDate)
                        {
                            e.DrawString(dateString, m_month.DateFont, dateBrush, m_rect, dateAlign);
                            m_dateRgn = e.MeasureCharacterRanges(dateString, m_month.DateFont, m_rect, dateAlign);
                        }
                        else
                        {
                            e.DrawString(dateString, boldFont, dateBrush, m_rect, dateAlign);
                            m_dateRgn = e.MeasureCharacterRanges(dateString, boldFont, m_rect, dateAlign);
                        }
                    }
                    if ((text.Length > 0) && (textColor != Color.Transparent))
                    {
                        textBrush = new SolidBrush(Color.FromArgb(m_month.Transparency.Text, textColor));
                        CharacterRange[] characterRanges = { new CharacterRange(0, text.Length) };
                        textAlign.SetMeasurableCharacterRanges(characterRanges);
                        m_textRgn = new Region[1];
                        e.DrawString(text, m_month.TextFont, textBrush, m_rect, textAlign);
                        m_textRgn = e.MeasureCharacterRanges(text, m_month.TextFont, m_rect, textAlign);
                    }
                    i++;
                }
            }

            dateBrush.Dispose();
            bgBrush.Dispose();
            textBrush.Dispose();
            boldFont.Dispose();
            dateAlign.Dispose();
            textAlign.Dispose();
        }