// ---------------------------------------------------------------------------------
        public Vector2 LayoutSizeForObjectInTableView(DSTableView tableView, DSTableColumn tableColumn, int row)
        {
            if (myClassType == null)
            {
                return(Vector2.zero);
            }
            string columnId = tableColumn.Identifier;

            if (string.Compare(columnId, kInColumnId) == 0 || string.Compare(columnId, kOutColumnId) == 0)
            {
                return(myCheckBoxSize);
            }
            VariablePair variablePair      = myVariables[row];
            string       name              = variablePair.DisplayName;
            string       typeName          = variablePair.DisplayTypeName;
            ControlPair  inputControlPair  = variablePair.InputControlPair;
            ControlPair  outputControlPair = variablePair.OutputControlPair;
            GUIStyle     labelStyle        = inputControlPair.IsActive || outputControlPair.IsActive ? EditorStyles.boldLabel : EditorStyles.label;

            if (string.Compare(columnId, kNameColumnId) == 0)
            {
                return(labelStyle.CalcSize(new GUIContent(name)));
            }
            if (string.Compare(columnId, kTypeColumnId) == 0)
            {
                return(labelStyle.CalcSize(new GUIContent(typeName)));
            }
            return(Vector2.zero);
        }
示例#2
0
        /// <summary>
        /// Gets the controls in pairs.
        /// </summary>
        /// <returns>List&lt;ControlPair&gt;.</returns>
        private List <ControlPair> GetControls()
        {
            var controls = new List <ControlPair>();

            for (var controlCounter = 0; controlCounter < Children.Count; controlCounter++)
            {
                var child = Children[controlCounter];
                if (child.Visibility == Visibility.Collapsed)
                {
                    continue;
                }

                var controlPair = new ControlPair(0d);

                if (SimpleView.GetIsStandAloneEditControl(child))
                {
                    controlPair.Edit = child;
                }
                else
                {
                    controlPair.Label = child;
                    if (SimpleView.GetSpanFullWidth(child))
                    {
                        controlPair.LabelSpansFullWidth = true;
                    }
                    else if (!SimpleView.GetIsStandAloneLabel(child))
                    {
                        var editControlIndex = controlCounter + 1;
                        if (Children.Count > editControlIndex)
                        {
                            controlPair.Edit = Children[editControlIndex];
                        }
                        controlCounter++; // We are skipping the next control since we already accounted for it

                        while (true)      // We check if the next control might flow with the current edit control
                        {
                            if (Children.Count <= controlCounter + 1)
                            {
                                break;
                            }
                            if (!SimpleView.GetFlowsWithPrevious(Children[controlCounter + 1]))
                            {
                                break;
                            }
                            controlPair.AdditionalEditControls.Add(Children[controlCounter + 1]);
                            controlCounter++;
                        }
                    }
                }
                controls.Add(controlPair);
            }
            return(controls);
        }
        // ---------------------------------------------------------------------------------
        public void DisplayObjectInTableView(DSTableView tableView, DSTableColumn tableColumn, int row, Rect position)
        {
            if (myClassType == null)
            {
                return;
            }
            VariablePair variablePair      = myVariables[row];
            string       name              = variablePair.DisplayName;
            string       typeName          = variablePair.DisplayTypeName;
            ControlPair  inputControlPair  = variablePair.InputControlPair;
            ControlPair  outputControlPair = variablePair.OutputControlPair;

            string columnId = tableColumn.Identifier;

            if (string.Compare(columnId, kInColumnId) == 0 && inputControlPair.Component != null)
            {
                if (Math3D.IsEqual(position.height, myCheckBoxSize.y) && Math3D.IsEqual(position.width, myCheckBoxSize.x))
                {
                    bool prevActive = inputControlPair.IsActive;
                    inputControlPair.IsActive = GUI.Toggle(position, inputControlPair.IsActive, "");
                    if (prevActive != inputControlPair.IsActive && myTarget != null && myStorage != null)
                    {
                        if (inputControlPair.IsActive)
                        {
                            iCS_UserCommands.CreatePropertiesWizardElement(myTarget, inputControlPair.Component);
                        }
                        else
                        {
                            iCS_UserCommands.DeletePropertiesWizardElement(myTarget, inputControlPair.Component);
                        }
                    }
                }
            }
            if (string.Compare(columnId, kOutColumnId) == 0 && outputControlPair.Component != null)
            {
                if (Math3D.IsEqual(position.height, myCheckBoxSize.y) && Math3D.IsEqual(position.width, myCheckBoxSize.x))
                {
                    bool prevActive = outputControlPair.IsActive;
                    outputControlPair.IsActive = GUI.Toggle(position, outputControlPair.IsActive, "");
                    if (prevActive != outputControlPair.IsActive && myTarget != null && myStorage != null)
                    {
                        if (outputControlPair.IsActive)
                        {
                            iCS_UserCommands.CreatePropertiesWizardElement(myTarget, outputControlPair.Component);
                        }
                        else
                        {
                            iCS_UserCommands.DeletePropertiesWizardElement(myTarget, outputControlPair.Component);
                        }
                    }
                }
            }
            GUIStyle labelStyle = inputControlPair.IsActive || outputControlPair.IsActive ? EditorStyles.boldLabel : EditorStyles.label;

            if (string.Compare(columnId, kNameColumnId) == 0)
            {
                GUI.Label(position, name, labelStyle);
            }
            if (string.Compare(columnId, kTypeColumnId) == 0)
            {
                GUI.Label(position, typeName, labelStyle);
            }
        }
 public VariablePair(LibraryObject inputComponent, bool inputActive, LibraryObject outputComponent, bool outputActive)
 {
     InputControlPair  = new ControlPair(inputComponent, inputActive);
     OutputControlPair = new ControlPair(outputComponent, outputActive);
 }
        private void AddSpecType(int left, int bottom, string type, string day,
            ICollection<ControlPair<ComboBox>> list, Control page)
        {
            const int down = 60;
            for (int i = 1; i < 8; i++, bottom += down)
            {
                ComboBox first = new ComboBox
                    {
                        FormattingEnabled = true,
                        Location = new System.Drawing.Point(left, bottom),
                        Name = String.Format("{0}{1}{2}{3}{4}", day, type, "Num", "ComboBox", i),
                        Size = new System.Drawing.Size(100, 20)
                    };

                ComboBox second = new ComboBox()
                    {
                        FormattingEnabled = true,
                        Location = new System.Drawing.Point(left, bottom + 25),
                        Name = String.Format("{0}{1}{2}{3}{4}", day, type, "Den", "ComboBox", i),
                        Size = new System.Drawing.Size(100, 20)
                    };

                page.Controls.Add(first);
                page.Controls.Add(second);

                ControlPair<ComboBox> temp = new ControlPair<ComboBox> { First = first, Second = second };
                list.Add(temp);
            }
        }