예제 #1
0
            public static ComboBoxProperty GetProperty(StringBuilder name, IMyTerminalControlCombobox comboBox, List <MyTerminalControlComboBoxItem> comboItems, PropertyBlock block)
            {
                ComboBoxProperty prop = block.comboPropPool.Get();

                prop.SetProperty(name, comboBox, block);
                prop.SetComboItems(comboItems);

                return(prop);
            }
        private ComboBoxProperty AddMeshControl(IEnumerable <string> meshes, int?mesh)
        {
            var meshControl = new ComboBoxProperty();

            meshControl.PropertyName = "Mesh";
            meshControl.DataSource   = GetMeshDataSource(meshes);
            panel.Controls.Add(meshControl);

            if (mesh.HasValue)
            {
                meshControl.PropertyValue = mesh.Value;
            }

            return(meshControl);
        }
        private ComboBoxProperty AddDirectionControl(Unity_collidersCapsuleCollider.DirectionEnum?direction)
        {
            var directionControl = new ComboBoxProperty();

            directionControl.PropertyName = "Direction";
            directionControl.DataSource   = Enum.GetValues(typeof(CapsuleDirection));
            panel.Controls.Add(directionControl);

            if (direction.HasValue)
            {
                directionControl.PropertyValue = GetDirection(direction);
            }

            return(directionControl);
        }
        private ElementProperty GetComboBoxProperty(SignalRule signalRule, PropertyInfo propertyInfo)
        {
            ElementProperty elementProperty = new ComboBoxProperty
            {
                PerformValidationOnLoad = _performValidationOnLoad,
                SignalRule    = signalRule,
                PropertyName  = propertyInfo.Name,
                PropertyValue = propertyInfo.GetValue(signalRule)
            };

            foreach (var item in propertyInfo.PropertyType.GetEnumValues())
            {
                (elementProperty as ComboBoxProperty).Lookups.Add(item.ToString());
            }

            return(elementProperty);
        }
예제 #5
0
        private void InitTable(PropertyTable table)
        {
            table.Add("text", "textbox").Tooltip = "Heyy tooltip";
            LabelProperty lab = new LabelProperty(null)
            {
                Value = "Uneditable label",
            };

            table.Add("Label", lab);
            table.Add("check", new CheckProperty(null));
            var cb = new ComboBoxProperty(table);

            cb.AddItem("Test");
            cb.AddItem("auto selected");
            cb.AddItem("val 3");
            cb.SetValue("auto selected");
            table.Add("combo", cb);
            NumberProperty num = new NumberProperty(table)
            {
                Min = -10, Max = 10, Value = "3"
            };

            table.Add("Number:", num);
        }
예제 #6
0
        private void Setup()
        {
            Panel content = new Panel(this)
            {
                Dock = Dock.Fill,
                AutoSizeToContents   = true,
                ShouldDrawBackground = false
            };
            Panel bottomrow = new Panel(content)
            {
                Dock = Dock.Bottom,
                AutoSizeToContents   = true,
                ShouldDrawBackground = false,
            };
            PropertyTree proptree = new PropertyTree(content)
            {
                Dock = Dock.Top,
                AutoSizeToContents = true,
                Width  = 200,
                Margin = new Margin(0, 0, 0, 10)
            };
            var table     = proptree.Add("Output Settings", 150);
            var qualitycb = new ComboBoxProperty(table);

            qualitycb.AddItem("720p");
            qualitycb.AddItem("1080p");
            table.Add("Quality", qualitycb);

            var smoothcheck = AddPropertyCheckbox(
                table,
                "Smooth Playback",
                Settings.RecordSmooth);
            var music = AddPropertyCheckbox(
                table,
                "Save Music",
                !Settings.MuteAudio && Settings.RecordMusic);

            if (Settings.MuteAudio)
            {
                music.Disable();
            }
            table = proptree.Add("Overlay settings", 150);
            var ppf = AddPropertyCheckbox(
                table,
                "Show P/f",
                Settings.Recording.ShowPpf);
            var fps = AddPropertyCheckbox(
                table,
                "Show FPS",
                Settings.Recording.ShowFps);
            var tools = AddPropertyCheckbox(
                table,
                "Show Tools",
                Settings.Recording.ShowTools);

            proptree.ExpandAll();
            Button Cancel = new Button(bottomrow)
            {
                Dock   = Dock.Right,
                Text   = "Cancel",
                Margin = new Margin(10, 0, 0, 0),
            };

            Cancel.Clicked += (o, e) =>
            {
                Close();
            };
            Button ok = new Button(bottomrow)
            {
                Dock = Dock.Right,
                Text = "Save"
            };

            if (!SafeFrameBuffer.CanRecord || !CheckRecord())
            {
                ok.Disable();
            }
            ok.Clicked += (o, e) =>
            {
                Close();
                Settings.Recording.ShowPpf   = ppf.IsChecked;
                Settings.Recording.ShowFps   = fps.IsChecked;
                Settings.Recording.ShowTools = tools.IsChecked;

                Settings.Record1080p  = qualitycb.SelectedItem.Text == "1080p";
                Settings.RecordSmooth = smoothcheck.IsChecked;
                if (!music.IsDisabled)
                {
                    Settings.RecordMusic = music.IsChecked;
                }
                Settings.Save();
                Record();
            };
        }
예제 #7
0
        private void Setup()
        {
            Panel content = new Panel(this)
            {
                Dock = Dock.Fill,
                AutoSizeToContents   = true,
                ShouldDrawBackground = false
            };
            Panel bottomrow = new Panel(content)
            {
                Dock = Dock.Bottom,
                AutoSizeToContents   = true,
                ShouldDrawBackground = false,
            };
            PropertyTree proptree = new PropertyTree(content)
            {
                Dock = Dock.Top,
                AutoSizeToContents = true,
                Width  = 200,
                Margin = new Margin(0, 0, 0, 10)
            };
            var table     = proptree.Add("Output Settings", 150);
            var qualitycb = new ComboBoxProperty(table);

            foreach (var item in resolutions)
            {
                qualitycb.AddItem(item.Key);
            }

            table.Add("Quality", qualitycb);

            var smoothcheck = AddPropertyCheckbox(
                table,
                "Smooth Playback",
                Settings.RecordSmooth);
            var music = AddPropertyCheckbox(
                table,
                "Save Music",
                !Settings.MuteAudio && Settings.RecordMusic);

            if (Settings.MuteAudio)
            {
                music.Disable();
            }
            table = proptree.Add("Overlay settings", 150);
            var ppf = AddPropertyCheckbox(
                table,
                "Show P/f",
                Settings.Recording.ShowPpf);
            var fps = AddPropertyCheckbox(
                table,
                "Show FPS",
                Settings.Recording.ShowFps);
            var tools = AddPropertyCheckbox(
                table,
                "Show Tools",
                Settings.Recording.ShowTools);
            var hitTest = AddPropertyCheckbox(
                table,
                "Show Hit Test",
                Settings.Editor.HitTest);
            var colorTriggers = AddPropertyCheckbox(
                table,
                "Enable Color Triggers",
                Settings.Recording.EnableColorTriggers);
            var resIndZoom = AddPropertyCheckbox(
                table,
                "Res-Independent Zoom",
                Settings.Recording.ResIndZoom);

            proptree.ExpandAll();
            Button Cancel = new Button(bottomrow)
            {
                Dock   = Dock.Right,
                Text   = "Cancel",
                Margin = new Margin(10, 0, 0, 0),
            };

            Cancel.Clicked += (o, e) =>
            {
                Close();
            };
            Button ok = new Button(bottomrow)
            {
                Dock = Dock.Right,
                Text = "Export"
            };

            if (!SafeFrameBuffer.CanRecord || !CheckRecord())
            {
                ok.Disable();
            }
            ok.Clicked += (o, e) =>
            {
                Close();
                Settings.Recording.ShowPpf             = ppf.IsChecked;
                Settings.Recording.ShowFps             = fps.IsChecked;
                Settings.Recording.ShowTools           = tools.IsChecked;
                Settings.Recording.EnableColorTriggers = colorTriggers.IsChecked;
                Settings.Recording.ResIndZoom          = resIndZoom.IsChecked;
                Settings.Recording.ShowHitTest         = hitTest.IsChecked;

                Settings.RecordSmooth = smoothcheck.IsChecked;
                if (!music.IsDisabled)
                {
                    Settings.RecordMusic = music.IsChecked;
                }

                try
                {
                    var size = resolutions[qualitycb.SelectedItem.Text];
                    Settings.RecordingWidth  = size.Width;
                    Settings.RecordingHeight = size.Height;
                }
                catch (KeyNotFoundException)
                {
                    throw new Exception("Invalid resolution: " + qualitycb.SelectedItem.Text);
                }

                Settings.Save();
                Record();
            };
        }
예제 #8
0
        /// <summary>
        /// Retrieves all block ITerminalProperty values.
        /// </summary>
        private void GetScrollableProps()
        {
            propBuf.Clear();
            TextProperty argProperty = null;

            TBlock.GetProperties(propBuf);

            foreach (ITerminalProperty prop in propBuf)
            {
                var control = prop as IMyTerminalControl;

                if (control != null && control.CanUseControl(TBlock))
                {
                    nameBuilder.Clear();
                    GetTooltipName(prop, nameBuilder);

                    if (nameBuilder.Length > 0)
                    {
                        if (prop is ITerminalProperty <StringBuilder> )
                        {
                            var textProp = prop as ITerminalProperty <StringBuilder>;

                            if (textProp.CanAccessValue(TBlock))
                            {
                                if (prop.Id == "ConsoleCommand")
                                {
                                    argProperty = TextProperty.GetProperty(nameBuilder, textProp, this);
                                }
                                else if (prop.Id == "Name" || prop.Id == "CustomName")
                                {
                                    blockProperties.Insert(0, TextProperty.GetProperty(nameBuilder, textProp, this));
                                }
                                else
                                {
                                    blockProperties.Add(TextProperty.GetProperty(nameBuilder, textProp, this));
                                }
                            }
                        }
                        if (prop is IMyTerminalControlCombobox)
                        {
                            var comboBox = prop as IMyTerminalControlCombobox;

                            if (comboBox.CanAccessValue(TBlock, comboItemBuffer))
                            {
                                blockProperties.Add(ComboBoxProperty.GetProperty(nameBuilder, comboBox, comboItemBuffer, this));
                            }
                        }
                        else if (prop is ITerminalProperty <bool> )
                        {
                            var boolProp = prop as ITerminalProperty <bool>;

                            if (boolProp.CanAccessValue(TBlock))
                            {
                                blockProperties.Add(BoolProperty.GetProperty(nameBuilder, boolProp, this));
                            }
                        }
                        else if (prop is ITerminalProperty <float> )
                        {
                            var floatProp = prop as ITerminalProperty <float>;

                            if (floatProp.CanAccessValue(TBlock))
                            {
                                blockProperties.Add(FloatProperty.GetProperty(nameBuilder, floatProp, this));
                            }
                        }
                        else if (prop is ITerminalProperty <Color> )
                        {
                            var colorProp = prop as ITerminalProperty <Color>;

                            if (colorProp.CanAccessValue(TBlock))
                            {
                                blockProperties.Add(ColorProperty.GetProperty(nameBuilder, colorProp, this));
                            }
                        }
                        else if (prop is ITerminalProperty <Vector3> && prop.Id.Contains("Color"))
                        {
                            var colorProp = prop as ITerminalProperty <Vector3>;

                            if (colorProp.CanAccessValue(TBlock))
                            {
                                blockProperties.Add(HsvColorProperty.GetProperty(nameBuilder, colorProp, this));
                            }
                        }
                    }
                }
            }

            if (argProperty != null)
            {
                blockProperties.Add(argProperty);
            }

            blockMembers.AddRange(blockProperties);
            comboItemBuffer.Clear();
        }