private int InitializePropertiesSection(int y)
        {
            String_PropertyEditor idEditor = new String_PropertyEditor(m_goData, "properties/Id");

            idEditor.Text = "Id";
            idEditor.UpdateEditorValue();
            idEditor.Top    = y;
            idEditor.Width  = Width;
            idEditor.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(idEditor);
            idEditor.EditorJsonValueChangedCallback = this;
            m_editors.Add(idEditor);
            y = idEditor.Bottom + DEFAULT_SEPARATOR;

            Bool_PropertyEditor activeEditor = new Bool_PropertyEditor(m_goData, "properties/Active");

            activeEditor.Text = "Active";
            activeEditor.UpdateEditorValue();
            activeEditor.Top    = y;
            activeEditor.Width  = Width;
            activeEditor.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(activeEditor);
            activeEditor.EditorJsonValueChangedCallback = this;
            m_editors.Add(activeEditor);
            y = activeEditor.Bottom + DEFAULT_SEPARATOR;

            ParsablePropertyEditor <int> orderEditor = new ParsablePropertyEditor <int>(m_goData, "properties/Order");

            orderEditor.Text = "Order";
            orderEditor.UpdateEditorValue();
            orderEditor.Top    = y;
            orderEditor.Width  = Width;
            orderEditor.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(orderEditor);
            orderEditor.EditorJsonValueChangedCallback = this;
            m_editors.Add(orderEditor);
            y = orderEditor.Bottom + DEFAULT_SEPARATOR;

            JsonStringPropertyEditor metaDataEditor = new JsonStringPropertyEditor(m_goData, "properties/MetaData");

            metaDataEditor.Text = "MetaData";
            metaDataEditor.UpdateEditorValue();
            metaDataEditor.Top    = y;
            metaDataEditor.Width  = Width;
            metaDataEditor.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(metaDataEditor);
            metaDataEditor.EditorJsonValueChangedCallback = this;
            m_editors.Add(metaDataEditor);
            y = metaDataEditor.Bottom + DEFAULT_SEPARATOR;

            return(y);
        }
Ejemplo n.º 2
0
        public ConfigControl(string path, ProjectModel model)
        {
            m_path = path;
            string json = File.ReadAllText(m_path);

            ConfigControl.Config config = null;
            try { config = Newtonsoft.Json.JsonConvert.DeserializeObject <ConfigControl.Config>(json); }
            catch { config = new Config(); }

            MetroSkinManager.ApplyMetroStyle(this);

            m_properties["windowColor"]        = Newtonsoft.Json.JsonConvert.SerializeObject(config.window.color);
            m_properties["windowWidth"]        = Newtonsoft.Json.JsonConvert.SerializeObject(config.window.videoMode.width);
            m_properties["windowHeight"]       = Newtonsoft.Json.JsonConvert.SerializeObject(config.window.videoMode.height);
            m_properties["windowStyles"]       = Newtonsoft.Json.JsonConvert.SerializeObject(config.window.style);
            m_properties["windowName"]         = Newtonsoft.Json.JsonConvert.SerializeObject(config.window.name);
            m_properties["lifeCycleFixedFps"]  = Newtonsoft.Json.JsonConvert.SerializeObject(config.lifeCycle.fixedFps);
            m_properties["lifeCycleFixedStep"] = Newtonsoft.Json.JsonConvert.SerializeObject(config.lifeCycle.fixedStep);
            m_properties["scenes"]             = Newtonsoft.Json.JsonConvert.SerializeObject(config.scenes);

            int y = DEFAULT_SEPARATOR;

            m_reloadButton = new MetroButton();
            MetroSkinManager.ApplyMetroStyle(m_reloadButton);
            m_reloadButton.Text   = "Reload config";
            m_reloadButton.Width  = Width;
            m_reloadButton.Top    = y;
            m_reloadButton.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            m_reloadButton.Click += m_reloadButton_Click;
            Controls.Add(m_reloadButton);
            y = m_reloadButton.Bottom + DEFAULT_SEPARATOR;

            m_saveButton = new MetroButton();
            MetroSkinManager.ApplyMetroStyle(m_saveButton);
            m_saveButton.Text   = "Save config";
            m_saveButton.Width  = Width;
            m_saveButton.Top    = y;
            m_saveButton.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            m_saveButton.Click += m_saveButton_Click;
            Controls.Add(m_saveButton);
            y = m_saveButton.Bottom + DEFAULT_SEPARATOR;

            m_saveAsButton = new MetroButton();
            MetroSkinManager.ApplyMetroStyle(m_saveAsButton);
            m_saveAsButton.Text   = "Save config as...";
            m_saveAsButton.Width  = Width;
            m_saveAsButton.Top    = y;
            m_saveAsButton.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            m_saveAsButton.Click += m_saveAsButton_Click;
            Controls.Add(m_saveAsButton);
            y = m_saveAsButton.Bottom + DEFAULT_SEPARATOR;

            m_windowColor        = new Color_PropertyEditor(m_properties, "windowColor");
            m_windowColor.Text   = "Window Color";
            m_windowColor.Width  = Width;
            m_windowColor.Top    = y;
            m_windowColor.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(m_windowColor);
            m_windowColor.EditorJsonValueChangedCallback = this;
            y = m_windowColor.Bottom + DEFAULT_SEPARATOR;

            m_windowWidth        = new ParsablePropertyEditor <uint>(m_properties, "windowWidth");
            m_windowWidth.Text   = "Window Width";
            m_windowWidth.Width  = Width;
            m_windowWidth.Top    = y;
            m_windowWidth.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(m_windowWidth);
            m_windowWidth.EditorJsonValueChangedCallback = this;
            y = m_windowWidth.Bottom + DEFAULT_SEPARATOR;

            m_windowHeight        = new ParsablePropertyEditor <uint>(m_properties, "windowHeight");
            m_windowHeight.Text   = "Window Height";
            m_windowHeight.Width  = Width;
            m_windowHeight.Top    = y;
            m_windowHeight.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(m_windowHeight);
            m_windowHeight.EditorJsonValueChangedCallback = this;
            y = m_windowHeight.Bottom + DEFAULT_SEPARATOR;

            m_windowName        = new String_PropertyEditor(m_properties, "windowName");
            m_windowName.Text   = "Window Name";
            m_windowName.Width  = Width;
            m_windowName.Top    = y;
            m_windowName.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(m_windowName);
            m_windowName.EditorJsonValueChangedCallback = this;
            y = m_windowName.Bottom + DEFAULT_SEPARATOR;

            m_windowStyles        = new ArrayStylePropertyEditor(m_properties, "windowStyles");
            m_windowStyles.Text   = "Window Styles";
            m_windowStyles.Width  = Width;
            m_windowStyles.Top    = y;
            m_windowStyles.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(m_windowStyles);
            m_windowStyles.EditorJsonValueChangedCallback = this;
            y = m_windowStyles.Bottom + DEFAULT_SEPARATOR;

            m_lifeCycleFixedFps        = new ParsablePropertyEditor <float>(m_properties, "lifeCycleFixedFps");
            m_lifeCycleFixedFps.Text   = "Life Cycle Fixed Fps";
            m_lifeCycleFixedFps.Width  = Width;
            m_lifeCycleFixedFps.Top    = y;
            m_lifeCycleFixedFps.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(m_lifeCycleFixedFps);
            m_lifeCycleFixedFps.EditorJsonValueChangedCallback = this;
            y = m_lifeCycleFixedFps.Bottom + DEFAULT_SEPARATOR;

            m_lifeCycleFixedStep        = new ParsablePropertyEditor <float>(m_properties, "lifeCycleFixedStep");
            m_lifeCycleFixedStep.Text   = "Life Cycle Fixed Step";
            m_lifeCycleFixedStep.Width  = Width;
            m_lifeCycleFixedStep.Top    = y;
            m_lifeCycleFixedStep.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(m_lifeCycleFixedStep);
            m_lifeCycleFixedStep.EditorJsonValueChangedCallback = this;
            y = m_lifeCycleFixedStep.Bottom + DEFAULT_SEPARATOR;

            m_scenes        = new StringMapPathPropertyEditor(m_properties, "scenes", model == null ? null : model.WorkingDirectory + @"\" + model.ActiveTargetWorkingDirectory);
            m_scenes.Text   = "Scenes";
            m_scenes.Width  = Width;
            m_scenes.Top    = y;
            m_scenes.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            Controls.Add(m_scenes);
            m_scenes.EditorJsonValueChangedCallback = this;
            y = m_scenes.Bottom + DEFAULT_SEPARATOR;

            m_windowColor.UpdateEditorValue();
            m_windowWidth.UpdateEditorValue();
            m_windowHeight.UpdateEditorValue();
            m_windowName.UpdateEditorValue();
            m_windowStyles.UpdateEditorValue();
            m_lifeCycleFixedFps.UpdateEditorValue();
            m_lifeCycleFixedStep.UpdateEditorValue();
            m_scenes.UpdateEditorValue();
        }