private void initGUI() { GUIEnvironment gui = device.GUIEnvironment; gui.Skin.SetFont(gui.GetFont("fontlucida.png")); foreach (GUIDefaultColor c in Enum.GetValues(typeof(GUIDefaultColor))) { Color l = gui.Skin.GetColor(c); l.Alpha = 255; gui.Skin.SetColor(l, c); } Recti v = device.VideoDriver.ViewPort; GUITabControl tc = gui.AddTabControl(new Recti(20, 20, v.Width - 20, v.Height - 70)); GUITab t1 = tc.AddTab("Setup"); gui.AddStaticText("Driver", new Recti(20, 20, v.Width - 60, 40), false, false, t1); guiDriverType = gui.AddComboBox(new Recti(20, 40, v.Width - 60, 60), t1); foreach (DriverType t in Enum.GetValues(typeof(DriverType))) { if (t == DriverType.Null) { continue; } int i = guiDriverType.AddItem(t.ToString(), (int)t); if (t == driverType) { guiDriverType.SelectedIndex = i; } } gui.AddStaticText("Resolution", new Recti(20, 70, v.Width - 60, 90), false, false, t1); guiResolution = gui.AddComboBox(new Recti(20, 90, v.Width - 60, 110), t1); foreach (VideoMode m in device.VideoModeList.ModeList) { int i = guiResolution.AddItem(m.ToString()); if (m.Resolution == videoMode.Resolution && m.Depth == videoMode.Depth) { guiResolution.SelectedIndex = i; } } guiFullscreen = gui.AddCheckBox(fullscreen, new Recti(20, 130, v.Width - 60, 150), "Fullscreen", t1); GUITab t2 = tc.AddTab("About"); gui.AddStaticText(aboutText, new Recti(20, 20, v.Width - 60, 180), false, true, t2); guiButtonRun = gui.AddButton(new Recti(v.Width - 190, v.Height - 50, v.Width - 110, v.Height - 20), null, -1, "Run"); guiButtonExit = gui.AddButton(new Recti(v.Width - 100, v.Height - 50, v.Width - 20, v.Height - 20), null, -1, "Exit"); }
static void createToolBox() { GUIEnvironment env = device.GUIEnvironment; GUIElement root = env.RootElement; // remove tool box if already there GUIElement e = root.GetElementFromID((int)guiID.DialogRootWindow, true); if (e != null) { e.Remove(); } // create the toolbox window GUIWindow w = env.AddWindow(new Recti(600, 45, 800, 480), false, "Toolset", null, (int)guiID.DialogRootWindow); // create tab control and tabs GUITabControl tab = env.AddTabControl(new Recti(2, 20, 800 - 602, 480 - 7), w, -1, true, true); GUITab t1 = tab.AddTab("Config"); // add some edit boxes and a button to tab one env.AddStaticText("Scale:", new Recti(10, 20, 60, 45), false, false, t1); env.AddStaticText("X:", new Recti(22, 48, 40, 66), false, false, t1); env.AddEditBox("1.0", new Recti(40, 46, 130, 66), true, t1, (int)guiID.XScale); env.AddStaticText("Y:", new Recti(22, 78, 40, 96), false, false, t1); env.AddEditBox("1.0", new Recti(40, 76, 130, 96), true, t1, (int)guiID.YScale); env.AddStaticText("Z:", new Recti(22, 108, 40, 126), false, false, t1); env.AddEditBox("1.0", new Recti(40, 106, 130, 126), true, t1, (int)guiID.ZScale); env.AddButton(new Recti(10, 134, 85, 165), t1, (int)guiID.ButtonSetScale, "Set"); // quick scale buttons env.AddButton(new Recti(65, 20, 95, 40), t1, (int)guiID.ButtonScaleMul10, "* 10"); env.AddButton(new Recti(100, 20, 130, 40), t1, (int)guiID.ButtonScaleDiv10, "* 0.1"); updateScaleInfo(model); // add transparency control env.AddStaticText("GUI Transparency Control:", new Recti(10, 200, 150, 225), true, false, t1); GUIScrollBar b = env.AddScrollBar(true, new Recti(10, 225, 150, 240), t1, (int)guiID.SkinTransparency); b.MaxValue = 255; b.Position = 255; // add framerate control env.AddStaticText("Framerate:", new Recti(10, 240, 150, 265), true, false, t1); b = env.AddScrollBar(true, new Recti(10, 265, 150, 280), t1, (int)guiID.SkinAnimationFPS); b.MaxValue = MaxFramerate; b.MinValue = -MaxFramerate; b.Position = DefaultFramerate; // bring irrlicht engine logo to front, because it now may be below the newly created toolbox root.BringToFront(root.GetElementFromID((int)guiID.Logo, true)); }