/// <summary> /// Called when the mouse button has been pressed down on this control /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AnchorEditor_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { int hw = this.Width / 2; // Half Width int hh = this.Height / 2; // Half Height // Top or Bottom if (e.X >= (hw - 5) && e.X <= (hw + 5)) { // Top if (e.Y < mMargin) { if ((mAnchorFlags & AnchorFlags.Top) == AnchorFlags.Top) { mAnchorFlags &= ~AnchorFlags.Top; mAnchorFlags |= AnchorFlags.TopRelative; } else if ((mAnchorFlags & AnchorFlags.TopRelative) == AnchorFlags.TopRelative) { mAnchorFlags &= ~AnchorFlags.TopRelative; } else { mAnchorFlags |= AnchorFlags.Top; } } // Bottom else if (e.Y > (this.Height - mMargin)) { if ((mAnchorFlags & AnchorFlags.Bottom) == AnchorFlags.Bottom) { mAnchorFlags &= ~AnchorFlags.Bottom; mAnchorFlags |= AnchorFlags.BottomRelative; } else if ((mAnchorFlags & AnchorFlags.BottomRelative) == AnchorFlags.BottomRelative) { mAnchorFlags &= ~AnchorFlags.BottomRelative; } else { mAnchorFlags |= AnchorFlags.Bottom; } } } // Left or Right else if (e.Y >= (hh - 5) && e.Y <= (hh + 5)) { // Left if (e.X < mMargin) { if ((mAnchorFlags & AnchorFlags.Left) == AnchorFlags.Left) { mAnchorFlags &= ~AnchorFlags.Left; mAnchorFlags |= AnchorFlags.LeftRelative; } else if ((mAnchorFlags & AnchorFlags.LeftRelative) == AnchorFlags.LeftRelative) { mAnchorFlags &= ~AnchorFlags.LeftRelative; } else { mAnchorFlags |= AnchorFlags.Left; } } // Right else if (e.X > (this.Width - mMargin)) { if ((mAnchorFlags & AnchorFlags.Right) == AnchorFlags.Right) { mAnchorFlags &= ~AnchorFlags.Right; mAnchorFlags |= AnchorFlags.RightRelative; } else if ((mAnchorFlags & AnchorFlags.RightRelative) == AnchorFlags.RightRelative) { mAnchorFlags &= ~AnchorFlags.RightRelative; } else { mAnchorFlags |= AnchorFlags.Right; } } } this.Invalidate(); } }
/// <summary> /// Called when the mouse button has been pressed down on this control /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AnchorEditor_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { int hw = this.Width / 2; // Half Width int hh = this.Height / 2; // Half Height // Top or Bottom if (e.X >= (hw - 5) && e.X <= (hw + 5)) { // Top if (e.Y < mMargin) { if ((mAnchorFlags & AnchorFlags.Top) == AnchorFlags.Top) { mAnchorFlags &= ~AnchorFlags.Top; mAnchorFlags |= AnchorFlags.TopRelative; } else if ((mAnchorFlags & AnchorFlags.TopRelative) == AnchorFlags.TopRelative) { mAnchorFlags &= ~AnchorFlags.TopRelative; } else { mAnchorFlags |= AnchorFlags.Top; } } // Bottom else if (e.Y > (this.Height - mMargin)) { if ((mAnchorFlags & AnchorFlags.Bottom) == AnchorFlags.Bottom) { mAnchorFlags &= ~AnchorFlags.Bottom; mAnchorFlags |= AnchorFlags.BottomRelative; } else if ((mAnchorFlags & AnchorFlags.BottomRelative) == AnchorFlags.BottomRelative) { mAnchorFlags &= ~AnchorFlags.BottomRelative; } else { mAnchorFlags |= AnchorFlags.Bottom; } } } // Left or Right else if (e.Y >= (hh - 5) && e.Y <= (hh + 5)) { // Left if (e.X < mMargin) { if ((mAnchorFlags & AnchorFlags.Left) == AnchorFlags.Left) { mAnchorFlags &= ~AnchorFlags.Left; mAnchorFlags |= AnchorFlags.LeftRelative; } else if ((mAnchorFlags & AnchorFlags.LeftRelative) == AnchorFlags.LeftRelative) { mAnchorFlags &= ~AnchorFlags.LeftRelative; } else { mAnchorFlags |= AnchorFlags.Left; } } // Right else if (e.X > (this.Width- mMargin)) { if ((mAnchorFlags & AnchorFlags.Right) == AnchorFlags.Right) { mAnchorFlags &= ~AnchorFlags.Right; mAnchorFlags |= AnchorFlags.RightRelative; } else if ((mAnchorFlags & AnchorFlags.RightRelative) == AnchorFlags.RightRelative) { mAnchorFlags &= ~AnchorFlags.RightRelative; } else { mAnchorFlags |= AnchorFlags.Right; } } } this.Invalidate(); } }
/// <summary> /// Converts to its string representation /// </summary> /// <param name="context"></param> /// <param name="culture"></param> /// <param name="value"></param> /// <param name="destinationType"></param> /// <returns></returns> public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { GUIControl control = context.Instance as GUIControl; if (control != null) { AnchorFlags flags = (AnchorFlags)value; if (flags == AnchorFlags.None) { return("None"); } List <string> components = new List <string>(); if ((flags & AnchorFlags.Top) == AnchorFlags.Top) { components.Add("Top"); } if ((flags & AnchorFlags.TopRelative) == AnchorFlags.TopRelative) { components.Add("Top Relative"); } if ((flags & AnchorFlags.Bottom) == AnchorFlags.Bottom) { components.Add("Bottom"); } if ((flags & AnchorFlags.BottomRelative) == AnchorFlags.BottomRelative) { components.Add("Bottom Relative"); } if ((flags & AnchorFlags.Left) == AnchorFlags.Left) { components.Add("Left"); } if ((flags & AnchorFlags.LeftRelative) == AnchorFlags.LeftRelative) { components.Add("Left Relative"); } if ((flags & AnchorFlags.Right) == AnchorFlags.Right) { components.Add("Right"); } if ((flags & AnchorFlags.RightRelative) == AnchorFlags.RightRelative) { components.Add("Right Relative"); } string retString = ""; for (int i = 0; i < components.Count; i++) { retString += components[i]; if (i < components.Count - 1) { retString += ", "; } } return(retString); } } return("None"); }