Example #1
0
        private void GroupSelectedItems()
        {
            var sbl   = BlockList.GetSelectedBlockList();
            int count = sbl.listBlocks.SelectedItems.Count;

            if (count == 0)
            {
                System.Media.SystemSounds.Beep.Play();
                return;
            }

            string prompt;

            if (count == 1)
            {
                prompt = "Group Selected Block?";
            }
            else if (count == sbl.listBlocks.Items.Count)
            {
                prompt = "Group All Blocks?";
            }
            else
            {
                prompt = string.Format("Group {0} Selected Blocks?", count);
            }

            if (MessageBox.Show(prompt, "Block Editor", MessageBoxButton.OKCancel, MessageBoxImage.Question) == MessageBoxResult.OK)
            {
                inSelectionChanged = true;
                int         index = sbl.listBlocks.SelectedItemIndex;
                IBlockGroup group = BlockManager.NewBlockGroup();

                IBlock[] blocks = sbl.AdjacentSelectedBlocks;
                foreach (IBlock block in blocks)
                {
                    group.Add(block);
                    sbl.listBlocks.Items.Remove(block.BlockItem);
                    sbl.listBlocks.ResetItemIndex(block.BlockItem);
                }

                sbl.listBlocks.Insert(index, group.BlockItem);
                sbl.listBlocks.SelectedItem = group.BlockItem;
                listCode.UnselectAll();
                if (sbl.ParentGroup != null)
                {
                    sbl.ParentGroup.Blocks = sbl.Blocks;
                }

                Edited = true;
                btnDelete.IsEnabled = btnCut.IsEnabled = btnCopy.IsEnabled = btnGroup.IsEnabled = btnUngroup.IsEnabled = true;
                inSelectionChanged  = false;
            }
        }
Example #2
0
 public BlockList GetSelectedBlockList(bool forAdd = false)
 {
     if (GroupList == null || GroupList.ParentGroup == null)
     {
         return(this);
     }
     if (GroupList.listBlocks.SelectedItems.Count == 0)
     {
         return(forAdd ? GroupList : this);
     }
     return(GroupList.GetSelectedBlockList(forAdd));
 }