/*####################################################################*/ /* Events */ /*####################################################################*/ protected internal override void MouseClick(MouseEventArgs e) { if (IsToggled) { _selectedItem = RenderRule.GetItem(e.Location); if (_selectedItem.HasValue) { if (_dropDownItems[_selectedItem.Value].OnClick != null) { _dropDownItems[_selectedItem.Value].OnClick(this); } Label = _dropDownItems[_selectedItem.Value].Item.Item2; if (OnSelectionChanged != null) { OnSelectionChanged(this); } } } IsToggled = !IsToggled; if (!IsToggled) { RenderRule.Mode = IsHover ? ComboBoxRenderRule.RenderMode.Hover : ComboBoxRenderRule.RenderMode.Default; } else { RenderRule.Mode = ComboBoxRenderRule.RenderMode.Pressed; } }
protected internal override void MouseMove(MouseEventArgs e) { RenderRule.HighlightItem = -1; if (!IsToggled) { return; } var number = RenderRule.GetItem(e.Location); if (number.HasValue) { RenderRule.HighlightItem = number.Value; } }
protected internal override void MouseUp(InputEventMouse e) { if (IsToggled) { int?value = RenderRule.GetItem(e.Position); if (value.HasValue && value != _selectedItem) { _selectedItem = RenderRule.GetItem(e.Position); if (_selectedItem.HasValue) { if (_dropDownItems[_selectedItem.Value].OnClick != null) { _dropDownItems[_selectedItem.Value].OnClick(this); } Icon = _dropDownItems[_selectedItem.Value].Item.Item1; Label = _dropDownItems[_selectedItem.Value].Item.Item2; if (OnSelectionChanged != null) { OnSelectionChanged(this); } } } } }