!!! warning "This site is under construction!"

    This site is being actively worked on. 
    
    Feel you could help? Please do by clicking on the page with a pencil on the right!

    This can be done any page too.
    
# BeamNG.drive ImGui Code Snippets

## Setup

### Setup ImGui

```lua
local im = ui_imgui
```

### Setup Window

```lua
im.SetNextWindowSize(im.ImVec2(366, 100), im.Cond_FirstUseEver)
```

### Create window

```lua
im.Begin("Window Title") -- Create window
im.End()
```

## General

=== "Basic Formatting"

    ```lua
    im.Text("")
    im.TextWrapped("") -- automatic word wrap
    im.TextColored(im.ImVec4(0,1,0,1), "") -- R,G,B,A
    im.TextDisabled("") -- predefined style for disabled text

    im.LabelText("", "")
    im.BulletText("") -- Bullet point with text
    im.SeparatorText("") -- Separator with centered text

    im.Separator() -- might want a NewLine before these
    im.SameLine() -- horizontally append the following element to the previous element
    im.NewLine()

    im.Spacing() -- small padding
    im.Indent()
    im.Unindent()
    ```

=== "Inputs"

    ```lua
    im.Button("", im.ImVec2(0,0)) -- 0 = fit to content
    im.SmallButton("") -- Fit to content and slightly less padding
    im.ArrowButton("", 0) -- arg 1: string is not actually used? arg 2: 0 = left, 1 = right, 2 = up, 3 = down
    im.InvisibleButton("", im.ImVec2(0,0), ...) -- used for imgui cursor positioning?

    im.Checkbox("", im.BoolPtr(false))

    im.RadioButton1("", im.BoolPtr(false))
    im.RadioButton2("", im.IntPtr(), 0) -- arg. 3: 0 or 1 for disabled or enabled
    ```

=== "Other"

    ```lua
    im.Bullet()

    im.ProgressBar(0.5, im.ImVec2(0,0), "") -- arg 2: 0 for default width and/or height

    im.TextUnformatted("", "") -- Second argument seems to crash the game
    ```
