treeview.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 TreeView struct {
  10. AssignTo **walk.TreeView
  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. Model walk.TreeModel
  33. OnCurrentItemChanged walk.EventHandler
  34. OnExpandedChanged walk.TreeItemEventHandler
  35. OnItemActivated walk.EventHandler
  36. }
  37. func (tv TreeView) Create(builder *Builder) error {
  38. w, err := walk.NewTreeView(builder.Parent())
  39. if err != nil {
  40. return err
  41. }
  42. return builder.InitWidget(tv, w, func() error {
  43. if err := w.SetModel(tv.Model); err != nil {
  44. return err
  45. }
  46. if tv.OnCurrentItemChanged != nil {
  47. w.CurrentItemChanged().Attach(tv.OnCurrentItemChanged)
  48. }
  49. if tv.OnExpandedChanged != nil {
  50. w.ExpandedChanged().Attach(tv.OnExpandedChanged)
  51. }
  52. if tv.OnItemActivated != nil {
  53. w.ItemActivated().Attach(tv.OnItemActivated)
  54. }
  55. if tv.AssignTo != nil {
  56. *tv.AssignTo = w
  57. }
  58. return nil
  59. })
  60. }
  61. func (w TreeView) 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) {
  62. 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
  63. }