Esempio n. 1
0
        public override void Update()
        {
            Manager.NativeManager.Columns(2);

            var columnWidth = Manager.NativeManager.GetColumnWidth(0);

            if (isFirstUpdate)
            {
                Manager.NativeManager.SetColumnWidth(0, 120 * Manager.GetUIScaleBasedOnFontSize());
            }

            var indent = new IndentInformation();

            indent.Indent     = 0;
            indent.IsSelecter = false;
            collection.Update(indent);

            Manager.NativeManager.Columns(1);

            isFirstUpdate = false;
        }
Esempio n. 2
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="firstIndent"></param>
            /// <returns>last indent</returns>
            public IndentInformation Update(IndentInformation firstIndent)
            {
                var indent = firstIndent;

                if (isControlsChanged)
                {
                    SetValue(bindingObject, 0);
                }

                controlRows.Lock();

                for (int i = 0; i < controlRows.Internal.Count; i++)
                {
                    var c = controlRows.Internal[i].Control as IParameterControl;

                    if (controlRows.Internal[i].Children != null)
                    {
                        var item = controlRows.Internal[i];

                        if (string.IsNullOrEmpty(item.TreeNodeID))
                        {
                            // Not tree view
                            indent.Indent     = controlRows[i].SelectorIndent;
                            indent.IsSelecter = controlRows[i].IsSelector;

                            indent = item.Children.Update(indent);
                        }
                        else
                        {
                            // Tree view
                            var label = item.Label.ToString() + "###" + item.TreeNodeID;

                            if (item.BindingValue is Data.Group.IToggleMode)
                            {
                                // CollapsingHeader with toggle
                                Manager.NativeManager.Columns(1);
                                Manager.NativeManager.Spacing();

                                var  toggleId   = "###" + item.TreeNodeID + "_toggle";
                                var  toggleMode = item.BindingValue as Data.Group.IToggleMode;
                                bool enabled    = toggleMode.Enabled.GetValue();

                                bool opened = Manager.NativeManager.CollapsingHeaderWithToggle(label, swig.TreeNodeFlags.None, toggleId, ref enabled);

                                if (enabled != toggleMode.Enabled.GetValue())
                                {
                                    toggleMode.Enabled.SetValue(enabled);
                                }

                                if (opened && !enabled)
                                {
                                    string message = MultiLanguageTextProvider.GetText("TreeDisabled_Message");
                                    Manager.NativeManager.TextWrapped(message);
                                }

                                Manager.NativeManager.Columns(2);

                                if (opened && enabled)
                                {
                                    indent = item.Children.Update(indent);
                                }
                            }
                            else
                            {
                                // Simple CollapsingHeader
                                Manager.NativeManager.Columns(1);
                                Manager.NativeManager.Spacing();

                                bool opened = Manager.NativeManager.CollapsingHeader(label);

                                Manager.NativeManager.Columns(2);

                                if (opened)
                                {
                                    indent = item.Children.Update(indent);
                                }
                            }
                            //var opened = Manager.NativeManager.TreeNode(label);

                            //if (opened)
                            //{
                            //	Manager.NativeManager.TreePop();
                            //}
                        }
                        continue;
                    }

                    if (c is Dummy)
                    {
                        continue;
                    }
                    if (c == null)
                    {
                        continue;
                    }

                    if (
                        (indent.Indent > controlRows[i].SelectorIndent ||
                         controlRows[i].IsSelector ||
                         (indent.Indent == controlRows[i].SelectorIndent && indent.IsSelecter)))
                    {
                        Manager.NativeManager.Separator();
                    }

                    Manager.NativeManager.SetCursorPosY(Manager.NativeManager.GetCursorPosY() + Manager.TextOffsetY);
                    Manager.NativeManager.Text(controlRows.Internal[i].Label.ToString());

                    if (Manager.NativeManager.IsItemHovered())
                    {
                        Manager.NativeManager.BeginTooltip();

                        Manager.NativeManager.Text(controlRows.Internal[i].Label.ToString());
                        Manager.NativeManager.Separator();
                        Manager.NativeManager.Text(controlRows.Internal[i].Description.ToString());

                        Manager.NativeManager.EndTooltip();
                    }

                    Manager.NativeManager.NextColumn();

                    Manager.NativeManager.PushItemWidth(-1);
                    c.Update();
                    Manager.NativeManager.PopItemWidth();

                    Manager.NativeManager.NextColumn();

                    indent.Indent     = controlRows[i].SelectorIndent;
                    indent.IsSelecter = controlRows[i].IsSelector;
                }

                controlRows.Unlock();

                if (isControlsChanged)
                {
                    SetValue(bindingObject, 0);
                }

                return(indent);
            }
Esempio n. 3
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="firstIndent"></param>
            /// <returns>last indent</returns>
            public IndentInformation Update(IndentInformation firstIndent)
            {
                var indent = firstIndent;

                if (isControlsChanged)
                {
                    SetValue(bindingObject, 0);
                    isControlsChanged = false;
                }

                controlRows.Lock();

                for (int i = 0; i < controlRows.Internal.Count; i++)
                {
                    var c = controlRows.Internal[i].Control as IParameterControl;



                    if (controlRows.Internal[i].Children != null)
                    {
                        if (string.IsNullOrEmpty(controlRows.Internal[i].TreeNodeID))
                        {
                            indent.Indent     = controlRows[i].SelectorIndent;
                            indent.IsSelecter = controlRows[i].IsSelector;

                            indent = controlRows.Internal[i].Children.Update(indent);
                        }
                        else
                        {
                            var label = controlRows.Internal[i].Label.ToString() + "###" + controlRows.Internal[i].TreeNodeID;

                            var opened = Manager.NativeManager.TreeNode(label);

                            Manager.NativeManager.NextColumn();

                            Manager.NativeManager.NextColumn();

                            if (opened)
                            {
                                indent = controlRows.Internal[i].Children.Update(indent);
                            }

                            if (opened)
                            {
                                Manager.NativeManager.TreePop();
                            }
                        }
                        continue;
                    }

                    if (c is Dummy)
                    {
                        continue;
                    }
                    if (c == null)
                    {
                        continue;
                    }

                    if (
                        (indent.Indent > controlRows[i].SelectorIndent ||
                         controlRows[i].IsSelector ||
                         (indent.Indent == controlRows[i].SelectorIndent && indent.IsSelecter)))
                    {
                        Manager.NativeManager.Separator();
                    }

                    Manager.NativeManager.SetCursorPosY(Manager.NativeManager.GetCursorPosY() + Manager.TextOffsetY);
                    Manager.NativeManager.Text(controlRows.Internal[i].Label.ToString());

                    if (Manager.NativeManager.IsItemHovered())
                    {
                        Manager.NativeManager.BeginTooltip();

                        Manager.NativeManager.Text(controlRows.Internal[i].Label.ToString());
                        Manager.NativeManager.Separator();
                        Manager.NativeManager.Text(controlRows.Internal[i].Description.ToString());

                        Manager.NativeManager.EndTooltip();
                    }

                    Manager.NativeManager.NextColumn();

                    Manager.NativeManager.PushItemWidth(-1);
                    c.Update();
                    Manager.NativeManager.PopItemWidth();

                    Manager.NativeManager.NextColumn();

                    indent.Indent     = controlRows[i].SelectorIndent;
                    indent.IsSelecter = controlRows[i].IsSelector;
                }

                controlRows.Unlock();

                if (isControlsChanged)
                {
                    SetValue(bindingObject, 0);
                    isControlsChanged = false;
                }

                return(indent);
            }