protected override void OnEnabledChanged(EventArgs e) { if (Enabled) { state = NuiImageButtonState.Normal; } else { state = NuiImageButtonState.Disabled; } this.Invalidate(); base.OnEnabledChanged(e); }
protected override void OnMouseDown(MouseEventArgs mevent) { if (mevent.Button == MouseButtons.Left) { state = NuiImageButtonState.Down; } this.Invalidate(); base.OnMouseDown(mevent); }
protected override void OnLostFocus(EventArgs e) { state = NuiImageButtonState.Normal; this.Invalidate(); base.OnLostFocus(e); }
protected override void OnGotFocus(EventArgs e) { state = NuiImageButtonState.Focus; base.OnGotFocus(e); }
protected override void OnPaint(PaintEventArgs pevent) { base.OnPaint(pevent); Graphics g = pevent.Graphics; g.SmoothingMode = SmoothingMode.AntiAlias; g.InterpolationMode = InterpolationMode.HighQualityBilinear; if (this.Image != null) { int BUTTON_WIDTH = this.Image.Width / 4; int BUTON_HEIGHT = this.Image.Height; if (!Enabled) { state = NuiImageButtonState.Disabled; } switch (state) { case NuiImageButtonState.Normal: Render.DrawNineRectEx( g, this.Image, ClientRectangle, new Rectangle(0, 0, BUTTON_WIDTH, BUTON_HEIGHT)); break; case NuiImageButtonState.Hover: Render.DrawNineRectEx( g, this.Image, ClientRectangle, new Rectangle(BUTTON_WIDTH, 0, BUTTON_WIDTH, BUTON_HEIGHT)); break; case NuiImageButtonState.Focus: Render.DrawNineRectEx( g, this.Image, ClientRectangle, new Rectangle(BUTTON_WIDTH, 0, BUTTON_WIDTH, BUTON_HEIGHT)); break; case NuiImageButtonState.Down: Render.DrawNineRectEx( g, this.Image, ClientRectangle, new Rectangle(BUTTON_WIDTH * 2, 0, BUTTON_WIDTH, BUTON_HEIGHT)); break; case NuiImageButtonState.Disabled: Render.DrawNineRectEx( g, this.Image, ClientRectangle, new Rectangle(BUTTON_WIDTH * 3, 0, BUTTON_WIDTH, BUTON_HEIGHT)); break; default: break; } } if (this.Text.Length != 0) { Rectangle textRect = new Rectangle(3, 0, Width - 6, Height); Color textColor = Enabled ? ForeColor : SystemColors.GrayText; TextRenderer.DrawText( g, Text, Font, textRect, textColor, GetTextFormatFlags(TextAlign, RightToLeft == RightToLeft.Yes)); } }
protected override void OnMouseUp(MouseEventArgs mevent) { if (mevent.Button == MouseButtons.Left) { if (ClientRectangle.Contains(mevent.Location)) { state = NuiImageButtonState.Hover; } else { state = NuiImageButtonState.Focus; } } this.Invalidate(); base.OnMouseUp(mevent); }
protected override void OnMouseLeave(EventArgs e) { if (state == NuiImageButtonState.Hover && Focused) { state = NuiImageButtonState.Focus; } else if (state == NuiImageButtonState.Focus) { state = NuiImageButtonState.Focus; } else { state = NuiImageButtonState.Normal; } this.Invalidate(); base.OnMouseLeave(e); }
protected override void OnMouseEnter(EventArgs e) { state = NuiImageButtonState.Hover; this.Invalidate(); base.OnMouseEnter(e); }