Example #1
0
        public AnomalyMain(AnomalyController controller)
            : base("Anomaly.GUI.Main.AnomalyMain.layout")
        {
            this.controller = controller;
            LayoutContainer = new MyGUISingleChildLayoutContainer(widget);

            MenuBar menuBar = widget.findWidget("MenuBar") as MenuBar;

            menuBar.AutoAcceptRunAction = true;
            MenuItem    fileItem = menuBar.addItem("File", MenuItemType.Popup);
            MenuControl file     = menuBar.createItemPopupMenuChild(fileItem);

            file.addItemAction("Save", save);
            file.addItemAction("Build", controller.build);
            file.addItemAction("Force Save All", forceSave);
            file.addItemAction("Exit", controller.shutdown);

            MenuItem    editItem = menuBar.addItem("Edit", MenuItemType.Popup);
            MenuControl edit     = menuBar.createItemPopupMenuChild(editItem);

            edit.addItemAction("Cut", controller.cut);
            edit.addItemAction("Copy", controller.copy);
            edit.addItemAction("Paste", controller.paste);

            MenuItem    resourcesItem = menuBar.addItem("Resources", MenuItemType.Popup);
            MenuControl resources     = menuBar.createItemPopupMenuChild(resourcesItem);

            resources.addItemAction("Publish", publish);
            resources.addItemAction("Obfuscate Archive", doObfuscateArchive);
            resources.addItemAction("Refresh Global Resources", controller.refreshGlobalResources);

            MenuItem    sceneItem = menuBar.addItem("Scene", MenuItemType.Popup);
            MenuControl scene     = menuBar.createItemPopupMenuChild(sceneItem);

            scene.addItemAction("View Resources", viewResources);

            MenuItem    windowItem = menuBar.addItem("Window", MenuItemType.Popup);
            MenuControl window     = menuBar.createItemPopupMenuChild(windowItem);

            showStats          = window.addItemAction("Show Stats", changeShowStats);
            showStats.Selected = controller.ShowStats;
            MenuItem    layoutItem = window.addItem("Layout", MenuItemType.Popup);
            MenuControl layout     = window.createItemPopupMenuChild(layoutItem);

            layout.addItemAction("One Window", controller.createOneWindow);
            layout.addItemAction("Two Window", controller.createTwoWindows);
            layout.addItemAction("Three Window", controller.createThreeWindows);
            layout.addItemAction("Four Window", controller.createFourWindows);
            layout.addItemAction("Show Main Object Editor", () => controller.showMainObjectEditor());

            List <CommandManager> commands = PluginManager.Instance.createDebugCommands();

            if (commands.Count > 0)
            {
                MenuItem    debugItem = menuBar.addItem("Debug", MenuItemType.Popup);
                MenuControl debug     = menuBar.createItemPopupMenuChild(debugItem);

                foreach (CommandManager commandManager in commands)
                {
                    MenuItem    subsystemCommandItem = debug.addItem(commandManager.Name, MenuItemType.Popup);
                    MenuControl subystemCommand      = debug.createItemPopupMenuChild(subsystemCommandItem);

                    foreach (EngineCommand command in commandManager.getCommandList())
                    {
                        subystemCommand.addItemAction(command.PrettyName, () => command.execute());
                    }
                }
            }

            //Buttons
            toolButtons = new ButtonGroup();
            toolButtons.SelectedButtonChanged += toolButtons_SelectedButtonChanged;
            Button none = widget.findWidget("None") as Button;

            none.MouseButtonClick += none_MouseButtonClick;
            toolButtons.addButton(none);

            Button move = widget.findWidget("Move") as Button;

            move.MouseButtonClick += move_MouseButtonClick;
            toolButtons.addButton(move);

            Button rotate = widget.findWidget("Rotate") as Button;

            rotate.MouseButtonClick += rotate_MouseButtonClick;
            toolButtons.addButton(rotate);

            playButton = widget.findWidget("Play") as Button;
            playButton.MouseButtonClick += playButton_MouseButtonClick;

            pauseButton = widget.findWidget("Pause") as Button;
            pauseButton.MouseButtonClick += pauseButton_MouseButtonClick;
            pauseButton.Enabled           = false;

            //Location Texts
            x = new NumericEdit(widget.findWidget("x") as EditBox)
            {
                AllowFloat = true,
                MinValue   = float.MinValue,
                MaxValue   = float.MaxValue,
                Enabled    = false
            };
            x.ValueChanged += locationText_ValueChanged;
            y = new NumericEdit(widget.findWidget("y") as EditBox)
            {
                AllowFloat = true,
                MinValue   = float.MinValue,
                MaxValue   = float.MaxValue,
                Enabled    = false
            };
            y.ValueChanged += locationText_ValueChanged;
            z = new NumericEdit(widget.findWidget("z") as EditBox)
            {
                AllowFloat = true,
                MinValue   = float.MinValue,
                MaxValue   = float.MaxValue,
                Enabled    = false
            };
            z.ValueChanged += locationText_ValueChanged;

            controller.SelectionController.OnSelectionChanged += SelectionController_OnSelectionChanged;
        }
        public OgreModelEditorMain(OgreModelEditorController controller)
            : base("OgreModelEditor.GUI.Main.OgreModelEditorMain.layout")
        {
            this.controller = controller;
            LayoutContainer = new MyGUISingleChildLayoutContainer(widget);

            MenuBar menuBar = widget.findWidget("MenuBar") as MenuBar;

            menuBar.AutoAcceptRunAction = true;
            MenuItem    fileItem = menuBar.addItem("File", MenuItemType.Popup);
            MenuControl file     = menuBar.createItemPopupMenuChild(fileItem);

            file.addItemAction("Open", open);
            file.addItemAction("Save", save);
            file.addItemAction("Save As", saveAs);
            file.addItemAction("Save Materials", controller.saveMaterials);
            file.addItemAction("Batch Upgrade", batchUpgrade);
            file.addItemAction("Export to JSON", exportToJson);
            MenuItem exit = file.addItemAction("Exit", controller.exit);

            MenuItem    resourcesItem = menuBar.addItem("Resources", MenuItemType.Popup);
            MenuControl resources     = menuBar.createItemPopupMenuChild(resourcesItem);

            resources.addItemAction("Reload All (F5)", reloadAll);
            resources.addItemAction("Delete Shader Microcode Cache", controller.clearMicrocodeCache);
            saveMicrocode          = resources.addItemAction("Save Shader Microcode Cache", changeSaveMicrocode);
            saveMicrocode.Selected = OgreConfig.SaveMicrocodeCache;

            MenuItem    debugItem = menuBar.addItem("Debug", MenuItemType.Popup);
            MenuControl debug     = menuBar.createItemPopupMenuChild(debugItem);

            debug.addItemAction("View Shaded (F1)", viewShaded);
            debug.addItemAction("View Binormals (F2)", viewBinormals);
            debug.addItemAction("View Tangents (F3)", viewTangents);
            debug.addItemAction("View Normals (F4)", viewNormals);
            debug.addItemAction("View Parity", controller.setParityDebug);
            MenuItem viewTexture = debug.addItem("View Texture", MenuItemType.Popup);

            textureMenu  = debug.createItemPopupMenuChild(viewTexture);
            showSkeleton = debug.addItemAction("Show Skeleton", changeShowSkeleton);
            debug.addItemAction("Show Virtual Texture Debugger", controller.showVirtualTextureDebugger);

            MenuItem    modelItem = menuBar.addItem("Model", MenuItemType.Popup);
            MenuControl model     = menuBar.createItemPopupMenuChild(modelItem);

            model.addItemAction("Recalculate Tangents", recalculateTangents);
            model.addItemAction("Invert Tangent W", controller.inverseTangentW);
            model.addItemAction("Calculate Volume", controller.calculateVolume);

            MenuItem    texturesItem = menuBar.addItem("Textures", MenuItemType.Popup);
            MenuControl textures     = menuBar.createItemPopupMenuChild(texturesItem);

            textures.addItemAction("Compile Textures", controller.compileTextures);

            MenuItem    windowItem = menuBar.addItem("Window", MenuItemType.Popup);
            MenuControl window     = menuBar.createItemPopupMenuChild(windowItem);

            showStats          = window.addItemAction("Show Stats", changeShowStats);
            showStats.Selected = controller.ShowStats;
            MenuItem    layoutItem = window.addItem("Layout", MenuItemType.Popup);
            MenuControl layout     = window.createItemPopupMenuChild(layoutItem);

            layout.addItemAction("One Window", oneWindow);
            layout.addItemAction("Two Window", twoWindow);
            layout.addItemAction("Three Window", threeWindow);
            layout.addItemAction("Four Window", fourWindow);
            MenuItem    renderingModeItem = window.addItem("Rendering Mode", MenuItemType.Popup);
            MenuControl renderingMode     = window.createItemPopupMenuChild(renderingModeItem);

            renderingMode.addItemAction("Solid (F6)", setSolid);
            renderingMode.addItemAction("Wireframe (F7)", setWireframe);
            renderingMode.addItemAction("Point (F8)", setPoints);
            window.addItemAction("Change Background Color", changeBackgroundColor);
            MenuItem    rendererItem = window.addItem("Renderer", MenuItemType.Popup);
            MenuControl renderer     = window.createItemPopupMenuChild(rendererItem);

            defaultRenderer   = renderer.addItemAction("Default", () => setRenderer(RenderSystemType.Default));
            d3d11Renderer     = renderer.addItemAction("DirectX 11", () => setRenderer(RenderSystemType.D3D11));
            openGLRenderer    = renderer.addItemAction("OpenGL", () => setRenderer(RenderSystemType.OpenGL));
            openGLES2Renderer = renderer.addItemAction("OpenGLES2", () => setRenderer(RenderSystemType.OpenGLES2));

            //Buttons
            ButtonGroup toolButtons = new ButtonGroup();
            Button      none        = widget.findWidget("None") as Button;

            none.MouseButtonClick += none_MouseButtonClick;
            toolButtons.addButton(none);

            Button move = widget.findWidget("Move") as Button;

            move.MouseButtonClick += move_MouseButtonClick;
            toolButtons.addButton(move);

            Button rotate = widget.findWidget("Rotate") as Button;

            rotate.MouseButtonClick += rotate_MouseButtonClick;
            toolButtons.addButton(rotate);

            showBiNormalShortcut.FirstFrameUpEvent  += layer => viewBinormals();
            showTangentShortcut.FirstFrameUpEvent   += layer => viewTangents();
            showNormalShortcut.FirstFrameUpEvent    += layer => viewNormals();
            showShadedShortcut.FirstFrameUpEvent    += layer => viewShaded();
            refreshShortcut.FirstFrameUpEvent       += layer => reloadAll();
            showSolidShortcut.FirstFrameUpEvent     += layer => setSolid();
            showWireframeShortcut.FirstFrameUpEvent += layer => setWireframe();
            showPointShortcut.FirstFrameUpEvent     += layer => setPoints();

            setSelectedRenderer();
        }