/* * BuildItemPaintParams */ /// <summary> /// </summary> /// <param name="itemParams"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"> /// <para> /// <paramref name="itemParams"/> is <see langword="null"/>. /// </para> /// </exception> public static NuGenItemPaintParams BuildItemPaintParams(NuGenItemParams itemParams) { if (itemParams == null) { throw new ArgumentNullException("itemParams"); } NuGenControlState currentState = NuGenControlState.Normal; if ((itemParams.State & DrawItemState.Selected) > 0) { currentState = NuGenControlState.Hot; } NuGenItemPaintParams itemPaintParams = new NuGenItemPaintParams( itemParams.Sender, itemParams.Graphics, itemParams.Bounds, currentState ); itemPaintParams.ContentAlign = itemParams.RightToLeft == RightToLeft.No ? ContentAlignment.MiddleLeft : ContentAlignment.MiddleRight ; itemPaintParams.Font = itemParams.Font; itemPaintParams.ForeColor = itemParams.ForeColor; itemPaintParams.Image = itemParams.Image; itemPaintParams.Text = itemParams.Text; return itemPaintParams; }
/// <summary> /// Raises the <see cref="E:System.Windows.Forms.Control.Paint"></see> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"></see> that contains the event data.</param> protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; Rectangle bounds = this.ClientRectangle; Rectangle dropDownBounds = this.GetDropDownButtonBounds(); Rectangle bodyBounds = this.GetBodyBounds(dropDownBounds); NuGenControlState bodyState = this.StateTracker.GetControlState(); NuGenControlState buttonState = this.ButtonStateTracker.GetControlState(); NuGenItemPaintParams paintParams = new NuGenItemPaintParams(g); paintParams.Bounds = bodyBounds; paintParams.ContentAlign = this.RightToLeft == RightToLeft.No ? ContentAlignment.MiddleLeft : ContentAlignment.MiddleRight ; paintParams.Font = this.Font; paintParams.ForeColor = this.ForeColor; paintParams.Image = this.Image; paintParams.Text = this.Text; paintParams.State = bodyState; this.Renderer.DrawDropDownBody(paintParams); paintParams.Bounds = dropDownBounds; paintParams.State = buttonState; this.Renderer.DrawDropDownButton(paintParams); paintParams.Bounds = bounds; this.Renderer.DrawBorder(paintParams); }
/* * BuildItemPaintParams */ /// <summary> /// </summary> /// <param name="itemParams"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"> /// <para> /// <paramref name="itemParams"/> is <see langword="null"/>. /// </para> /// </exception> public static NuGenItemPaintParams BuildItemPaintParams(NuGenItemParams itemParams) { if (itemParams == null) { throw new ArgumentNullException("itemParams"); } NuGenControlState currentState = NuGenControlState.Normal; if ((itemParams.State & DrawItemState.Selected) > 0) { currentState = NuGenControlState.Hot; } NuGenItemPaintParams itemPaintParams = new NuGenItemPaintParams( itemParams.Sender, itemParams.Graphics, itemParams.Bounds, currentState ); itemPaintParams.ContentAlign = itemParams.RightToLeft == RightToLeft.No ? ContentAlignment.MiddleLeft : ContentAlignment.MiddleRight ; itemPaintParams.Font = itemParams.Font; itemPaintParams.ForeColor = itemParams.ForeColor; itemPaintParams.Image = itemParams.Image; itemPaintParams.Text = itemParams.Text; return(itemPaintParams); }
/// <summary> /// </summary> /// <param name="paintParams"></param> /// <exception cref="ArgumentNullException"> /// <para> /// <paramref name="paintParams"/> is <see langword="null"/>. /// </para> /// </exception> public void DrawDropDownBody(NuGenItemPaintParams paintParams) { if (paintParams == null) { throw new ArgumentNullException("paintParams"); } this.DrawItem(paintParams); }
/// <summary> /// </summary> /// <param name="paintParams"></param> /// <exception cref="ArgumentNullException"> /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para> /// </exception> public void DrawBody(NuGenItemPaintParams paintParams) { if (paintParams == null) { throw new ArgumentNullException("paintParams"); } Font font = paintParams.Font; if (font != null) { paintParams.Font = new Font(font, FontStyle.Bold); } this.DrawItem(paintParams); }
/* * DrawButton */ private void DrawButton(Graphics g, NuGenNavigationButton button) { Debug.Assert(g != null, "g != null"); Debug.Assert(button != null, "button != null"); NuGenControlState buttonState = this.StateTracker.GetControlState(); if (button == _hoveringButton) { buttonState = button == _selectedButton ? NuGenControlState.Pressed : NuGenControlState.Hot; } else { if (button == _selectedButton) { buttonState = NuGenControlState.Pressed; } } NuGenPaintParams paintParams = new NuGenPaintParams(g); paintParams.Bounds = button.Bounds; paintParams.State = buttonState; this.Renderer.DrawBackground(paintParams); if (button.IsLarge) { NuGenItemPaintParams itemPaintParams = new NuGenItemPaintParams(paintParams); itemPaintParams.ContentAlign = ContentAlignment.MiddleLeft; itemPaintParams.Font = this.Font; itemPaintParams.ForeColor = this.ForeColor; itemPaintParams.Image = button.Image; itemPaintParams.Text = button.Text; this.Renderer.DrawLargeButtonBody(itemPaintParams); this.Renderer.DrawButtonBorder(paintParams); } else { NuGenImagePaintParams imagePaintParams = new NuGenImagePaintParams(paintParams); imagePaintParams.Image = button.Image; this.Renderer.DrawSmallButtonBody(imagePaintParams); } }
/* * BuildItemPaintParams */ /// <summary> /// </summary> /// <param name="itemParams"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"> /// <para> /// <paramref name="itemParams"/> is <see langword="null"/>. /// </para> /// </exception> internal static NuGenItemPaintParams BuildItemPaintParams(NuGenItemParams itemParams) { if (itemParams == null) { throw new ArgumentNullException("itemParams"); } NuGenItemPaintParams itemPaintParams = new NuGenItemPaintParams(itemParams.Graphics); itemPaintParams.BackgroundColor = itemParams.BackgroundColor; itemPaintParams.Bounds = itemParams.Bounds; itemPaintParams.ContentAlign = itemParams.RightToLeft == RightToLeft.No ? ContentAlignment.MiddleLeft : ContentAlignment.MiddleRight ; itemPaintParams.Font = itemParams.Font; itemPaintParams.ForeColor = itemParams.ForeColor; itemPaintParams.Image = itemParams.Image; itemPaintParams.Text = itemParams.Text; itemPaintParams.State = NuGenDrawItemStateTranslator.ToControlState(itemParams.State); return itemPaintParams; }
/// <summary> /// Raises the <see cref="E:System.Windows.Forms.Control.Paint"></see> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"></see> that contains the event data.</param> protected override void OnPaint(PaintEventArgs e) { NuGenItemPaintParams paintParams = new NuGenItemPaintParams(e.Graphics); paintParams.Bounds = this.ClientRectangle; paintParams.ContentAlign = this.RightToLeft == RightToLeft.Yes ? ContentAlignment.MiddleRight : ContentAlignment.MiddleLeft ; paintParams.Font = this.Font; paintParams.ForeColor = this.ForeColor; paintParams.Image = this.Image; paintParams.State = this.StateTracker.GetControlState(); paintParams.Text = this.Text; this.Renderer.DrawBackground(paintParams); this.Renderer.DrawBody(paintParams); this.Renderer.DrawBorder(paintParams); base.OnPaint(e); }
/// <summary> /// Raises the <see cref="E:System.Windows.Forms.Control.Paint"></see> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"></see> that contains the event data.</param> protected override void OnPaint(PaintEventArgs e) { NuGenItemPaintParams titlePaintParams = new NuGenItemPaintParams(e.Graphics); titlePaintParams.Bounds = new Rectangle( this.ClientRectangle.Left , this.ClientRectangle.Top , this.ClientRectangle.Width , this.TitleHeight ); titlePaintParams.ContentAlign = this.RightToLeft == RightToLeft.Yes ? ContentAlignment.MiddleRight : ContentAlignment.MiddleLeft ; titlePaintParams.Font = this.Font; titlePaintParams.ForeColor = this.ForeColor; titlePaintParams.State = this.StateTracker.GetControlState(); titlePaintParams.Text = this.Text; NuGenPaintParams bkgndPaintParams = new NuGenPaintParams(titlePaintParams); bkgndPaintParams.Bounds = this.DisplayRectangle; NuGenBorderPaintParams borderPaintParams = new NuGenBorderPaintParams(bkgndPaintParams); borderPaintParams.Bounds = this.ClientRectangle; borderPaintParams.DrawBorder = this.DrawBorder; this.PanelRenderer.DrawBackground(bkgndPaintParams); this.PanelRenderer.DrawBorder(borderPaintParams); this.TitleRenderer.DrawBackground(titlePaintParams); this.TitleRenderer.DrawBody(titlePaintParams); this.TitleRenderer.DrawBorder(titlePaintParams); base.OnPaint(e); }
/* * BuildItemPaintParams */ /// <summary> /// </summary> /// <param name="itemParams"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"> /// <para> /// <paramref name="itemParams"/> is <see langword="null"/>. /// </para> /// </exception> internal static NuGenItemPaintParams BuildItemPaintParams(NuGenItemParams itemParams) { if (itemParams == null) { throw new ArgumentNullException("itemParams"); } NuGenItemPaintParams itemPaintParams = new NuGenItemPaintParams(itemParams.Graphics); itemPaintParams.BackgroundColor = itemParams.BackgroundColor; itemPaintParams.Bounds = itemParams.Bounds; itemPaintParams.ContentAlign = itemParams.RightToLeft == RightToLeft.No ? ContentAlignment.MiddleLeft : ContentAlignment.MiddleRight ; itemPaintParams.Font = itemParams.Font; itemPaintParams.ForeColor = itemParams.ForeColor; itemPaintParams.Image = itemParams.Image; itemPaintParams.Text = itemParams.Text; itemPaintParams.State = NuGenDrawItemStateTranslator.ToControlState(itemParams.State); return(itemPaintParams); }
/* * 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 ); } } }
/// <summary> /// Draws background, image, and text (utilized for e.g. drawing list box items). /// </summary> /// <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"); } this.DrawItemBackground( paintParams.Graphics , paintParams.Bounds , paintParams.State , paintParams.BackgroundColor ); this.DrawItemBody(paintParams); }
/// <summary> /// Draws only image and text without background (internally called by <see cref="DrawItem"/> /// after background is drawn). /// </summary> /// <exception cref="ArgumentNullException"> /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para> /// </exception> public void DrawItemBody(NuGenItemPaintParams paintParams) { if (paintParams == null) { throw new ArgumentNullException("paintParams"); } Rectangle bounds = paintParams.Bounds; ContentAlignment align = paintParams.ContentAlign; Graphics g = paintParams.Graphics; Image image = paintParams.Image; NuGenControlState state = paintParams.State; string text = paintParams.Text; /* 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 ); } } }
private void DrawHeader(Graphics g, Rectangle bounds) { Debug.Assert(g != null, "g != null"); int headerHeight = this.LayoutManager.GetHeaderHeight(); int collapseButtonWidth = this.LayoutManager.GetCollapseButtonWidth(); Rectangle headerBounds = new Rectangle( bounds.Left , bounds.Top + headerHeight , bounds.Width , headerHeight ); Rectangle headerBodyBounds = headerBounds; headerBodyBounds.Width -= collapseButtonWidth; if (this.RightToLeft == RightToLeft.Yes) { headerBodyBounds.X += collapseButtonWidth; } NuGenControlState headerState = this.HeaderStateTracker.GetControlState(); NuGenItemPaintParams headerPaintParams = new NuGenItemPaintParams(g); headerPaintParams.Bounds = NuGenControlPaint.BorderRectangle(headerBounds); headerPaintParams.ContentAlign = this.RightToLeft == RightToLeft.Yes ? ContentAlignment.MiddleRight : ContentAlignment.MiddleLeft ; headerPaintParams.Font = this.Font; headerPaintParams.ForeColor = this.ForeColor; headerPaintParams.Image = this.Image; headerPaintParams.State = headerState; headerPaintParams.Text = this.Text; this.Renderer.DrawBackground(headerPaintParams); this.Renderer.DrawBorder(headerPaintParams); headerPaintParams.Bounds = headerBodyBounds; this.Renderer.DrawHeader(headerPaintParams); Rectangle collapseButtonBounds = new Rectangle(headerBounds.Left, headerBounds.Top, collapseButtonWidth, headerBounds.Height); if (this.RightToLeft == RightToLeft.Yes) { if (!_collapsed) { NuGenControlPaint.Make180CCWGraphics(headerPaintParams.Graphics, collapseButtonBounds); } } else { if (!_collapsed) { headerPaintParams.Graphics.RotateTransform(180); headerPaintParams.Graphics.TranslateTransform( -(headerBounds.Width + headerBodyBounds.Width) + 1 , -headerHeight + 1 ); } collapseButtonBounds.X += headerBodyBounds.Right; } headerPaintParams.Bounds = collapseButtonBounds; this.Renderer.DrawCollapseButton(headerPaintParams); }
/// <summary> /// Raises the <see cref="E:System.Windows.Forms.Control.Paint"></see> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"></see> that contains the event data.</param> protected override void OnPaint(PaintEventArgs e) { NuGenItemPaintParams titlePaintParams = new NuGenItemPaintParams(e.Graphics); titlePaintParams.Bounds = new Rectangle( this.ClientRectangle.Left , this.ClientRectangle.Top , this.ClientRectangle.Width , this.TitleHeight ); titlePaintParams.ContentAlign = this.RightToLeft == RightToLeft.Yes ? ContentAlignment.MiddleRight : ContentAlignment.MiddleLeft ; titlePaintParams.Font = this.Font; titlePaintParams.ForeColor = this.ForeColor; titlePaintParams.State = this.StateTracker.GetControlState(); titlePaintParams.Text = this.Text; NuGenPaintParams bkgndPaintParams = new NuGenPaintParams(titlePaintParams); bkgndPaintParams.Bounds = this.DisplayRectangle; NuGenBorderPaintParams borderPaintParams = new NuGenBorderPaintParams(bkgndPaintParams); borderPaintParams.Bounds = this.ClientRectangle; borderPaintParams.DrawBorder = this.DrawBorder; this.PanelRenderer.DrawBackground(bkgndPaintParams); this.PanelRenderer.DrawBorder(borderPaintParams); this.TitleRenderer.DrawBackground(titlePaintParams); this.TitleRenderer.DrawBody(titlePaintParams); this.TitleRenderer.DrawBorder(titlePaintParams); base.OnPaint(e); }
/// <summary> /// Raises the <see cref="E:System.Windows.Forms.Control.Paint"></see> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"></see> that contains the event data.</param> protected override void OnPaint(PaintEventArgs e) { NuGenItemPaintParams paintParams = new NuGenItemPaintParams(e.Graphics); paintParams.Bounds = this.ClientRectangle; paintParams.ContentAlign = this.RightToLeft == RightToLeft.Yes ? ContentAlignment.MiddleRight : ContentAlignment.MiddleLeft ; paintParams.Font = this.Font; paintParams.ForeColor = this.ForeColor; paintParams.Image = this.Image; paintParams.State = this.StateTracker.GetControlState(); paintParams.Text = this.Text; this.Renderer.DrawBackground(paintParams); this.Renderer.DrawBody(paintParams); this.Renderer.DrawBorder(paintParams); base.OnPaint(e); }
/// <summary> /// </summary> /// <param name="paintParams"></param> /// <exception cref="ArgumentNullException"> /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para> /// </exception> public void DrawHeader(NuGenItemPaintParams paintParams) { this.DrawItemBody(paintParams); }
/* * DrawButton */ private void DrawButton(Graphics g, NuGenNavigationButton button) { Debug.Assert(g != null, "g != null"); Debug.Assert(button != null, "button != null"); NuGenControlState buttonState = this.StateTracker.GetControlState(); if (button == _hoveringButton) { buttonState = button == _selectedButton ? NuGenControlState.Pressed : NuGenControlState.Hot; } else { if (button == _selectedButton) { buttonState = NuGenControlState.Pressed; } } NuGenPaintParams paintParams = new NuGenPaintParams(g); paintParams.Bounds = button.Bounds; paintParams.State = buttonState; this.Renderer.DrawBackground(paintParams); if (button.IsLarge) { NuGenItemPaintParams itemPaintParams = new NuGenItemPaintParams(paintParams); itemPaintParams.ContentAlign = ContentAlignment.MiddleLeft; itemPaintParams.Font = this.Font; itemPaintParams.ForeColor = this.ForeColor; itemPaintParams.Image = button.Image; itemPaintParams.Text = button.Text; this.Renderer.DrawLargeButtonBody(itemPaintParams); this.Renderer.DrawButtonBorder(paintParams); } else { NuGenImagePaintParams imagePaintParams = new NuGenImagePaintParams(paintParams); imagePaintParams.Image = button.Image; this.Renderer.DrawSmallButtonBody(imagePaintParams); } }
/// <summary> /// Raises the <see cref="E:System.Windows.Forms.Control.Paint"></see> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"></see> that contains the event data.</param> protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; Rectangle bounds = this.ClientRectangle; Rectangle dropDownBounds = this.GetDropDownButtonBounds(); Rectangle bodyBounds = this.GetBodyBounds(dropDownBounds); NuGenControlState bodyState = this.StateTracker.GetControlState(); NuGenControlState buttonState = this.ButtonStateTracker.GetControlState(); NuGenItemPaintParams paintParams = new NuGenItemPaintParams(g); paintParams.Bounds = bodyBounds; paintParams.ContentAlign = this.RightToLeft == RightToLeft.No ? ContentAlignment.MiddleLeft : ContentAlignment.MiddleRight ; paintParams.Font = this.Font; paintParams.ForeColor = this.ForeColor; paintParams.Image = this.Image; paintParams.Text = this.Text; paintParams.State = bodyState; this.Renderer.DrawDropDownBody(paintParams); paintParams.Bounds = dropDownBounds; paintParams.State = buttonState; this.Renderer.DrawDropDownButton(paintParams); paintParams.Bounds = bounds; this.Renderer.DrawBorder(paintParams); }
private void DrawHeader(Graphics g, Rectangle bounds) { Debug.Assert(g != null, "g != null"); int headerHeight = this.LayoutManager.GetHeaderHeight(); int collapseButtonWidth = this.LayoutManager.GetCollapseButtonWidth(); Rectangle headerBounds = new Rectangle( bounds.Left , bounds.Top + headerHeight , bounds.Width , headerHeight ); Rectangle headerBodyBounds = headerBounds; headerBodyBounds.Width -= collapseButtonWidth; if (this.RightToLeft == RightToLeft.Yes) { headerBodyBounds.X += collapseButtonWidth; } NuGenControlState headerState = this.HeaderStateTracker.GetControlState(); NuGenItemPaintParams headerPaintParams = new NuGenItemPaintParams(g); headerPaintParams.Bounds = NuGenControlPaint.BorderRectangle(headerBounds); headerPaintParams.ContentAlign = this.RightToLeft == RightToLeft.Yes ? ContentAlignment.MiddleRight : ContentAlignment.MiddleLeft ; headerPaintParams.Font = this.Font; headerPaintParams.ForeColor = this.ForeColor; headerPaintParams.Image = this.Image; headerPaintParams.State = headerState; headerPaintParams.Text = this.Text; this.Renderer.DrawBackground(headerPaintParams); this.Renderer.DrawBorder(headerPaintParams); headerPaintParams.Bounds = headerBodyBounds; this.Renderer.DrawHeader(headerPaintParams); Rectangle collapseButtonBounds = new Rectangle(headerBounds.Left, headerBounds.Top, collapseButtonWidth, headerBounds.Height); if (this.RightToLeft == RightToLeft.Yes) { if (!_collapsed) { NuGenControlPaint.Make180CCWGraphics(headerPaintParams.Graphics, collapseButtonBounds); } } else { if (!_collapsed) { headerPaintParams.Graphics.RotateTransform(180); headerPaintParams.Graphics.TranslateTransform( -(headerBounds.Width + headerBodyBounds.Width) + 1 , -headerHeight + 1 ); } collapseButtonBounds.X += headerBodyBounds.Right; } headerPaintParams.Bounds = collapseButtonBounds; this.Renderer.DrawCollapseButton(headerPaintParams); }