mirror of https://github.com/anoshenko/rui.git
82 lines
3.0 KiB
Go
82 lines
3.0 KiB
Go
|
package main
|
||
|
|
||
|
import "github.com/anoshenko/rui"
|
||
|
|
||
|
const backgroundDemoText = `
|
||
|
GridLayout {
|
||
|
style = demoPage,
|
||
|
content = [
|
||
|
ListLayout {
|
||
|
width = 100%, height = 100%, padding = 32px,
|
||
|
content = [
|
||
|
TextView {
|
||
|
id = backgroundView, width = 100%, height = 150%, padding = 16px,
|
||
|
text = "Sample text", text-size = 4em,
|
||
|
border = _{ style = dotted, width = 8px, color = #FF008800 },
|
||
|
background = image { src = cat.jpg }
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
ListLayout {
|
||
|
style = optionsPanel,
|
||
|
content = [
|
||
|
GridLayout {
|
||
|
style = optionsTable,
|
||
|
content = [
|
||
|
TextView { row = 0, text = "Image" },
|
||
|
DropDownList { row = 0, column = 1, id = backgroundImage1, current = 0, items = ["cat.jpg", "winds.png", "gifsInEmail.gif", "mountain.svg"]},
|
||
|
TextView { row = 1, text = "Fit" },
|
||
|
DropDownList { row = 1, column = 1, id = backgroundFit1, current = 0, items = ["none", "contain", "cover"]},
|
||
|
TextView { row = 2, text = "Horizontal align" },
|
||
|
DropDownList { row = 2, column = 1, id = backgroundHAlign1, current = 0, items = ["left", "right", "center"]},
|
||
|
TextView { row = 3, text = "Vertical align" },
|
||
|
DropDownList { row = 3, column = 1, id = backgroundVAlign1, current = 0, items = ["top", "bottom", "center"]},
|
||
|
TextView { row = 4, text = "Repeat" },
|
||
|
DropDownList { row = 4, column = 1, id = backgroundRepeat1, current = 0, items = ["no-repeat", "repeat", "repeat-x", "repeat-y", "round", "space"]},
|
||
|
TextView { row = 5, text = "Clip" },
|
||
|
DropDownList { row = 5, column = 1, id = backgroundClip1, current = 0, items = ["padding-box", "border-box", "content-box", "text"]},
|
||
|
TextView { row = 6, text = "Attachment" },
|
||
|
DropDownList { row = 6, column = 1, id = backgroundAttachment1, current = 0, items = ["scroll", "fixed", "local"]},
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
`
|
||
|
|
||
|
func createBackgroundDemo(session rui.Session) rui.View {
|
||
|
view := rui.CreateViewFromText(session, backgroundDemoText)
|
||
|
if view == nil {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
updateBackground1 := func(list rui.DropDownList, number int) {
|
||
|
images := []string{"cat.jpg", "winds.png", "gifsInEmail.gif", "mountain.svg"}
|
||
|
image := rui.NewBackgroundImage(rui.Params{
|
||
|
rui.Source: images[rui.GetDropDownCurrent(view, "backgroundImage1")],
|
||
|
rui.Fit: rui.GetDropDownCurrent(view, "backgroundFit1"),
|
||
|
rui.HorizontalAlign: rui.GetDropDownCurrent(view, "backgroundHAlign1"),
|
||
|
rui.VerticalAlign: rui.GetDropDownCurrent(view, "backgroundVAlign1"),
|
||
|
rui.Repeat: rui.GetDropDownCurrent(view, "backgroundRepeat1"),
|
||
|
rui.BackgroundClip: rui.GetDropDownCurrent(view, "backgroundClip1"),
|
||
|
rui.Attachment: rui.GetDropDownCurrent(view, "backgroundAttachment1"),
|
||
|
})
|
||
|
rui.Set(view, "backgroundView", rui.Background, image)
|
||
|
}
|
||
|
|
||
|
for _, id := range []string{
|
||
|
"backgroundImage1",
|
||
|
"backgroundFit1",
|
||
|
"backgroundHAlign1",
|
||
|
"backgroundVAlign1",
|
||
|
"backgroundRepeat1",
|
||
|
"backgroundClip1",
|
||
|
"backgroundAttachment1",
|
||
|
} {
|
||
|
rui.Set(view, id, rui.DropDownEvent, updateBackground1)
|
||
|
}
|
||
|
|
||
|
return view
|
||
|
}
|