コード例 #1
0
 public void itemRemoved(ButtonGridItem item)
 {
     if (item == SelectedItem)
     {
         SelectedItem = null;
     }
 }
コード例 #2
0
ファイル: ButtonGrid.cs プロジェクト: AnomalousMedical/Engine
 internal void itemActivated(ButtonGridItem item)
 {
     if (ItemActivated != null)
     {
         ItemActivated.Invoke(item);
     }
 }
コード例 #3
0
 public void itemChosen(ButtonGridItem item)
 {
     if (ItemChosen != null)
     {
         ItemChosen.Invoke(item);
     }
 }
コード例 #4
0
 public void itemRemoved(ButtonGridItem item)
 {
     if (item == SelectedItem)
     {
         setSelected(null);
     }
     selectedItems.Remove(item);
 }
コード例 #5
0
 public void removeSelected(ButtonGridItem item)
 {
     if (item != null)
     {
         selectedItems.Remove(item);
         item.StateCheck = false;
         setSelected();
     }
 }
コード例 #6
0
 public void addSelected(ButtonGridItem item)
 {
     if (item != null && !selectedItems.Contains(item))
     {
         selectedItems.Add(item);
         item.StateCheck = true;
         setSelected();
     }
 }
コード例 #7
0
 /// <summary>
 /// Remove an item from the group.
 /// </summary>
 /// <param name="item"></param>
 public void removeItem(ButtonGridItem item)
 {
     items.Remove(item);
     item.Dispose();
     toggleCaptionVisibility();
     if (items.Count == 0)
     {
         grid.NonEmptyGroupCount--;
     }
 }
コード例 #8
0
 public void alignItem(ButtonGridItem item)
 {
     if (allowNewlines && currentPosition.x + ItemWidth > canvasSize.Width)
     {
         currentPosition.x  = xStartPosition;
         currentPosition.y += ItemHeight + ItemPaddingY;
     }
     item.setPosition(currentPosition, ItemWidth, ItemHeight);
     currentPosition.x += item.Width + calculatedPadding;
     allowNewlines      = true;
 }
コード例 #9
0
ファイル: ButtonGrid.cs プロジェクト: AnomalousMedical/Engine
 /// <summary>
 /// Remove an item.
 /// </summary>
 /// <param name="item">The item to remove.</param>
 public void removeItem(ButtonGridItem item)
 {
     if (ItemRemoved != null)
     {
         ItemRemoved.Invoke(this, item);
     }
     selectionStrategy.itemRemoved(item);
     itemCount--;
     item.Group.removeItem(item);
     layout();
 }
コード例 #10
0
ファイル: ButtonGrid.cs プロジェクト: AnomalousMedical/Engine
 /// <summary>
 /// Find an item based on the UserObject assigned to it.
 /// </summary>
 /// <param name="userObject">The user object to search for.</param>
 /// <returns>The first item matching the user object.</returns>
 public ButtonGridItem findItemByUserObject(Object userObject)
 {
     foreach (ButtonGridGroup group in groups)
     {
         ButtonGridItem item = group.findItemByUserObject(userObject);
         if (item != null)
         {
             return(item);
         }
     }
     return(null);
 }
コード例 #11
0
ファイル: ButtonGrid.cs プロジェクト: AnomalousMedical/Engine
 /// <summary>
 /// Find an item based on its caption.
 /// </summary>
 /// <param name="caption">The caption to search for.</param>
 /// <returns>The first item matching the caption.</returns>
 public ButtonGridItem findItemByCaption(String caption)
 {
     foreach (ButtonGridGroup group in groups)
     {
         ButtonGridItem item = group.findItemByCaption(caption);
         if (item != null)
         {
             return(item);
         }
     }
     return(null);
 }
コード例 #12
0
        /// <summary>
        /// Add an item to the group.
        /// </summary>
        /// <param name="caption">The caption to add.</param>
        /// <returns>The newly created ButtonGridItem.</returns>
        public ButtonGridItem addItem(String caption)
        {
            ButtonGridItem item = new ButtonGridItem(this, grid);

            item.Caption = caption;
            items.Add(item);
            toggleCaptionVisibility();
            if (items.Count == 1)
            {
                grid.NonEmptyGroupCount++;
            }
            return(item);
        }
コード例 #13
0
        /// <summary>
        /// Insert an item into the group.
        /// </summary>
        /// <param name="index">The index to insert at.</param>
        /// <param name="caption">The caption to use.</param>
        /// <returns>The newly created ButtonGridItem.</returns>
        public ButtonGridItem insertItem(int index, String caption)
        {
            ButtonGridItem item = new ButtonGridItem(this, grid);

            item.Caption = caption;
            items.Insert(index, item);
            toggleCaptionVisibility();
            if (items.Count == 1)
            {
                grid.NonEmptyGroupCount++;
            }
            return(item);
        }
コード例 #14
0
ファイル: ButtonGrid.cs プロジェクト: AnomalousMedical/Engine
        /// <summary>
        /// Insert an item into a ButtonGridGroup.
        /// </summary>
        /// <param name="index">The index in the group to put the item</param>
        /// <param name="group">The group to add the item to</param>
        /// <param name="caption">The caption for the item</param>
        /// <param name="imageResource">The image resource for the item</param>
        /// <returns></returns>
        public ButtonGridItem insertItem(int index, String group, String caption, String imageResource = null)
        {
            ButtonGridGroup addGroup = findGroup(group);
            ButtonGridItem  item     = addGroup.insertItem(index, caption);

            item.setImage(imageResource);
            itemCount++;
            layout();
            if (ItemAdded != null)
            {
                ItemAdded.Invoke(this, item);
            }
            return(item);
        }
コード例 #15
0
 public void setSelection(ButtonGridItem primary, IEnumerable <ButtonGridItem> secondary)
 {
     uncheckSelectedAndClear();
     if (primary != null)
     {
         selectedItems.Add(primary);
     }
     selectedItems.AddRange(secondary);
     foreach (ButtonGridItem item in selectedItems)
     {
         item.StateCheck = true;
     }
     setSelected(primary);
 }
コード例 #16
0
 private void setSelected(ButtonGridItem value)
 {
     if (selectedItem != value)
     {
         selectedItem = value;
         if (selectedItem != null)
         {
             selectedItem.StateCheck = true;
         }
         if (SelectedValueChanged != null)
         {
             SelectedValueChanged.Invoke(this, EventArgs.Empty);
         }
     }
 }
コード例 #17
0
ファイル: ButtonGrid.cs プロジェクト: AnomalousMedical/Engine
        /// <summary>
        /// Add an item.
        /// </summary>
        /// <param name="group">The group to add the item to.</param>
        /// <param name="caption">The caption for the item.</param>
        /// <param name="imageResource">The image resource for the item</param>
        /// <returns></returns>
        public ButtonGridItem addItem(String group, String caption, String imageResource = null, Object userObject = null)
        {
            ButtonGridGroup addGroup = findGroup(group);
            ButtonGridItem  item     = addGroup.addItem(caption);

            item.setImage(imageResource);
            item.UserObject = userObject;
            itemCount++;
            layout();
            if (ItemAdded != null)
            {
                ItemAdded.Invoke(this, item);
            }
            return(item);
        }
コード例 #18
0
        public void alignItem(ButtonGridItem item)
        {
            int finalWidth = ItemWidth;
            int textSize   = (int)item.TextSize.Width + 10 + extraPadding;

            if (textSize > finalWidth)
            {
                finalWidth = textSize;
            }
            if (currentPosition.x + finalWidth > canvasSize.Width)
            {
                currentPosition.x  = 0;
                currentPosition.y += ItemHeight + ItemPaddingY;
            }
            item.setPosition(currentPosition, finalWidth, ItemHeight);
            currentPosition.x += item.Width + ItemPaddingX;
        }
コード例 #19
0
 public void itemChosen(ButtonGridItem item)
 {
     if (InputManager.Instance.isControlPressed())
     {
         int index = selectedItems.IndexOf(item);
         if (index == -1)
         {
             selectedItems.Add(item);
             item.StateCheck = true;
             setSelected(item);
         }
         else if (selectedItems.Count > 1)
         {
             selectedItems.RemoveAt(index);
             item.StateCheck = false;
             if (item == SelectedItem)
             {
                 if (index < selectedItems.Count)
                 {
                     setSelected(selectedItems[index]);
                 }
                 else if (index - 1 >= 0)
                 {
                     setSelected(selectedItems[index - 1]);
                 }
                 else
                 {
                     setSelected(null);
                 }
             }
         }
     }
     else
     {
         uncheckSelectedAndClear();
         item.StateCheck = true;
         selectedItems.Add(item);
         setSelected(item);
     }
 }
コード例 #20
0
 public void itemRemoved(ButtonGridItem item)
 {
     selectedItems.Remove(item);
 }
コード例 #21
0
 public void addSelected(ButtonGridItem item)
 {
     multiSelection.addSelected(item);
 }
コード例 #22
0
 public void alignItem(ButtonGridItem item)
 {
     item.setPosition(currentPosition, ItemWidth, ItemHeight);
     currentPosition.x  = 0;
     currentPosition.y += ItemHeight + ItemPaddingY;
 }
コード例 #23
0
ファイル: ButtonGrid.cs プロジェクト: AnomalousMedical/Engine
 internal void itemChosen(ButtonGridItem item)
 {
     selectionStrategy.itemChosen(item);
 }
コード例 #24
0
 public void removeSelected(ButtonGridItem item)
 {
     multiSelection.removeSelected(item);
 }
コード例 #25
0
 public void itemChosen(ButtonGridItem item)
 {
     SelectedItem = item;
 }
コード例 #26
0
 public void itemChosen(ButtonGridItem item)
 {
 }
コード例 #27
0
 public void itemRemoved(ButtonGridItem item)
 {
 }
コード例 #28
0
 public void setSelection(ButtonGridItem primary, IEnumerable <ButtonGridItem> secondary)
 {
     multiSelection.setSelection(primary, secondary);
 }