theme_ttk.go 903 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Copyright 2018 visualfc. All rights reserved.
  2. package tk
  3. import (
  4. "fmt"
  5. )
  6. type ttkTheme struct {
  7. }
  8. func (t *ttkTheme) Name() string {
  9. return "ttk theme"
  10. }
  11. func (t *ttkTheme) IsTtk() bool {
  12. return true
  13. }
  14. func (t *ttkTheme) InitAttributes(typ WidgetType) []NativeAttr {
  15. return nil
  16. }
  17. func (t *ttkTheme) ThemeIdList() []string {
  18. return ttk_theme_list
  19. }
  20. func (t *ttkTheme) SetThemeId(id string) error {
  21. for _, v := range ttk_theme_list {
  22. if v == id {
  23. err := eval(fmt.Sprintf("ttk::setTheme %v", id))
  24. return err
  25. }
  26. }
  27. err := fmt.Errorf("not found ttk_theme id:%v", id)
  28. dumpError(err)
  29. return err
  30. }
  31. func (t *ttkTheme) ThemeId() string {
  32. r, _ := evalAsString("ttk::style theme use")
  33. return r
  34. }
  35. var (
  36. ttk_theme_list []string
  37. TtkTheme = &ttkTheme{}
  38. )
  39. func init() {
  40. registerInit(func() {
  41. ttk_theme_list, _ = evalAsStringList("ttk::themes")
  42. })
  43. SetMainTheme(TtkTheme)
  44. }