MCPcopy Create free account
hub / github.com/lxn/walk / writeLayoutInitialization

Function writeLayoutInitialization

tools/ui2walk/ui2walk.go:439–519  ·  view source on GitHub ↗
(buf *bytes.Buffer, layout *Layout, parent *Widget, qualifiedParent string)

Source from the content-addressed store, hash-verified

437}
438
439func writeLayoutInitialization(buf *bytes.Buffer, layout *Layout, parent *Widget, qualifiedParent string) error {
440 var typ string
441 switch layout.Class {
442 case "QGridLayout":
443 typ = "GridLayout"
444
445 case "QHBoxLayout":
446 typ = "HBoxLayout"
447
448 case "QVBoxLayout":
449 typ = "VBoxLayout"
450
451 default:
452 return errors.New(fmt.Sprintf("unsupported layout type: '%s'", layout.Class))
453 }
454
455 buf.WriteString(fmt.Sprintf("%s := walk.New%s()\n",
456 layout.Name, typ))
457
458 buf.WriteString(fmt.Sprintf(
459 `if err := %s.SetLayout(%s); err != nil {
460 return err
461 }
462 `,
463 qualifiedParent, layout.Name))
464
465 spacing := 6
466 margL, margT, margR, margB := 9, 9, 9, 9
467
468 for _, prop := range layout.Property {
469 switch prop.Name {
470 case "spacing":
471 spacing = int(prop.Number)
472
473 case "leftMargin":
474 margL = int(prop.Number)
475
476 case "topMargin":
477 margT = int(prop.Number)
478
479 case "rightMargin":
480 margR = int(prop.Number)
481
482 case "bottomMargin":
483 margB = int(prop.Number)
484
485 case "margin":
486 m := int(prop.Number)
487 margL, margT, margR, margB = m, m, m, m
488 }
489 }
490
491 if margL != 0 || margT != 0 || margR != 0 || margB != 0 {
492 buf.WriteString(fmt.Sprintf(
493 `if err := %s.SetMargins(walk.Margins{%d, %d, %d, %d}); err != nil {
494 return err
495 }
496 `,

Callers 2

generateUICodeFunction · 0.85

Calls 1

writeItemInitializationsFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…