Example #1
0
        /// <summary>
        /// Occurs when an element within the <see cref="ImageComboBox"/> is drawn.
        /// </summary>
        /// <param name="e">The <see cref="DrawItemEventArgs"/>
        /// which determines which element is being drawn.</param>
        protected override void OnDrawItem(DrawItemEventArgs e)
        {
            var index = e.Index;

            if (index != -1)
            {
                object item = base.Items[index];
                if (item is ImageObjectItem)
                {
                    ImageObjectItem imageItem = (ImageObjectItem)item;
                    DrawItemState   newState  = e.State;
                    if (!imageItem.Enabled)
                    {
                        newState |= DrawItemState.Disabled;
                    }
                    if (newState != e.State)
                    {
                        e = new DrawItemEventArgs(e.Graphics, e.Font, e.Bounds, e.Index, newState);
                    }
                    if (this.Style != null)
                    {
                        this.Style.OnDrawItemEvent(imageItem, e, this.Font);
                    }
                }
            }
            base.OnDrawItem(e);
        }
Example #2
0
        /// <summary>
        /// Occurs when an element within the <see cref="ImageListBox"/> is drawn.
        /// </summary>
        /// <param name="e">The <see cref="DrawItemEventArgs"/>
        /// which determines which element is being drawn.</param>
        protected override void OnDrawItem(System.Windows.Forms.DrawItemEventArgs e)
        {
            if ((e.Index != -1) && e.Index < base.Items.Count)
            {
                object item = base.Items[e.Index];
                if (item is ImageObjectItem)
                {
                    ImageObjectItem imageItem = (ImageObjectItem)item;
                    DrawItemState   k         = e.State;

                    if (!imageItem.Enabled)
                    {
                        k |= DrawItemState.Disabled;
                    }
                    if (!this.Enabled)
                    {
                        k |= DrawItemState.ComboBoxEdit;
                    }
                    if (k != e.State)
                    {
                        e = new DrawItemEventArgs(e.Graphics, e.Font, e.Bounds, e.Index, k);
                    }
                    if (this.Style != null)
                    {
                        this.Style.OnDrawItemEvent(imageItem, e, this.Font);
                    }
                }
            }
            base.OnDrawItem(e);
        }
Example #3
0
        /// <summary>
        /// Occurs when an element needs redrawn.
        /// </summary>
        /// <param name="index">The <see cref="Int32"/> value representing
        /// the ordinal index of the element to redraw.</param>
        private void RedrawItem(int index)
        {
            if ((index == -1) || (index >= this.items.Count))
            {
                return;
            }
            ImageObjectItem item     = this.items[index];
            DrawItemState   diState  = DrawItemState.Default;
            Rectangle       itemRect = this.GetItemRectangle(index);

            foreach (int idx in this.SelectedIndices)
            {
                if (idx == index)
                {
                    diState |= DrawItemState.Selected;
                }
            }
            if (this.Focused)
            {
                diState |= DrawItemState.Focus;
            }
            DrawItemEventArgs dieas = new DrawItemEventArgs(this.CreateGraphics(), this.Font, itemRect, index, diState, this.ForeColor, this.BackColor);

            this.OnDrawItem(dieas);
            dieas.Graphics.Dispose();
        }
Example #4
0
 private void OnItemCheckChanged(ImageObjectItem item)
 {
     if (this.ItemCheckChanged != null)
     {
         this.ItemCheckChanged(this, new ImageCheckedListBoxItemCheckChangedEventArgs(item));
     }
 }
Example #5
0
        /// <summary>
        /// Occurs when the mouse moves within the scope of the
        /// <see cref="ImageCheckedListBox"/>.
        /// </summary>
        /// <param name="e">The <see cref="MouseEventArgs"/>
        /// which specify pertinent information about the mouse event.</param>
        protected override void OnMouseMove(MouseEventArgs e)
        {
            ImageObjectItem newHoveredItem;
            SizeF           imageMetric;

            if (e.Button == MouseButtons.None)
            {
                int itemUnderCursor = this.IndexFromPoint(new Point(e.X, e.Y));
                if (itemUnderCursor != -1 && itemUnderCursor != 65535)
                {
                    Rectangle itemRect = this.GetItemRectangle(itemUnderCursor);
                    newHoveredItem = this.items[itemUnderCursor];
                    if ((newHoveredItem != this.hoveredItem) && (this.hoveredItem != null))
                    {
                        if (this.hoveredItem.CheckAreaHovered)
                        {
                            this.hoveredItem.CheckAreaHovered = false;
                        }
                    }
                    if (this.imageList == null)
                    {
                        imageMetric = new SizeF(16, 16);
                    }
                    else
                    {
                        imageMetric = new SizeF(this.imageList.ImageSize.Width, this.imageList.ImageSize.Height);
                    }
                    if ((e.X >= itemRect.Left + 3 && e.X < itemRect.Left + 3 + imageMetric.Width) && (e.Y >= itemRect.Top + ((itemRect.Height - imageMetric.Height) / 2) && e.Y < itemRect.Top + ((itemRect.Height + imageMetric.Height) / 2)))
                    {
                        if (!newHoveredItem.CheckAreaHovered)
                        {
                            newHoveredItem.CheckAreaHovered = true;
                        }
                    }
                    else
                    if (newHoveredItem.CheckAreaHovered)
                    {
                        newHoveredItem.CheckAreaHovered = false;
                    }
                    this.hoveredItem = newHoveredItem;
                }
                else
                {
                    if (hoveredItem != null && hoveredItem.CheckAreaHovered)
                    {
                        hoveredItem.CheckAreaHovered = false;
                    }
                    hoveredItem = null;
                }
            }
            base.OnMouseMove(e);
        }
Example #6
0
 /// <summary>
 /// Occurs when an element within the <see cref="ImageListBox"/> is measured.
 /// </summary>
 /// <param name="e">The <see cref="MeasureItemEventArgs"/>
 /// which determines the specific item to be measured.</param>
 protected override void OnMeasureItem(System.Windows.Forms.MeasureItemEventArgs e)
 {
     if (e.Index < base.Items.Count)
     {
         object item = base.Items[e.Index];
         if (item is ImageObjectItem)
         {
             ImageObjectItem imageItem  = (ImageObjectItem)item;
             SizeF           stringSize = e.Graphics.MeasureString(imageItem.Text, this.Font);
             e.ItemHeight = this.GetBaseItemHeight(e.Graphics, stringSize);
             if (this.Style != null)
             {
                 this.Style.OnMeasureItemEvent(imageItem, ref e, this.Font);
             }
         }
     }
     base.OnMeasureItem(e);
 }
Example #7
0
        /// <summary>
        /// Occurs when the selection changes.
        /// </summary>
        /// <param name="e">The <see cref="EventArgs"/> which contains the parameters
        /// on the event.</param>
        protected override void OnSelectedIndexChanged(EventArgs e)
        {
            ImageObjectItem selection = this.SelectedItem as ImageObjectItem;

            if (selection != null && !selection.Enabled)
            {
                voidingSelect     = true;
                this.SelectedItem = lastSelection;
                voidingSelect     = false;
            }
            else if (!voidingSelect)
            {
                base.OnSelectedIndexChanged(e);
            }
            if ((selection != null && selection.Enabled) ||
                selection == null)
            {
                this.lastSelection = selection;
            }
        }
Example #8
0
 /// <summary>
 /// Occurs when an element within the <see cref="ImageCheckedListBox"/> is drawn.
 /// </summary>
 /// <param name="e">The <see cref="DrawItemEventArgs"/>
 /// which determines which element is being drawn.</param>
 protected override void OnDrawItem(DrawItemEventArgs e)
 {
     if ((e.Index != -1) && e.Index < base.Items.Count)
     {
         object item = base.Items[e.Index];
         if (item is ImageObjectItem)
         {
             ImageObjectItem imageItem = (ImageObjectItem)item;
             DrawItemState   diState   = e.State;
             if (imageItem.Checked)
             {
                 diState |= DrawItemState.Checked;
             }
             DrawItemEventArgs newArgs = new DrawItemEventArgs(e.Graphics, e.Font, e.Bounds, e.Index, diState);
             if (this.Style != null)
             {
                 this.Style.OnDrawItemEvent(imageItem, newArgs, this.Font);
             }
         }
     }
     base.OnDrawItem(e);
 }