public static InputTextMultiline ( string label, |
||
label | string | |
textBuffer | ||
bufferSize | uint | |
size | Vector2 | |
flags | InputTextFlags | |
callback | TextEditCallback | |
Результат | void |
private void DrawAboutTab() { if (!_editMode && Meta.Description.Length == 0) { return; } if (!ImGui.BeginTabItem(LabelAboutTab)) { return; } using var raii = ImGuiRaii.DeferredEnd(ImGui.EndTabItem); var desc = Meta.Description; var flags = _editMode ? ImGuiInputTextFlags.EnterReturnsTrue | ImGuiInputTextFlags.CtrlEnterForNewLine : ImGuiInputTextFlags.ReadOnly; if (_editMode) { if (ImGui.InputTextMultiline(LabelDescEdit, ref desc, 1 << 16, AutoFillSize, flags)) { Meta.Description = desc; _selector.SaveCurrentMod(); } ImGuiCustom.HoverTooltip(TooltipAboutEdit); } else { ImGui.TextWrapped(desc); } }
private unsafe void SubmitImGuiStuff() { ImGui.GetStyle().WindowRounding = 0; ImGui.SetNextWindowSize(new System.Numerics.Vector2(_nativeWindow.Width - 10, _nativeWindow.Height - 20), SetCondition.Always); ImGui.SetNextWindowPosCenter(SetCondition.Always); ImGui.BeginWindow("ImGUI.NET Sample Program", ref _mainWindowOpened, WindowFlags.NoResize | WindowFlags.NoTitleBar | WindowFlags.NoMove); ImGui.BeginMainMenuBar(); if (ImGui.BeginMenu("Help")) { if (ImGui.MenuItem("About", "Ctrl-Alt-A", false, true)) { } ImGui.EndMenu(); } ImGui.EndMainMenuBar(); ImGui.Text("Hello,"); ImGui.Text("World!"); ImGui.Text("From ImGui.NET. ...Did that work?"); var pos = ImGui.GetIO().MousePosition; bool leftPressed = ImGui.GetIO().MouseDown[0]; ImGui.Text("Current mouse position: " + pos + ". Pressed=" + leftPressed); if (ImGui.Button("Increment the counter.")) { _pressCount += 1; } ImGui.Text($"Button pressed {_pressCount} times.", new System.Numerics.Vector4(0, 1, 1, 1)); ImGui.InputTextMultiline("Input some text:", _textInputBuffer, (uint)_textInputBufferLength, new System.Numerics.Vector2(360, 240), InputTextFlags.Default, OnTextEdited); ImGui.SliderFloat("SlidableValue", ref _sliderVal, -50f, 100f, $"{_sliderVal.ToString("##0.00")}", 1.0f); ImGui.DragVector3("Vector3", ref _positionValue, -100, 100); if (ImGui.TreeNode("First Item")) { ImGui.Text("Word!"); ImGui.TreePop(); } if (ImGui.TreeNode("Second Item")) { ImGui.ColorButton(_buttonColor, false, true); if (ImGui.Button("Push me to change color", new System.Numerics.Vector2(120, 30))) { _buttonColor = new System.Numerics.Vector4(_buttonColor.Y + .25f, _buttonColor.Z, _buttonColor.X, _buttonColor.W); if (_buttonColor.X > 1.0f) { _buttonColor.X -= 1.0f; } } ImGui.TreePop(); } if (ImGui.Button("Press me!", new System.Numerics.Vector2(100, 30))) { ImGuiNative.igOpenPopup("SmallButtonPopup"); } if (ImGui.BeginPopup("SmallButtonPopup")) { ImGui.Text("Here's a popup menu."); ImGui.Text("With two lines."); ImGui.EndPopup(); } if (ImGui.Button("Open Modal window")) { ImGui.OpenPopup("ModalPopup"); } if (ImGui.BeginPopupModal("ModalPopup")) { ImGui.Text("You can't press on anything else right now."); ImGui.Text("You are stuck here."); if (ImGui.Button("OK", new System.Numerics.Vector2(0, 0))) { } ImGui.SameLine(); ImGui.Dummy(100f, 0f); ImGui.SameLine(); if (ImGui.Button("Please go away", new System.Numerics.Vector2(0, 0))) { ImGui.CloseCurrentPopup(); } ImGui.EndPopup(); } ImGui.Text("I have a context menu."); if (ImGui.BeginPopupContextItem("ItemContextMenu")) { if (ImGui.Selectable("How's this for a great menu?")) { } ImGui.Selectable("Just click somewhere to get rid of me."); ImGui.EndPopup(); } ImGui.EndWindow(); _memoryEditor.Draw("Memory editor", _memoryEditorData, _memoryEditorData.Length); if (ImGui.GetIO().AltPressed&& ImGui.GetIO().KeysDown[(int)Key.F4]) { _nativeWindow.Close(); } }
private static unsafe void SubmitUI() { // Demo code adapted from the official Dear ImGui demo program: // https://github.com/ocornut/imgui/blob/master/examples/example_win32_directx11/main.cpp#L172 // 1. Show a simple window. // Tip: if we don't call ImGui.BeginWindow()/ImGui.EndWindow() the widgets automatically appears in a window called "Debug". { ImGui.Text("Hello, world!"); // Display some text (you can use a format string too) ImGui.SliderFloat("float", ref _f, 0, 1, _f.ToString("0.000"), 1); // Edit 1 float using a slider from 0.0f to 1.0f //ImGui.ColorEdit3("clear color", ref _clearColor); // Edit 3 floats representing a color if (ImGui.InputTextMultiline("TestLabel", ref _testInput, ushort.MaxValue, new Vector2(200, 200))) { } ImGui.Text($"Mouse position: {ImGui.GetMousePos()}"); ImGui.Text($"Mouse down: {ImGui.GetIO().MouseDown[0]}"); ImGui.Checkbox("Demo Window", ref _showDemoWindow); // Edit bools storing our windows open/close state ImGui.Checkbox("Another Window", ref _showAnotherWindow); ImGui.Checkbox("Memory Editor", ref _showMemoryEditor); if (ImGui.Button("Button")) // Buttons return true when clicked (NB: most widgets return true when edited/activated) { _counter++; } ImGui.SameLine(0, -1); ImGui.Text($"counter = {_counter}"); ImGui.DragInt("Draggable Int", ref _dragInt); float framerate = ImGui.GetIO().Framerate; ImGui.Text($"Application average {1000.0f / framerate:0.##} ms/frame ({framerate:0.#} FPS)"); } // 2. Show another simple window. In most cases you will use an explicit Begin/End pair to name your windows. if (_showAnotherWindow) { ImGui.Begin("Another Window", ref _showAnotherWindow); ImGui.Text("Hello from another window!"); if (ImGui.Button("Close Me")) { _showAnotherWindow = false; } ImGui.End(); } // 3. Show the ImGui demo window. Most of the sample code is in ImGui.ShowDemoWindow(). Read its code to learn more about Dear ImGui! if (_showDemoWindow) { // Normally user code doesn't need/want to call this because positions are saved in .ini file anyway. // Here we just want to make the demo initial state a bit more friendly! ImGui.SetNextWindowPos(new Vector2(650, 20), ImGuiCond.FirstUseEver); ImGui.ShowDemoWindow(ref _showDemoWindow); } ImGuiIOPtr io = ImGui.GetIO(); SetThing(out io.DeltaTime, 2f); if (_showMemoryEditor) { _memoryEditor.Draw("Memory Editor", _memoryEditorData, _memoryEditorData.Length); } }