mirror of https://github.com/anoshenko/rui.git
NewApplication function and Start function of the Application interface were replaced by StartApp function
This commit is contained in:
parent
93abec1bff
commit
4692d0013a
|
@ -1,5 +1,6 @@
|
||||||
# v0.5.0
|
# v0.5.0
|
||||||
|
|
||||||
|
* NewApplication function and Start function of the Application interface were replaced by StartApp function
|
||||||
* Added HasFocus function to the View interface
|
* Added HasFocus function to the View interface
|
||||||
* Added the UserAgent function to the Session interface
|
* Added the UserAgent function to the Session interface
|
||||||
* Added the following properties to TableView: "selection-mode", "allow-selection", "current", "current-style", "current-inactive-style"
|
* Added the following properties to TableView: "selection-mode", "allow-selection", "current", "current-style", "current-inactive-style"
|
||||||
|
|
|
@ -27,19 +27,24 @@ var defaultThemeText string
|
||||||
|
|
||||||
// Application - app interface
|
// Application - app interface
|
||||||
type Application interface {
|
type Application interface {
|
||||||
// Start - start the application life cycle
|
|
||||||
Start(addr string)
|
|
||||||
Finish()
|
Finish()
|
||||||
nextSessionID() int
|
nextSessionID() int
|
||||||
removeSession(id int)
|
removeSession(id int)
|
||||||
}
|
}
|
||||||
|
|
||||||
type application struct {
|
type application struct {
|
||||||
name, icon string
|
params AppParams
|
||||||
createContentFunc func(Session) SessionContent
|
createContentFunc func(Session) SessionContent
|
||||||
sessions map[int]Session
|
sessions map[int]Session
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AppParams defines parameters of the app
|
||||||
|
type AppParams struct {
|
||||||
|
Title string
|
||||||
|
TitleColor Color
|
||||||
|
Icon string
|
||||||
|
}
|
||||||
|
|
||||||
func (app *application) getStartPage() string {
|
func (app *application) getStartPage() string {
|
||||||
buffer := allocStringBuilder()
|
buffer := allocStringBuilder()
|
||||||
defer freeStringBuilder(buffer)
|
defer freeStringBuilder(buffer)
|
||||||
|
@ -49,12 +54,19 @@ func (app *application) getStartPage() string {
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>`)
|
<title>`)
|
||||||
buffer.WriteString(app.name)
|
buffer.WriteString(app.params.Title)
|
||||||
buffer.WriteString("</title>")
|
buffer.WriteString("</title>")
|
||||||
if app.icon != "" {
|
if app.params.Icon != "" {
|
||||||
buffer.WriteString(`
|
buffer.WriteString(`
|
||||||
<link rel="icon" href="`)
|
<link rel="icon" href="`)
|
||||||
buffer.WriteString(app.icon)
|
buffer.WriteString(app.params.Icon)
|
||||||
|
buffer.WriteString(`">`)
|
||||||
|
}
|
||||||
|
|
||||||
|
if app.params.TitleColor != 0 {
|
||||||
|
buffer.WriteString(`
|
||||||
|
<meta name="theme-color" content="`)
|
||||||
|
buffer.WriteString(app.params.TitleColor.cssString())
|
||||||
buffer.WriteString(`">`)
|
buffer.WriteString(`">`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,9 +90,8 @@ func (app *application) getStartPage() string {
|
||||||
return buffer.String()
|
return buffer.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *application) init(name, icon string) {
|
func (app *application) init(params AppParams) {
|
||||||
app.name = name
|
app.params = params
|
||||||
app.icon = icon
|
|
||||||
app.sessions = map[int]Session{}
|
app.sessions = map[int]Session{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -277,12 +288,14 @@ func (app *application) startSession(params DataObject, events chan DataObject,
|
||||||
return session, answerText
|
return session, answerText
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewApplication - create the new application of the single view type.
|
// NewApplication - create the new application and start it
|
||||||
func NewApplication(name, icon string, createContentFunc func(Session) SessionContent) Application {
|
func StartApp(addr string, createContentFunc func(Session) SessionContent, params AppParams) {
|
||||||
app := new(application)
|
app := new(application)
|
||||||
app.init(name, icon)
|
app.init(params)
|
||||||
app.createContentFunc = createContentFunc
|
app.createContentFunc = createContentFunc
|
||||||
return app
|
|
||||||
|
http.Handle("/", app)
|
||||||
|
log.Fatal(http.ListenAndServe(addr, nil))
|
||||||
}
|
}
|
||||||
|
|
||||||
func OpenBrowser(url string) bool {
|
func OpenBrowser(url string) bool {
|
||||||
|
|
11
demo/main.go
11
demo/main.go
|
@ -113,10 +113,6 @@ func (demo *demoSession) CreateRootView(session rui.Session) rui.View {
|
||||||
|
|
||||||
rui.Set(demo.rootView, "rootTitleButton", rui.ClickEvent, demo.clickMenuButton)
|
rui.Set(demo.rootView, "rootTitleButton", rui.ClickEvent, demo.clickMenuButton)
|
||||||
demo.showPage(0)
|
demo.showPage(0)
|
||||||
if color, ok := rui.StringToColor("#ffc0ded9"); ok {
|
|
||||||
session.SetTitleColor(color)
|
|
||||||
}
|
|
||||||
|
|
||||||
return demo.rootView
|
return demo.rootView
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,11 +154,14 @@ func (demo *demoSession) showPage(index int) {
|
||||||
func main() {
|
func main() {
|
||||||
rui.ProtocolInDebugLog = true
|
rui.ProtocolInDebugLog = true
|
||||||
rui.AddEmbedResources(&resources)
|
rui.AddEmbedResources(&resources)
|
||||||
app := rui.NewApplication("RUI demo", "icon.svg", createDemo)
|
|
||||||
|
|
||||||
//addr := rui.GetLocalIP() + ":8080"
|
//addr := rui.GetLocalIP() + ":8080"
|
||||||
addr := "localhost:8000"
|
addr := "localhost:8000"
|
||||||
fmt.Print(addr)
|
fmt.Print(addr)
|
||||||
rui.OpenBrowser("http://" + addr)
|
rui.OpenBrowser("http://" + addr)
|
||||||
app.Start(addr)
|
rui.StartApp(addr, createDemo, rui.AppParams{
|
||||||
|
Title: "RUI demo",
|
||||||
|
Icon: "icon.svg",
|
||||||
|
TitleColor: rui.Color(0xffc0ded9),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue