Пример #1
0
        private void LayerMultiActionHelper_Load(object sender, EventArgs e)
        {
            GenerateActions(listBox3);
            // listBox2.DrawItem += new DrawItemEventHandler(ListBox2_DrawItem);
            //    listb.OwnerDraw = true;
            GenerateSidebar(listBox1);


            foreach (AbstractDeckAction item in list_actions)
            {
                GlobalAbstractDeckAction teste = new GlobalAbstractDeckAction();
                teste.Text  = item.GetActionName();
                teste.Value = item;
                listBox2.Items.Add(teste);
            }
        }
Пример #2
0
        private void GenerateSidebar(Control parent)
        {
            Padding categoryPadding = new Padding(5, 0, 0, 0);
            Font    categoryFont    = new Font(parent.Font.FontFamily, 13, FontStyle.Bold);
            Padding itemPadding     = new Padding(25, 0, 0, 0);
            Font    itemFont        = new Font(parent.Font.FontFamily, 12);

            var items = ReflectiveEnumerator.GetEnumerableOfType <AbstractDeckAction>();

            List <Control> toAdd = new List <Control>();



            foreach (DeckActionCategory enumItem in Enum.GetValues(typeof(DeckActionCategory)))
            {
                var enumItems = items.Where(i => i.GetActionCategory() == enumItem && i.IsTool() == false && i.IsPlugin() == false);
                if (enumItems.Any())
                {
                    toAdd.Add(new Label()
                    {
                        Padding   = categoryPadding,
                        TextAlign = ContentAlignment.MiddleLeft,
                        Font      = categoryFont,
                        Dock      = DockStyle.Top,
                        Text      = enumItem.ToString(),
                        Tag       = "header",
                        Height    = TextRenderer.MeasureText(enumItem.ToString(), categoryFont).Height
                    });


                    foreach (var i2 in enumItems)
                    {
                        Label item = new Label()
                        {
                            Padding   = itemPadding,
                            TextAlign = ContentAlignment.MiddleLeft,
                            Font      = itemFont,
                            Dock      = DockStyle.Top,
                            Text      = i2.GetActionName(),
                            Height    = TextRenderer.MeasureText(i2.GetActionName(), itemFont).Height,
                            Tag       = i2,
                        };
                        //    Debug.WriteLine("TAG VINDO: " + i2);
                        item.MouseDown += (s, ee) =>
                        {
                            if (item.Tag is AbstractDeckAction act)
                            {
                                //  listBox2.Items.Add(i2.GetActionName()) ;
                                GlobalAbstractDeckAction listbox = new GlobalAbstractDeckAction();
                                listbox.Text  = i2.GetActionName();
                                listbox.Value = i2;
                                listBox2.Items.Add(listbox);

                                //listBox2.Refresh();
                                //   item.DoDragDrop(new DeckActionHelper(act), DragDropEffects.Copy);
                            }
                        };
                        toAdd.Add(item);
                    }
                }
            }
            toAdd.AsEnumerable().Reverse().All(m =>
            {
                parent.Controls.Add(m);
                return(true);
            });
        }