public EditorUI(MasterRenderer renderer, EditorScreen screen) { this.renderer = renderer; this.screen = screen; GUISystem gsys = renderer.Sprites.GUISystem; area = new GUIArea(gsys); renderer.Sprites.Add(area); theme = EditorTheme.Glass; GenBar(renderer.ScreenWidth); openFileWindow = new FileBrowserWindow(gsys, theme, new UDim2(0.75f, 0, 0.75f, 0), "Open Model", FileBrowserMode.OpenFile, new string[] { ".aosm" }, (window) => { if (File.Exists(window.FileName)) { screen.LoadModel(window.FileName); } }); saveFileWindow = new FileBrowserWindow(gsys, theme, new UDim2(0.75f, 0, 0.75f, 0), "Save Model", FileBrowserMode.Save, new string[] { ".aosm" }, (window) => { string fullPath = Path.Combine(window.CurrentDirectory, window.FileName); if (!Path.HasExtension(fullPath)) { fullPath += ".aosm"; } screen.SaveModel(fullPath); }); gsys.Add(openFileWindow, saveFileWindow); }
/// <summary> /// Regenerate topBar for stuff and stuff /// </summary> /// <param name="rendWidth"></param> /// <param name="force">Force Regen?</param> public void GenBar(float rendWidth, bool force = false) { if (setup || force) //prevent recreating toolbars unless forced { return; } #region File Menu Buttons GUIDropDownButtonConfig[] FileMenuButtons = new GUIDropDownButtonConfig[4]; FileMenuButtons[0] = new GUIDropDownButtonConfig() { text = "New", value = null, callback = (d, b) => { screen.LoadNewModel(); } }; FileMenuButtons[1] = new GUIDropDownButtonConfig() { text = "Open", value = null, callback = (d, b) => { openFileWindow.Visible = true; } }; FileMenuButtons[2] = new GUIDropDownButtonConfig() { text = "Save", value = null, callback = (d, b) => { if (screen.CurrentFile != null) { screen.SaveModel(); } else { saveFileWindow.Visible = true; } } }; FileMenuButtons[3] = new GUIDropDownButtonConfig() { text = "Save As...", value = null, callback = (d, b) => { saveFileWindow.Visible = true; } }; #endregion #region Gfx Menu Buttons GUIDropDownButtonConfig[] GfxMenuButtons = new GUIDropDownButtonConfig[3]; GfxMenuButtons[0] = new GUIDropDownButtonConfig() { text = "FXAA", value = gfxType.fxaa, callback = SetGfxOption }; GfxMenuButtons[1] = new GUIDropDownButtonConfig() { text = "Shadows", value = gfxType.shadows, callback = SetGfxOption }; GfxMenuButtons[2] = new GUIDropDownButtonConfig() { text = "Wireframe", value = gfxType.wireframe, callback = SetGfxOption }; GUIDropDownButtonConfig[] fogButtons = new GUIDropDownButtonConfig[4]; fogButtons[0] = new GUIDropDownButtonConfig() { text = "Off", value = FogQuality.Off, callback = SetGfxOption }; fogButtons[1] = new GUIDropDownButtonConfig() { text = "Low", value = FogQuality.Low, callback = SetGfxOption }; fogButtons[2] = new GUIDropDownButtonConfig() { text = "Medium", value = FogQuality.Medium, callback = SetGfxOption }; fogButtons[3] = new GUIDropDownButtonConfig() { text = "High", value = FogQuality.High, callback = SetGfxOption }; GUIDropDownButtonConfig[] pcfButtons = new GUIDropDownButtonConfig[5]; pcfButtons[0] = new GUIDropDownButtonConfig() { text = "1", value = 1, callback = SetGfxOption }; pcfButtons[1] = new GUIDropDownButtonConfig() { text = "2", value = 2, callback = SetGfxOption }; pcfButtons[2] = new GUIDropDownButtonConfig() { text = "4", value = 4, callback = SetGfxOption }; pcfButtons[3] = new GUIDropDownButtonConfig() { text = "6", value = 6, callback = SetGfxOption }; pcfButtons[4] = new GUIDropDownButtonConfig() { text = "12", value = 12, callback = SetGfxOption }; #endregion #region Editor Menu Buttons GUIDropDownButtonConfig[] EditorButtons = new GUIDropDownButtonConfig[5]; EditorButtons[0] = new GUIDropDownButtonConfig() { text = "Color Picker", value = typeof(GUIColorPickerWindow), callback = showWindowElement }; EditorButtons[1] = new GUIDropDownButtonConfig() { text = "Eyedropper", value = null, callback = null }; EditorButtons[2] = new GUIDropDownButtonConfig() { text = "Paint", value = null, callback = null }; EditorButtons[3] = new GUIDropDownButtonConfig() { text = "Create Block", value = null, callback = null }; EditorButtons[4] = new GUIDropDownButtonConfig() { text = "Delete Block", value = null, callback = null }; #endregion #region Debug Menu Buttons GUIDropDownButtonConfig[] DebugMenuButtons = new GUIDropDownButtonConfig[2]; DebugMenuButtons[0] = new GUIDropDownButtonConfig() { text = "Regen ToolBar", value = null, callback = (d, b) => { GenBar(renderer.ScreenWidth, true); } }; DebugMenuButtons[1] = new GUIDropDownButtonConfig() { text = "show colour menu", value = typeof(GUIColorPickerWindow), callback = showWindowElement }; #endregion GUIFrame bottomBar = new GUIFrame(new UDim2(0, 0, 1, -30), new UDim2(1, 0, 0, 30), theme); statusLeft = new GUILabel(UDim2.Zero, new UDim2(0.5f, 0, 1, 0), "<left status>", TextAlign.Left, theme) { Parent = bottomBar }; statusRight = new GUILabel(new UDim2(0.5f, 0, 0, 0), new UDim2(0.5f, 0, 1, 0), "<right status>", TextAlign.Right, theme) { Parent = bottomBar }; GUIFrame rightHandBar = new GUIFrame(new UDim2(.5f, -45, 0, 0), new UDim2(1, 0, 1, 0), theme); rightHandBar.MinSize = new UDim2(0, 90, .75f, 90); rightHandBar.MaxSize = rightHandBar.MinSize; GUIButton toAddRBar = new GUIButton(UDim2.Zero, new UDim2(1, 0, 1, 0), "Test", theme) { Parent = rightHandBar }; ToolBarCreator genTop = new ToolBarCreator(theme); genTop.SetButtonWidth(4); genTop.Add("File", FileMenuButtons); genTop.Add("GFX", GfxMenuButtons, new SubDropdownConfig() { Title = "Fog", subButtons = fogButtons }, new SubDropdownConfig() { Title = "PCF Samples", subButtons = pcfButtons } ); //<!-- gfx settings --> genTop.Add("Tools", EditorButtons); genTop.Add("Debug", DebugMenuButtons); this.TopBar = genTop.GetToolBar(); TopBarHelper = new ToolBarHelper(this.TopBar); GUIColorPickerWindow ColorWindow = new GUIColorPickerWindow(renderer.Sprites.GUISystem, new UDim2(0.3f, 0, 0.3f, 0), theme); ColorWindow.MinSize = new UDim2(0, 400, 0, 300); ColorWindow.MaxSize = new UDim2(0, 550, 0, 400); SetupDefaultGraphicsSettings(); windowElements.Add(ColorWindow); renderer.Sprites.GUISystem.Add(ColorWindow); area.AddTopLevel(TopBar, bottomBar, rightHandBar); }