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); }
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(); }