wui

package module
v2.0.0-...-abc07f0 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2024 License: MIT Imports: 19 Imported by: 0

README

Windows GUI Library

This is a pure Go library to create native Windows GUIs. See the online documentation for details.

Minimal Example

This is all the code you need to create a window (which does not do much).

package main

import "github.com/gonutz/wui/v2"

func main() {
	wui.NewWindow().Show()
}

The Designer

I am currently working on a graphical designer. It is located under github.com/gonutz/wui/v2/cmd/designer.

At the moment it lets you place widgets graphically and generate a Go main file from it (using the Save menu). You can also run a preview with Ctrl+R.

There is no way to read the generated code back in at the moment. Right now it is a tool to place things and generate code from it.

Documentation

Index

Constants

View Source
const (
	KeyLeftMouseButton   = w32.VK_LBUTTON
	KeyRightMouseButton  = w32.VK_RBUTTON
	KeyCancel            = w32.VK_CANCEL
	KeyMiddleMouseButton = w32.VK_MBUTTON
	KeyXMouseButton1     = w32.VK_XBUTTON1
	KeyXMouseButton2     = w32.VK_XBUTTON2
	KeyBack              = w32.VK_BACK
	KeyTab               = w32.VK_TAB
	KeyClear             = w32.VK_CLEAR
	KeyReturn            = w32.VK_RETURN
	KeyShift             = w32.VK_SHIFT
	KeyControl           = w32.VK_CONTROL
	KeyAlt               = w32.VK_MENU
	KeyPause             = w32.VK_PAUSE
	KeyCapital           = w32.VK_CAPITAL
	KeyKana              = w32.VK_KANA
	KeyHangul            = w32.VK_HANGUL
	KeyIMEOn             = w32.VK_IME_ON
	KeyJunja             = w32.VK_JUNJA
	KeyFinal             = w32.VK_FINAL
	KeyHanja             = w32.VK_HANJA
	KeyKanji             = w32.VK_KANJI
	KeyIMEOff            = w32.VK_IME_OFF
	KeyEscape            = w32.VK_ESCAPE
	KeyConvert           = w32.VK_CONVERT
	KeyNonConvert        = w32.VK_NONCONVERT
	KeyAccept            = w32.VK_ACCEPT
	KeyModeChange        = w32.VK_MODECHANGE
	KeySpace             = w32.VK_SPACE
	KeyPrior             = w32.VK_PRIOR
	KeyNext              = w32.VK_NEXT
	KeyEnd               = w32.VK_END
	KeyHome              = w32.VK_HOME
	KeyLeft              = w32.VK_LEFT
	KeyUp                = w32.VK_UP
	KeyRight             = w32.VK_RIGHT
	KeyDown              = w32.VK_DOWN
	KeySelect            = w32.VK_SELECT
	KeyPrint             = w32.VK_PRINT
	KeyExecute           = w32.VK_EXECUTE
	KeySnapshot          = w32.VK_SNAPSHOT
	KeyInsert            = w32.VK_INSERT
	KeyDelete            = w32.VK_DELETE
	KeyHelp              = w32.VK_HELP
	Key0                 = '0'
	Key1                 = '1'
	Key2                 = '2'
	Key3                 = '3'
	Key4                 = '4'
	Key5                 = '5'
	Key6                 = '6'
	Key7                 = '7'
	Key8                 = '8'
	Key9                 = '9'
	KeyA                 = 'A'
	KeyB                 = 'B'
	KeyC                 = 'C'
	KeyD                 = 'D'
	KeyE                 = 'E'
	KeyF                 = 'F'
	KeyG                 = 'G'
	KeyH                 = 'H'
	KeyI                 = 'I'
	KeyJ                 = 'J'
	KeyK                 = 'K'
	KeyL                 = 'L'
	KeyM                 = 'M'
	KeyN                 = 'N'
	KeyO                 = 'O'
	KeyP                 = 'P'
	KeyQ                 = 'Q'
	KeyR                 = 'R'
	KeyS                 = 'S'
	KeyT                 = 'T'
	KeyU                 = 'U'
	KeyV                 = 'V'
	KeyW                 = 'W'
	KeyX                 = 'X'
	KeyY                 = 'Y'
	KeyZ                 = 'Z'
	KeyLeftWindows       = w32.VK_LWIN
	KeyRightWindows      = w32.VK_RWIN
	KeyApps              = w32.VK_APPS
	KeySleep             = w32.VK_SLEEP
	KeyNum0              = w32.VK_NUMPAD0
	KeyNum1              = w32.VK_NUMPAD1
	KeyNum2              = w32.VK_NUMPAD2
	KeyNum3              = w32.VK_NUMPAD3
	KeyNum4              = w32.VK_NUMPAD4
	KeyNum5              = w32.VK_NUMPAD5
	KeyNum6              = w32.VK_NUMPAD6
	KeyNum7              = w32.VK_NUMPAD7
	KeyNum8              = w32.VK_NUMPAD8
	KeyNum9              = w32.VK_NUMPAD9
	KeyMultiply          = w32.VK_MULTIPLY
	KeyAdd               = w32.VK_ADD
	KeySeparator         = w32.VK_SEPARATOR
	KeySubtract          = w32.VK_SUBTRACT
	KeyDecimal           = w32.VK_DECIMAL
	KeyDivide            = w32.VK_DIVIDE
	KeyF1                = w32.VK_F1
	KeyF2                = w32.VK_F2
	KeyF3                = w32.VK_F3
	KeyF4                = w32.VK_F4
	KeyF5                = w32.VK_F5
	KeyF6                = w32.VK_F6
	KeyF7                = w32.VK_F7
	KeyF8                = w32.VK_F8
	KeyF9                = w32.VK_F9
	KeyF10               = w32.VK_F10
	KeyF11               = w32.VK_F11
	KeyF12               = w32.VK_F12
	KeyF13               = w32.VK_F13
	KeyF14               = w32.VK_F14
	KeyF15               = w32.VK_F15
	KeyF16               = w32.VK_F16
	KeyF17               = w32.VK_F17
	KeyF18               = w32.VK_F18
	KeyF19               = w32.VK_F19
	KeyF20               = w32.VK_F20
	KeyF21               = w32.VK_F21
	KeyF22               = w32.VK_F22
	KeyF23               = w32.VK_F23
	KeyF24               = w32.VK_F24
	KeyNumLock           = w32.VK_NUMLOCK
	KeyScroll            = w32.VK_SCROLL
	KeyOEMNecEqual       = w32.VK_OEM_NEC_EQUAL
	KeyOEMFjJisho        = w32.VK_OEM_FJ_JISHO
	KeyOEMFjMasshou      = w32.VK_OEM_FJ_MASSHOU
	KeyOEMFjTouroku      = w32.VK_OEM_FJ_TOUROKU
	KeyOEMFjLoya         = w32.VK_OEM_FJ_LOYA
	KeyOEMFjRoya         = w32.VK_OEM_FJ_ROYA
	KeyLeftShift         = w32.VK_LSHIFT
	KeyRightShift        = w32.VK_RSHIFT
	KeyLeftControl       = w32.VK_LCONTROL
	KeyRightControl      = w32.VK_RCONTROL
	KeyLeftAlt           = w32.VK_LMENU
	KeyRightAlt          = w32.VK_RMENU
	KeyBrowserBack       = w32.VK_BROWSER_BACK
	KeyBrowserForward    = w32.VK_BROWSER_FORWARD
	KeyBrowserRefresh    = w32.VK_BROWSER_REFRESH
	KeyBrowserStop       = w32.VK_BROWSER_STOP
	KeyBrowserSearch     = w32.VK_BROWSER_SEARCH
	KeyBrowserFavorites  = w32.VK_BROWSER_FAVORITES
	KeyBrowserHome       = w32.VK_BROWSER_HOME
	KeyVolumeMute        = w32.VK_VOLUME_MUTE
	KeyVolumeDown        = w32.VK_VOLUME_DOWN
	KeyVolumeUp          = w32.VK_VOLUME_UP
	KeyMediaNextTrack    = w32.VK_MEDIA_NEXT_TRACK
	KeyMediaPrevTrack    = w32.VK_MEDIA_PREV_TRACK
	KeyMediaStop         = w32.VK_MEDIA_STOP
	KeyMediaPlayPause    = w32.VK_MEDIA_PLAY_PAUSE
	KeyLaunchMail        = w32.VK_LAUNCH_MAIL
	KeyLaunchMediaSelect = w32.VK_LAUNCH_MEDIA_SELECT
	KeyLaunchApp1        = w32.VK_LAUNCH_APP1
	KeyLaunchApp2        = w32.VK_LAUNCH_APP2
	KeyOEM1              = w32.VK_OEM_1
	KeyOEMPlus           = w32.VK_OEM_PLUS
	KeyOEMComma          = w32.VK_OEM_COMMA
	KeyOEMMinus          = w32.VK_OEM_MINUS
	KeyOEMPeriod         = w32.VK_OEM_PERIOD
	KeyOEM2              = w32.VK_OEM_2
	KeyOEM3              = w32.VK_OEM_3
	KeyOEM4              = w32.VK_OEM_4
	KeyOEM5              = w32.VK_OEM_5
	KeyOEM6              = w32.VK_OEM_6
	KeyOEM7              = w32.VK_OEM_7
	KeyOEM8              = w32.VK_OEM_8
	KeyOEMAx             = w32.VK_OEM_AX
	KeyOEM102            = w32.VK_OEM_102
	KeyIcoHelp           = w32.VK_ICO_HELP
	KeyIco00             = w32.VK_ICO_00
	KeyProcesskey        = w32.VK_PROCESSKEY
	KeyIcoClear          = w32.VK_ICO_CLEAR
	KeyPacket            = w32.VK_PACKET
	KeyOEMReset          = w32.VK_OEM_RESET
	KeyOEMJump           = w32.VK_OEM_JUMP
	KeyOEMPA1            = w32.VK_OEM_PA1
	KeyOEMPA2            = w32.VK_OEM_PA2
	KeyOEMPA3            = w32.VK_OEM_PA3
	KeyOEMWSControl      = w32.VK_OEM_WSCTRL
	KeyOEMCuSel          = w32.VK_OEM_CUSEL
	KeyOEMAttention      = w32.VK_OEM_ATTN
	KeyOEMFinish         = w32.VK_OEM_FINISH
	KeyOEMCopy           = w32.VK_OEM_COPY
	KeyOEMAuto           = w32.VK_OEM_AUTO
	KeyOEMEnlw           = w32.VK_OEM_ENLW
	KeyOEMBacktab        = w32.VK_OEM_BACKTAB
	KeyAttention         = w32.VK_ATTN
	KeyCrSel             = w32.VK_CRSEL
	KeyExSel             = w32.VK_EXSEL
	KeyErEOF             = w32.VK_EREOF
	KeyPlay              = w32.VK_PLAY
	KeyZoom              = w32.VK_ZOOM
	KeyNoName            = w32.VK_NONAME
	KeyPa1               = w32.VK_PA1
	KeyOEMClear          = w32.VK_OEM_CLEAR
)

These are the keyboard key constants.

Variables

View Source
var (
	// Scroll bar gray area.
	ColorScrollBar = sysColor(w32.COLOR_SCROLLBAR)

	// Desktop.
	ColorBackground = sysColor(w32.COLOR_BACKGROUND)

	// Desktop.
	ColorDesktop = sysColor(w32.COLOR_DESKTOP)

	// Active window title bar. The associated foreground color is
	// COLOR_CAPTIONTEXT. Specifies the left side color in the color gradient of
	// an active window's title bar if the gradient effect is enabled.
	ColorActiveCaption = sysColor(w32.COLOR_ACTIVECAPTION)

	// Inactive window caption. The associated foreground color is
	// COLOR_INACTIVECAPTIONTEXT. Specifies the left side color in the color
	// gradient of an inactive window's title bar if the gradient effect is
	// enabled.
	ColorInactiveCaption = sysColor(w32.COLOR_INACTIVECAPTION)

	// Menu background. The associated foreground color is COLOR_MENUTEXT.
	ColorMenu = sysColor(w32.COLOR_MENU)

	// Window background. The associated foreground colors are COLOR_WINDOWTEXT
	// and COLOR_HOTLITE.
	ColorWindow = sysColor(w32.COLOR_WINDOW)

	// Window frame.
	ColorWindowFrame = sysColor(w32.COLOR_WINDOWFRAME)

	// Text in menus. The associated background color is COLOR_MENU.
	ColorMenuText = sysColor(w32.COLOR_MENUTEXT)

	// Text in windows. The associated background color is COLOR_WINDOW.
	ColorWindowText = sysColor(w32.COLOR_WINDOWTEXT)

	// Text in caption, size box, and scroll bar arrow box. The associated
	// background color is COLOR_ACTIVECAPTION.
	ColorCaptionText = sysColor(w32.COLOR_CAPTIONTEXT)

	// Active window border.
	ColorActiveBorder = sysColor(w32.COLOR_ACTIVEBORDER)

	// Inactive window border.
	ColorInactiveBorder = sysColor(w32.COLOR_INACTIVEBORDER)

	// Background color of multiple document interface (MDI) applications.
	ColorAppWorkspace = sysColor(w32.COLOR_APPWORKSPACE)

	// Item(s) selected in a control. The associated foreground color is
	// COLOR_HIGHLIGHTTEXT.
	ColorHighlight = sysColor(w32.COLOR_HIGHLIGHT)

	// Text of item(s) selected in a control. The associated background color is
	// COLOR_HIGHLIGHT.
	ColorHighlightText = sysColor(w32.COLOR_HIGHLIGHTTEXT)

	// Face color for three-dimensional display elements and for dialog box
	// backgrounds.
	Color3DFace = sysColor(w32.COLOR_3DFACE)

	// Face color for three-dimensional display elements and for dialog box
	// backgrounds. The associated foreground color is COLOR_BTNTEXT.
	ColorButtonFace = sysColor(w32.COLOR_BTNFACE)

	// Shadow color for three-dimensional display elements (for edges facing
	// away from the light source).
	Color3DShadow = sysColor(w32.COLOR_3DSHADOW)

	// Shadow color for three-dimensional display elements (for edges facing
	// away from the light source).
	ColorButtonShadow = sysColor(w32.COLOR_BTNSHADOW)

	// Grayed (disabled) text. This color is set to 0 if the current display
	// driver does not support a solid gray color.
	ColorGrayText = sysColor(w32.COLOR_GRAYTEXT)

	// Text on push buttons. The associated background color is COLOR_BTNFACE.
	ColorButtonText = sysColor(w32.COLOR_BTNTEXT)

	// Color of text in an inactive caption. The associated background color is
	// COLOR_INACTIVECAPTION.
	ColorInactiveCaptionText = sysColor(w32.COLOR_INACTIVECAPTIONTEXT)

	// Highlight color for three-dimensional display elements (for edges facing
	// the light source.)
	Color3DHighlight = sysColor(w32.COLOR_3DHIGHLIGHT)

	// Highlight color for three-dimensional display elements (for edges facing
	// the light source.)
	ColorButtonHighlight = sysColor(w32.COLOR_BTNHIGHLIGHT)

	// Dark shadow for three-dimensional display elements.
	Color3DDarkShadow = sysColor(w32.COLOR_3DDKSHADOW)

	// Light color for three-dimensional display elements (for edges facing the
	// light source.)
	Color3DLight = sysColor(w32.COLOR_3DLIGHT)

	// Text color for tooltip controls. The associated background color is
	// COLOR_INFOBK.
	ColorInfoText = sysColor(w32.COLOR_INFOTEXT)

	// Background color for tooltip controls. The associated foreground color is
	// COLOR_INFOTEXT.
	ColorInfoBackground = sysColor(w32.COLOR_INFOBK)

	// Color for a hyperlink or hot-tracked item. The associated background
	// color is COLOR_WINDOW.
	ColorHotlight = sysColor(w32.COLOR_HOTLIGHT)

	// Right side color in the color gradient of an active window's title bar.
	// COLOR_ACTIVECAPTION specifies the left side color. Use
	// SPI_GETGRADIENTCAPTIONS with the SystemParametersInfo function to
	// determine whether the gradient effect is enabled.
	ColorGradientActiveCaption = sysColor(w32.COLOR_GRADIENTACTIVECAPTION)

	// Right side color in the color gradient of an inactive window's title bar.
	// COLOR_INACTIVECAPTION specifies the left side color.
	ColorGradientInactiveCaption = sysColor(w32.COLOR_GRADIENTINACTIVECAPTION)

	// The color used to highlight menu items when the menu appears as a flat
	// menu (see SystemParametersInfo). The highlighted menu item is outlined
	// with COLOR_HIGHLIGHT. Windows 2000: This value is not supported.
	ColorMenuHighlight = sysColor(w32.COLOR_MENUHILIGHT)

	// The background color for the menu bar when menus appear as flat menus
	// (see SystemParametersInfo). However, COLOR_MENU continues to specify the
	// background color of the menu popup. Windows 2000: This value is not
	// supported.
	ColorMenuBar = sysColor(w32.COLOR_MENUBAR)
)

These are predefined colors defined by the current Windows theme.

View Source
var (
	// CursorArrow is the standard, default arrow cursor.
	CursorArrow = loadCursor(w32.IDC_ARROW)

	// CursorIBeam is the text cursor, it looks like the letter I.
	CursorIBeam = loadCursor(w32.IDC_IBEAM)

	// CursorWait is the hour glass or rotating circle cursor that indicates
	// that an action will take some more time.
	CursorWait = loadCursor(w32.IDC_WAIT)

	// CursorCross looks like a black + (plus) symbol.
	CursorCross = loadCursor(w32.IDC_CROSS)

	// CursorUpArrow is a vertical arrow pointing upwards.
	CursorUpArrow = loadCursor(w32.IDC_UPARROW)

	// CursorSizeNWSE is a diagonal line from top-left to bottom-right with
	// arrows at both ends.
	CursorSizeNWSE = loadCursor(w32.IDC_SIZENWSE)

	// CursorSizeNESW is a diagonal line from top-right to bottom-left with
	// arrows at both ends.
	CursorSizeNESW = loadCursor(w32.IDC_SIZENESW)

	// CursorSizeWE is a horizontal line from left to right with arrows at both
	// ends.
	CursorSizeWE = loadCursor(w32.IDC_SIZEWE)

	// CursorSizeNS is a vertical line from top to bottom with arrows at both
	// ends.
	CursorSizeNS = loadCursor(w32.IDC_SIZENS)

	// CursorSizeAll is a white + (plus) symbol with arrows at all four ends.
	CursorSizeAll = loadCursor(w32.IDC_SIZEALL)

	// CursorNo indicates that an action is not possible. It is a crossed-out
	// red circle, like a stop sign.
	CursorNo = loadCursor(w32.IDC_NO)

	// CursorHand is a hand pointing its index finger upwards.
	CursorHand = loadCursor(w32.IDC_HAND)

	// CursorAppStarting is a combination of CursorArrow and CursorWait, it has
	// the arrow cursor but with an hour glass or rotating circle next to it.
	CursorAppStarting = loadCursor(w32.IDC_APPSTARTING)

	// CursorHelp is the default arrow cursor with a little question mark icon
	// next to it.
	CursorHelp = loadCursor(w32.IDC_HELP)
)
View Source
var (
	// IconApplication is the default application icon.
	IconApplication = loadIcon(w32.IDI_APPLICATION)
	// IconQuestion is a question mark icon.
	IconQuestion = loadIcon(w32.IDI_QUESTION)
	// versions (like Windows 2000) this was a Windows icon.
	IconWinLogo = loadIcon(w32.IDI_WINLOGO)
	// IconShield is the icon that comes up when Windows asks admin permission.
	// It looks like a knight's shield.
	IconShield = loadIcon(w32.IDI_SHIELD)
	// IconWarning is an exclamation mark icon.
	IconWarning = loadIcon(w32.IDI_WARNING)
	// IconError is a red cross icon.
	IconError = loadIcon(w32.IDI_ERROR)
	// IconInformation is a blue 'i' for information.
	IconInformation = loadIcon(w32.IDI_INFORMATION)
)
View Source
var NoExactFontMatch = errors.New("wui.NewFont: the desired font was not found in the system, a replacement is used")

Functions

func Enabled

func Enabled(c EnabledControl) bool

Enabled return true if the given control and all of its parents are enabled. This is different from the control's Enabled() function which only returns the enabled state of the control itself. If it is contained in a disabled parent, c.Enabled() will return true while Enabled(c) will return false.

func MessageBox

func MessageBox(caption, text string)

func MessageBoxCustom

func MessageBoxCustom(caption, text string, flags uint) int

func MessageBoxError

func MessageBoxError(caption, text string)

func MessageBoxInfo

func MessageBoxInfo(caption, text string)

func MessageBoxOKCancel

func MessageBoxOKCancel(caption, text string) bool

func MessageBoxQuestion

func MessageBoxQuestion(caption, text string)

func MessageBoxWarning

func MessageBoxWarning(caption, text string)

func MessageBoxYesNo

func MessageBoxYesNo(caption, text string) bool

func Visible

func Visible(c VisibleControl) bool

Visible return true if the given control and all of its parents are visible. This is different from the control's Visible() function which only returns the visibility of the control itself. If it is contained in an invisible parent, c.Visible() will return true while Visible(c) will return false.

Types

type Anchor

type Anchor int

Anchor defines how a child control is resized when its parent changes size. Children can be anchored to min (left or top), center and max (right or bottom) of their parents.

const (
	// AnchorMin makes a control stick to the left/top side of its parent. The
	// control's size is not changed.
	AnchorMin Anchor = iota

	// AnchorMax makes a control stick to the right/bottom side of its parent.
	// The control's size is not changed.
	AnchorMax

	// AnchorCenter keeps a control fixed at the horizontal/vertical center of
	// its parent, e.g. if it is placed 10 pixels left of the center, it will
	// stay 10 pixels left of its parent's center. Its size is not changed.
	AnchorCenter

	// AnchorMinAndMax makes a control's borders stick to its parent's borders.
	// The size changes propertionally to its parent's size, keeping the
	// original distances to its parents borders.
	AnchorMinAndMax

	// AnchorMinAndCenter makes the left/top side of a control stick to its
	// parent's left/top side while the right/bottom side sticks to the parent's
	// center.
	AnchorMinAndCenter

	// AnchorMaxAndCenter makes the right/bottom side of a control stick to its
	// parent's right/bottom side while the left/top side sticks to the parent's
	// center.
	AnchorMaxAndCenter
)

func (Anchor) String

func (a Anchor) String() string

type Button

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

func NewButton

func NewButton() *Button

func (*Button) Focus

func (c *Button) Focus()

func (*Button) Font

func (c *Button) Font() *Font

func (*Button) HasFocus

func (c *Button) HasFocus() bool

func (*Button) OnClick

func (b *Button) OnClick() func()

func (*Button) OnTabFocus

func (b *Button) OnTabFocus() func()

func (*Button) SetFont

func (c *Button) SetFont(font *Font)

func (*Button) SetOnClick

func (b *Button) SetOnClick(f func())

func (*Button) SetOnTabFocus

func (b *Button) SetOnTabFocus(f func())

func (*Button) SetText

func (c *Button) SetText(text string)

func (*Button) Text

func (c *Button) Text() string

type Canvas

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

func (*Canvas) Arc

func (c *Canvas) Arc(x, y, width, height int, fromClockAngle, dAngle float64, color Color)

func (*Canvas) ClearDrawRegions

func (c *Canvas) ClearDrawRegions()

func (*Canvas) DrawEllipse

func (c *Canvas) DrawEllipse(x, y, width, height int, color Color)

func (*Canvas) DrawImage

func (c *Canvas) DrawImage(img *Image, src Rectangle, destX, destY int)

func (*Canvas) DrawPie

func (c *Canvas) DrawPie(x, y, width, height int, fromClockAngle, dAngle float64, color Color)

func (*Canvas) DrawRect

func (c *Canvas) DrawRect(x, y, width, height int, color Color)

func (*Canvas) FillEllipse

func (c *Canvas) FillEllipse(x, y, width, height int, color Color)

func (*Canvas) FillPie

func (c *Canvas) FillPie(x, y, width, height int, fromClockAngle, dAngle float64, color Color)

func (*Canvas) FillRect

func (c *Canvas) FillRect(x, y, width, height int, color Color)

func (*Canvas) Handle

func (c *Canvas) Handle() uintptr

Handle returns the handle to the canvas' device context (HDC).

func (*Canvas) Height

func (c *Canvas) Height() int

func (*Canvas) Line

func (c *Canvas) Line(x1, y1, x2, y2 int, color Color)

func (*Canvas) Polygon

func (c *Canvas) Polygon(p []Point, color Color)

func (*Canvas) Polyline

func (c *Canvas) Polyline(p []Point, color Color)

func (*Canvas) PopDrawRegion

func (c *Canvas) PopDrawRegion()

func (*Canvas) PushDrawRegion

func (c *Canvas) PushDrawRegion(x, y, width, height int)

func (*Canvas) SetFont

func (c *Canvas) SetFont(font *Font)

func (*Canvas) Size

func (c *Canvas) Size() (width, height int)

func (*Canvas) TextExtent

func (c *Canvas) TextExtent(s string) (width, height int)

func (*Canvas) TextOut

func (c *Canvas) TextOut(x, y int, s string, color Color)

func (*Canvas) TextRect

func (c *Canvas) TextRect(x, y, w, h int, s string, color Color)

func (*Canvas) TextRectExtent

func (c *Canvas) TextRectExtent(s string, givenWidth int) (width, height int)

TextRectExtent returns the size of the text when drawn in a rectangle of the given width. The given width is necessary because text rects use word breaks and thus given a smaller width might produce a higher text height.

func (*Canvas) TextRectFormat

func (c *Canvas) TextRectFormat(x, y, w, h int, s string, format Format, color Color)

func (*Canvas) Width

func (c *Canvas) Width() int

type CheckBox

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

func NewCheckBox

func NewCheckBox() *CheckBox

func (*CheckBox) Checked

func (c *CheckBox) Checked() bool

func (*CheckBox) Focus

func (c *CheckBox) Focus()

func (*CheckBox) Font

func (c *CheckBox) Font() *Font

func (*CheckBox) HasFocus

func (c *CheckBox) HasFocus() bool

func (*CheckBox) OnTabFocus

func (c *CheckBox) OnTabFocus() func()

func (*CheckBox) SetChecked

func (c *CheckBox) SetChecked(checked bool)

func (*CheckBox) SetFont

func (c *CheckBox) SetFont(font *Font)

func (*CheckBox) SetOnChange

func (c *CheckBox) SetOnChange(f func(checked bool))

func (*CheckBox) SetOnTabFocus

func (c *CheckBox) SetOnTabFocus(f func())

func (*CheckBox) SetText

func (c *CheckBox) SetText(text string)

func (*CheckBox) Text

func (c *CheckBox) Text() string

type Color

type Color uint32

Color is a 24 bit color in BGR form. The alpha channel is always 0 and has no relevance.

func RGB

func RGB(r, g, b uint8) Color

RBG creates a new Color with the given intensities. r,g,b means red, green, blue. Value 0 is dark, 255 is full intensity.

func (Color) B

func (c Color) B() uint8

B returns the blue intensity in the Color, 0 means no blue, 255 means full blue.

func (Color) G

func (c Color) G() uint8

G returns the green intensity in the Color, 0 means no green, 255 means full green.

func (Color) R

func (c Color) R() uint8

R returns the red intensity in the Color, 0 means no red, 255 means full red.

type ComboBox

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

func NewComboBox

func NewComboBox() *ComboBox

func (*ComboBox) AddItem

func (e *ComboBox) AddItem(s string)

func (*ComboBox) Clear

func (e *ComboBox) Clear()

func (*ComboBox) Focus

func (c *ComboBox) Focus()

func (*ComboBox) Font

func (c *ComboBox) Font() *Font

func (*ComboBox) HasFocus

func (c *ComboBox) HasFocus() bool

func (*ComboBox) Items

func (e *ComboBox) Items() []string

func (*ComboBox) OnTabFocus

func (c *ComboBox) OnTabFocus() func()

func (*ComboBox) SelectedIndex

func (e *ComboBox) SelectedIndex() int

func (*ComboBox) SetFont

func (c *ComboBox) SetFont(font *Font)

func (*ComboBox) SetItems

func (e *ComboBox) SetItems(items []string)

func (*ComboBox) SetOnChange

func (e *ComboBox) SetOnChange(f func(newIndex int))

func (*ComboBox) SetOnTabFocus

func (c *ComboBox) SetOnTabFocus(f func())

func (*ComboBox) SetSelectedIndex

func (e *ComboBox) SetSelectedIndex(i int)

SetSelectedIndex sets the current index. Set -1 to remove any selection and make the combo box empty. If you pass a value < -1 it will be set to -1 instead. The index is not clamped to the number of items, you may set the index 10 where only 5 items are set. This lets you set the index and items at design time without one invalidating the other. At runtime though, SelectedIndex() will return -1 if you set an invalid index.

func (*ComboBox) SetText

func (c *ComboBox) SetText(text string)

func (*ComboBox) Text

func (c *ComboBox) Text() string

type Container

type Container interface {
	Add(Control)
	Remove(Control)
	Children() []Control
	Parent() Container
	Bounds() (x, y, width, height int)
	SetBounds(x, y, width, height int)
	InnerBounds() (x, y, width, height int)
	Font() *Font
	Visible() bool
	Enabled() bool
	// contains filtered or unexported methods
}

type Control

type Control interface {
	Bounds() (x, y, width, height int)
	SetBounds(x, y, width, height int)
	Anchors() (horizontal, vertical Anchor)
	SetHorizontalAnchor(a Anchor)
	SetVerticalAnchor(a Anchor)
	Parent() Container
	Handle() uintptr
	Visible() bool
	Enabled() bool
	// contains filtered or unexported methods
}

type Cursor

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

Cursor describes the mouse cursor image. You can use a pre-defined Cursor... variable (see below) or create a custom cursor with NewCursorFromImage.

func NewCursorFromImage

func NewCursorFromImage(img image.Image, x, y int) (*Cursor, error)

NewCursorFromImage creates a cursor with 4 possible colors: black, white, transparent and inverse screen color. Inverse screen color depends on what is under the cursor at any time. The cursor will be white minus the screen color to give maximum contrast for such pixels.

Fully opaque black and white pixels in the image are interpreted as black and white.

Fully transparent pixels in the image are interpreted as screen color.

All other pixels are interpreted as inverse screen color. This means even "almost" black/white/transparent, say with intensity 0xFFFE instead of 0xFFFF, will be interpreted as inverse screen color.

type EditLine

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

func NewEditLine

func NewEditLine() *EditLine

func (*EditLine) CharacterLimit

func (e *EditLine) CharacterLimit() int

func (*EditLine) CursorPosition

func (c *EditLine) CursorPosition() (start, end int)

CursorPosition returns the current cursor position, respectively the current selection.

If no selection is active, the returned start and end values are the same. They then indicate the index of the UTF-8 character in this EditLine's Text() before which the caret is currently set.

If a selection is active, start is the index of the first selected UTF-8 character in Text() and end is the position one character after the end of the selection. The selected text is thus

c.Text()[start:end]

func (*EditLine) IsPassword

func (e *EditLine) IsPassword() bool

func (*EditLine) OnTabFocus

func (e *EditLine) OnTabFocus() func()

func (*EditLine) OnTextChange

func (e *EditLine) OnTextChange() func()

func (*EditLine) ReadOnly

func (e *EditLine) ReadOnly() bool

func (*EditLine) SelectAll

func (c *EditLine) SelectAll()

func (*EditLine) SetCharacterLimit

func (e *EditLine) SetCharacterLimit(count int)

func (*EditLine) SetCursorPosition

func (c *EditLine) SetCursorPosition(pos int)

func (*EditLine) SetIsPassword

func (e *EditLine) SetIsPassword(isPassword bool)

func (*EditLine) SetOnTabFocus

func (e *EditLine) SetOnTabFocus(f func())

func (*EditLine) SetOnTextChange

func (e *EditLine) SetOnTextChange(f func())

func (*EditLine) SetReadOnly

func (e *EditLine) SetReadOnly(readOnly bool)

func (*EditLine) SetSelection

func (c *EditLine) SetSelection(start, end int)

type EnabledControl

type EnabledControl interface {
	Enabled() bool
	Parent() Container
}

type FileOpenDialog

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

func NewFileOpenDialog

func NewFileOpenDialog() *FileOpenDialog

func (*FileOpenDialog) AddFilter

func (dlg *FileOpenDialog) AddFilter(text, ext1 string, exts ...string)

func (*FileOpenDialog) ExecuteMultiSelection

func (dlg *FileOpenDialog) ExecuteMultiSelection(parent *Window) (bool, []string)

func (*FileOpenDialog) ExecuteSingleSelection

func (dlg *FileOpenDialog) ExecuteSingleSelection(parent *Window) (bool, string)

func (*FileOpenDialog) SetFilterIndex

func (dlg *FileOpenDialog) SetFilterIndex(i int)

SetFilterIndex sets the active filter, 0-indexed.

func (*FileOpenDialog) SetInitialPath

func (dlg *FileOpenDialog) SetInitialPath(path string)

func (*FileOpenDialog) SetTitle

func (dlg *FileOpenDialog) SetTitle(title string)

type FileSaveDialog

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

func NewFileSaveDialog

func NewFileSaveDialog() *FileSaveDialog

func (*FileSaveDialog) AddFilter

func (dlg *FileSaveDialog) AddFilter(text, ext1 string, exts ...string)

func (*FileSaveDialog) Execute

func (dlg *FileSaveDialog) Execute(parent *Window) (bool, string)

func (*FileSaveDialog) SetAppendExt

func (dlg *FileSaveDialog) SetAppendExt(ext bool)

func (*FileSaveDialog) SetFilterIndex

func (dlg *FileSaveDialog) SetFilterIndex(i int)

SetFilterIndex sets the active filter, 0-indexed.

func (*FileSaveDialog) SetInitialPath

func (dlg *FileSaveDialog) SetInitialPath(path string)

func (*FileSaveDialog) SetTitle

func (dlg *FileSaveDialog) SetTitle(title string)

type FloatUpDown

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

func NewFloatUpDown

func NewFloatUpDown() *FloatUpDown

func (*FloatUpDown) CursorPosition

func (c *FloatUpDown) CursorPosition() (start, end int)

CursorPosition returns the current cursor position, respectively the current selection.

If no selection is active, the returned start and end values are the same. They then indicate the index of the UTF-8 character in this EditLine's Text() before which the caret is currently set.

If a selection is active, start is the index of the first selected UTF-8 character in Text() and end is the position one character after the end of the selection. The selected text is thus

c.Text()[start:end]

func (*FloatUpDown) Max

func (n *FloatUpDown) Max() float64

func (*FloatUpDown) Min

func (n *FloatUpDown) Min() float64

func (*FloatUpDown) MinMax

func (n *FloatUpDown) MinMax() (min, max float64)

func (*FloatUpDown) OnTabFocus

func (n *FloatUpDown) OnTabFocus() func()

func (*FloatUpDown) OnValueChange

func (n *FloatUpDown) OnValueChange() func(value float64)

func (*FloatUpDown) Precision

func (n *FloatUpDown) Precision() int

func (*FloatUpDown) SelectAll

func (c *FloatUpDown) SelectAll()

func (*FloatUpDown) SetBounds

func (n *FloatUpDown) SetBounds(x, y, width, height int)

func (*FloatUpDown) SetCursorPosition

func (c *FloatUpDown) SetCursorPosition(pos int)

func (*FloatUpDown) SetHeight

func (n *FloatUpDown) SetHeight(height int)

func (*FloatUpDown) SetMax

func (n *FloatUpDown) SetMax(max float64)

func (*FloatUpDown) SetMin

func (n *FloatUpDown) SetMin(min float64)

func (*FloatUpDown) SetMinMax

func (n *FloatUpDown) SetMinMax(min, max float64)

func (*FloatUpDown) SetOnTabFocus

func (n *FloatUpDown) SetOnTabFocus(f func())

func (*FloatUpDown) SetOnValueChange

func (n *FloatUpDown) SetOnValueChange(f func(value float64))

func (*FloatUpDown) SetPos

func (n *FloatUpDown) SetPos(x, y int)

func (*FloatUpDown) SetPrecision

func (n *FloatUpDown) SetPrecision(p int)

func (*FloatUpDown) SetSelection

func (c *FloatUpDown) SetSelection(start, end int)

func (*FloatUpDown) SetSize

func (n *FloatUpDown) SetSize(width, height int)

func (*FloatUpDown) SetValue

func (n *FloatUpDown) SetValue(f float64)

SetValue does not accept NaN (not a number). It does accept infinity, the user can type "+inf" or "-inf".

func (*FloatUpDown) SetWidth

func (n *FloatUpDown) SetWidth(width int)

func (*FloatUpDown) SetX

func (n *FloatUpDown) SetX(x int)

func (*FloatUpDown) SetY

func (n *FloatUpDown) SetY(y int)

func (*FloatUpDown) Value

func (n *FloatUpDown) Value() float64

type FolderSelectDialog

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

func NewFolderSelectDialog

func NewFolderSelectDialog() *FolderSelectDialog

func (*FolderSelectDialog) Execute

func (dlg *FolderSelectDialog) Execute(parent *Window) (bool, string)

func (*FolderSelectDialog) SetTitle

func (dlg *FolderSelectDialog) SetTitle(title string)

type Font

type Font struct {
	Desc FontDesc
	// contains filtered or unexported fields
}

func NewFont

func NewFont(desc FontDesc) (*Font, error)

NewFont returns a font according to the given description and an error. The error might be NoExactFontMatch in which case the returned Font is valid, but the system did not find an exact match. In case the creation fails, the returned Font is nil and the error gives the reason.

type FontDesc

type FontDesc struct {
	Name       string
	Height     int
	Bold       bool
	Italic     bool
	Underlined bool
	StrikedOut bool
}

type Format

type Format int
const (
	FormatTopLeft Format = iota
	FormatCenterLeft
	FormatBottomLeft
	FormatTopCenter
	FormatCenter
	FormatBottomCenter
	FormatTopRight
	FormatCenterRight
	FormatBottomRight
)

type Icon

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

Icon holds a window icon. You can use a pre-defined Icon... variable (see below) or create a custom icon with NewIconFromImage, NewIconFromExeResource, NewIconFromFile or NewIconFromReader.

func NewIconFromExeResource

func NewIconFromExeResource(resourceID int) (*Icon, error)

NewIconFromExeResource loads an icon that was compiled into the executable. In Go you can create .syso files that contain resources. Each resource will get a unique ID. See for example the rsrc tool which can create .syso files: https://github.com/gonutz/rsrc

func NewIconFromFile

func NewIconFromFile(path string) (*Icon, error)

NewIconFromFile loads an icon from disk. The format must be .ico, not an image.

func NewIconFromImage

func NewIconFromImage(img image.Image) (*Icon, error)

IconInformation creates an icon from an image. The image should have a standard icon size, typically square and a power of 2, see https://docs.microsoft.com/en-us/windows/win32/uxguide/vis-icons

func NewIconFromReader

func NewIconFromReader(r io.Reader) (*Icon, error)

NewIconFromReader loads an icon from the given reader. The format must be .ico, not an image.

type Image

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

func NewImage

func NewImage(img image.Image) *Image

func NewImageFromHBITMAP

func NewImageFromHBITMAP(bitmap uintptr, width, height int) *Image

NewImageFromHBITMAP takes a handle to a bitmap (HBITMAP) and makes it an Image that you can use in Canvas.DrawImage.

func (*Image) Bounds

func (img *Image) Bounds() Rectangle

func (*Image) Height

func (img *Image) Height() int

func (*Image) Size

func (img *Image) Size() (w, h int)

func (*Image) Width

func (img *Image) Width() int

type IntUpDown

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

func NewIntUpDown

func NewIntUpDown() *IntUpDown

func (*IntUpDown) CursorPosition

func (c *IntUpDown) CursorPosition() (start, end int)

CursorPosition returns the current cursor position, respectively the current selection.

If no selection is active, the returned start and end values are the same. They then indicate the index of the UTF-8 character in this EditLine's Text() before which the caret is currently set.

If a selection is active, start is the index of the first selected UTF-8 character in Text() and end is the position one character after the end of the selection. The selected text is thus

c.Text()[start:end]

func (*IntUpDown) Max

func (n *IntUpDown) Max() int

func (*IntUpDown) Min

func (n *IntUpDown) Min() int

func (*IntUpDown) MinMax

func (n *IntUpDown) MinMax() (min, max int)

func (*IntUpDown) OnTabFocus

func (n *IntUpDown) OnTabFocus() func()

func (*IntUpDown) OnValueChange

func (n *IntUpDown) OnValueChange() func(value int)

func (*IntUpDown) SelectAll

func (c *IntUpDown) SelectAll()

func (*IntUpDown) SetBounds

func (n *IntUpDown) SetBounds(x, y, width, height int)

func (*IntUpDown) SetCursorPosition

func (c *IntUpDown) SetCursorPosition(pos int)

func (*IntUpDown) SetHeight

func (n *IntUpDown) SetHeight(height int)

func (*IntUpDown) SetMax

func (n *IntUpDown) SetMax(max int)

func (*IntUpDown) SetMin

func (n *IntUpDown) SetMin(min int)

func (*IntUpDown) SetMinMax

func (n *IntUpDown) SetMinMax(min, max int)

func (*IntUpDown) SetOnTabFocus

func (n *IntUpDown) SetOnTabFocus(f func())

func (*IntUpDown) SetOnValueChange

func (n *IntUpDown) SetOnValueChange(f func(value int))

func (*IntUpDown) SetPos

func (n *IntUpDown) SetPos(x, y int)

func (*IntUpDown) SetSelection

func (c *IntUpDown) SetSelection(start, end int)

func (*IntUpDown) SetSize

func (n *IntUpDown) SetSize(width, height int)

func (*IntUpDown) SetValue

func (n *IntUpDown) SetValue(v int)

func (*IntUpDown) SetVisible

func (n *IntUpDown) SetVisible(v bool)

func (*IntUpDown) SetWidth

func (n *IntUpDown) SetWidth(width int)

func (*IntUpDown) SetX

func (n *IntUpDown) SetX(x int)

func (*IntUpDown) SetY

func (n *IntUpDown) SetY(y int)

func (*IntUpDown) Value

func (n *IntUpDown) Value() int

type Key

type Key int

Key represents a button on a keyboard. See the constants below.

type Label

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

func NewLabel

func NewLabel() *Label

func (*Label) Alignment

func (l *Label) Alignment() TextAlignment

func (*Label) Focus

func (c *Label) Focus()

func (*Label) Font

func (c *Label) Font() *Font

func (*Label) HasFocus

func (c *Label) HasFocus() bool

func (*Label) SetAlignment

func (l *Label) SetAlignment(a TextAlignment)

func (*Label) SetFont

func (c *Label) SetFont(font *Font)

func (*Label) SetText

func (c *Label) SetText(text string)

func (*Label) Text

func (c *Label) Text() string
type Menu struct {
	// contains filtered or unexported fields
}

Menu is a named container for MenuItems. It is not executable, clicking a Menu will expand it and show its children. See NewMainMenu and NewMenu.

func NewMainMenu

func NewMainMenu() *Menu

NewMainMenu returns a new menu bar that can be added to a Window. You can add sub-menus to it with Menu.Add.

func NewMenu

func NewMenu(name string) *Menu

NewMenu returns a new Menu with the given text. Add MenuItems to it using Menu.Add.

Place an ampersand in the name to underline the following character, e.g. "&File" to underline the "F". This will be the character used when the user uses the alt and arrow keys to navigate the menu.

func (m *Menu) Add(item MenuItem) *Menu

Add appends the given MenuItem to the Menu.

type MenuItem interface {
	// contains filtered or unexported methods
}

MenuItem is something that can go into a menu. Possible such things can be created via: NewMenu, NewMenuString, NewMenuSeparator.

func NewMenuSeparator

func NewMenuSeparator() MenuItem

NewMenuSeparator returns a horizontal line separating regions in a menu.

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

MenuString is an executable menu item, see NewMenuString.

func NewMenuString

func NewMenuString(text string) *MenuString

NewMenuString creates a new executable menu item with the given text.

Insert an ampersand to underline the following character, e.g. "New &File" to underline the "F". This will be the character used when the user uses the alt and arrow keys to navigate the menu.

If you want to display a shortcut text next to the menu, right aligned, insert a tab and then your text, e.g. "Open File\tCtrl+O" to have "Open File" on the left and "Ctrl+O" on the right.

func (m *MenuString) Checked() bool
func (m *MenuString) OnClick() func()
func (m *MenuString) SetChecked(c bool)
func (m *MenuString) SetOnClick(f func()) *MenuString
func (m *MenuString) SetText(s string)
func (m *MenuString) Text() string

type MessageCallback

type MessageCallback func(window uintptr, msg uint32, w, l uintptr) (handled bool, result uintptr)

MessageCallback is used as a hook into the main window procedure. It will run at its very start and may intercept all messages. If the callback returns true for handled, then the message is processed no further and the message loop returns the given result code. If the callback returns false for handled, then the message goes to this library's handler for it or to the default window procedure defined in the Windows API if it is not handled.

type MouseButton

type MouseButton int
const (
	MouseButtonLeft MouseButton = iota
	MouseButtonMiddle
	MouseButtonRight
)

func (MouseButton) String

func (b MouseButton) String() string

type PaintBox

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

func NewPaintBox

func NewPaintBox() *PaintBox

func (*PaintBox) Anchors

func (c *PaintBox) Anchors() (horizontal, vertical Anchor)

func (*PaintBox) Bounds

func (c *PaintBox) Bounds() (x, y, width, height int)

func (*PaintBox) Enabled

func (c *PaintBox) Enabled() bool

func (*PaintBox) Handle

func (c *PaintBox) Handle() uintptr

func (*PaintBox) Height

func (c *PaintBox) Height() int

func (*PaintBox) HorizontalAnchor

func (c *PaintBox) HorizontalAnchor() Anchor

func (*PaintBox) OnMouseMove

func (p *PaintBox) OnMouseMove() func(x, y int)

func (*PaintBox) OnPaint

func (p *PaintBox) OnPaint() func(*Canvas)

func (*PaintBox) OnResize

func (c *PaintBox) OnResize() func()

func (*PaintBox) Paint

func (p *PaintBox) Paint()

func (*PaintBox) Parent

func (c *PaintBox) Parent() Container

func (*PaintBox) Position

func (c *PaintBox) Position() (x, y int)

func (*PaintBox) SetAnchors

func (c *PaintBox) SetAnchors(horizontal, vertical Anchor)

func (*PaintBox) SetBounds

func (c *PaintBox) SetBounds(x, y, width, height int)

func (*PaintBox) SetEnabled

func (c *PaintBox) SetEnabled(e bool)

func (*PaintBox) SetHeight

func (c *PaintBox) SetHeight(height int)

func (*PaintBox) SetHorizontalAnchor

func (c *PaintBox) SetHorizontalAnchor(a Anchor)

func (*PaintBox) SetOnMouseMove

func (p *PaintBox) SetOnMouseMove(f func(x, y int))

func (*PaintBox) SetOnPaint

func (p *PaintBox) SetOnPaint(f func(*Canvas))

func (*PaintBox) SetOnResize

func (c *PaintBox) SetOnResize(f func())

func (*PaintBox) SetPosition

func (c *PaintBox) SetPosition(x, y int)

func (*PaintBox) SetSize

func (c *PaintBox) SetSize(width, height int)

func (*PaintBox) SetVerticalAnchor

func (c *PaintBox) SetVerticalAnchor(a Anchor)

func (*PaintBox) SetVisible

func (c *PaintBox) SetVisible(v bool)

func (*PaintBox) SetWidth

func (c *PaintBox) SetWidth(width int)

func (*PaintBox) SetX

func (c *PaintBox) SetX(x int)

func (*PaintBox) SetY

func (c *PaintBox) SetY(y int)

func (*PaintBox) Size

func (c *PaintBox) Size() (width, height int)

func (*PaintBox) VerticalAnchor

func (c *PaintBox) VerticalAnchor() Anchor

func (*PaintBox) Visible

func (c *PaintBox) Visible() bool

func (*PaintBox) Width

func (c *PaintBox) Width() int

func (*PaintBox) X

func (c *PaintBox) X() int

func (*PaintBox) Y

func (c *PaintBox) Y() int

type Panel

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

func NewPanel

func NewPanel() *Panel

func (*Panel) Add

func (p *Panel) Add(c Control)

func (*Panel) Anchors

func (c *Panel) Anchors() (horizontal, vertical Anchor)

func (*Panel) BorderStyle

func (p *Panel) BorderStyle() PanelBorderStyle

func (*Panel) Bounds

func (c *Panel) Bounds() (x, y, width, height int)

func (*Panel) Children

func (p *Panel) Children() []Control

func (*Panel) Enabled

func (c *Panel) Enabled() bool

func (*Panel) Font

func (p *Panel) Font() *Font

func (*Panel) Handle

func (c *Panel) Handle() uintptr

func (*Panel) Height

func (c *Panel) Height() int

func (*Panel) HorizontalAnchor

func (c *Panel) HorizontalAnchor() Anchor

func (*Panel) InnerBounds

func (p *Panel) InnerBounds() (x, y, width, height int)

func (*Panel) InnerHeight

func (p *Panel) InnerHeight() int

func (*Panel) InnerPosition

func (p *Panel) InnerPosition() (x, y int)

func (*Panel) InnerSize

func (p *Panel) InnerSize() (width, height int)

func (*Panel) InnerWidth

func (p *Panel) InnerWidth() int

func (*Panel) InnerX

func (p *Panel) InnerX() int

func (*Panel) InnerY

func (p *Panel) InnerY() int

func (*Panel) OnResize

func (c *Panel) OnResize() func()

func (*Panel) Parent

func (c *Panel) Parent() Container

func (*Panel) Position

func (c *Panel) Position() (x, y int)

func (*Panel) Remove

func (p *Panel) Remove(c Control)

func (*Panel) SetAnchors

func (c *Panel) SetAnchors(horizontal, vertical Anchor)

func (*Panel) SetBorderStyle

func (p *Panel) SetBorderStyle(s PanelBorderStyle)

func (*Panel) SetBounds

func (p *Panel) SetBounds(x, y, width, height int)

func (*Panel) SetEnabled

func (c *Panel) SetEnabled(e bool)

func (*Panel) SetFont

func (p *Panel) SetFont(f *Font)

func (*Panel) SetHeight

func (p *Panel) SetHeight(height int)

func (*Panel) SetHorizontalAnchor

func (c *Panel) SetHorizontalAnchor(a Anchor)

func (*Panel) SetInnerBounds

func (p *Panel) SetInnerBounds(x, y, width, height int)

func (*Panel) SetInnerHeight

func (p *Panel) SetInnerHeight(height int)

func (*Panel) SetInnerPosition

func (p *Panel) SetInnerPosition(x, y int)

func (*Panel) SetInnerSize

func (p *Panel) SetInnerSize(width, height int)

func (*Panel) SetInnerWidth

func (p *Panel) SetInnerWidth(width int)

func (*Panel) SetInnerX

func (p *Panel) SetInnerX(x int)

func (*Panel) SetInnerY

func (p *Panel) SetInnerY(y int)

func (*Panel) SetOnResize

func (c *Panel) SetOnResize(f func())

func (*Panel) SetPosition

func (p *Panel) SetPosition(x, y int)

func (*Panel) SetSize

func (p *Panel) SetSize(width, height int)

func (*Panel) SetVerticalAnchor

func (c *Panel) SetVerticalAnchor(a Anchor)

func (*Panel) SetVisible

func (c *Panel) SetVisible(v bool)

func (*Panel) SetWidth

func (p *Panel) SetWidth(width int)

func (*Panel) SetX

func (p *Panel) SetX(x int)

func (*Panel) SetY

func (p *Panel) SetY(y int)

func (*Panel) Size

func (c *Panel) Size() (width, height int)

func (*Panel) VerticalAnchor

func (c *Panel) VerticalAnchor() Anchor

func (*Panel) Visible

func (c *Panel) Visible() bool

func (*Panel) Width

func (c *Panel) Width() int

func (*Panel) X

func (c *Panel) X() int

func (*Panel) Y

func (c *Panel) Y() int

type PanelBorderStyle

type PanelBorderStyle int
const (
	PanelBorderNone PanelBorderStyle = iota
	PanelBorderSingleLine
	PanelBorderSunken
	PanelBorderSunkenThick
	PanelBorderRaised
)

func (PanelBorderStyle) String

func (s PanelBorderStyle) String() string

type Point

type Point struct {
	X, Y int32
}

type ProgressBar

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

func NewProgressBar

func NewProgressBar() *ProgressBar

func (*ProgressBar) Anchors

func (c *ProgressBar) Anchors() (horizontal, vertical Anchor)

func (*ProgressBar) Bounds

func (c *ProgressBar) Bounds() (x, y, width, height int)

func (*ProgressBar) Enabled

func (c *ProgressBar) Enabled() bool

func (*ProgressBar) Handle

func (c *ProgressBar) Handle() uintptr

func (*ProgressBar) Height

func (c *ProgressBar) Height() int

func (*ProgressBar) HorizontalAnchor

func (c *ProgressBar) HorizontalAnchor() Anchor

func (*ProgressBar) MovesForever

func (p *ProgressBar) MovesForever() bool

func (*ProgressBar) OnResize

func (c *ProgressBar) OnResize() func()

func (*ProgressBar) Parent

func (c *ProgressBar) Parent() Container

func (*ProgressBar) Position

func (c *ProgressBar) Position() (x, y int)

func (*ProgressBar) SetAnchors

func (c *ProgressBar) SetAnchors(horizontal, vertical Anchor)

func (*ProgressBar) SetBounds

func (c *ProgressBar) SetBounds(x, y, width, height int)

func (*ProgressBar) SetEnabled

func (c *ProgressBar) SetEnabled(e bool)

func (*ProgressBar) SetHeight

func (c *ProgressBar) SetHeight(height int)

func (*ProgressBar) SetHorizontalAnchor

func (c *ProgressBar) SetHorizontalAnchor(a Anchor)

func (*ProgressBar) SetMovesForever

func (p *ProgressBar) SetMovesForever(move bool)

func (*ProgressBar) SetOnResize

func (c *ProgressBar) SetOnResize(f func())

func (*ProgressBar) SetPosition

func (c *ProgressBar) SetPosition(x, y int)

func (*ProgressBar) SetSize

func (c *ProgressBar) SetSize(width, height int)

func (*ProgressBar) SetValue

func (p *ProgressBar) SetValue(v float64)

func (*ProgressBar) SetVertical

func (p *ProgressBar) SetVertical(v bool)

func (*ProgressBar) SetVerticalAnchor

func (c *ProgressBar) SetVerticalAnchor(a Anchor)

func (*ProgressBar) SetVisible

func (c *ProgressBar) SetVisible(v bool)

func (*ProgressBar) SetWidth

func (c *ProgressBar) SetWidth(width int)

func (*ProgressBar) SetX

func (c *ProgressBar) SetX(x int)

func (*ProgressBar) SetY

func (c *ProgressBar) SetY(y int)

func (*ProgressBar) Size

func (c *ProgressBar) Size() (width, height int)

func (*ProgressBar) Value

func (p *ProgressBar) Value() float64

func (*ProgressBar) Vertical

func (p *ProgressBar) Vertical() bool

func (*ProgressBar) VerticalAnchor

func (c *ProgressBar) VerticalAnchor() Anchor

func (*ProgressBar) Visible

func (c *ProgressBar) Visible() bool

func (*ProgressBar) Width

func (c *ProgressBar) Width() int

func (*ProgressBar) X

func (c *ProgressBar) X() int

func (*ProgressBar) Y

func (c *ProgressBar) Y() int

type RadioButton

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

RadioButton is a control with a circle that is either filled to indicate checked state or unfilled to indicate unchecked state. It has a label next to the circle. Of multiple radio buttons in a container, only one can ever be checked at a time. Also all might be unchecked. Checking one radio button will automatically uncheck all others in the container.

func NewRadioButton

func NewRadioButton() *RadioButton

NewRadioButton returns a new, unchecked RadioButton.

func (*RadioButton) Checked

func (r *RadioButton) Checked() bool

Checked returns true if the radio button is checked and false if not.

func (*RadioButton) Focus

func (c *RadioButton) Focus()

func (*RadioButton) Font

func (c *RadioButton) Font() *Font

func (*RadioButton) HasFocus

func (c *RadioButton) HasFocus() bool

func (*RadioButton) OnCheck

func (r *RadioButton) OnCheck() func(checked bool)

OnCheck returns the callback set in SetOnCheck.

func (*RadioButton) OnTabFocus

func (r *RadioButton) OnTabFocus() func()

func (*RadioButton) SetChecked

func (r *RadioButton) SetChecked(checked bool)

SetChecked updates the state of the RadioButton. If checked is true and the button was not checked before, the OnCheck notification is called. Checking a radio button will uncheck all its siblings, i.e. all radio buttons that are in the same parent container.

func (*RadioButton) SetFont

func (c *RadioButton) SetFont(font *Font)

func (*RadioButton) SetOnCheck

func (r *RadioButton) SetOnCheck(f func(checked bool))

SetOnCheck sets a callback for when the RadioButton is checked. It is not called when the RadioButton is being unchecked.

func (*RadioButton) SetOnTabFocus

func (r *RadioButton) SetOnTabFocus(f func())

func (*RadioButton) SetText

func (c *RadioButton) SetText(text string)

func (*RadioButton) Text

func (c *RadioButton) Text() string

type Rectangle

type Rectangle struct {
	X, Y, Width, Height int
}

func Rect

func Rect(x, y, width, height int) Rectangle

type Slider

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

func NewSlider

func NewSlider() *Slider

func (*Slider) Anchors

func (c *Slider) Anchors() (horizontal, vertical Anchor)

func (*Slider) ArrowIncrement

func (s *Slider) ArrowIncrement() int

func (*Slider) Bounds

func (c *Slider) Bounds() (x, y, width, height int)

func (*Slider) CursorPosition

func (s *Slider) CursorPosition() int

CursorPosition returns the current position of the Slider.

func (*Slider) Enabled

func (c *Slider) Enabled() bool

func (*Slider) Handle

func (c *Slider) Handle() uintptr

func (*Slider) Height

func (c *Slider) Height() int

func (*Slider) HorizontalAnchor

func (c *Slider) HorizontalAnchor() Anchor

func (*Slider) Max

func (s *Slider) Max() int

func (*Slider) Min

func (s *Slider) Min() int

func (*Slider) MinMax

func (s *Slider) MinMax() (min, max int)

func (*Slider) MouseIncrement

func (s *Slider) MouseIncrement() int

func (*Slider) OnChange

func (s *Slider) OnChange() func(cursor int)

func (*Slider) OnResize

func (c *Slider) OnResize() func()

func (*Slider) OnTabFocus

func (s *Slider) OnTabFocus() func()

func (*Slider) Orientation

func (s *Slider) Orientation() SliderOrientation

func (*Slider) Parent

func (c *Slider) Parent() Container

func (*Slider) Position

func (c *Slider) Position() (x, y int)

func (*Slider) SetAnchors

func (c *Slider) SetAnchors(horizontal, vertical Anchor)

func (*Slider) SetArrowIncrement

func (s *Slider) SetArrowIncrement(inc int)

SetArrowIncrement is for the arrow keys, left/down/right/up.

func (*Slider) SetBounds

func (c *Slider) SetBounds(x, y, width, height int)

func (*Slider) SetCursorPosition

func (s *Slider) SetCursorPosition(cursor int)

SetCursorPosition sets the position of the cursor. It clamps it to the Slider's min/max values.

func (*Slider) SetEnabled

func (c *Slider) SetEnabled(e bool)

func (*Slider) SetHeight

func (c *Slider) SetHeight(height int)

func (*Slider) SetHorizontalAnchor

func (c *Slider) SetHorizontalAnchor(a Anchor)

func (*Slider) SetMax

func (s *Slider) SetMax(max int)

func (*Slider) SetMin

func (s *Slider) SetMin(min int)

func (*Slider) SetMinMax

func (s *Slider) SetMinMax(min, max int)

SetMinMax sets the minimum and maximum values of the Slider. min must be smaller or equal to max. If the current cursor is outside these ranges, it is clamped.

func (*Slider) SetMouseIncrement

func (s *Slider) SetMouseIncrement(inc int)

SetMouseIncrement is for mouse clicks and the page up/down keys.

func (*Slider) SetOnChange

func (s *Slider) SetOnChange(f func(cursor int))

func (*Slider) SetOnResize

func (c *Slider) SetOnResize(f func())

func (*Slider) SetOnTabFocus

func (s *Slider) SetOnTabFocus(f func())

func (*Slider) SetOrientation

func (s *Slider) SetOrientation(o SliderOrientation)

SetOrientation only takes effect before the window is shown on screen. At run-time this cannot be changed.

func (*Slider) SetPosition

func (c *Slider) SetPosition(x, y int)

func (*Slider) SetSize

func (c *Slider) SetSize(width, height int)

func (*Slider) SetTickFrequency

func (s *Slider) SetTickFrequency(n int)

SetTickFrequency sets the distance between two ticks to n (only every n'th tick is drawn). The first and last ticks are always drawn (except if you hide ticks altogether).

func (*Slider) SetTickPosition

func (s *Slider) SetTickPosition(p TickPosition)

SetTickPosition only takes effect before the window is shown on screen. At run-time this cannot be changed.

func (*Slider) SetTicksVisible

func (s *Slider) SetTicksVisible(show bool)

SetTicksVisible only takes effect before the window is shown on screen. At run-time this cannot be changed.

func (*Slider) SetVerticalAnchor

func (c *Slider) SetVerticalAnchor(a Anchor)

func (*Slider) SetVisible

func (c *Slider) SetVisible(v bool)

func (*Slider) SetWidth

func (c *Slider) SetWidth(width int)

func (*Slider) SetX

func (c *Slider) SetX(x int)

func (*Slider) SetY

func (c *Slider) SetY(y int)

func (*Slider) Size

func (c *Slider) Size() (width, height int)

func (*Slider) TickFrequency

func (s *Slider) TickFrequency() int

func (*Slider) TickPosition

func (s *Slider) TickPosition() TickPosition

func (*Slider) TicksVisible

func (s *Slider) TicksVisible() bool

func (*Slider) VerticalAnchor

func (c *Slider) VerticalAnchor() Anchor

func (*Slider) Visible

func (c *Slider) Visible() bool

func (*Slider) Width

func (c *Slider) Width() int

func (*Slider) X

func (c *Slider) X() int

func (*Slider) Y

func (c *Slider) Y() int

type SliderOrientation

type SliderOrientation int
const (
	HorizontalSlider SliderOrientation = iota
	VerticalSlider
)

func (SliderOrientation) String

func (o SliderOrientation) String() string

type StringList

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

func NewStringList

func NewStringList() *StringList

func (*StringList) AddItem

func (l *StringList) AddItem(s string)

func (*StringList) Clear

func (l *StringList) Clear()

func (*StringList) Focus

func (c *StringList) Focus()

func (*StringList) Font

func (c *StringList) Font() *Font

func (*StringList) HasFocus

func (c *StringList) HasFocus() bool

func (*StringList) Items

func (l *StringList) Items() []string

func (*StringList) OnChange

func (l *StringList) OnChange() func(newIndex int)

func (*StringList) SelectedIndex

func (l *StringList) SelectedIndex() int

func (*StringList) SetFont

func (c *StringList) SetFont(font *Font)

func (*StringList) SetItems

func (l *StringList) SetItems(items []string)

func (*StringList) SetOnChange

func (l *StringList) SetOnChange(f func(newIndex int))

func (*StringList) SetSelectedIndex

func (l *StringList) SetSelectedIndex(i int)

SetSelectedIndex sets the current index. Set -1 to remove any selection and make the list box empty. If you pass a value < -1 it will be set to -1 instead. The index is not clamped to the number of items, you may set the index 10 where only 5 items are set. This lets you set the index and items at design time without one invalidating the other. At runtime though, SelectedIndex() will return -1 if you set an invalid index.

func (*StringList) SetText

func (c *StringList) SetText(text string)

func (*StringList) Text

func (c *StringList) Text() string

type StringTable

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

func NewStringTable

func NewStringTable(header1 string, headers ...string) *StringTable

func (*StringTable) Clear

func (c *StringTable) Clear()

func (*StringTable) ColCount

func (c *StringTable) ColCount() int

func (*StringTable) DeleteRow

func (c *StringTable) DeleteRow(row int)

func (*StringTable) Focus

func (c *StringTable) Focus()

func (*StringTable) Font

func (c *StringTable) Font() *Font

func (*StringTable) HasFocus

func (c *StringTable) HasFocus() bool

func (*StringTable) OnSelectionChange

func (c *StringTable) OnSelectionChange() func()

func (*StringTable) OnTabFocus

func (s *StringTable) OnTabFocus() func()

func (*StringTable) RowCount

func (c *StringTable) RowCount() int

func (*StringTable) SelectedRow

func (c *StringTable) SelectedRow() int

func (*StringTable) SetCell

func (c *StringTable) SetCell(col, row int, s string)

func (*StringTable) SetFont

func (c *StringTable) SetFont(font *Font)

func (*StringTable) SetOnSelectionChange

func (c *StringTable) SetOnSelectionChange(f func())

func (*StringTable) SetOnTabFocus

func (s *StringTable) SetOnTabFocus(f func())

func (*StringTable) SetText

func (c *StringTable) SetText(text string)

func (*StringTable) Text

func (c *StringTable) Text() string

type TextAlignment

type TextAlignment int
const (
	AlignLeft TextAlignment = iota
	AlignCenter
	AlignRight
)

func (TextAlignment) String

func (a TextAlignment) String() string

type TextEdit

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

func NewTextEdit

func NewTextEdit() *TextEdit

func (*TextEdit) CharacterLimit

func (e *TextEdit) CharacterLimit() int

func (*TextEdit) CursorPosition

func (c *TextEdit) CursorPosition() (start, end int)

CursorPosition returns the current cursor position, respectively the current selection.

If no selection is active, the returned start and end values are the same. They then indicate the index of the UTF-8 character in this EditLine's Text() before which the caret is currently set.

If a selection is active, start is the index of the first selected UTF-8 character in Text() and end is the position one character after the end of the selection. The selected text is thus

c.Text()[start:end]

func (*TextEdit) OnTabFocus

func (e *TextEdit) OnTabFocus() func()

func (*TextEdit) OnTextChange

func (e *TextEdit) OnTextChange() func()

func (*TextEdit) ReadOnly

func (e *TextEdit) ReadOnly() bool

func (*TextEdit) SelectAll

func (c *TextEdit) SelectAll()

func (*TextEdit) SetCharacterLimit

func (e *TextEdit) SetCharacterLimit(count int)

func (*TextEdit) SetCursorPosition

func (c *TextEdit) SetCursorPosition(pos int)

func (*TextEdit) SetOnTabFocus

func (e *TextEdit) SetOnTabFocus(f func())

func (*TextEdit) SetOnTextChange

func (e *TextEdit) SetOnTextChange(f func())

func (*TextEdit) SetReadOnly

func (e *TextEdit) SetReadOnly(readOnly bool)

func (*TextEdit) SetSelection

func (c *TextEdit) SetSelection(start, end int)

func (*TextEdit) SetWordWrap

func (e *TextEdit) SetWordWrap(wrap bool)

func (*TextEdit) SetWritesTabs

func (e *TextEdit) SetWritesTabs(tabs bool)

func (*TextEdit) WordWrap

func (e *TextEdit) WordWrap() bool

func (*TextEdit) WritesTabs

func (e *TextEdit) WritesTabs() bool

type TickPosition

type TickPosition int
const (
	TicksBottomOrRight TickPosition = iota
	TicksTopOrLeft
	TicksOnBothSides
)

func (TickPosition) String

func (p TickPosition) String() string

type VisibleControl

type VisibleControl interface {
	Visible() bool
	Parent() Container
}

type Window

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

func NewWindow

func NewWindow() *Window

func (*Window) Add

func (w *Window) Add(c Control)

func (*Window) Alpha

func (w *Window) Alpha() uint8

func (*Window) Bounds

func (w *Window) Bounds() (x, y, width, height int)

func (*Window) Children

func (w *Window) Children() []Control

func (*Window) ClassName

func (w *Window) ClassName() string

func (*Window) Close

func (w *Window) Close()

func (*Window) Cursor

func (w *Window) Cursor() *Cursor

func (*Window) Destroy

func (w *Window) Destroy()

func (*Window) DisableAltF4

func (w *Window) DisableAltF4()

func (*Window) EnableAltF4

func (w *Window) EnableAltF4()

func (*Window) Enabled

func (w *Window) Enabled() bool

func (*Window) Font

func (w *Window) Font() *Font

func (*Window) GetBackground

func (w *Window) GetBackground() Color

func (*Window) Handle

func (w *Window) Handle() uintptr

func (*Window) HasBorder

func (w *Window) HasBorder() bool

func (*Window) HasCloseButton

func (w *Window) HasCloseButton() bool

func (*Window) HasMaxButton

func (w *Window) HasMaxButton() bool

func (*Window) HasMinButton

func (w *Window) HasMinButton() bool

func (*Window) Height

func (w *Window) Height() int

func (*Window) HideConsoleOnStart

func (w *Window) HideConsoleOnStart()

func (*Window) Icon

func (w *Window) Icon() *Icon

func (*Window) InnerBounds

func (w *Window) InnerBounds() (x, y, width, height int)

func (*Window) InnerHeight

func (w *Window) InnerHeight() int

func (*Window) InnerPosition

func (w *Window) InnerPosition() (x, y int)

func (*Window) InnerSize

func (w *Window) InnerSize() (width, height int)

func (*Window) InnerWidth

func (w *Window) InnerWidth() int

func (*Window) InnerX

func (w *Window) InnerX() int

func (*Window) InnerY

func (w *Window) InnerY() int

func (*Window) Menu

func (w *Window) Menu() *Menu

func (*Window) Monitor

func (w *Window) Monitor() uintptr

Monitor returns the handle to the monitor (HMONITOR) that the window is over. Before the window is shown, Monitor returns 0.

func (*Window) OnCanClose

func (w *Window) OnCanClose() func() bool

func (*Window) OnChar

func (w *Window) OnChar() func(r rune)

func (*Window) OnClose

func (w *Window) OnClose() func()

func (*Window) OnKeyDown

func (w *Window) OnKeyDown() func(key int)

func (*Window) OnKeyUp

func (w *Window) OnKeyUp() func(key int)

func (*Window) OnMessage

func (w *Window) OnMessage() MessageCallback

func (*Window) OnMouseDown

func (w *Window) OnMouseDown() func(button MouseButton, x, y int)

func (*Window) OnMouseMove

func (w *Window) OnMouseMove() func(x, y int)

func (*Window) OnMouseUp

func (w *Window) OnMouseUp() func(button MouseButton, x, y int)

func (*Window) OnMouseWheel

func (w *Window) OnMouseWheel() func(x, y int, delta float64)

func (*Window) OnResize

func (w *Window) OnResize() func()

func (*Window) OnShow

func (w *Window) OnShow() func()

func (*Window) Parent

func (w *Window) Parent() Container

func (*Window) Position

func (w *Window) Position() (x, y int)

func (*Window) Remove

func (w *Window) Remove(c Control)

func (*Window) Repaint

func (w *Window) Repaint()

func (*Window) Resizable

func (w *Window) Resizable() bool

func (*Window) Scroll

func (w *Window) Scroll(dx, dy int)

func (*Window) SetAlpha

func (w *Window) SetAlpha(a uint8)

func (*Window) SetBackground

func (w *Window) SetBackground(c Color)

func (*Window) SetBounds

func (w *Window) SetBounds(x, y, width, height int)

func (*Window) SetClassName

func (w *Window) SetClassName(name string)

SetClassName sets the identifier used for registering this window's class using RegisterClass or RegisterClassEx when first creating this window. This can only be done before the window is shown. For a running window this name will not be updated.

func (*Window) SetCursor

func (w *Window) SetCursor(c *Cursor)

func (*Window) SetFont

func (w *Window) SetFont(f *Font)

func (*Window) SetHasBorder

func (w *Window) SetHasBorder(border bool)

func (*Window) SetHasCloseButton

func (w *Window) SetHasCloseButton(hasClose bool)

func (*Window) SetHasMaxButton

func (w *Window) SetHasMaxButton(hasMax bool)

func (*Window) SetHasMinButton

func (w *Window) SetHasMinButton(hasMin bool)

func (*Window) SetHeight

func (w *Window) SetHeight(height int)

func (*Window) SetIcon

func (w *Window) SetIcon(icon *Icon)

func (*Window) SetInnerBounds

func (w *Window) SetInnerBounds(x, y, width, height int)

func (*Window) SetInnerHeight

func (w *Window) SetInnerHeight(height int)

func (*Window) SetInnerPosition

func (w *Window) SetInnerPosition(x, y int)

func (*Window) SetInnerSize

func (w *Window) SetInnerSize(width, height int)

func (*Window) SetInnerWidth

func (w *Window) SetInnerWidth(width int)

func (*Window) SetInnerX

func (w *Window) SetInnerX(x int)

func (*Window) SetInnerY

func (w *Window) SetInnerY(y int)

func (*Window) SetMenu

func (w *Window) SetMenu(m *Menu)

func (*Window) SetOnCanClose

func (w *Window) SetOnCanClose(f func() bool)

SetOnCanClose is passed a function that is called when the window is about to be closed, e.g. when the user hits Alt+F4. If f returns true the window is closed, if f returns false, the window stays open.

func (*Window) SetOnChar

func (w *Window) SetOnChar(f func(r rune))

func (*Window) SetOnClose

func (w *Window) SetOnClose(f func())

func (*Window) SetOnKeyDown

func (w *Window) SetOnKeyDown(f func(key int))

func (*Window) SetOnKeyUp

func (w *Window) SetOnKeyUp(f func(key int))

func (*Window) SetOnMessage

func (w *Window) SetOnMessage(f MessageCallback)

func (*Window) SetOnMouseDown

func (w *Window) SetOnMouseDown(f func(button MouseButton, x, y int))

func (*Window) SetOnMouseMove

func (w *Window) SetOnMouseMove(f func(x, y int))

func (*Window) SetOnMouseUp

func (w *Window) SetOnMouseUp(f func(button MouseButton, x, y int))

func (*Window) SetOnMouseWheel

func (w *Window) SetOnMouseWheel(f func(x, y int, delta float64))

func (*Window) SetOnResize

func (w *Window) SetOnResize(f func())

func (*Window) SetOnShow

func (w *Window) SetOnShow(f func())

func (*Window) SetPosition

func (w *Window) SetPosition(x, y int)

func (*Window) SetResizable

func (w *Window) SetResizable(canResize bool)

func (*Window) SetShortcut

func (w *Window) SetShortcut(f func(), keys ...Key)

func (*Window) SetSize

func (w *Window) SetSize(width, height int)

func (*Window) SetState

func (w *Window) SetState(s WindowState)

func (*Window) SetTitle

func (w *Window) SetTitle(title string)

func (*Window) SetWidth

func (w *Window) SetWidth(width int)

func (*Window) SetX

func (w *Window) SetX(x int)

func (*Window) SetY

func (w *Window) SetY(y int)

func (*Window) Show

func (w *Window) Show() error

func (*Window) ShowConsoleOnStart

func (w *Window) ShowConsoleOnStart()

func (*Window) ShowModal

func (w *Window) ShowModal() error

func (*Window) Size

func (w *Window) Size() (width, height int)

func (*Window) State

func (w *Window) State() WindowState

func (*Window) Title

func (w *Window) Title() string

func (*Window) Visible

func (w *Window) Visible() bool

func (*Window) Width

func (w *Window) Width() int

func (*Window) X

func (w *Window) X() int

func (*Window) Y

func (w *Window) Y() int

type WindowState

type WindowState int
const (
	WindowNormal WindowState = iota
	WindowMaximized
	WindowMinimized
)

func (WindowState) String

func (s WindowState) String() string

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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