123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // SPDX-License-Identifier: Unlicense OR MIT
- /*
- Package app provides a platform-independent interface to operating system
- functionality for running graphical user interfaces.
- See https://gioui.org for instructions to set up and run Gio programs.
- # Windows
- A Window is run by calling its Event method in a loop. The first time a
- method on Window is called, a new GUI window is created and shown. On mobile
- platforms or when Gio is embedded in another project, Window merely connects
- with a previously created GUI window.
- The most important event is [FrameEvent] that prompts an update of the window
- contents.
- For example:
- w := new(app.Window)
- for {
- e := w.Event()
- if e, ok := e.(app.FrameEvent); ok {
- ops.Reset()
- // Add operations to ops.
- ...
- // Completely replace the window contents and state.
- e.Frame(ops)
- }
- }
- A program must keep receiving events from the event channel until
- [DestroyEvent] is received.
- # Main
- The Main function must be called from a program's main function, to hand over
- control of the main thread to operating systems that need it.
- Because Main is also blocking on some platforms, the event loop of a Window must run in a goroutine.
- For example, to display a blank but otherwise functional window:
- package main
- import "gioui.org/app"
- func main() {
- go func() {
- w := app.NewWindow()
- for {
- w.Event()
- }
- }()
- app.Main()
- }
- # Permissions
- The packages under gioui.org/app/permission should be imported
- by a Gio program or by one of its dependencies to indicate that specific
- operating-system permissions are required. Please see documentation for
- package gioui.org/app/permission for more information.
- */
- package app
|