splitter.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. // Copyright 2012 The Walk Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. // +build windows
  5. package declarative
  6. import (
  7. "github.com/lxn/walk"
  8. )
  9. type HSplitter struct {
  10. AssignTo **walk.Splitter
  11. Name string
  12. Enabled Property
  13. Visible Property
  14. Font Font
  15. ToolTipText Property
  16. MinSize Size
  17. MaxSize Size
  18. StretchFactor int
  19. Row int
  20. RowSpan int
  21. Column int
  22. ColumnSpan int
  23. AlwaysConsumeSpace bool
  24. ContextMenuItems []MenuItem
  25. OnKeyDown walk.KeyEventHandler
  26. OnKeyPress walk.KeyEventHandler
  27. OnKeyUp walk.KeyEventHandler
  28. OnMouseDown walk.MouseEventHandler
  29. OnMouseMove walk.MouseEventHandler
  30. OnMouseUp walk.MouseEventHandler
  31. OnSizeChanged walk.EventHandler
  32. DataBinder DataBinder
  33. Children []Widget
  34. HandleWidth int
  35. }
  36. func (s HSplitter) Create(builder *Builder) error {
  37. w, err := walk.NewHSplitter(builder.Parent())
  38. if err != nil {
  39. return err
  40. }
  41. w.SetSuspended(true)
  42. builder.Defer(func() error {
  43. w.SetSuspended(false)
  44. return nil
  45. })
  46. return builder.InitWidget(s, w, func() error {
  47. if s.HandleWidth > 0 {
  48. if err := w.SetHandleWidth(s.HandleWidth); err != nil {
  49. return err
  50. }
  51. }
  52. if s.AssignTo != nil {
  53. *s.AssignTo = w
  54. }
  55. return nil
  56. })
  57. }
  58. func (w HSplitter) WidgetInfo() (name string, disabled, hidden bool, font *Font, toolTipText string, minSize, maxSize Size, stretchFactor, row, rowSpan, column, columnSpan int, alwaysConsumeSpace bool, contextMenuItems []MenuItem, OnKeyDown walk.KeyEventHandler, OnKeyPress walk.KeyEventHandler, OnKeyUp walk.KeyEventHandler, OnMouseDown walk.MouseEventHandler, OnMouseMove walk.MouseEventHandler, OnMouseUp walk.MouseEventHandler, OnSizeChanged walk.EventHandler) {
  59. return w.Name, false, false, &w.Font, "", w.MinSize, w.MaxSize, w.StretchFactor, w.Row, w.RowSpan, w.Column, w.ColumnSpan, w.AlwaysConsumeSpace, w.ContextMenuItems, w.OnKeyDown, w.OnKeyPress, w.OnKeyUp, w.OnMouseDown, w.OnMouseMove, w.OnMouseUp, w.OnSizeChanged
  60. }
  61. func (s HSplitter) ContainerInfo() (DataBinder, Layout, []Widget) {
  62. return s.DataBinder, nil, s.Children
  63. }
  64. type VSplitter struct {
  65. AssignTo **walk.Splitter
  66. Name string
  67. Enabled Property
  68. Visible Property
  69. Font Font
  70. ToolTipText Property
  71. MinSize Size
  72. MaxSize Size
  73. StretchFactor int
  74. Row int
  75. RowSpan int
  76. Column int
  77. ColumnSpan int
  78. AlwaysConsumeSpace bool
  79. ContextMenuItems []MenuItem
  80. OnKeyDown walk.KeyEventHandler
  81. OnKeyPress walk.KeyEventHandler
  82. OnKeyUp walk.KeyEventHandler
  83. OnMouseDown walk.MouseEventHandler
  84. OnMouseMove walk.MouseEventHandler
  85. OnMouseUp walk.MouseEventHandler
  86. OnSizeChanged walk.EventHandler
  87. DataBinder DataBinder
  88. Children []Widget
  89. HandleWidth int
  90. }
  91. func (s VSplitter) Create(builder *Builder) error {
  92. w, err := walk.NewVSplitter(builder.Parent())
  93. if err != nil {
  94. return err
  95. }
  96. return builder.InitWidget(s, w, func() error {
  97. if s.HandleWidth > 0 {
  98. if err := w.SetHandleWidth(s.HandleWidth); err != nil {
  99. return err
  100. }
  101. }
  102. if s.AssignTo != nil {
  103. *s.AssignTo = w
  104. }
  105. return nil
  106. })
  107. }
  108. func (w VSplitter) WidgetInfo() (name string, disabled, hidden bool, font *Font, toolTipText string, minSize, maxSize Size, stretchFactor, row, rowSpan, column, columnSpan int, alwaysConsumeSpace bool, contextMenuItems []MenuItem, OnKeyDown walk.KeyEventHandler, OnKeyPress walk.KeyEventHandler, OnKeyUp walk.KeyEventHandler, OnMouseDown walk.MouseEventHandler, OnMouseMove walk.MouseEventHandler, OnMouseUp walk.MouseEventHandler, OnSizeChanged walk.EventHandler) {
  109. return w.Name, false, false, &w.Font, "", w.MinSize, w.MaxSize, w.StretchFactor, w.Row, w.RowSpan, w.Column, w.ColumnSpan, w.AlwaysConsumeSpace, w.ContextMenuItems, w.OnKeyDown, w.OnKeyPress, w.OnKeyUp, w.OnMouseDown, w.OnMouseMove, w.OnMouseUp, w.OnSizeChanged
  110. }
  111. func (s VSplitter) ContainerInfo() (DataBinder, Layout, []Widget) {
  112. return s.DataBinder, nil, s.Children
  113. }