From 06a38d8e4a77006106d5914d55789434c3b80b81 Mon Sep 17 00:00:00 2001 From: Sander Schobers Date: Mon, 22 Jul 2019 20:02:57 +0200 Subject: [PATCH] Updated example. --- ui/examples/01_basic/basic.go | 99 +++++++++++++++++++---------------- 1 file changed, 53 insertions(+), 46 deletions(-) diff --git a/ui/examples/01_basic/basic.go b/ui/examples/01_basic/basic.go index 51af6a2..ddab41d 100644 --- a/ui/examples/01_basic/basic.go +++ b/ui/examples/01_basic/basic.go @@ -11,6 +11,58 @@ import ( "opslag.de/schobers/zntg/ui/allg5ui" ) +type basic struct { + ui.StackPanel + + plus ui.Image +} + +func (b *basic) Init(ctx ui.Context) error { + var style = ctx.Style() + var stretch = func(content ui.Control, margin float32) ui.Control { + return ui.BuildSpacing(content, func(s *ui.Spacing) { + s.Width = ui.Infinite() + s.Margin.Left = ui.Fixed(margin) + s.Margin.Top = ui.Fixed(margin) + s.Margin.Right = ui.Fixed(margin) + s.Margin.Bottom = ui.Fixed(margin) + }) + } + + b.Background = color.White + b.Children = []ui.Control{ + &ui.Label{Text: "Hello, world!"}, + ui.BuildStackPanel(ui.OrientationHorizontal, func(p *ui.StackPanel) { + p.Children = []ui.Control{ + stretch(ui.BuildIconButton(b.plus, "Contained", func(b *ui.Button) { b.Type = ui.ButtonTypeContained }), 8), + stretch(ui.BuildIconButton(b.plus, "Icon", func(b *ui.Button) { b.Type = ui.ButtonTypeIcon }), 8), + stretch(ui.BuildIconButton(b.plus, "Outlined", func(b *ui.Button) { b.Type = ui.ButtonTypeOutlined }), 8), + stretch(ui.BuildIconButton(b.plus, "Text", func(b *ui.Button) { b.Type = ui.ButtonTypeText }), 8), + } + }), + ui.BuildStackPanel(ui.OrientationHorizontal, func(p *ui.StackPanel) { + p.Children = []ui.Control{ + &ui.Checkbox{}, + ui.BuildCheckbox("Check me!", nil), + } + }), + ui.Stretch(&ui.Label{Text: "Content"}), + ui.Margin(ui.StretchWidth(ui.BuildTextBox(func(b *ui.TextBox) { + b.Text = "Type here..." + })), 8), + ui.Margin(ui.BuildButton("Quit", func(b *ui.Button) { + b.OnClick(func(geom.PointF32, ui.MouseButton) { + ctx.Quit() + }) + }), 8), + ui.BuildLabel("Status...", func(l *ui.Label) { + l.Background = style.Palette.PrimaryDark + l.Font.Color = style.Palette.TextOnPrimary + }), + } + return nil +} + func run() error { var render, err = allg5ui.NewRenderer(800, 600, allg5.NewDisplayOptions{}) if err != nil { @@ -28,52 +80,7 @@ func run() error { } defer plus.Destroy() - var stretch = func(content ui.Control, margin float32) ui.Control { - return ui.BuildSpacing(content, func(s *ui.Spacing) { - s.Width = ui.Infinite() - s.Margin.Left = ui.Fixed(margin) - s.Margin.Top = ui.Fixed(margin) - s.Margin.Right = ui.Fixed(margin) - s.Margin.Bottom = ui.Fixed(margin) - }) - } - - var style = ui.DefaultStyle() - var view = ui.BuildStackPanel(ui.OrientationVertical, func(p *ui.StackPanel) { - p.Background = color.White - p.Children = []ui.Control{ - &ui.Label{Text: "Hello, world!"}, - ui.BuildStackPanel(ui.OrientationHorizontal, func(p *ui.StackPanel) { - p.Children = []ui.Control{ - stretch(ui.BuildIconButton(plus, "Contained", func(b *ui.Button) { b.Type = ui.ButtonTypeContained }), 8), - stretch(ui.BuildIconButton(plus, "Icon", func(b *ui.Button) { b.Type = ui.ButtonTypeIcon }), 8), - stretch(ui.BuildIconButton(plus, "Outlined", func(b *ui.Button) { b.Type = ui.ButtonTypeOutlined }), 8), - stretch(ui.BuildIconButton(plus, "Text", func(b *ui.Button) { b.Type = ui.ButtonTypeText }), 8), - } - }), - ui.BuildStackPanel(ui.OrientationHorizontal, func(p *ui.StackPanel) { - p.Children = []ui.Control{ - &ui.Checkbox{}, - ui.BuildCheckbox("Check me!", nil), - } - }), - ui.Stretch(&ui.Label{Text: "Content"}), - ui.Margin(ui.StretchWidth(ui.BuildTextBox(func(b *ui.TextBox) { - b.Text = "Type here..." - })), 8), - ui.Margin(ui.BuildButton("Quit", func(b *ui.Button) { - b.OnClick(func(ctx ui.Context, _ ui.Control, _ geom.PointF32, _ ui.MouseButton) { - ctx.Quit() - }) - }), 8), - ui.BuildLabel("Status...", func(l *ui.Label) { - l.Background = style.Palette.PrimaryDark - l.Font.Color = style.Palette.TextOnPrimary - }), - } - }) - - return ui.RunWait(render, style, view, true) + return ui.RunWait(render, ui.DefaultStyle(), &basic{plus: plus}, true) } func main() {