Example #1
0
        private void ReArrange(VisualItem aVisualItem)
        {
            if (!aVisualItem.IsFiltered || aVisualItem.Item.type == "root")
            {
                if (aVisualItem.controlsGroup != null)
                {
                    aVisualItem.controlsGroup.Visible = false;
                }
                return;
            }


            aVisualItem.controlsGroup.Visible = true;

            ItemTree          aItem = aVisualItem.Item;
            DataViewPlacement p     = fParams.placement;
            bool isMenu             = aItem.type == "menu";
            //Create parent container
            ItemControlsGroup group  = aVisualItem.controlsGroup;
            Control           parent = aVisualItem.controlsGroup.parentContainer;

            parent.Width  = p.TitleMaxWidth + p.TitleSpacing + p.ControlMaxWidth + p.ControlSpacing + p.DefaultButtonWidth;
            parent.Height = p.LineSpacing;
            aVisualItem.PanelBackgroundColor = isMenu ? Color.DarkBlue : fCurrentRow % 2 == 0 ? Color.White : Color.LightGray;
            parent.BackColor = aVisualItem.PanelBackgroundColor;

            fCurrentPanelPosition.X  = p.HorizontalMArgin * fNesting;
            parent.Location          = fCurrentPanelPosition;
            fCurrentPanelPosition.Y += p.LineSpacing;
            Point            controlPosition = new Point(0, (p.LineSpacing - p.LineHeight) / 2);
            LabelSingleClick label           = group.label;

            label.Width       = p.TitleMaxWidth;
            label.Height      = p.LineHeight;
            label.Location    = controlPosition;
            controlPosition.X = p.TitleMaxWidth + p.TitleSpacing;
            Control control = group.control;

            control.Location   = controlPosition;
            control.Height     = p.LineHeight;
            control.Width      = p.ControlMaxWidth;
            controlPosition.X += p.ControlMaxWidth + p.ControlSpacing;

            //Add a default button
            if (!isMenu)
            {
                Button button = group.defaultButton;
                button.Width    = p.DefaultButtonWidth;
                button.Height   = p.LineHeight;
                button.Location = controlPosition;
                fCurrentRow++;
            }
        }
Example #2
0
        private void AddControl(VisualItem aVisualItem, Type aType)
        {
            ItemTree aItem = aVisualItem.Item;

            bool isMenu = aItem.type == "menu";
            bool isBool = aItem.type == "bool";
            //Create parent container
            ItemControlsGroup group  = new ItemControlsGroup();
            Control           parent = group.parentContainer = new Control();

            fParams.container.Controls.Add(parent);
            parent.Tag = aVisualItem;

            //Add label describing the entry

            LabelSingleClick label = group.label = new LabelSingleClick(!isBool);

            label.Font = GetLabelFont(aVisualItem);
            label.Text = aItem.displayname;
            label.Tag  = aVisualItem;
            parent.Controls.Add(label);

            //Add the  control itself
            Control control = group.control = Activator.CreateInstance(aType) as Control;

            parent.Controls.Add(control);
            control.Tag = aVisualItem;

            //Add reference from the menu item to the control holding the values.
            aVisualItem.controlsGroup = group;

            //Add a default button
            if (!isMenu)
            {
                Button button = group.defaultButton = new Button();
                parent.Controls.Add(button);
                button.Text      = "Default";
                button.Click    += button_Click;
                button.Tag       = aVisualItem;
                button.FlatStyle = FlatStyle.Popup;
                button.BackColor = System.Drawing.SystemColors.Control;
                fCurrentRow++;
            }

            MouseEnterLeave l = new MouseEnterLeave(parent);

            l.MouseEnter += l_MouseEnter;
            l.MouseLeave += panel_MouseLeave;
            ProceeControl(aVisualItem);
        }