Summary

THIS LIBRARY WILL SWALLOW ALL MOUSE AND KEYBOARD INPUT

This library is a work-in-progress partial implementation of the features provided by Dear ImGui.

The aim of this project is to provide a faithful recreation of the functionality of Dear ImGui. Thus, any inconsistencies with the behavior of the original library should be regarded as a bug/oversight on my part.

Feel free to submit a bug report or feature request as an issue on the GitHub page for this project.

Source Code: https://github.com/chrisspieler/sbox-imgui

Known Issues

  • Windows may not be collapsed, and users may not close or resize windows themselves
  • Countless ImGui functions are not yet implemented
  • Switching between game and UI input is not yet implemented
  • Various slider features such as text input are not yet implemented
  • Mouse inputs on multicomponent sliders may fall through to windows behind
  • GetContentRegionAvail() and IsWindowCollapsed() throw NotImplementedException

Supported Widgets

  • Text
  • Button
  • Checkbox
  • SliderFloat, SliderFloat2, SliderFloat3, SliderFloat4
  • DragInt
  • Image

Example Usage

private void DrawWindow1()
{
	ImGui.SetNextWindowPos( new Vector2( 300, 200 ) * ImGuiStyle.UIScale );
	ImGui.Begin( "Window 1" );
	if ( ImGui.Button( "Click me!" ) )
	{
		_clickCounter++;
	}
	ImGui.Text( "Clicked {0} times.", _clickCounter );
	if ( ImGui.Button( "Focus Floating Window" ) )
	{
		_shouldFocusFloatingWindow = true;
	}
	ImGui.SliderFloat( "My Float", ref _myFloatValue, -128f, 256f );
	ImGui.Button( "1" ); ImGui.SameLine();
	ImGui.Button( "2" ); ImGui.SameLine();
	ImGui.Button( "3" ); ImGui.SameLine();
	ImGui.Button( "4" );
	ImGui.Image( ExampleTexture, new Vector2( 128 ) * ImGuiStyle.UIScale, Color.White, ImGui.GetColorU32( ImGuiCol.Border ) );
	ImGui.End();
}