package stone import "image/color" // Application represents an application. type Application struct { DamageBuffer title string backend Backend config Config } // SetTitle sets the application's title. If in a window, it will appear as the // window's name. func (application *Application) SetTitle (title string) { application.title = title application.backend.SetTitle(title) } // Run initializes the application, starts it, and then returns a channel that // broadcasts events. If no suitable backend can be found, an error is returned. func (application *Application) Run () ( channel chan(Event), err error, ) { // default values for certain parameters width, height := application.Size() if width < 1 { width = 80 } if height < 1 { height = 20 } application.DamageBuffer.SetSize(width, height) // TODO: load these from a file application.config.colors = [4]color.Color { color.RGBA { R: 0x2B, G: 0x30, B: 0x3C, A: 0xFF }, color.RGBA { R: 0x4C, G: 0x56, B: 0x6A, A: 0xFF }, color.RGBA { R: 0x2E, G: 0x34, B: 0x40, A: 0xFF }, color.RGBA { R: 0xA8, G: 0x55, B: 0x5D, A: 0xFF }, } application.config.padding = 4 application.backend, err = instantiateBackend(application) if err != nil { return } channel = make(chan(Event)) application.backend.Run(channel) return }