go-flutter: github.com/go-flutter-desktop/go-flutter Index | Files | Directories

package flutter

import "github.com/go-flutter-desktop/go-flutter"

Package flutter combines the embedder API with GLFW and plugins. Flutter and Go on the desktop.

go-flutter is in active development. API's must be considered alpha/unstable and may be changed at any time.


Package Files

application.go doc.go glfw.go keyboard.go messenger.go navigation.go option.go platform.go plugin.go textinput.go textinput_model.go


var KeyboardAzertyLayout = KeyboardShortcuts{
    Cut:       glfw.KeyX,
    Copy:      glfw.KeyC,
    Paste:     glfw.KeyV,
    SelectAll: glfw.KeyQ,

KeyboardAzertyLayout gives an Azerty layout (french)

var KeyboardQwertyLayout = KeyboardShortcuts{
    Cut:       glfw.KeyX,
    Copy:      glfw.KeyC,
    Paste:     glfw.KeyV,
    SelectAll: glfw.KeyA,

KeyboardQwertyLayout is the default key for shortcuts (US-layout)

func Run Uses

func Run(opt ...Option) (err error)

Run executes a flutter application with the provided options. given limitations this method must be called by the main function directly.

Run(opt) is short for NewApplication(opt).Run()

type Application Uses

type Application struct {
    // contains filtered or unexported fields

Application provides the flutter engine in a user friendly matter.

func NewApplication Uses

func NewApplication(opt ...Option) *Application

NewApplication creates a new application with provided options.

func (*Application) Run Uses

func (a *Application) Run() error

Run starts the application and waits for it to finish.

type KeyboardShortcuts Uses

type KeyboardShortcuts struct {
    Cut       glfw.Key
    Copy      glfw.Key
    Paste     glfw.Key
    SelectAll glfw.Key

KeyboardShortcuts contains the configuration for keyboard shortcut keys. This allows an application to support keyboard layout different from US layout.

type Option Uses

type Option func(*config)

Option for Application

func AddPlugin Uses

func AddPlugin(p Plugin) Option

AddPlugin adds a plugin to the flutter application.

func ApplicationICUDataPath Uses

func ApplicationICUDataPath(p string) Option

ApplicationICUDataPath specify the path to the ICUData.

func ApplicationWindowDimension Uses

func ApplicationWindowDimension(x, y int) Option

ApplicationWindowDimension specify the startup's dimensions of the window.

Deprecated, please use WindowInitialDimensions(x, y).

func ForcePixelRatio Uses

func ForcePixelRatio(ratio float64) Option

ForcePixelRatio forces the the scale factor for the screen. By default, go-flutter will calculate the correct pixel ratio for the user, based on their monitor DPI. Setting this option is not advised.

func OptionKeyboardLayout Uses

func OptionKeyboardLayout(keyboardLayout KeyboardShortcuts) Option

OptionKeyboardLayout allow application to support keyboard that have a different layout and therefore different keyboard shortcuts.

func OptionPixelRatio Uses

func OptionPixelRatio(ratio float64) Option

OptionPixelRatio forces the the scale factor for the screen. By default, go-flutter will calculate the correct pixel ratio for the user, based on their monitor DPI. Setting this option is not advised.

Deprecated, please use ForcePixelRatio(ratio).

func OptionVMArguments Uses

func OptionVMArguments(a []string) Option

OptionVMArguments specify the arguments to the Dart VM.

func OptionWindowInitializer Uses

func OptionWindowInitializer(ini func(*glfw.Window) error) Option

OptionWindowInitializer allow initializing the window.

Deprecated, please use WindowIcon if you'd like to set the window icon.

func ProjectAssetPath Uses

func ProjectAssetPath(p string) Option

ProjectAssetPath specify the flutter assets directory.

Deprecated, please use ProjectAssetsPath(path).

func ProjectAssetsPath Uses

func ProjectAssetsPath(p string) Option

ProjectAssetsPath specify the flutter assets directory.

func WindowIcon Uses

func WindowIcon(iconProivder func() ([]image.Image, error)) Option

WindowIcon sets an icon provider func, which is called during window initialization. For tips on the kind of images to provide, see https://godoc.org/github.com/go-gl/glfw/v3.2/glfw#Window.SetIcon

func WindowInitialDimensions Uses

func WindowInitialDimensions(x, y int) Option

WindowInitialDimensions specify the startup's dimension of the window.

type Plugin Uses

type Plugin interface {
    // InitPlugin is called during the startup of the flutter application. The
    // plugin is responsible for setting up channels using the BinaryMessenger.
    // If an error is returned it is printend the application is stopped.
    InitPlugin(messenger plugin.BinaryMessenger) error

Plugin defines the interface that each plugin must implement. When InitPlugin is called, the plugin may execute setup operations. The BinaryMessenger is passed to allow the plugin to register channels. A plugin may optionally implement PluginGLFW.

type PluginGLFW Uses

type PluginGLFW interface {
    // Any type inmplementing PluginGLFW must also implement Plugin.
    // InitPluginGLFW is called after the call to InitPlugin. When an error is
    // returned it is printend the application is stopped.
    InitPluginGLFW(window *glfw.Window) error

PluginGLFW defines the interface for plugins that are GLFW-aware. Plugins may implement this interface to receive access to the *glfw.Window. Note that plugins must still implement the Plugin interface. The call to InitPluginGLFW is made afther the call to InitPlugin.

PluginGLFW is separated because not all plugins need to know about glfw, Adding glfw.Window to the InitPlugin call would add glfw as dependency to every plugin implementation. Also, this helps in a scenarion where glfw is moved into a separate renderer/glfw package.

The PluginGLFW interface is not stable and may change at any time.


embedderPackage embedder wraps the Flutter Embedder C API to Go.
pluginPackage plugin contains message codecs, method codecs and channel implementations which allow plugins to communicate between the flutter framework and the host (Go).

Package flutter imports 18 packages (graph) and is imported by 1 packages. Updated 2019-04-16. Refresh now. Tools for package owners.