checkbox.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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 CheckBox struct {
  10. AssignTo **walk.CheckBox
  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. Text Property
  33. Checked Property
  34. CheckState Property
  35. Tristate bool
  36. OnClicked walk.EventHandler
  37. OnCheckedChanged walk.EventHandler
  38. OnCheckStateChanged walk.EventHandler
  39. }
  40. func (cb CheckBox) Create(builder *Builder) error {
  41. w, err := walk.NewCheckBox(builder.Parent())
  42. if err != nil {
  43. return err
  44. }
  45. return builder.InitWidget(cb, w, func() error {
  46. if err := w.SetTristate(cb.Tristate); err != nil {
  47. return err
  48. }
  49. if cb.OnClicked != nil {
  50. w.Clicked().Attach(cb.OnClicked)
  51. }
  52. if cb.OnCheckedChanged != nil {
  53. w.CheckedChanged().Attach(cb.OnCheckedChanged)
  54. }
  55. if cb.OnCheckStateChanged != nil {
  56. w.CheckStateChanged().Attach(cb.OnCheckStateChanged)
  57. }
  58. if cb.AssignTo != nil {
  59. *cb.AssignTo = w
  60. }
  61. return nil
  62. })
  63. }
  64. func (w CheckBox) 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) {
  65. 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
  66. }