Skip to content

Commit

Permalink
Fix up form layout Go export
Browse files Browse the repository at this point in the history
  • Loading branch information
andydotxyz committed Mar 7, 2024
1 parent 0faac6f commit 43f2dbe
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 8 deletions.
13 changes: 10 additions & 3 deletions internal/guidefs/widget.go
Original file line number Diff line number Diff line change
Expand Up @@ -652,14 +652,21 @@ func initWidgets() {
Gostring: func(obj fyne.CanvasObject, props map[fyne.CanvasObject]map[string]string, defs map[string]string) string {
c := obj.(*fyne.Container)
l := props[c]["layout"]
if l == "" {
l = "Stack"
}
lay := Layouts[l]
if lay.goText != nil {
return lay.goText(c, props, defs)
}

str := &strings.Builder{}
str.WriteString(fmt.Sprintf("container.New%s(", l))
writeGoString(str, nil, props, defs, c.Objects...)
if l == "Form" {
str.WriteString("container.New(layout.NewFormLayout(), ")
} else {
str.WriteString(fmt.Sprintf("container.New%s(", l))
}
writeGoStringExcluding(str, nil, props, defs, c.Objects...)
str.WriteString(")")
return widgetRef(props[obj], defs, str.String())
},
Expand All @@ -678,7 +685,7 @@ func initWidgets() {
s := obj.(*container.Scroll)
str := &strings.Builder{}
str.WriteString("container.NewScroll(")
writeGoString(str, nil, props, defs, s.Content)
writeGoStringExcluding(str, nil, props, defs, s.Content)
str.WriteString(")")
return str.String()
},
Expand Down
15 changes: 10 additions & 5 deletions pkg/gui/go.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@ import (
"reflect"
"strings"

"fyne.io/fyne/v2"
"github.com/fyne-io/defyne/internal/guidefs"

"fyne.io/fyne/v2"
)

func ExportGo(obj fyne.CanvasObject, meta map[fyne.CanvasObject]map[string]string, w io.Writer) error {
guidefs.InitOnce()

packagesList := packagesRequired(obj)
packagesList := packagesRequired(obj, meta)
varList := varsRequired(obj, meta)
code := exportCode(packagesList, varList, obj, meta)

Expand All @@ -25,7 +26,7 @@ func ExportGo(obj fyne.CanvasObject, meta map[fyne.CanvasObject]map[string]strin
func ExportGoPreview(obj fyne.CanvasObject, meta map[fyne.CanvasObject]map[string]string, w io.Writer) error {
guidefs.InitOnce()

packagesList := packagesRequired(obj)
packagesList := packagesRequired(obj, meta)
packagesList = append(packagesList, "app")
varList := varsRequired(obj, meta)
code := exportCode(packagesList, varList, obj, meta)
Expand Down Expand Up @@ -97,7 +98,7 @@ func (g *gui) makeUI() fyne.CanvasObject {
return string(formatted)
}

func packagesRequired(obj fyne.CanvasObject) []string {
func packagesRequired(obj fyne.CanvasObject, meta map[fyne.CanvasObject]map[string]string) []string {
if w, ok := obj.(fyne.Widget); ok {
return packagesRequiredForWidget(w)
}
Expand All @@ -106,11 +107,15 @@ func packagesRequired(obj fyne.CanvasObject) []string {
var objs []fyne.CanvasObject
if c, ok := obj.(*fyne.Container); ok {
objs = c.Objects
layout, ok := meta[c]["layout"]
if ok && layout == "Form" {
ret = append(ret, "layout")
}
} else if c, ok := obj.(*fyne.Container); ok {
objs = c.Objects
}
for _, w := range objs {
for _, p := range packagesRequired(w) {
for _, p := range packagesRequired(w, meta) {
added := false
for _, exists := range ret {
if p == exists {
Expand Down

0 comments on commit 43f2dbe

Please sign in to comment.