public async Task OnGui(Dispatcher dispatcher, ImGuiWpf imGui) { await imGui.Text("Hello World {0:F}", m_sliderValue); if (await imGui.Button("Save")) { await ShowMessage(dispatcher, $"You clicked save!\n{m_textContents}"); } m_isChecked = await imGui.CheckBox("Check Me!", m_isChecked); if (m_isChecked) { await imGui.Label("You checked me!"); } m_selectedFruit = await imGui.ComboBox("Fruit:", m_selectedFruit, m_fruit); m_textContents = await imGui.InputText("Input Text:", m_textContents); m_sliderValue = await imGui.Slider("Slider:", m_sliderValue, 0.0, 1.0); m_isChecked = await imGui.ToggleButton("Toggle Me", m_isChecked); m_selectedFruit = await imGui.ListBox("Fruit:", m_selectedFruit, m_fruit); m_isChecked = await imGui.RadioButton("Radio Checked", m_isChecked); m_isChecked = !await imGui.RadioButton("Radio UnChecked", !m_isChecked); await imGui.ProgressBar(m_sliderValue, 0.0, 1.0); await LayoutExample(dispatcher, imGui); }
private async Task LayoutExample(Dispatcher dispatcher, ImGuiWpf imGui) { using (await imGui.BeginHorizontal()) { if (await imGui.Button("Left")) { await ShowMessage(dispatcher, "You clicked left."); } if (await imGui.Button("Right")) { await ShowMessage(dispatcher, "You clicked right."); } using (await imGui.BeginVertical()) { if (await imGui.Button("A")) { await ShowMessage(dispatcher, "You clicked A."); } if (await imGui.Button("B")) { await ShowMessage(dispatcher, "You clicked B."); } if (await imGui.Button("C")) { await ShowMessage(dispatcher, "You clicked C."); } } using (await imGui.BeginHorizontal()) { if (await imGui.Button("1")) { await ShowMessage(dispatcher, "You clicked 1."); } if (await imGui.Button("2")) { await ShowMessage(dispatcher, "You clicked 2."); } if (await imGui.Button("3")) { await ShowMessage(dispatcher, "You clicked 3."); } } } }
private async Task UpdateImAbout(GroupBox owner) { using (var imGui = await ImGuiWpf.BeginUi(owner)) { while (true) { await imGui.BeginFrame(); await imGui.Text("This is a simple example of using ImGui.Wpf" + "The idea of this library is to implement an immediate mode " + "Gui system usable in WPF." + "The primary use for this library is to enable runtime script " + "execution to also implement Gui's."); await imGui.EndFrame(); await Task.Delay(100); } } }
private async Task UpdateImDemo(GroupBox owner) { var sliderValue = 0.5; var buffer = "Hello World"; var isChecked = false; var fruit = new[] { "Apple", "Banana", "Tomato" }; var comboSelected = fruit[1]; using (var imGui = await ImGuiWpf.BeginUi(owner)) { while (true) { await imGui.BeginFrame(); await imGui.Text("Hello World {0:F}", sliderValue); if (await imGui.Button("Save")) { MessageBox.Show($"You clicked save!\n{buffer}"); } isChecked = await imGui.CheckBox("Check Me!", isChecked); if (isChecked) { await imGui.Label("You checked me!"); } comboSelected = await imGui.ComboBox("Fruit:", comboSelected, fruit); buffer = await imGui.InputText("Input Text:", buffer); sliderValue = await imGui.Slider("Slider:", sliderValue, 0.0, 1.0); isChecked = await imGui.ToggleButton("Toggle Me", isChecked); comboSelected = await imGui.ListBox("Fruit:", comboSelected, fruit); isChecked = await imGui.RadioButton("Radio Checked", isChecked); isChecked = !await imGui.RadioButton("Radio UnChecked", !isChecked); await imGui.ProgressBar(sliderValue, 0.0, 1.0); using (await imGui.BeginHorizontal()) { if (await imGui.Button("Left")) { MessageBox.Show("You clicked left."); } if (await imGui.Button("Right")) { MessageBox.Show("You clicked right."); } using (await imGui.BeginVertical()) { if (await imGui.Button("A")) { MessageBox.Show("You clicked A."); } if (await imGui.Button("B")) { MessageBox.Show("You clicked B."); } if (await imGui.Button("C")) { MessageBox.Show("You clicked C."); } } using (await imGui.BeginHorizontal()) { if (await imGui.Button("1")) { MessageBox.Show("You clicked 1."); } if (await imGui.Button("2")) { MessageBox.Show("You clicked 2."); } if (await imGui.Button("3")) { MessageBox.Show("You clicked 3."); } } } await imGui.EndFrame(); await Task.Delay(20); } } }