giu

package module
v0.5.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2021 License: MIT Imports: 16 Imported by: 0

README

giu

Go Report Card Build Status Godoc Card

Cross platform rapid GUI framework for golang based on Dear ImGui and the great golang binding imgui-go.

Any contribution (features, widgets, tutorials, documents and etc...) is appreciated!

Supported Platforms

giu is built upon GLFW v3.3, so idealy giu could support all platforms that GLFW v3.3 supports.

  • Windows (only tested on Windows 10 x64)
  • MacOS (only tested on MacOS v10.15)
  • Linux (thanks remeh to test it)
  • Raspberry pi 3b (thanks sndvaps to test it)

Features

Compare to other Dear ImGui golang bindings, giu has following features:

  • Small executable file size (<3mb after upx compression for the example/helloworld demo).
  • Live-update during the resizing of OS window (implemented on GLFW 3.3 and OpenGL 3.2).
  • Redraw only when user event occurred. Costs only 0.5% CPU usage with 60FPS.
  • Declarative UI (see examples for more detail).
  • DPI awareness (auto scale font and UI to adapte high DPI monitor).
  • Drop in usage, no need to implement render and platform.
  • OS clipboard support.

Screenshot Screenshot1 Screenshot2

Hello world

package main

import (
	"fmt"

	g "github.com/ImmortalHax/giu"
)

func onClickMe() {
	fmt.Println("Hello world!")
}

func onImSoCute() {
	fmt.Println("Im sooooooo cute!!")
}

func loop() {
	g.SingleWindow("hello world").Layout(
		g.Label("Hello world from giu"),
		g.Line(
			g.Button("Click Me").OnClick(onClickMe),
			g.Button("I'm so cute").OnClick(onImSoCute),
		),
	)
}

func main() {
	wnd := g.NewMasterWindow("Hello world", 400, 200, g.MasterWindowFlagsNotResizable, nil)
	wnd.Run(loop)
}

Here is result.

Helloworld

Document

Check Wiki

Contribution

All kinds of pull request (document, demo, screenshots, code, etc...) are more then welcome!

Projects using giu

PipeIt

PipeIt is a text transformation, conversion, cleansing and extraction tool.

PipeIt Demo

NVTool

NVTool is a video encoding tool based on NVEncC.

NVTool Screenshots

Documentation

Index

Constants

View Source
const (
	DirectionLeft  = iota
	DirectionRight = iota
	DirectionUp    = iota
	DirectionDown  = iota
)
View Source
const (
	TextureFilterNearest = iota
	TextureFilterLinear
	TextureFilterNearestMipmapNearest
	TextureFilterLinearMipmapNearest
	TextureFilterNearestMipmapLinear
	TextureFilterLinearMipmapLinear
)

Texture filtering types.

Variables

View Source
var (
	Context context
)

Functions

func AlignTextToFramePadding

func AlignTextToFramePadding()

AlignTextToFramePadding vertically aligns upcoming text baseline to FramePadding.y so that it will align properly to regularly framed items. Call if you have text on a line before a framed item.

func CalcTextSize

func CalcTextSize(text string) (width, height float32)

func CloseCurrentPopup

func CloseCurrentPopup()

func GetAvaiableRegion

func GetAvaiableRegion() (width, height float32)

func GetCursorPos

func GetCursorPos() image.Point

func GetCursorScreenPos

func GetCursorScreenPos() image.Point

func GetFramePadding

func GetFramePadding() (float32, float32)

func GetItemInnerSpacing

func GetItemInnerSpacing() (float32, float32)

func GetItemSpacing

func GetItemSpacing() (float32, float32)

func GetMousePos

func GetMousePos() image.Point

func GetWindowPadding

func GetWindowPadding() (float32, float32)

func IsItemActive

func IsItemActive() bool

func IsItemClicked

func IsItemClicked(mouseButton MouseButton) bool

func IsItemHovered

func IsItemHovered() bool

func IsKeyDown

func IsKeyDown(key Key) bool

func IsKeyPressed

func IsKeyPressed(key Key) bool

func IsKeyReleased

func IsKeyReleased(key Key) bool

func IsMouseClicked

func IsMouseClicked(button MouseButton) bool

func IsMouseDoubleClicked

func IsMouseDoubleClicked(button MouseButton) bool

func IsMouseDown

func IsMouseDown(button MouseButton) bool

func IsMouseReleased

func IsMouseReleased(button MouseButton) bool

func IsWindowAppearing

func IsWindowAppearing() bool

func IsWindowCollapsed

func IsWindowCollapsed() bool

func IsWindowFocused

func IsWindowFocused(flags FocusedFlags) bool

func IsWindowHovered

func IsWindowHovered(flags HoveredFlags) bool

func LoadImage

func LoadImage(imgPath string) (*image.RGBA, error)

func Msgbox

func Msgbox(title, content string)

func MsgboxV

func MsgboxV(title, content string, buttons MsgboxButtons, resultCallback func(DialogResult))

func OpenPopup

func OpenPopup(name string)

func PopClipRect

func PopClipRect()

func PopFont

func PopFont()

func PopItemWidth

func PopItemWidth()

func PopStyle

func PopStyle()

func PopStyleColor

func PopStyleColor()

func PopStyleColorV

func PopStyleColorV(count int)

func PopStyleV

func PopStyleV(count int)

func PopTextWrapPos

func PopTextWrapPos()

func PushButtonTextAlign

func PushButtonTextAlign(width, height float32)

Alignment for button text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered.

func PushClipRect

func PushClipRect(clipRectMin, clipRectMax image.Point, intersectWithClipRect bool)

func PushColorButton

func PushColorButton(col color.RGBA)

func PushColorButtonActive

func PushColorButtonActive(col color.RGBA)

func PushColorButtonHovered

func PushColorButtonHovered(col color.RGBA)

func PushColorFrameBg

func PushColorFrameBg(col color.RGBA)

func PushColorText

func PushColorText(col color.RGBA)

func PushColorTextDisabled

func PushColorTextDisabled(col color.RGBA)

func PushColorWindowBg

func PushColorWindowBg(col color.RGBA)

func PushFont

func PushFont(font imgui.Font)

func PushFramePadding

func PushFramePadding(width, height float32)

func PushItemSpacing

func PushItemSpacing(width, height float32)

func PushItemWidth

func PushItemWidth(width float32)

func PushSelectableTextAlign

func PushSelectableTextAlign(width, height float32)

Alignment for selectable text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered.

func PushTextWrapPos

func PushTextWrapPos()

func PushWindowPadding

func PushWindowPadding(width, height float32)

func SameLine

func SameLine()

func SetItemDefaultFocus

func SetItemDefaultFocus()

func SetKeyboardFocusHere

func SetKeyboardFocusHere()

func SetKeyboardFocusHereV

func SetKeyboardFocusHereV(i int)

func SetMouseCursor

func SetMouseCursor(cursor MouseCursorType)

func SetNextWindowPos

func SetNextWindowPos(x, y float32)

func SetNextWindowSize

func SetNextWindowSize(width, height float32)

func SetNextWindowSizeV

func SetNextWindowSizeV(width, height float32, condition ExecCondition)

func ToVec2

func ToVec2(pt image.Point) imgui.Vec2

func ToVec4Color

func ToVec4Color(col color.RGBA) imgui.Vec4

func Update

func Update()

func Vec4ToRGBA

func Vec4ToRGBA(vec4 imgui.Vec4) color.RGBA

Types

type ArrowButtonWidget

type ArrowButtonWidget struct {
	// contains filtered or unexported fields
}

func ArrowButton

func ArrowButton(id string, dir Direction) *ArrowButtonWidget

func (*ArrowButtonWidget) Build

func (ab *ArrowButtonWidget) Build()

func (*ArrowButtonWidget) OnClick

func (b *ArrowButtonWidget) OnClick(onClick func()) *ArrowButtonWidget

type BulletTextWidget

type BulletTextWidget struct {
	// contains filtered or unexported fields
}

func BulletText

func BulletText(text string) *BulletTextWidget

func (*BulletTextWidget) Build

func (bt *BulletTextWidget) Build()

type BulletWidget

type BulletWidget struct{}

func Bullet

func Bullet() *BulletWidget

func (*BulletWidget) Build

func (b *BulletWidget) Build()

type ButtonWidget

type ButtonWidget struct {
	// contains filtered or unexported fields
}

func Button

func Button(id string) *ButtonWidget

func (*ButtonWidget) Build

func (b *ButtonWidget) Build()

func (*ButtonWidget) OnClick

func (b *ButtonWidget) OnClick(onClick func()) *ButtonWidget

func (*ButtonWidget) Size

func (b *ButtonWidget) Size(width, height float32) *ButtonWidget

type Canvas

type Canvas struct {
	// contains filtered or unexported fields
}

func GetCanvas

func GetCanvas() *Canvas

func (*Canvas) AddBezierCubic

func (c *Canvas) AddBezierCubic(pos0, cp0, cp1, pos1 image.Point, color color.RGBA, thickness float32, num_segments int)

func (*Canvas) AddCircle

func (c *Canvas) AddCircle(center image.Point, radius float32, color color.RGBA, thickness float32)

func (*Canvas) AddCircleFilled

func (c *Canvas) AddCircleFilled(center image.Point, radius float32, color color.RGBA)

func (*Canvas) AddImage

func (c *Canvas) AddImage(texture *Texture, pMin, pMax image.Point)

func (*Canvas) AddImageV

func (c *Canvas) AddImageV(texture *Texture, pMin, pMax image.Point, uvMin, uvMax image.Point, color color.RGBA)

func (*Canvas) AddLine

func (c *Canvas) AddLine(p1, p2 image.Point, color color.RGBA, thickness float32)

func (*Canvas) AddQuad

func (c *Canvas) AddQuad(p1, p2, p3, p4 image.Point, color color.RGBA, thickness float32)

func (*Canvas) AddQuadFilled

func (c *Canvas) AddQuadFilled(p1, p2, p3, p4 image.Point, color color.RGBA)

func (*Canvas) AddRect

func (c *Canvas) AddRect(pMin, pMax image.Point, color color.RGBA, rounding float32, rounding_corners CornerFlags, thickness float32)

func (*Canvas) AddRectFilled

func (c *Canvas) AddRectFilled(pMin, pMax image.Point, color color.RGBA, rounding float32, rounding_corners CornerFlags)

func (*Canvas) AddText

func (c *Canvas) AddText(pos image.Point, color color.RGBA, text string)

func (*Canvas) AddTriangle

func (c *Canvas) AddTriangle(p1, p2, p3 image.Point, color color.RGBA, thickness float32)

func (*Canvas) AddTriangleFilled

func (c *Canvas) AddTriangleFilled(p1, p2, p3 image.Point, color color.RGBA)

func (*Canvas) PathArcTo

func (c *Canvas) PathArcTo(center image.Point, radius, a_min, a_max float32, num_segments int)

func (*Canvas) PathArcToFast

func (c *Canvas) PathArcToFast(center image.Point, radius float32, a_min_of_12, a_max_of_12 int)

func (*Canvas) PathBezierCubicCurveTo

func (c *Canvas) PathBezierCubicCurveTo(p1, p2, p3 image.Point, num_segments int)

func (*Canvas) PathClear

func (c *Canvas) PathClear()

func (*Canvas) PathFillConvex

func (c *Canvas) PathFillConvex(color color.RGBA)

func (*Canvas) PathLineTo

func (c *Canvas) PathLineTo(pos image.Point)

func (*Canvas) PathLineToMergeDuplicate

func (c *Canvas) PathLineToMergeDuplicate(pos image.Point)

func (*Canvas) PathStroke

func (c *Canvas) PathStroke(color color.RGBA, closed bool, thickness float32)

type CheckboxWidget

type CheckboxWidget struct {
	// contains filtered or unexported fields
}

func Checkbox

func Checkbox(text string, selected *bool) *CheckboxWidget

func (*CheckboxWidget) Build

func (c *CheckboxWidget) Build()

func (*CheckboxWidget) OnChange

func (c *CheckboxWidget) OnChange(onChange func()) *CheckboxWidget

type ChildWidget

type ChildWidget struct {
	// contains filtered or unexported fields
}

func Child

func Child(id string) *ChildWidget

func (*ChildWidget) Border

func (c *ChildWidget) Border(border bool) *ChildWidget

func (*ChildWidget) Build

func (c *ChildWidget) Build()

func (*ChildWidget) Flags

func (c *ChildWidget) Flags(flags WindowFlags) *ChildWidget

func (*ChildWidget) Layout

func (c *ChildWidget) Layout(widgets ...Widget) *ChildWidget

func (*ChildWidget) Size

func (c *ChildWidget) Size(width, height float32) *ChildWidget

type ColumnWidget

type ColumnWidget struct {
	// contains filtered or unexported fields
}

func Column

func Column(label string) *ColumnWidget

func (*ColumnWidget) Build

func (c *ColumnWidget) Build()

func (*ColumnWidget) Flags

func (*ColumnWidget) InnerWidthOrWeight

func (c *ColumnWidget) InnerWidthOrWeight(w float32) *ColumnWidget

func (*ColumnWidget) UserId

func (c *ColumnWidget) UserId(id uint32) *ColumnWidget

type ComboCustomWidget

type ComboCustomWidget struct {
	// contains filtered or unexported fields
}

func ComboCustom

func ComboCustom(label, previewValue string) *ComboCustomWidget

func (*ComboCustomWidget) Build

func (cc *ComboCustomWidget) Build()

func (*ComboCustomWidget) Flags

func (*ComboCustomWidget) Layout

func (cc *ComboCustomWidget) Layout(widgets ...Widget) *ComboCustomWidget

func (*ComboCustomWidget) Size

func (cc *ComboCustomWidget) Size(width float32) *ComboCustomWidget

type ComboFlags

type ComboFlags int
const (
	// ComboFlagNone default ComboFlags = 0
	ComboFlagNone ComboFlags = 0
	// ComboFlagPopupAlignLeft aligns the popup toward the left by default.
	ComboFlagPopupAlignLeft ComboFlags = 1 << 0
	// ComboFlagHeightSmall has max ~4 items visible.
	// Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo().
	ComboFlagHeightSmall ComboFlags = 1 << 1
	// ComboFlagHeightRegular has max ~8 items visible (default).
	ComboFlagHeightRegular ComboFlags = 1 << 2
	// ComboFlagHeightLarge has max ~20 items visible.
	ComboFlagHeightLarge ComboFlags = 1 << 3
	// ComboFlagHeightLargest has as many fitting items as possible.
	ComboFlagHeightLargest ComboFlags = 1 << 4
	// ComboFlagNoArrowButton displays on the preview box without the square arrow button.
	ComboFlagNoArrowButton ComboFlags = 1 << 5
	// ComboFlagNoPreview displays only a square arrow button.
	ComboFlagNoPreview ComboFlags = 1 << 6
)

type ComboWidget

type ComboWidget struct {
	// contains filtered or unexported fields
}

func Combo

func Combo(label, previewValue string, items []string, selected *int32) *ComboWidget

func (*ComboWidget) Build

func (c *ComboWidget) Build()

func (*ComboWidget) Flags

func (c *ComboWidget) Flags(flags ComboFlags) *ComboWidget

func (*ComboWidget) OnChange

func (c *ComboWidget) OnChange(onChange func()) *ComboWidget

func (*ComboWidget) Size

func (c *ComboWidget) Size(width float32) *ComboWidget

type ConditionWidget

type ConditionWidget struct {
	// contains filtered or unexported fields
}

func Condition

func Condition(cond bool, layoutIf Layout, layoutElse Layout) *ConditionWidget

func (*ConditionWidget) Build

func (c *ConditionWidget) Build()

type ContextMenuWidget

type ContextMenuWidget struct {
	// contains filtered or unexported fields
}

func ContextMenu

func ContextMenu(label string) *ContextMenuWidget

func (*ContextMenuWidget) Build

func (c *ContextMenuWidget) Build()

func (*ContextMenuWidget) Layout

func (c *ContextMenuWidget) Layout(widgets ...Widget) *ContextMenuWidget

func (*ContextMenuWidget) MouseButton

func (c *ContextMenuWidget) MouseButton(mouseButton MouseButton) *ContextMenuWidget

type CornerFlags

type CornerFlags int
const (
	CornerFlags_None     CornerFlags = 0
	CornerFlags_TopLeft  CornerFlags = 1 << 0                                      // 0x1
	CornerFlags_TopRight CornerFlags = 1 << 1                                      // 0x2
	CornerFlags_BotLeft  CornerFlags = 1 << 2                                      // 0x4
	CornerFlags_BotRight CornerFlags = 1 << 3                                      // 0x8
	CornerFlags_Top      CornerFlags = CornerFlags_TopLeft | CornerFlags_TopRight  // 0x3
	CornerFlags_Bot      CornerFlags = CornerFlags_BotLeft | CornerFlags_BotRight  // 0xC
	CornerFlags_Left     CornerFlags = CornerFlags_TopLeft | CornerFlags_BotLeft   // 0x5
	CornerFlags_Right    CornerFlags = CornerFlags_TopRight | CornerFlags_BotRight // 0xA
	CornerFlags_All      CornerFlags = 0xF                                         // In your function calls you may use ~0 (= all bits sets) instead of ImDrawCornerFlags_All, as a convenience

)

type CustomWidget

type CustomWidget struct {
	// contains filtered or unexported fields
}

func Custom

func Custom(builder func()) *CustomWidget

func (*CustomWidget) Build

func (c *CustomWidget) Build()

type DatePickerWidget

type DatePickerWidget struct {
	// contains filtered or unexported fields
}

func DatePicker

func DatePicker(id string, date *time.Time) *DatePickerWidget

func (*DatePickerWidget) Build

func (d *DatePickerWidget) Build()

func (*DatePickerWidget) OnChange

func (d *DatePickerWidget) OnChange(onChange func()) *DatePickerWidget

func (*DatePickerWidget) Size

func (d *DatePickerWidget) Size(width float32) *DatePickerWidget

type DialogResult

type DialogResult uint8
const (
	DialogResultOK DialogResult = 1 << iota
	DialogResultCancel
	DialogResultYes
	DialogResultNo
)

type DialogResultCallback

type DialogResultCallback func(DialogResult)

type Direction

type Direction uint8

type Disposable

type Disposable interface {
	Dispose()
}

type DragIntWidget

type DragIntWidget struct {
	// contains filtered or unexported fields
}

func DragInt

func DragInt(label string, value *int32, min, max int32) *DragIntWidget

func (*DragIntWidget) Build

func (d *DragIntWidget) Build()

func (*DragIntWidget) Format

func (d *DragIntWidget) Format(format string) *DragIntWidget

func (*DragIntWidget) Speed

func (d *DragIntWidget) Speed(speed float32) *DragIntWidget

type DummyWidget

type DummyWidget struct {
	// contains filtered or unexported fields
}

func Dummy

func Dummy(width, height float32) *DummyWidget

func (*DummyWidget) Build

func (d *DummyWidget) Build()

type FocusedFlags

type FocusedFlags int
const (
	// FocusedFlagsNone default FocusedFlags = 0
	FocusedFlagsNone FocusedFlags = 0
	// FocusedFlagsChildWindows matches if any children of the window is focused
	FocusedFlagsChildWindows FocusedFlags = 1 << 0
	// FocusedFlagsRootWindow tests from root window (top most parent of the current hierarchy)
	FocusedFlagsRootWindow FocusedFlags = 1 << 1
	// FocusedFlagsAnyWindow matches if any window is focused.
	FocusedFlagsAnyWindow FocusedFlags = 1 << 2
	// FocusedFlagsRootAndChildWindows combines FocusedFlagsRootWindow and FocusedFlagsChildWindows.
	FocusedFlagsRootAndChildWindows = FocusedFlagsRootWindow | FocusedFlagsChildWindows
)

type GroupWidget

type GroupWidget struct {
	// contains filtered or unexported fields
}

func Group

func Group() *GroupWidget

func (*GroupWidget) Build

func (g *GroupWidget) Build()

func (*GroupWidget) Layout

func (g *GroupWidget) Layout(widgets ...Widget) *GroupWidget

type HSplitterWidget

type HSplitterWidget struct {
	// contains filtered or unexported fields
}

func HSplitter

func HSplitter(id string, delta *float32) *HSplitterWidget

func (*HSplitterWidget) Build

func (h *HSplitterWidget) Build()

func (*HSplitterWidget) Size

func (h *HSplitterWidget) Size(width, height float32) *HSplitterWidget

type HoveredFlags

type HoveredFlags int
const (
	// HoveredFlagsNone is the default and matches if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them.
	HoveredFlagsNone HoveredFlags = 0
	// HoveredFlagsChildWindows is for IsWindowHovered() and matches if any children of the window is hovered
	HoveredFlagsChildWindows HoveredFlags = 1 << 0
	// HoveredFlagsRootWindow is for IsWindowHovered() and tests from root window (top most parent of the current hierarchy)
	HoveredFlagsRootWindow HoveredFlags = 1 << 1
	// HoveredFlagsAnyWindow is for IsWindowHovered() and matches if any window is hovered
	HoveredFlagsAnyWindow HoveredFlags = 1 << 2
	// HoveredFlagsAllowWhenBlockedByPopup matches even if a popup window is normally blocking access to this item/window
	HoveredFlagsAllowWhenBlockedByPopup HoveredFlags = 1 << 3
	// HoveredFlagsAllowWhenBlockedByModal matches even if a modal popup window is normally blocking access to this item/window. UNIMPLEMENTED in imgui.
	//HoveredFlagsAllowWhenBlockedByModal  HoveredFlags   = 1 << 4
	// HoveredFlagsAllowWhenBlockedByActiveItem matches true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns.
	HoveredFlagsAllowWhenBlockedByActiveItem HoveredFlags = 1 << 5
	// HoveredFlagsAllowWhenOverlapped matches even if the position is obstructed or overlapped by another window
	HoveredFlagsAllowWhenOverlapped HoveredFlags = 1 << 6
	// HoveredFlagsAllowWhenDisabled matches even if the item is disabled
	HoveredFlagsAllowWhenDisabled HoveredFlags = 1 << 7
	// HoveredFlagsRectOnly combines HoveredFlagsAllowWhenBlockedByPopup, HoveredFlagsAllowWhenBlockedByActiveItem, and HoveredFlagsAllowWhenOverlapped.
	HoveredFlagsRectOnly HoveredFlags = HoveredFlagsAllowWhenBlockedByPopup | HoveredFlagsAllowWhenBlockedByActiveItem | HoveredFlagsAllowWhenOverlapped
	// HoveredFlagsRootAndChildWindows combines HoveredFlagsRootWindow and HoveredFlagsChildWindows.
	HoveredFlagsRootAndChildWindows HoveredFlags = HoveredFlagsRootWindow | HoveredFlagsChildWindows
)

type ImPlotYAxis

type ImPlotYAxis int
const (
	ImPlotYAxisLeft          ImPlotYAxis = 0 // left (default)
	ImPlotYAxisFirstOnRight  ImPlotYAxis = 1 // first on right side
	ImPlotYAxisSecondOnRight ImPlotYAxis = 2 // second on right side
)

type ImageButtonWidget

type ImageButtonWidget struct {
	// contains filtered or unexported fields
}

func ImageButton

func ImageButton(texture *Texture) *ImageButtonWidget

func (*ImageButtonWidget) BgColor

func (b *ImageButtonWidget) BgColor(bgColor color.RGBA) *ImageButtonWidget

func (*ImageButtonWidget) Build

func (i *ImageButtonWidget) Build()

func (*ImageButtonWidget) FramePadding

func (b *ImageButtonWidget) FramePadding(padding int) *ImageButtonWidget

func (*ImageButtonWidget) OnClick

func (b *ImageButtonWidget) OnClick(onClick func()) *ImageButtonWidget

func (*ImageButtonWidget) Size

func (b *ImageButtonWidget) Size(width, height float32) *ImageButtonWidget

func (*ImageButtonWidget) TintColor

func (b *ImageButtonWidget) TintColor(tintColor color.RGBA) *ImageButtonWidget

func (*ImageButtonWidget) UV

type ImageState

type ImageState struct {
	// contains filtered or unexported fields
}

func (*ImageState) Dispose

func (is *ImageState) Dispose()

type ImageWidget

type ImageWidget struct {
	// contains filtered or unexported fields
}

func Image

func Image(texture *Texture) *ImageWidget

func (*ImageWidget) BorderCol

func (i *ImageWidget) BorderCol(borderColor color.RGBA) *ImageWidget

func (*ImageWidget) Build

func (i *ImageWidget) Build()

func (*ImageWidget) Size

func (i *ImageWidget) Size(width, height float32) *ImageWidget

func (*ImageWidget) TintColor

func (i *ImageWidget) TintColor(tintColor color.RGBA) *ImageWidget

func (*ImageWidget) Uv

func (i *ImageWidget) Uv(uv0, uv1 image.Point) *ImageWidget

type ImageWithFileWidget

type ImageWithFileWidget struct {
	// contains filtered or unexported fields
}

func ImageWithFile

func ImageWithFile(imgPath string) *ImageWithFileWidget

func (*ImageWithFileWidget) Build

func (i *ImageWithFileWidget) Build()

func (*ImageWithFileWidget) Size

func (i *ImageWithFileWidget) Size(width, height float32) *ImageWithFileWidget

type ImageWithUrlWidget

type ImageWithUrlWidget struct {
	// contains filtered or unexported fields
}

func ImageWithUrl

func ImageWithUrl(url string) *ImageWithUrlWidget

func (*ImageWithUrlWidget) Build

func (i *ImageWithUrlWidget) Build()

func (*ImageWithUrlWidget) LayoutForFailure

func (i *ImageWithUrlWidget) LayoutForFailure(widgets ...Widget) *ImageWithUrlWidget

func (*ImageWithUrlWidget) LayoutForLoading

func (i *ImageWithUrlWidget) LayoutForLoading(widgets ...Widget) *ImageWithUrlWidget

func (*ImageWithUrlWidget) Size

func (i *ImageWithUrlWidget) Size(width, height float32) *ImageWithUrlWidget

func (*ImageWithUrlWidget) Timeout

func (i *ImageWithUrlWidget) Timeout(downloadTimeout time.Duration) *ImageWithUrlWidget

type InputFloatWidget

type InputFloatWidget struct {
	// contains filtered or unexported fields
}

func InputFloat

func InputFloat(label string, value *float32) *InputFloatWidget

func (*InputFloatWidget) Build

func (i *InputFloatWidget) Build()

func (*InputFloatWidget) Flags

func (*InputFloatWidget) Format

func (i *InputFloatWidget) Format(format string) *InputFloatWidget

func (*InputFloatWidget) Size

func (i *InputFloatWidget) Size(width float32) *InputFloatWidget

type InputIntWidget

type InputIntWidget struct {
	// contains filtered or unexported fields
}

func InputInt

func InputInt(label string, value *int32) *InputIntWidget

func (*InputIntWidget) Build

func (i *InputIntWidget) Build()

func (*InputIntWidget) Flags

func (i *InputIntWidget) Flags(flags InputTextFlags) *InputIntWidget

func (*InputIntWidget) OnChange

func (i *InputIntWidget) OnChange(onChange func()) *InputIntWidget

func (*InputIntWidget) Size

func (i *InputIntWidget) Size(width float32) *InputIntWidget

type InputTextFlags

type InputTextFlags int
const (
	// InputTextFlagsNone sets everything default.
	InputTextFlagsNone InputTextFlags = 0
	// InputTextFlagsCharsDecimal allows 0123456789.+-
	InputTextFlagsCharsDecimal InputTextFlags = 1 << 0
	// InputTextFlagsCharsHexadecimal allow 0123456789ABCDEFabcdef
	InputTextFlagsCharsHexadecimal InputTextFlags = 1 << 1
	// InputTextFlagsCharsUppercase turns a..z into A..Z.
	InputTextFlagsCharsUppercase InputTextFlags = 1 << 2
	// InputTextFlagsCharsNoBlank filters out spaces, tabs.
	InputTextFlagsCharsNoBlank InputTextFlags = 1 << 3
	// InputTextFlagsAutoSelectAll selects entire text when first taking mouse focus.
	InputTextFlagsAutoSelectAll InputTextFlags = 1 << 4
	// InputTextFlagsEnterReturnsTrue returns 'true' when Enter is pressed (as opposed to when the value was modified).
	InputTextFlagsEnterReturnsTrue InputTextFlags = 1 << 5
	// InputTextFlagsCallbackCompletion for callback on pressing TAB (for completion handling).
	InputTextFlagsCallbackCompletion InputTextFlags = 1 << 6
	// InputTextFlagsCallbackHistory for callback on pressing Up/Down arrows (for history handling).
	InputTextFlagsCallbackHistory InputTextFlags = 1 << 7
	// InputTextFlagsCallbackAlways for callback on each iteration. User code may query cursor position, modify text buffer.
	InputTextFlagsCallbackAlways InputTextFlags = 1 << 8
	// InputTextFlagsCallbackCharFilter for callback on character inputs to replace or discard them.
	// Modify 'EventChar' to replace or discard, or return 1 in callback to discard.
	InputTextFlagsCallbackCharFilter InputTextFlags = 1 << 9
	// InputTextFlagsAllowTabInput when pressing TAB to input a '\t' character into the text field.
	InputTextFlagsAllowTabInput InputTextFlags = 1 << 10
	// InputTextFlagsCtrlEnterForNewLine in multi-line mode, unfocus with Enter, add new line with Ctrl+Enter
	// (default is opposite: unfocus with Ctrl+Enter, add line with Enter).
	InputTextFlagsCtrlEnterForNewLine InputTextFlags = 1 << 11
	// InputTextFlagsNoHorizontalScroll disables following the cursor horizontally.
	InputTextFlagsNoHorizontalScroll InputTextFlags = 1 << 12
	// InputTextFlagsAlwaysInsertMode sets insert mode.
	InputTextFlagsAlwaysInsertMode InputTextFlags = 1 << 13
	// InputTextFlagsReadOnly sets read-only mode.
	InputTextFlagsReadOnly InputTextFlags = 1 << 14
	// InputTextFlagsPassword sets password mode, display all characters as '*'.
	InputTextFlagsPassword InputTextFlags = 1 << 15
	// InputTextFlagsNoUndoRedo disables undo/redo. Note that input text owns the text data while active,
	// if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID().
	InputTextFlagsNoUndoRedo InputTextFlags = 1 << 16
	// InputTextFlagsCharsScientific allows 0123456789.+-*/eE (Scientific notation input).
	InputTextFlagsCharsScientific InputTextFlags = 1 << 17
)

type InputTextMultilineWidget

type InputTextMultilineWidget struct {
	// contains filtered or unexported fields
}

func InputTextMultiline

func InputTextMultiline(label string, text *string) *InputTextMultilineWidget

func (*InputTextMultilineWidget) Build

func (i *InputTextMultilineWidget) Build()

func (*InputTextMultilineWidget) Callback

func (*InputTextMultilineWidget) Flags

func (*InputTextMultilineWidget) OnChange

func (i *InputTextMultilineWidget) OnChange(onChange func()) *InputTextMultilineWidget

func (*InputTextMultilineWidget) Size

type InputTextWidget

type InputTextWidget struct {
	// contains filtered or unexported fields
}

func InputText

func InputText(label string, value *string) *InputTextWidget

func (*InputTextWidget) Build

func (i *InputTextWidget) Build()

func (*InputTextWidget) Callback

func (*InputTextWidget) Flags

func (*InputTextWidget) OnChange

func (i *InputTextWidget) OnChange(onChange func()) *InputTextWidget

func (*InputTextWidget) Size

func (i *InputTextWidget) Size(width float32) *InputTextWidget

type InvisibleButtonWidget

type InvisibleButtonWidget struct {
	// contains filtered or unexported fields
}

func InvisibleButton

func InvisibleButton(id string) *InvisibleButtonWidget

func (*InvisibleButtonWidget) Build

func (ib *InvisibleButtonWidget) Build()

func (*InvisibleButtonWidget) OnClick

func (b *InvisibleButtonWidget) OnClick(onClick func()) *InvisibleButtonWidget

func (*InvisibleButtonWidget) Size

func (b *InvisibleButtonWidget) Size(width, height float32) *InvisibleButtonWidget

type Key

type Key int
const (
	KeyUnknown      Key = Key(glfw.KeyUnknown)
	KeySpace        Key = Key(glfw.KeySpace)
	KeyApostrophe   Key = Key(glfw.KeyApostrophe)
	KeyComma        Key = Key(glfw.KeyComma)
	KeyMinus        Key = Key(glfw.KeyMinus)
	KeyPeriod       Key = Key(glfw.KeyPeriod)
	KeySlash        Key = Key(glfw.KeySlash)
	Key0            Key = Key(glfw.Key0)
	Key1            Key = Key(glfw.Key1)
	Key2            Key = Key(glfw.Key2)
	Key3            Key = Key(glfw.Key3)
	Key4            Key = Key(glfw.Key4)
	Key5            Key = Key(glfw.Key5)
	Key6            Key = Key(glfw.Key6)
	Key7            Key = Key(glfw.Key7)
	Key8            Key = Key(glfw.Key8)
	Key9            Key = Key(glfw.Key9)
	KeySemicolon    Key = Key(glfw.KeySemicolon)
	KeyEqual        Key = Key(glfw.KeyEqual)
	KeyA            Key = Key(glfw.KeyA)
	KeyB            Key = Key(glfw.KeyB)
	KeyC            Key = Key(glfw.KeyC)
	KeyD            Key = Key(glfw.KeyD)
	KeyE            Key = Key(glfw.KeyE)
	KeyF            Key = Key(glfw.KeyF)
	KeyG            Key = Key(glfw.KeyG)
	KeyH            Key = Key(glfw.KeyH)
	KeyI            Key = Key(glfw.KeyI)
	KeyJ            Key = Key(glfw.KeyJ)
	KeyK            Key = Key(glfw.KeyK)
	KeyL            Key = Key(glfw.KeyL)
	KeyM            Key = Key(glfw.KeyM)
	KeyN            Key = Key(glfw.KeyN)
	KeyO            Key = Key(glfw.KeyO)
	KeyP            Key = Key(glfw.KeyP)
	KeyQ            Key = Key(glfw.KeyQ)
	KeyR            Key = Key(glfw.KeyR)
	KeyS            Key = Key(glfw.KeyS)
	KeyT            Key = Key(glfw.KeyT)
	KeyU            Key = Key(glfw.KeyU)
	KeyV            Key = Key(glfw.KeyV)
	KeyW            Key = Key(glfw.KeyW)
	KeyX            Key = Key(glfw.KeyX)
	KeyY            Key = Key(glfw.KeyY)
	KeyZ            Key = Key(glfw.KeyZ)
	KeyLeftBracket  Key = Key(glfw.KeyLeftBracket)
	KeyBackslash    Key = Key(glfw.KeyBackslash)
	KeyRightBracket Key = Key(glfw.KeyRightBracket)
	KeyGraveAccent  Key = Key(glfw.KeyGraveAccent)
	KeyWorld1       Key = Key(glfw.KeyWorld1)
	KeyWorld2       Key = Key(glfw.KeyWorld2)
	KeyEscape       Key = Key(glfw.KeyEscape)
	KeyEnter        Key = Key(glfw.KeyEnter)
	KeyTab          Key = Key(glfw.KeyTab)
	KeyBackspace    Key = Key(glfw.KeyBackspace)
	KeyInsert       Key = Key(glfw.KeyInsert)
	KeyDelete       Key = Key(glfw.KeyDelete)
	KeyRight        Key = Key(glfw.KeyRight)
	KeyLeft         Key = Key(glfw.KeyLeft)
	KeyDown         Key = Key(glfw.KeyDown)
	KeyUp           Key = Key(glfw.KeyUp)
	KeyPageUp       Key = Key(glfw.KeyPageUp)
	KeyPageDown     Key = Key(glfw.KeyPageDown)
	KeyHome         Key = Key(glfw.KeyHome)
	KeyEnd          Key = Key(glfw.KeyEnd)
	KeyCapsLock     Key = Key(glfw.KeyCapsLock)
	KeyScrollLock   Key = Key(glfw.KeyScrollLock)
	KeyNumLock      Key = Key(glfw.KeyNumLock)
	KeyPrintScreen  Key = Key(glfw.KeyPrintScreen)
	KeyPause        Key = Key(glfw.KeyPause)
	KeyF1           Key = Key(glfw.KeyF1)
	KeyF2           Key = Key(glfw.KeyF2)
	KeyF3           Key = Key(glfw.KeyF3)
	KeyF4           Key = Key(glfw.KeyF4)
	KeyF5           Key = Key(glfw.KeyF5)
	KeyF6           Key = Key(glfw.KeyF6)
	KeyF7           Key = Key(glfw.KeyF7)
	KeyF8           Key = Key(glfw.KeyF8)
	KeyF9           Key = Key(glfw.KeyF9)
	KeyF10          Key = Key(glfw.KeyF10)
	KeyF11          Key = Key(glfw.KeyF11)
	KeyF12          Key = Key(glfw.KeyF12)
	KeyF13          Key = Key(glfw.KeyF13)
	KeyF14          Key = Key(glfw.KeyF14)
	KeyF15          Key = Key(glfw.KeyF15)
	KeyF16          Key = Key(glfw.KeyF16)
	KeyF17          Key = Key(glfw.KeyF17)
	KeyF18          Key = Key(glfw.KeyF18)
	KeyF19          Key = Key(glfw.KeyF19)
	KeyF20          Key = Key(glfw.KeyF20)
	KeyF21          Key = Key(glfw.KeyF21)
	KeyF22          Key = Key(glfw.KeyF22)
	KeyF23          Key = Key(glfw.KeyF23)
	KeyF24          Key = Key(glfw.KeyF24)
	KeyF25          Key = Key(glfw.KeyF25)
	KeyKP0          Key = Key(glfw.KeyKP0)
	KeyKP1          Key = Key(glfw.KeyKP1)
	KeyKP2          Key = Key(glfw.KeyKP2)
	KeyKP3          Key = Key(glfw.KeyKP3)
	KeyKP4          Key = Key(glfw.KeyKP4)
	KeyKP5          Key = Key(glfw.KeyKP5)
	KeyKP6          Key = Key(glfw.KeyKP6)
	KeyKP7          Key = Key(glfw.KeyKP7)
	KeyKP8          Key = Key(glfw.KeyKP8)
	KeyKP9          Key = Key(glfw.KeyKP9)
	KeyKPDecimal    Key = Key(glfw.KeyKPDecimal)
	KeyKPDivide     Key = Key(glfw.KeyKPDivide)
	KeyKPMultiply   Key = Key(glfw.KeyKPMultiply)
	KeyKPSubtract   Key = Key(glfw.KeyKPSubtract)
	KeyKPAdd        Key = Key(glfw.KeyKPAdd)
	KeyKPEnter      Key = Key(glfw.KeyKPEnter)
	KeyKPEqual      Key = Key(glfw.KeyKPEqual)
	KeyLeftShift    Key = Key(glfw.KeyLeftShift)
	KeyLeftControl  Key = Key(glfw.KeyLeftControl)
	KeyLeftAlt      Key = Key(glfw.KeyLeftAlt)
	KeyLeftSuper    Key = Key(glfw.KeyLeftSuper)
	KeyRightShift   Key = Key(glfw.KeyRightShift)
	KeyRightControl Key = Key(glfw.KeyRightControl)
	KeyRightAlt     Key = Key(glfw.KeyRightAlt)
	KeyRightSuper   Key = Key(glfw.KeyRightSuper)
	KeyMenu         Key = Key(glfw.KeyMenu)
	KeyLast         Key = Key(glfw.KeyLast)
)

These key codes are inspired by the USB HID Usage Tables v1.12 (p. 53-60), but re-arranged to map to 7-bit ASCII for printable keys (function keys are put in the 256+ range).

type LabelWidget

type LabelWidget struct {
	// contains filtered or unexported fields
}

func Label

func Label(label string) *LabelWidget

func (*LabelWidget) Build

func (l *LabelWidget) Build()

func (*LabelWidget) Color

func (l *LabelWidget) Color(color *color.RGBA) *LabelWidget

func (*LabelWidget) Font

func (l *LabelWidget) Font(font *imgui.Font) *LabelWidget

func (*LabelWidget) Wrapped

func (l *LabelWidget) Wrapped(wrapped bool) *LabelWidget

type Layout

type Layout []Widget

func PrepareMsgbox

func PrepareMsgbox() Layout

Embed various Msgboxs to layout. Invoke this function in the same layout level where you call g.Msgbox.

func RangeBuilder

func RangeBuilder(id string, values []interface{}, builder func(int, interface{}) Widget) Layout

Batch create widgets and render only which is visible.

func (Layout) Build

func (l Layout) Build()

type LineWidget

type LineWidget struct {
	// contains filtered or unexported fields
}

func Line

func Line(widgets ...Widget) *LineWidget

func (*LineWidget) Build

func (l *LineWidget) Build()

type ListBoxState

type ListBoxState struct {
	// contains filtered or unexported fields
}

func (*ListBoxState) Dispose

func (s *ListBoxState) Dispose()

type ListBoxWidget

type ListBoxWidget struct {
	// contains filtered or unexported fields
}

func ListBox

func ListBox(id string, items []string) *ListBoxWidget

func (*ListBoxWidget) Border

func (l *ListBoxWidget) Border(b bool) *ListBoxWidget

func (*ListBoxWidget) Build

func (l *ListBoxWidget) Build()

func (*ListBoxWidget) ContextMenu

func (l *ListBoxWidget) ContextMenu(menuItems []string) *ListBoxWidget

func (*ListBoxWidget) OnChange

func (l *ListBoxWidget) OnChange(onChange func(selectedIndex int)) *ListBoxWidget

func (*ListBoxWidget) OnDClick

func (l *ListBoxWidget) OnDClick(onDClick func(selectedIndex int)) *ListBoxWidget

func (*ListBoxWidget) OnMenu

func (l *ListBoxWidget) OnMenu(onMenu func(selectedIndex int, menu string)) *ListBoxWidget

func (*ListBoxWidget) Size

func (l *ListBoxWidget) Size(width, height float32) *ListBoxWidget
type MainMenuBarWidget struct {
	// contains filtered or unexported fields
}
func MainMenuBar() *MainMenuBarWidget
func (m *MainMenuBarWidget) Build()
func (m *MainMenuBarWidget) Layout(widgets ...Widget) *MainMenuBarWidget

type MasterWindow

type MasterWindow struct {
	// contains filtered or unexported fields
}

func NewMasterWindow

func NewMasterWindow(title string, width, height int, flags MasterWindowFlags, loadFontFunc func()) *MasterWindow

func (*MasterWindow) GetPos

func (w *MasterWindow) GetPos() (x, y int)

Return position of master window.

func (*MasterWindow) GetSize

func (w *MasterWindow) GetSize() (width, height int)

Return size of master window.

func (*MasterWindow) Run

func (w *MasterWindow) Run(loopFunc func())

Call the main loop. loopFunc will be used to construct the ui.

func (*MasterWindow) SetBgColor

func (w *MasterWindow) SetBgColor(color color.RGBA)

Set background color of master window.

func (*MasterWindow) SetDropCallback

func (w *MasterWindow) SetDropCallback(cb func([]string))

func (*MasterWindow) SetPos

func (w *MasterWindow) SetPos(x, y int)

Set position of master window.

func (*MasterWindow) SetSize

func (w *MasterWindow) SetSize(x, y int)

type MasterWindowFlags

type MasterWindowFlags imgui.GLFWWindowFlags
const (
	// Specifies the window will be fixed size.
	MasterWindowFlagsNotResizable MasterWindowFlags = MasterWindowFlags(imgui.GLFWWindowFlagsNotResizable)
	// Specifies whether the window is maximized.
	MasterWindowFlagsMaximized MasterWindowFlags = MasterWindowFlags(imgui.GLFWWindowFlagsMaximized)
	// Specifies whether the window will be always-on-top.
	MasterWindowFlagsFloating MasterWindowFlags = MasterWindowFlags(imgui.GLFWWindowFlagsFloating)
	// Specifies whether the window will be frameless.
	MasterWindowFlagsFrameless MasterWindowFlags = MasterWindowFlags(imgui.GLFWWindowFlagsFrameless)
	// Specifies whether the window will be transparent.
	MasterWindowFlagsTransparent MasterWindowFlags = MasterWindowFlags(imgui.GLFWWindowFlagsTransparent)
)
type MenuBarWidget struct {
	// contains filtered or unexported fields
}
func MenuBar() *MenuBarWidget
func (m *MenuBarWidget) Build()
func (m *MenuBarWidget) Layout(widgets ...Widget) *MenuBarWidget
type MenuItemWidget struct {
	// contains filtered or unexported fields
}
func MenuItem(label string) *MenuItemWidget
func (m *MenuItemWidget) Build()
func (m *MenuItemWidget) Enabled(e bool) *MenuItemWidget
func (m *MenuItemWidget) OnClick(onClick func()) *MenuItemWidget
func (m *MenuItemWidget) Selected(s bool) *MenuItemWidget
type MenuWidget struct {
	// contains filtered or unexported fields
}
func Menu(label string) *MenuWidget
func (m *MenuWidget) Build()
func (m *MenuWidget) Enabled(e bool) *MenuWidget
func (m *MenuWidget) Layout(widgets ...Widget) *MenuWidget

type MouseButton

type MouseButton int
const (
	MouseButtonLeft   MouseButton = 0
	MouseButtonRight  MouseButton = 1
	MouseButtonMiddle MouseButton = 2
)

type MouseCursorType

type MouseCursorType int
const (
	// MouseCursorNone no mouse cursor
	MouseCursorNone MouseCursorType = -1
	// MouseCursorArrow standard arrow mouse cursor
	MouseCursorArrow MouseCursorType = 0
	// MouseCursorTextInput when hovering over InputText, etc.
	MouseCursorTextInput MouseCursorType = 1
	// MouseCursorResizeAll (Unused by imgui functions)
	MouseCursorResizeAll MouseCursorType = 2
	// MouseCursorResizeNS when hovering over an horizontal border
	MouseCursorResizeNS MouseCursorType = 3
	// MouseCursorResizeEW when hovering over a vertical border or a column
	MouseCursorResizeEW MouseCursorType = 4
	// MouseCursorResizeNESW when hovering over the bottom-left corner of a window
	MouseCursorResizeNESW MouseCursorType = 5
	// MouseCursorResizeNWSE when hovering over the bottom-right corner of a window
	MouseCursorResizeNWSE MouseCursorType = 6
	// MouseCursorHand (Unused by imgui functions. Use for e.g. hyperlinks)
	MouseCursorHand  MouseCursorType = 7
	MouseCursorCount MouseCursorType = 8
)

type MsgboxButtons

type MsgboxButtons uint8
const (
	MsgboxButtonsYesNo MsgboxButtons = 1 << iota
	MsgboxButtonsOkCancel
	MsgboxButtonsOk
)

type MsgboxState

type MsgboxState struct {
	// contains filtered or unexported fields
}

func (*MsgboxState) Dispose

func (ms *MsgboxState) Dispose()

type PlotBarHWidget

type PlotBarHWidget struct {
	// contains filtered or unexported fields
}

func PlotBarH

func PlotBarH(title string, data []float64) *PlotBarHWidget

func (*PlotBarHWidget) Height

func (p *PlotBarHWidget) Height(height float64) *PlotBarHWidget

func (*PlotBarHWidget) Offset

func (p *PlotBarHWidget) Offset(offset int) *PlotBarHWidget

func (*PlotBarHWidget) Plot

func (p *PlotBarHWidget) Plot()

func (*PlotBarHWidget) Shift

func (p *PlotBarHWidget) Shift(shift float64) *PlotBarHWidget

type PlotBarWidget

type PlotBarWidget struct {
	// contains filtered or unexported fields
}

func PlotBar

func PlotBar(title string, data []float64) *PlotBarWidget

func (*PlotBarWidget) Offset

func (p *PlotBarWidget) Offset(offset int) *PlotBarWidget

func (*PlotBarWidget) Plot

func (p *PlotBarWidget) Plot()

func (*PlotBarWidget) Shift

func (p *PlotBarWidget) Shift(shift float64) *PlotBarWidget

func (*PlotBarWidget) Width

func (p *PlotBarWidget) Width(width float64) *PlotBarWidget

type PlotCanvasWidget

type PlotCanvasWidget struct {
	// contains filtered or unexported fields
}

func Plot

func Plot(title string) *PlotCanvasWidget

func (*PlotCanvasWidget) AxisLimits

func (p *PlotCanvasWidget) AxisLimits(xmin, xmax, ymin, ymax float64, cond ExecCondition) *PlotCanvasWidget

func (*PlotCanvasWidget) Build

func (p *PlotCanvasWidget) Build()

func (*PlotCanvasWidget) Flags

func (*PlotCanvasWidget) Plots

func (p *PlotCanvasWidget) Plots(plots ...PlotWidget) *PlotCanvasWidget

func (*PlotCanvasWidget) Size

func (p *PlotCanvasWidget) Size(width, height int) *PlotCanvasWidget

func (*PlotCanvasWidget) XAxeFlags

func (*PlotCanvasWidget) XTicks

func (p *PlotCanvasWidget) XTicks(ticks []PlotTicker, showDefault bool) *PlotCanvasWidget

func (*PlotCanvasWidget) YAxeFlags

func (p *PlotCanvasWidget) YAxeFlags(yFlags, y2Flags, y3Flags imgui.ImPlotAxisFlags) *PlotCanvasWidget

func (*PlotCanvasWidget) YTicks

func (p *PlotCanvasWidget) YTicks(ticks []PlotTicker, showDefault bool, yAxis ImPlotYAxis) *PlotCanvasWidget

type PlotLineWidget

type PlotLineWidget struct {
	// contains filtered or unexported fields
}

func PlotLine

func PlotLine(title string, values []float64) *PlotLineWidget

func (*PlotLineWidget) Offset

func (p *PlotLineWidget) Offset(offset int) *PlotLineWidget

func (*PlotLineWidget) Plot

func (p *PlotLineWidget) Plot()

func (*PlotLineWidget) X0

func (*PlotLineWidget) XScale

func (p *PlotLineWidget) XScale(scale float64) *PlotLineWidget

type PlotLineXYWidget

type PlotLineXYWidget struct {
	// contains filtered or unexported fields
}

func PlotLineXY

func PlotLineXY(title string, xvalues, yvalues []float64) *PlotLineXYWidget

func (*PlotLineXYWidget) Offset

func (p *PlotLineXYWidget) Offset(offset int) *PlotLineXYWidget

func (*PlotLineXYWidget) Plot

func (p *PlotLineXYWidget) Plot()

type PlotPieChartWidget

type PlotPieChartWidget struct {
	// contains filtered or unexported fields
}

func PlotPieChart

func PlotPieChart(labels []string, values []float64, x, y, radius float64) *PlotPieChartWidget

func (*PlotPieChartWidget) Angle0

func (*PlotPieChartWidget) LabelFormat

func (p *PlotPieChartWidget) LabelFormat(fmtStr string) *PlotPieChartWidget

func (*PlotPieChartWidget) Normalize

func (p *PlotPieChartWidget) Normalize(n bool) *PlotPieChartWidget

func (*PlotPieChartWidget) Plot

func (p *PlotPieChartWidget) Plot()

type PlotScatterWidget

type PlotScatterWidget struct {
	// contains filtered or unexported fields
}

func PlotScatter

func PlotScatter(label string, values []float64) *PlotScatterWidget

func (*PlotScatterWidget) Offset

func (p *PlotScatterWidget) Offset(offset int) *PlotScatterWidget

func (*PlotScatterWidget) Plot

func (p *PlotScatterWidget) Plot()

func (*PlotScatterWidget) X0

func (*PlotScatterWidget) XScale

type PlotScatterXYWidget

type PlotScatterXYWidget struct {
	// contains filtered or unexported fields
}

func PlotScatterXY

func PlotScatterXY(label string, xs, ys []float64) *PlotScatterXYWidget

func (*PlotScatterXYWidget) Offset

func (p *PlotScatterXYWidget) Offset(offset int) *PlotScatterXYWidget

func (*PlotScatterXYWidget) Plot

func (p *PlotScatterXYWidget) Plot()

type PlotTicker

type PlotTicker struct {
	Position float64
	Label    string
}

type PlotWidget

type PlotWidget interface {
	Plot()
}

type PopupModalWidget

type PopupModalWidget struct {
	// contains filtered or unexported fields
}

func PopupModal

func PopupModal(name string) *PopupModalWidget

func (*PopupModalWidget) Build

func (p *PopupModalWidget) Build()

func (*PopupModalWidget) Flags

func (*PopupModalWidget) IsOpen

func (p *PopupModalWidget) IsOpen(open *bool) *PopupModalWidget

func (*PopupModalWidget) Layout

func (p *PopupModalWidget) Layout(widgets ...Widget) *PopupModalWidget

type PopupWidget

type PopupWidget struct {
	// contains filtered or unexported fields
}
func Popup(name string) *PopupWidget

func (*PopupWidget) Build

func (p *PopupWidget) Build()

func (*PopupWidget) Flags

func (p *PopupWidget) Flags(flags WindowFlags) *PopupWidget

func (*PopupWidget) Layout

func (p *PopupWidget) Layout(widgets ...Widget) *PopupWidget

type ProgressBarWidget

type ProgressBarWidget struct {
	// contains filtered or unexported fields
}

func ProgressBar

func ProgressBar(fraction float32) *ProgressBarWidget

func (*ProgressBarWidget) Build

func (p *ProgressBarWidget) Build()

func (*ProgressBarWidget) Overlay

func (p *ProgressBarWidget) Overlay(overlay string) *ProgressBarWidget

func (*ProgressBarWidget) Size

func (p *ProgressBarWidget) Size(width, height float32) *ProgressBarWidget

type ProgressIndicatorState

type ProgressIndicatorState struct {
	// contains filtered or unexported fields
}

func (*ProgressIndicatorState) Dispose

func (ps *ProgressIndicatorState) Dispose()

func (*ProgressIndicatorState) Update

func (ps *ProgressIndicatorState) Update()

type ProgressIndicatorWidget

type ProgressIndicatorWidget struct {
	// contains filtered or unexported fields
}

func ProgressIndicator

func ProgressIndicator(id, label string, width, height, radius float32) *ProgressIndicatorWidget

func (*ProgressIndicatorWidget) Build

func (p *ProgressIndicatorWidget) Build()

type RadioButtonWidget

type RadioButtonWidget struct {
	// contains filtered or unexported fields
}

func RadioButton

func RadioButton(text string, active bool) *RadioButtonWidget

func (*RadioButtonWidget) Build

func (r *RadioButtonWidget) Build()

func (*RadioButtonWidget) OnChange

func (r *RadioButtonWidget) OnChange(onChange func()) *RadioButtonWidget

type RowWidget

type RowWidget struct {
	// contains filtered or unexported fields
}

func Row

func Row(widgets ...Widget) *RowWidget

func (*RowWidget) BgColor

func (r *RowWidget) BgColor(c *color.RGBA) *RowWidget

func (*RowWidget) Build

func (r *RowWidget) Build()

func (*RowWidget) Flags

func (r *RowWidget) Flags(flags imgui.TableRowFlags) *RowWidget

func (*RowWidget) MinHeight

func (r *RowWidget) MinHeight(height float64) *RowWidget

type SelectableFlags

type SelectableFlags int
const (
	// SelectableFlagsNone default SelectableFlags = 0
	SelectableFlagsNone SelectableFlags = 0
	// SelectableFlagsDontClosePopups makes clicking the selectable not close any parent popup windows.
	SelectableFlagsDontClosePopups SelectableFlags = 1 << 0
	// SelectableFlagsSpanAllColumns allows the selectable frame to span all columns (text will still fit in current column).
	SelectableFlagsSpanAllColumns SelectableFlags = 1 << 1
	// SelectableFlagsAllowDoubleClick generates press events on double clicks too.
	SelectableFlagsAllowDoubleClick SelectableFlags = 1 << 2
	// SelectableFlagsDisabled disallows selection and displays text in a greyed out color.
	SelectableFlagsDisabled SelectableFlags = 1 << 3
)

type SelectableWidget

type SelectableWidget struct {
	// contains filtered or unexported fields
}

func Selectable

func Selectable(label string) *SelectableWidget

func (*SelectableWidget) Build

func (s *SelectableWidget) Build()

func (*SelectableWidget) Flags

func (*SelectableWidget) OnClick

func (s *SelectableWidget) OnClick(onClick func()) *SelectableWidget

func (*SelectableWidget) Selected

func (s *SelectableWidget) Selected(selected bool) *SelectableWidget

func (*SelectableWidget) Size

func (s *SelectableWidget) Size(width, height float32) *SelectableWidget

type SeparatorWidget

type SeparatorWidget struct{}

func Separator

func Separator() *SeparatorWidget

func (*SeparatorWidget) Build

func (s *SeparatorWidget) Build()

type SliderFloatWidget

type SliderFloatWidget struct {
	// contains filtered or unexported fields
}

func SliderFloat

func SliderFloat(label string, value *float32, min, max float32) *SliderFloatWidget

func (*SliderFloatWidget) Build

func (sf *SliderFloatWidget) Build()

func (*SliderFloatWidget) Format

func (s *SliderFloatWidget) Format(format string) *SliderFloatWidget

type SliderIntWidget

type SliderIntWidget struct {
	// contains filtered or unexported fields
}

func SliderInt

func SliderInt(label string, value *int32, min, max int32) *SliderIntWidget

func (*SliderIntWidget) Build

func (s *SliderIntWidget) Build()

func (*SliderIntWidget) Format

func (s *SliderIntWidget) Format(format string) *SliderIntWidget

type SmallButtonWidget

type SmallButtonWidget struct {
	// contains filtered or unexported fields
}

func SmallButton

func SmallButton(id string) *SmallButtonWidget

func (*SmallButtonWidget) Build

func (sb *SmallButtonWidget) Build()

func (*SmallButtonWidget) OnClick

func (b *SmallButtonWidget) OnClick(onClick func()) *SmallButtonWidget

type SpacingWidget

type SpacingWidget struct{}

func Spacing

func Spacing() *SpacingWidget

func (*SpacingWidget) Build

func (s *SpacingWidget) Build()

type SplitDirection

type SplitDirection uint8
const (
	DirectionHorizontal SplitDirection = 1 << iota
	DirectionVertical
)

type SplitLayoutState

type SplitLayoutState struct {
	// contains filtered or unexported fields
}

func (*SplitLayoutState) Dispose

func (s *SplitLayoutState) Dispose()

type SplitLayoutWidget

type SplitLayoutWidget struct {
	// contains filtered or unexported fields
}

func SplitLayout

func SplitLayout(id string, direction SplitDirection, border bool, sashPos float32, layout1, layout2 Widget) *SplitLayoutWidget

func (*SplitLayoutWidget) Build

func (s *SplitLayoutWidget) Build()

type TabBarFlags

type TabBarFlags int
const (
	// TabBarFlagsNone default TabBarFlags = 0.
	TabBarFlagsNone TabBarFlags = 0
	// TabBarFlagsReorderable Allow manually dragging tabs to re-order them + New tabs are appended at the end of list
	TabBarFlagsReorderable TabBarFlags = 1 << 0
	// TabBarFlagsAutoSelectNewTabs Automatically select new tabs when they appear
	TabBarFlagsAutoSelectNewTabs TabBarFlags = 1 << 1
	// TabBarFlagsTabListPopupButton Disable buttons to open the tab list popup
	TabBarFlagsTabListPopupButton TabBarFlags = 1 << 2
	// TabBarFlagsNoCloseWithMiddleMouseButton Disable behavior of closing tabs (that are submitted with p_open != NULL)
	// with middle mouse button. You can still repro this behavior on user's side with if
	// (IsItemHovered() && IsMouseClicked(2)) *p_open TabBarFlags = false.
	TabBarFlagsNoCloseWithMiddleMouseButton TabBarFlags = 1 << 3
	// TabBarFlagsNoTabListScrollingButtons Disable scrolling buttons (apply when fitting policy is
	// TabBarFlagsFittingPolicyScroll)
	TabBarFlagsNoTabListScrollingButtons TabBarFlags = 1 << 4
	// TabBarFlagsNoTooltip Disable tooltips when hovering a tab
	TabBarFlagsNoTooltip TabBarFlags = 1 << 5
	// TabBarFlagsFittingPolicyResizeDown Resize tabs when they don't fit
	TabBarFlagsFittingPolicyResizeDown TabBarFlags = 1 << 6
	// TabBarFlagsFittingPolicyScroll Add scroll buttons when tabs don't fit
	TabBarFlagsFittingPolicyScroll TabBarFlags = 1 << 7
	// TabBarFlagsFittingPolicyMask combines
	// TabBarFlagsFittingPolicyResizeDown and TabBarFlagsFittingPolicyScroll
	TabBarFlagsFittingPolicyMask TabBarFlags = TabBarFlagsFittingPolicyResizeDown | TabBarFlagsFittingPolicyScroll
	// TabBarFlagsFittingPolicyDefault alias for TabBarFlagsFittingPolicyResizeDown
	TabBarFlagsFittingPolicyDefault TabBarFlags = TabBarFlagsFittingPolicyResizeDown
)

type TabBarWidget

type TabBarWidget struct {
	// contains filtered or unexported fields
}

func TabBar

func TabBar(id string) *TabBarWidget

func (*TabBarWidget) Build

func (t *TabBarWidget) Build()

func (*TabBarWidget) Flags

func (t *TabBarWidget) Flags(flags TabBarFlags) *TabBarWidget

func (*TabBarWidget) Layout

func (t *TabBarWidget) Layout(widgets ...Widget) *TabBarWidget

type TabItemFlags

type TabItemFlags int
const (
	// TabItemFlagsNone default TabItemFlags = 0
	TabItemFlagsNone TabItemFlags = 0
	// TabItemFlagsUnsavedDocument Append '*' to title without affecting the ID, as a convenience to avoid using the
	// ### operator. Also: tab is selected on closure and closure is deferred by one frame to allow code to undo it
	// without flicker.
	TabItemFlagsUnsavedDocument TabItemFlags = 1 << 0
	// TabItemFlagsSetSelected Trigger flag to programmatically make the tab selected when calling BeginTabItem()
	TabItemFlagsSetSelected TabItemFlags = 1 << 1
	// TabItemFlagsNoCloseWithMiddleMouseButton  Disable behavior of closing tabs (that are submitted with
	// p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if
	// (IsItemHovered() && IsMouseClicked(2)) *p_open TabItemFlags = false.
	TabItemFlagsNoCloseWithMiddleMouseButton TabItemFlags = 1 << 2
	// TabItemFlagsNoPushID Don't call PushID(tab->ID)/PopID() on BeginTabItem()/EndTabItem()
	TabItemFlagsNoPushID TabItemFlags = 1 << 3
)

type TabItemWidget

type TabItemWidget struct {
	// contains filtered or unexported fields
}

func TabItem

func TabItem(label string) *TabItemWidget

func (*TabItemWidget) Build

func (t *TabItemWidget) Build()

func (*TabItemWidget) Flags

func (t *TabItemWidget) Flags(flags TabItemFlags) *TabItemWidget

func (*TabItemWidget) IsOpen

func (t *TabItemWidget) IsOpen(open *bool) *TabItemWidget

func (*TabItemWidget) Layout

func (t *TabItemWidget) Layout(widgets ...Widget) *TabItemWidget

type TableWidget

type TableWidget struct {
	// contains filtered or unexported fields
}

func Table

func Table(label string) *TableWidget

func (*TableWidget) Build

func (t *TableWidget) Build()

func (*TableWidget) Columns

func (t *TableWidget) Columns(cols ...*ColumnWidget) *TableWidget

func (*TableWidget) FastMode

func (t *TableWidget) FastMode(b bool) *TableWidget

Display visible rows only to boost performance.

func (*TableWidget) Flags

func (t *TableWidget) Flags(flags imgui.TableFlags) *TableWidget

func (*TableWidget) Freeze

func (t *TableWidget) Freeze(col, row int) *TableWidget

Freeze columns/rows so they stay visible when scrolled.

func (*TableWidget) InnerWidth

func (t *TableWidget) InnerWidth(width float64) *TableWidget

func (*TableWidget) Rows

func (t *TableWidget) Rows(rows ...*RowWidget) *TableWidget

func (*TableWidget) Size

func (t *TableWidget) Size(width, height float32) *TableWidget

type Texture

type Texture struct {
	// contains filtered or unexported fields
}

func NewTextureFromRgba

func NewTextureFromRgba(rgba *image.RGBA) (*Texture, error)

Create new texture from rgba. Note: this function has to be invokded in a go routine. If call this in mainthread will result in stuck.

func ToTexture

func ToTexture(textureID imgui.TextureID) *Texture

ToTexture converts imgui.TextureID to Texture.

type TooltipWidget

type TooltipWidget struct {
	// contains filtered or unexported fields
}

func Tooltip

func Tooltip(tip string) *TooltipWidget

func (*TooltipWidget) Build

func (t *TooltipWidget) Build()

func (*TooltipWidget) Layout

func (t *TooltipWidget) Layout(widgets ...Widget) *TooltipWidget

type TreeNodeFlags

type TreeNodeFlags int
const (
	// TreeNodeFlagsNone default TreeNodeFlags = 0
	TreeNodeFlagsNone TreeNodeFlags = 0
	// TreeNodeFlagsSelected draws as selected.
	TreeNodeFlagsSelected TreeNodeFlags = 1 << 0
	// TreeNodeFlagsFramed draws full colored frame (e.g. for CollapsingHeader).
	TreeNodeFlagsFramed TreeNodeFlags = 1 << 1
	// TreeNodeFlagsAllowItemOverlap hit testing to allow subsequent widgets to overlap this one.
	TreeNodeFlagsAllowItemOverlap TreeNodeFlags = 1 << 2
	// TreeNodeFlagsNoTreePushOnOpen doesn't do a TreePush() when open
	// (e.g. for CollapsingHeader) TreeNodeFlags = no extra indent nor pushing on ID stack.
	TreeNodeFlagsNoTreePushOnOpen TreeNodeFlags = 1 << 3
	// TreeNodeFlagsNoAutoOpenOnLog doesn't automatically and temporarily open node when Logging is active
	// (by default logging will automatically open tree nodes).
	TreeNodeFlagsNoAutoOpenOnLog TreeNodeFlags = 1 << 4
	// TreeNodeFlagsDefaultOpen defaults node to be open.
	TreeNodeFlagsDefaultOpen TreeNodeFlags = 1 << 5
	// TreeNodeFlagsOpenOnDoubleClick needs double-click to open node.
	TreeNodeFlagsOpenOnDoubleClick TreeNodeFlags = 1 << 6
	// TreeNodeFlagsOpenOnArrow opens only when clicking on the arrow part.
	// If TreeNodeFlagsOpenOnDoubleClick is also set, single-click arrow or double-click all box to open.
	TreeNodeFlagsOpenOnArrow TreeNodeFlags = 1 << 7
	// TreeNodeFlagsLeaf allows no collapsing, no arrow (use as a convenience for leaf nodes).
	TreeNodeFlagsLeaf TreeNodeFlags = 1 << 8
	// TreeNodeFlagsBullet displays a bullet instead of an arrow.
	TreeNodeFlagsBullet TreeNodeFlags = 1 << 9
	// TreeNodeFlagsFramePadding uses FramePadding (even for an unframed text node) to
	// vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding().
	TreeNodeFlagsFramePadding TreeNodeFlags = 1 << 10
	// TreeNodeFlagsSpanAvailWidth extends hit box to the right-most edge, even if not framed.
	// This is not the default in order to allow adding other items on the same line.
	// In the future we may refactor the hit system to be front-to-back, allowing natural overlaps
	// and then this can become the default.
	TreeNodeFlagsSpanAvailWidth TreeNodeFlags = 1 << 11
	// TreeNodeFlagsSpanFullWidth extends hit box to the left-most and right-most edges (bypass the indented area).
	TreeNodeFlagsSpanFullWidth TreeNodeFlags = 1 << 12
	// TreeNodeFlagsNavLeftJumpsBackHere (WIP) Nav: left direction may move to this TreeNode() from any of its child
	// (items submitted between TreeNode and TreePop)
	TreeNodeFlagsNavLeftJumpsBackHere TreeNodeFlags = 1 << 13
	// TreeNodeFlagsCollapsingHeader combines TreeNodeFlagsFramed and TreeNodeFlagsNoAutoOpenOnLog.
	TreeNodeFlagsCollapsingHeader TreeNodeFlags = TreeNodeFlagsFramed | TreeNodeFlagsNoTreePushOnOpen | TreeNodeFlagsNoAutoOpenOnLog
)

type TreeNodeWidget

type TreeNodeWidget struct {
	// contains filtered or unexported fields
}

func TreeNode

func TreeNode(label string) *TreeNodeWidget

func (*TreeNodeWidget) Build

func (t *TreeNodeWidget) Build()

func (*TreeNodeWidget) Event

func (t *TreeNodeWidget) Event(handler func()) *TreeNodeWidget

Create TreeNode with eventHandler You could detect events (e.g. IsItemClicked IsMouseDoubleClicked etc...) and handle them for TreeNode inside eventHandler

func (*TreeNodeWidget) Flags

func (t *TreeNodeWidget) Flags(flags TreeNodeFlags) *TreeNodeWidget

func (*TreeNodeWidget) Layout

func (t *TreeNodeWidget) Layout(widgets ...Widget) *TreeNodeWidget

type VSplitterWidget

type VSplitterWidget struct {
	// contains filtered or unexported fields
}

func VSplitter

func VSplitter(id string, delta *float32) *VSplitterWidget

func (*VSplitterWidget) Build

func (v *VSplitterWidget) Build()

func (*VSplitterWidget) Size

func (v *VSplitterWidget) Size(width, height float32) *VSplitterWidget

type Widget

type Widget interface {
	Build()
}

type WindowFlags

type WindowFlags int
const (
	// WindowFlagsNone default WindowFlags = 0
	WindowFlagsNone WindowFlags = 0
	// WindowFlagsNoTitleBar disables title-bar.
	WindowFlagsNoTitleBar WindowFlags = 1 << 0
	// WindowFlagsNoResize disables user resizing with the lower-right grip.
	WindowFlagsNoResize WindowFlags = 1 << 1
	// WindowFlagsNoMove disables user moving the window.
	WindowFlagsNoMove WindowFlags = 1 << 2
	// WindowFlagsNoScrollbar disables scrollbars. Window can still scroll with mouse or programmatically.
	WindowFlagsNoScrollbar WindowFlags = 1 << 3
	// WindowFlagsNoScrollWithMouse disables user vertically scrolling with mouse wheel. On child window, mouse wheel
	// will be forwarded to the parent unless NoScrollbar is also set.
	WindowFlagsNoScrollWithMouse WindowFlags = 1 << 4
	// WindowFlagsNoCollapse disables user collapsing window by double-clicking on it.
	WindowFlagsNoCollapse WindowFlags = 1 << 5
	// WindowFlagsAlwaysAutoResize resizes every window to its content every frame.
	WindowFlagsAlwaysAutoResize WindowFlags = 1 << 6
	// WindowFlagsNoBackground disables drawing background color (WindowBg, etc.) and outside border. Similar as using
	// SetNextWindowBgAlpha(0.0f).
	WindowFlagsNoBackground WindowFlags = 1 << 7
	// WindowFlagsNoSavedSettings will never load/save settings in .ini file.
	WindowFlagsNoSavedSettings WindowFlags = 1 << 8
	// WindowFlagsNoMouseInputs disables catching mouse, hovering test with pass through.
	WindowFlagsNoMouseInputs WindowFlags = 1 << 9
	// WindowFlagsMenuBar has a menu-bar.
	WindowFlagsMenuBar WindowFlags = 1 << 10
	// WindowFlagsHorizontalScrollbar allows horizontal scrollbar to appear (off by default). You may use
	// SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo
	// in the "Horizontal Scrolling" section.
	WindowFlagsHorizontalScrollbar WindowFlags = 1 << 11
	// WindowFlagsNoFocusOnAppearing disables taking focus when transitioning from hidden to visible state.
	WindowFlagsNoFocusOnAppearing WindowFlags = 1 << 12
	// WindowFlagsNoBringToFrontOnFocus disables bringing window to front when taking focus. e.g. clicking on it or
	// programmatically giving it focus.
	WindowFlagsNoBringToFrontOnFocus WindowFlags = 1 << 13
	// WindowFlagsAlwaysVerticalScrollbar always shows vertical scrollbar, even if ContentSize.y < Size.y .
	WindowFlagsAlwaysVerticalScrollbar WindowFlags = 1 << 14
	// WindowFlagsAlwaysHorizontalScrollbar always shows horizontal scrollbar, even if ContentSize.x < Size.x .
	WindowFlagsAlwaysHorizontalScrollbar WindowFlags = 1 << 15
	// WindowFlagsAlwaysUseWindowPadding ensures child windows without border uses style.WindowPadding (ignored by
	// default for non-bordered child windows, because more convenient).
	WindowFlagsAlwaysUseWindowPadding WindowFlags = 1 << 16
	// WindowFlagsNoNavInputs has no gamepad/keyboard navigation within the window.
	WindowFlagsNoNavInputs WindowFlags = 1 << 18
	// WindowFlagsNoNavFocus has no focusing toward this window with gamepad/keyboard navigation
	// (e.g. skipped by CTRL+TAB)
	WindowFlagsNoNavFocus WindowFlags = 1 << 19
	// WindowFlagsUnsavedDocument appends '*' to title without affecting the ID, as a convenience to avoid using the
	// ### operator. When used in a tab/docking context, tab is selected on closure and closure is deferred by one
	// frame to allow code to cancel the closure (with a confirmation popup, etc.) without flicker.
	WindowFlagsUnsavedDocument WindowFlags = 1 << 20

	// WindowFlagsNoNav combines WindowFlagsNoNavInputs and WindowFlagsNoNavFocus.
	WindowFlagsNoNav WindowFlags = WindowFlagsNoNavInputs | WindowFlagsNoNavFocus
	// WindowFlagsNoDecoration combines WindowFlagsNoTitleBar, WindowFlagsNoResize, WindowFlagsNoScrollbar and
	// WindowFlagsNoCollapse.
	WindowFlagsNoDecoration WindowFlags = WindowFlagsNoTitleBar | WindowFlagsNoResize | WindowFlagsNoScrollbar | WindowFlagsNoCollapse
	// WindowFlagsNoInputs combines WindowFlagsNoMouseInputs, WindowFlagsNoNavInputs and WindowFlagsNoNavFocus.
	WindowFlagsNoInputs WindowFlags = WindowFlagsNoMouseInputs | WindowFlagsNoNavInputs | WindowFlagsNoNavFocus
)

type WindowWidget

type WindowWidget struct {
	// contains filtered or unexported fields
}

func SingleWindow

func SingleWindow(title string) *WindowWidget

func SingleWindowWithMenuBar

func SingleWindowWithMenuBar(title string) *WindowWidget

func Window

func Window(title string) *WindowWidget

func (*WindowWidget) Flags

func (w *WindowWidget) Flags(flags WindowFlags) *WindowWidget

func (*WindowWidget) IsOpen

func (w *WindowWidget) IsOpen(open *bool) *WindowWidget

func (*WindowWidget) Layout

func (w *WindowWidget) Layout(widgets ...Widget)

func (*WindowWidget) Pos

func (w *WindowWidget) Pos(x, y float32) *WindowWidget

func (*WindowWidget) Size

func (w *WindowWidget) Size(width, height float32) *WindowWidget

Directories

Path Synopsis
cmd
examples
Package imgui contains all the functions to create an immediate mode graphical user interface based on Dear ImGui.
Package imgui contains all the functions to create an immediate mode graphical user interface based on Dear ImGui.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL