/// <summary> /// Creates new instance of the class. /// </summary> public VisualControlBase() { this.SetStyle(ControlStyles.UserPaint, true); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); this.SetStyle(ControlStyles.Opaque, true); this.SetStyle(ControlStyles.ResizeRedraw, true); this.SetStyle(SystemOptions.DoubleBufferFlag, true); this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); this.SetStyle(ControlStyles.Selectable, true); this.IsAccessible = true; _Colors = new InputControlColors(); _Colors.ColorChanged += new EventHandler(ColorsColorChanged); _ButtonCustom = new InputButtonSettings(this); _ButtonCustom2 = new InputButtonSettings(this); _RootVisual = CreateRootVisual(); _RootVisual.ArrangeInvalid += new EventHandler(VisualArrangeInvalid); _RootVisual.RenderInvalid += new EventHandler(VisualRenderInvalid); _BackgroundStyle.Class = ElementStyleClassKeys.DateTimeInputBackgroundKey; _BackgroundStyle.SetColorScheme(this.ColorScheme); _BackgroundStyle.StyleChanged += new EventHandler(this.VisualPropertyChanged); ApplyFieldNavigation(); }
/// <summary> /// Copies contained items to the VisualItem array. /// </summary> /// <param name="array">Array to copy to.</param> internal void CopyTo(VisualItem[] array) { List.CopyTo(array, 0); }
/// <summary> /// Copies collection into the specified array. /// </summary> /// <param name="array">Array to copy collection to.</param> /// <param name="index">Starting index.</param> public void CopyTo(VisualItem[] array, int index) { List.CopyTo(array, index); }
/// <summary> /// Removes specified object from the collection. /// </summary> /// <param name="value"></param> public void Remove(VisualItem value) { List.Remove(value); }
protected virtual void RecreateButtons() { VisualItem[] buttons = CreateOrderedButtonList(); // Remove all system buttons that are already in the list VisualGroup group = _ButtonGroup; VisualItem[] items = new VisualItem[group.Items.Count]; group.Items.CopyTo(items); foreach (VisualItem item in items) { if (item.ItemType == eSystemItemType.SystemButton) { group.Items.Remove(item); if (item == _ButtonCustom.ItemReference) item.MouseUp -= new MouseEventHandler(CustomButtonClick); else if (item == _ButtonCustom2.ItemReference) item.MouseUp -= new MouseEventHandler(CustomButton2Click); } } // Add new buttons to the list group.Items.AddRange(buttons); }
/// <summary> /// Adds array of new objects to the collection. /// </summary> /// <param name="items">Array of object to add.</param> public void AddRange(VisualItem[] items) { foreach (VisualItem item in items) this.Add(item); }
/// <summary> /// Returns index of the object inside of the collection. /// </summary> /// <param name="value">Reference to the object.</param> /// <returns>Index of the object.</returns> public int IndexOf(VisualItem value) { return List.IndexOf(value); }
protected override void OnMouseMove(System.Windows.Forms.MouseEventArgs e) { if (_MouseDownItem != null) _MouseDownItem.ProcessMouseMove(e); else { VisualItem item = GetItemAt(e.X, e.Y); if (item != _MouseOverItem && _MouseOverItem != null) { _MouseOverItem.ProcessMouseLeave(); _MouseOverItem = null; } if (item != null && _MouseOverItem == null) { _MouseOverItem = item; _MouseOverItem.ProcessMouseEnter(); } if (_MouseOverItem != null) _MouseOverItem.ProcessMouseMove(e); } base.OnMouseMove(e); }
protected override void OnMouseLeave() { if (_MouseDownItem != null) _MouseDownItem.ProcessMouseLeave(); else { if (_MouseOverItem != null) { _MouseOverItem.ProcessMouseLeave(); _MouseOverItem = null; } } base.OnMouseLeave(); }
protected virtual bool CanFocus(VisualItem v) { return v != null && v.Visible && (v.Focusable || v is VisualInputGroup) && v.Enabled; }
protected override void OnMouseUp(System.Windows.Forms.MouseEventArgs e) { if (_MouseDownItem != null) { _MouseDownItem.ProcessMouseUp(e); _MouseDownItem = null; } base.OnMouseUp(e); }
protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e) { VisualItem item = GetItemAt(e.X, e.Y); if (item != null) { _MouseDownItem = item; _MouseOverItem = item; item.ProcessMouseDown(e); if (_MouseDownItem == item && CanFocus(item)) this.FocusedItem = item; } else if (item == null && this.IsFocused) { // Find first available input and focus it instead foreach (VisualItem visual in _Items) { if (visual is VisualInputBase && CanFocus(visual)) { this.FocusedItem = visual; break; } } } base.OnMouseDown(e); }
protected virtual void ResetValue() { _ResettingValue = true; try { VisualItem[] items = new VisualItem[this.Items.Count]; this.Items.CopyTo(items); foreach (VisualItem item in items) { if (item is VisualInputGroup) ((VisualInputGroup)item).IsEmpty = true; else if (item is VisualInputBase) ((VisualInputBase)item).IsEmpty = true; } } finally { _ResettingValue = false; } }
protected virtual bool ValidateInput(VisualItem inputItem) { return true; }
public CollectionChangedInfo(VisualItem[] added, VisualItem[] removed, eCollectionChangeType changeType) { _Added = added; _Removed = removed; _ChangeType = changeType; }
protected virtual void OnGroupFocused() { if (this.FocusedItem == null) { VisualItem item = GetFirstVisibleItem(); if (item != null) this.FocusedItem = item; } }
/// <summary> /// Adds new object to the collection. /// </summary> /// <param name="item">Object to add.</param> /// <returns>Index of newly added object.</returns> public int Add(VisualItem item) { return List.Add(item); }
protected override void OnLostFocus() { this.FocusedItem = null; base.OnLostFocus(); }
/// <summary> /// Inserts new object into the collection. /// </summary> /// <param name="index">Position of the object.</param> /// <param name="value">Object to insert.</param> public void Insert(int index, VisualItem value) { List.Insert(index, value); }
internal void OnChildItemVisibleChanged(VisualItem visualItem) { InvalidateArrange(); }
/// <summary> /// Returns whether collection contains specified object. /// </summary> /// <param name="value">Object to look for.</param> /// <returns>true if object is part of the collection, otherwise false.</returns> public bool Contains(VisualItem value) { return List.Contains(value); }
protected virtual void OnFocusedItemChanged(VisualItem previousFocus) { }
private VisualItem[] CreateOrderedButtonList() { SortedList list = CreateSortedButtonList(); VisualItem[] items = new VisualItem[list.Count]; list.Values.CopyTo(items, 0); return items; }
private void OnRenderControlButtonsChanged() { // Update IsRendered on system items. if (_RootVisual is VisualGroup) { VisualGroup group = (VisualGroup)_RootVisual; VisualItem[] items = new VisualItem[group.Items.Count]; group.Items.CopyTo(items); foreach (VisualItem item in items) { if (item.ItemType == eSystemItemType.SystemButton || item is VisualUpDownButton || item is LockUpdateCheckBox) { item.IsRendered = _RenderControlButtons; } } } this.Invalidate(); }