tabpage.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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 TabPage struct {
  10. AssignTo **walk.TabPage
  11. Name string
  12. Enabled Property
  13. Visible Property
  14. Font Font
  15. ToolTipText Property
  16. MinSize Size
  17. MaxSize Size
  18. ContextMenuItems []MenuItem
  19. OnKeyDown walk.KeyEventHandler
  20. OnKeyPress walk.KeyEventHandler
  21. OnKeyUp walk.KeyEventHandler
  22. OnMouseDown walk.MouseEventHandler
  23. OnMouseMove walk.MouseEventHandler
  24. OnMouseUp walk.MouseEventHandler
  25. OnSizeChanged walk.EventHandler
  26. DataBinder DataBinder
  27. Layout Layout
  28. Children []Widget
  29. Image *walk.Bitmap
  30. Title Property
  31. Content Widget
  32. }
  33. func (tp TabPage) Create(builder *Builder) error {
  34. w, err := walk.NewTabPage()
  35. if err != nil {
  36. return err
  37. }
  38. return builder.InitWidget(tp, w, func() error {
  39. if err := w.SetImage(tp.Image); err != nil {
  40. return err
  41. }
  42. if tp.Content != nil && len(tp.Children) == 0 {
  43. if err := tp.Content.Create(builder); err != nil {
  44. return err
  45. }
  46. }
  47. if tp.AssignTo != nil {
  48. *tp.AssignTo = w
  49. }
  50. return nil
  51. })
  52. }
  53. func (w TabPage) 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) {
  54. return w.Name, false, false, &w.Font, "", w.MinSize, w.MaxSize, 0, 0, 0, 0, 0, false, w.ContextMenuItems, w.OnKeyDown, w.OnKeyPress, w.OnKeyUp, w.OnMouseDown, w.OnMouseMove, w.OnMouseUp, w.OnSizeChanged
  55. }
  56. func (tp TabPage) ContainerInfo() (DataBinder, Layout, []Widget) {
  57. return tp.DataBinder, tp.Layout, tp.Children
  58. }