style.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710
  1. // Copyright 2016 The G3N 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. package gui
  5. import (
  6. "github.com/g3n/engine/gui/assets"
  7. "github.com/g3n/engine/math32"
  8. "github.com/g3n/engine/text"
  9. )
  10. func init() {
  11. setupDefaultStyle()
  12. }
  13. // Pointer to default style
  14. var StyleDefault *Style
  15. // All styles
  16. type Style struct {
  17. Font *text.Font
  18. FontIcon *text.Font
  19. Button ButtonStyles
  20. CheckRadio CheckRadioStyles
  21. Edit EditStyles
  22. ScrollBar ScrollBarStyle
  23. Slider SliderStyles
  24. Splitter SplitterStyles
  25. Window WindowStyles
  26. Scroller ScrollerStyles
  27. List ListStyles
  28. DropDown DropDownStyles
  29. Folder FolderStyles
  30. Tree TreeStyles
  31. ControlFolder ControlFolderStyles
  32. }
  33. const (
  34. defaultFont = "fonts/FreeSans.ttf"
  35. defaultFontBold = "fonts/FreeSansBold.ttf"
  36. defaultFontIcon = "fonts/MaterialIcons-Regular.ttf"
  37. )
  38. const (
  39. OverStyle = iota + 1
  40. FocusStyle
  41. DisabledStyle
  42. NormalStyle
  43. DefaultStyle
  44. )
  45. // setupDefaultStyle initializes the default Gui global styles
  46. func setupDefaultStyle() {
  47. StyleDefault = &Style{}
  48. // Creates Default Font
  49. fontData := assets.MustAsset(defaultFont)
  50. font, err := text.NewFontFromData(fontData)
  51. if err != nil {
  52. panic(err)
  53. }
  54. font.SetLineSpacing(1.0)
  55. font.SetSize(14)
  56. font.SetDPI(72)
  57. font.SetFgColor4(&math32.Color4{0, 0, 0, 1})
  58. font.SetBgColor4(&math32.Color4{1, 1, 1, 0})
  59. StyleDefault.Font = font
  60. // Creates Icon Font
  61. fontIconData := assets.MustAsset(defaultFontIcon)
  62. fontIcon, err := text.NewFontFromData(fontIconData)
  63. if err != nil {
  64. panic(err)
  65. }
  66. fontIcon.SetLineSpacing(1.0)
  67. fontIcon.SetSize(14)
  68. fontIcon.SetDPI(72)
  69. fontIcon.SetFgColor4(&math32.Color4{0, 0, 0, 1})
  70. fontIcon.SetBgColor4(&math32.Color4{1, 1, 1, 1})
  71. StyleDefault.FontIcon = fontIcon
  72. borderSizes := BorderSizes{1, 1, 1, 1}
  73. borderColor := math32.Color4{0, 0, 0, 1}
  74. borderColorDis := math32.Color4{0.4, 0.4, 0.4, 1}
  75. bgColor := math32.Color{0.85, 0.85, 0.85}
  76. bgColor4 := math32.Color4{0, 0, 0, 0}
  77. bgColorOver := math32.Color{0.9, 0.9, 0.9}
  78. bgColor4Over := math32.Color4{1, 1, 1, 0.5}
  79. bgColor4Sel := math32.Color4{0.6, 0.6, 0.6, 1}
  80. fgColor := math32.Color{0, 0, 0}
  81. fgColorSel := math32.Color{0, 0, 0}
  82. fgColorDis := math32.Color{0.3, 0.3, 0.3}
  83. // Button styles
  84. StyleDefault.Button = ButtonStyles{
  85. Normal: ButtonStyle{
  86. Border: borderSizes,
  87. Paddings: BorderSizes{2, 4, 2, 4},
  88. BorderColor: borderColor,
  89. BgColor: bgColor,
  90. FgColor: fgColor,
  91. },
  92. Over: ButtonStyle{
  93. Border: borderSizes,
  94. Paddings: BorderSizes{2, 4, 2, 4},
  95. BorderColor: borderColor,
  96. BgColor: bgColorOver,
  97. FgColor: fgColor,
  98. },
  99. Focus: ButtonStyle{
  100. Border: borderSizes,
  101. Paddings: BorderSizes{2, 4, 2, 4},
  102. BorderColor: borderColor,
  103. BgColor: bgColorOver,
  104. FgColor: fgColor,
  105. },
  106. Pressed: ButtonStyle{
  107. Border: BorderSizes{2, 2, 2, 2},
  108. Paddings: BorderSizes{2, 4, 2, 4},
  109. BorderColor: borderColor,
  110. BgColor: bgColorOver,
  111. FgColor: fgColor,
  112. },
  113. Disabled: ButtonStyle{
  114. Border: borderSizes,
  115. Paddings: BorderSizes{2, 4, 2, 4},
  116. BorderColor: borderColorDis,
  117. BgColor: bgColor,
  118. FgColor: fgColorDis,
  119. },
  120. }
  121. // CheckRadio styles
  122. StyleDefault.CheckRadio = CheckRadioStyles{
  123. Normal: CheckRadioStyle{
  124. Border: BorderSizes{0, 0, 0, 0},
  125. Paddings: BorderSizes{0, 0, 0, 0},
  126. BorderColor: borderColor,
  127. BgColor: bgColor4,
  128. FgColor: fgColor,
  129. },
  130. Over: CheckRadioStyle{
  131. Border: BorderSizes{0, 0, 0, 0},
  132. Paddings: BorderSizes{0, 0, 0, 0},
  133. BorderColor: borderColor,
  134. BgColor: bgColor4Over,
  135. FgColor: fgColor,
  136. },
  137. Focus: CheckRadioStyle{
  138. Border: BorderSizes{0, 0, 0, 0},
  139. Paddings: BorderSizes{0, 0, 0, 0},
  140. BorderColor: borderColor,
  141. BgColor: bgColor4Over,
  142. FgColor: fgColor,
  143. },
  144. Disabled: CheckRadioStyle{
  145. Border: BorderSizes{0, 0, 0, 0},
  146. Paddings: BorderSizes{0, 0, 0, 0},
  147. BorderColor: borderColor,
  148. BgColor: bgColor4,
  149. FgColor: fgColorDis,
  150. },
  151. }
  152. // Edit styles
  153. StyleDefault.Edit = EditStyles{
  154. Normal: EditStyle{
  155. Border: BorderSizes{1, 1, 1, 1},
  156. Paddings: BorderSizes{0, 0, 0, 0},
  157. BorderColor: borderColor,
  158. BgColor: bgColor,
  159. BgAlpha: 1.0,
  160. FgColor: fgColor,
  161. HolderColor: math32.Color{0.4, 0.4, 0.4},
  162. },
  163. Over: EditStyle{
  164. Border: BorderSizes{1, 1, 1, 1},
  165. Paddings: BorderSizes{0, 0, 0, 0},
  166. BorderColor: borderColor,
  167. BgColor: bgColorOver,
  168. BgAlpha: 1.0,
  169. FgColor: fgColor,
  170. HolderColor: math32.Color{0.4, 0.4, 0.4},
  171. },
  172. Focus: EditStyle{
  173. Border: BorderSizes{1, 1, 1, 1},
  174. Paddings: BorderSizes{0, 0, 0, 0},
  175. BorderColor: borderColor,
  176. BgColor: bgColorOver,
  177. BgAlpha: 1.0,
  178. FgColor: fgColor,
  179. HolderColor: math32.Color{0.4, 0.4, 0.4},
  180. },
  181. Disabled: EditStyle{
  182. Border: BorderSizes{1, 1, 1, 1},
  183. Paddings: BorderSizes{0, 0, 0, 0},
  184. BorderColor: borderColor,
  185. BgColor: bgColor,
  186. BgAlpha: 1.0,
  187. FgColor: fgColorDis,
  188. HolderColor: math32.Color{0.4, 0.4, 0.4},
  189. },
  190. }
  191. // ScrollBar style
  192. StyleDefault.ScrollBar = ScrollBarStyle{
  193. Paddings: BorderSizes{1, 1, 1, 1},
  194. Borders: BorderSizes{1, 1, 1, 1},
  195. BordersColor: borderColor,
  196. Color: math32.Color{0.8, 0.8, 0.8},
  197. Button: ScrollBarButtonStyle{
  198. Borders: BorderSizes{1, 1, 1, 1},
  199. BordersColor: borderColor,
  200. Color: math32.Color{0.5, 0.5, 0.5},
  201. Size: 30,
  202. },
  203. }
  204. // Slider styles
  205. StyleDefault.Slider = SliderStyles{
  206. Normal: SliderStyle{
  207. Border: borderSizes,
  208. BorderColor: borderColor,
  209. Paddings: BorderSizes{0, 0, 0, 0},
  210. BgColor: math32.Color4{0.8, 0.8, 0.8, 1},
  211. FgColor: math32.Color4{0, 0.8, 0, 1},
  212. },
  213. Over: SliderStyle{
  214. Border: borderSizes,
  215. BorderColor: borderColor,
  216. Paddings: BorderSizes{0, 0, 0, 0},
  217. BgColor: math32.Color4{1, 1, 1, 1},
  218. FgColor: math32.Color4{0, 1, 0, 1},
  219. },
  220. Focus: SliderStyle{
  221. Border: borderSizes,
  222. BorderColor: borderColor,
  223. Paddings: BorderSizes{0, 0, 0, 0},
  224. BgColor: math32.Color4{1, 1, 1, 1},
  225. FgColor: math32.Color4{0, 1, 0, 1},
  226. },
  227. Disabled: SliderStyle{
  228. Border: borderSizes,
  229. BorderColor: borderColor,
  230. Paddings: BorderSizes{0, 0, 0, 0},
  231. BgColor: math32.Color4{0.8, 0.8, 0.8, 1},
  232. FgColor: math32.Color4{0, 0.8, 0, 1},
  233. },
  234. }
  235. // Splitter styles
  236. StyleDefault.Splitter = SplitterStyles{
  237. Normal: SplitterStyle{
  238. SpacerBorderColor: borderColor,
  239. SpacerColor: bgColor,
  240. SpacerSize: 6,
  241. },
  242. Over: SplitterStyle{
  243. SpacerBorderColor: borderColor,
  244. SpacerColor: bgColorOver,
  245. SpacerSize: 6,
  246. },
  247. Drag: SplitterStyle{
  248. SpacerBorderColor: borderColor,
  249. SpacerColor: bgColorOver,
  250. SpacerSize: 6,
  251. },
  252. }
  253. StyleDefault.Window = WindowStyles{
  254. Normal: WindowStyle{
  255. Border: BorderSizes{4, 4, 4, 4},
  256. Paddings: BorderSizes{0, 0, 0, 0},
  257. BorderColor: math32.Color4{0.2, 0.2, 0.2, 1},
  258. TitleBorders: BorderSizes{0, 0, 1, 0},
  259. TitleBorderColor: math32.Color4{0, 0, 0, 1},
  260. TitleBgColor: math32.Color4{0, 1, 0, 1},
  261. TitleFgColor: math32.Color4{0, 0, 0, 1},
  262. },
  263. Over: WindowStyle{
  264. Border: BorderSizes{4, 4, 4, 4},
  265. Paddings: BorderSizes{0, 0, 0, 0},
  266. BorderColor: math32.Color4{0.2, 0.2, 0.2, 1},
  267. TitleBorders: BorderSizes{0, 0, 1, 0},
  268. TitleBorderColor: math32.Color4{0, 0, 0, 1},
  269. TitleBgColor: math32.Color4{0, 1, 0, 1},
  270. TitleFgColor: math32.Color4{0, 0, 0, 1},
  271. },
  272. Focus: WindowStyle{
  273. Border: BorderSizes{4, 4, 4, 4},
  274. Paddings: BorderSizes{0, 0, 0, 0},
  275. BorderColor: math32.Color4{0.2, 0.2, 0.2, 1},
  276. TitleBorders: BorderSizes{0, 0, 1, 0},
  277. TitleBorderColor: math32.Color4{0, 0, 0, 1},
  278. TitleBgColor: math32.Color4{0, 1, 0, 1},
  279. TitleFgColor: math32.Color4{0, 0, 0, 1},
  280. },
  281. Disabled: WindowStyle{
  282. Border: BorderSizes{4, 4, 4, 4},
  283. Paddings: BorderSizes{0, 0, 0, 0},
  284. BorderColor: math32.Color4{0.2, 0.2, 0.2, 1},
  285. TitleBorders: BorderSizes{0, 0, 1, 0},
  286. TitleBorderColor: math32.Color4{0, 0, 0, 1},
  287. TitleBgColor: math32.Color4{0, 1, 0, 1},
  288. TitleFgColor: math32.Color4{0, 0, 0, 1},
  289. },
  290. }
  291. // Scroller styles
  292. StyleDefault.Scroller = ScrollerStyles{
  293. Normal: ScrollerStyle{
  294. Border: BorderSizes{1, 1, 1, 1},
  295. Paddings: BorderSizes{0, 0, 0, 0},
  296. BorderColor: borderColor,
  297. BgColor: bgColor,
  298. FgColor: fgColor,
  299. },
  300. Over: ScrollerStyle{
  301. Border: BorderSizes{1, 1, 1, 1},
  302. Paddings: BorderSizes{0, 0, 0, 0},
  303. BorderColor: borderColor,
  304. BgColor: bgColorOver,
  305. FgColor: fgColor,
  306. },
  307. Focus: ScrollerStyle{
  308. Border: BorderSizes{1, 1, 1, 1},
  309. Paddings: BorderSizes{0, 0, 0, 0},
  310. BorderColor: borderColor,
  311. BgColor: bgColorOver,
  312. FgColor: fgColor,
  313. },
  314. Disabled: ScrollerStyle{
  315. Border: BorderSizes{1, 1, 1, 1},
  316. Paddings: BorderSizes{0, 0, 0, 0},
  317. BorderColor: borderColor,
  318. BgColor: bgColor,
  319. FgColor: fgColor,
  320. },
  321. }
  322. // List styles
  323. StyleDefault.List = ListStyles{
  324. Scroller: &ScrollerStyles{
  325. Normal: ScrollerStyle{
  326. Border: BorderSizes{1, 1, 1, 1},
  327. Paddings: BorderSizes{0, 0, 0, 0},
  328. BorderColor: borderColor,
  329. BgColor: bgColor,
  330. FgColor: fgColor,
  331. },
  332. Over: ScrollerStyle{
  333. Border: BorderSizes{1, 1, 1, 1},
  334. Paddings: BorderSizes{0, 0, 0, 0},
  335. BorderColor: borderColor,
  336. BgColor: bgColorOver,
  337. FgColor: fgColor,
  338. },
  339. Focus: ScrollerStyle{
  340. Border: BorderSizes{1, 1, 1, 1},
  341. Paddings: BorderSizes{0, 0, 0, 0},
  342. BorderColor: borderColor,
  343. BgColor: bgColorOver,
  344. FgColor: fgColor,
  345. },
  346. Disabled: ScrollerStyle{
  347. Border: BorderSizes{1, 1, 1, 1},
  348. Paddings: BorderSizes{0, 0, 0, 0},
  349. BorderColor: borderColor,
  350. BgColor: bgColor,
  351. FgColor: fgColor,
  352. },
  353. },
  354. Item: &ListItemStyles{
  355. Normal: ListItemStyle{
  356. Border: BorderSizes{1, 0, 1, 0},
  357. Paddings: BorderSizes{0, 0, 0, 2},
  358. BorderColor: math32.Color4{0, 0, 0, 0},
  359. BgColor: bgColor4,
  360. FgColor: fgColor,
  361. },
  362. Selected: ListItemStyle{
  363. Border: BorderSizes{1, 0, 1, 0},
  364. Paddings: BorderSizes{0, 0, 0, 2},
  365. BorderColor: math32.Color4{0, 0, 0, 0},
  366. BgColor: bgColor4Sel,
  367. FgColor: fgColorSel,
  368. },
  369. Highlighted: ListItemStyle{
  370. Border: BorderSizes{1, 0, 1, 0},
  371. Paddings: BorderSizes{0, 0, 0, 2},
  372. BorderColor: math32.Color4{0, 0, 0, 1},
  373. BgColor: bgColor4Over,
  374. FgColor: fgColor,
  375. },
  376. SelHigh: ListItemStyle{
  377. Border: BorderSizes{1, 0, 1, 0},
  378. Paddings: BorderSizes{0, 0, 0, 2},
  379. BorderColor: math32.Color4{0, 0, 0, 1},
  380. BgColor: bgColor4Sel,
  381. FgColor: fgColorSel,
  382. },
  383. },
  384. }
  385. // StyleDefault.ListItem = ListItemStyles{
  386. // Normal: ListItemStyle{
  387. // Border: BorderSizes{1, 0, 1, 0},
  388. // Paddings: BorderSizes{0, 0, 0, 2},
  389. // BorderColor: math32.Color4{0, 0, 0, 0},
  390. // BgColor: bgColor4,
  391. // FgColor: fgColor,
  392. // },
  393. // Over: ListItemStyle{
  394. // Border: BorderSizes{1, 0, 1, 0},
  395. // Paddings: BorderSizes{0, 0, 0, 2},
  396. // BorderColor: math32.Color4{0, 0, 0, 0},
  397. // BgColor: bgColor4Over,
  398. // FgColor: fgColor,
  399. // },
  400. // Selected: ListItemStyle{
  401. // Border: BorderSizes{1, 0, 1, 0},
  402. // Paddings: BorderSizes{0, 0, 0, 2},
  403. // BorderColor: math32.Color4{0, 0, 0, 0},
  404. // BgColor: bgColor4Sel,
  405. // FgColor: fgColorSel,
  406. // },
  407. // Highlighted: ListItemStyle{
  408. // Border: BorderSizes{1, 0, 1, 0},
  409. // Paddings: BorderSizes{0, 0, 0, 2},
  410. // BorderColor: math32.Color4{0, 0, 0, 1},
  411. // BgColor: bgColor4Over,
  412. // FgColor: fgColor,
  413. // },
  414. // SelHigh: ListItemStyle{
  415. // Border: BorderSizes{1, 0, 1, 0},
  416. // Paddings: BorderSizes{0, 0, 0, 2},
  417. // BorderColor: math32.Color4{0, 0, 0, 1},
  418. // BgColor: bgColor4Sel,
  419. // FgColor: fgColorSel,
  420. // },
  421. // }
  422. //
  423. StyleDefault.DropDown = DropDownStyles{
  424. Normal: &DropDownStyle{
  425. Border: BorderSizes{1, 1, 1, 1},
  426. Paddings: BorderSizes{0, 0, 0, 2},
  427. BorderColor: borderColor,
  428. BgColor: bgColor,
  429. FgColor: fgColor,
  430. },
  431. Over: &DropDownStyle{
  432. Border: BorderSizes{1, 1, 1, 1},
  433. Paddings: BorderSizes{0, 0, 0, 2},
  434. BorderColor: borderColor,
  435. BgColor: bgColorOver,
  436. FgColor: fgColor,
  437. },
  438. Focus: &DropDownStyle{
  439. Border: BorderSizes{1, 1, 1, 1},
  440. Paddings: BorderSizes{0, 0, 0, 2},
  441. BorderColor: borderColor,
  442. BgColor: bgColorOver,
  443. FgColor: fgColor,
  444. },
  445. Disabled: &DropDownStyle{
  446. Border: BorderSizes{1, 1, 1, 1},
  447. Paddings: BorderSizes{0, 0, 0, 2},
  448. BorderColor: borderColor,
  449. BgColor: bgColor,
  450. FgColor: fgColor,
  451. },
  452. }
  453. StyleDefault.Folder = FolderStyles{
  454. Normal: &FolderStyle{
  455. Margins: BorderSizes{0, 0, 0, 0},
  456. Border: BorderSizes{1, 1, 1, 1},
  457. Paddings: BorderSizes{2, 0, 2, 2},
  458. BorderColor: borderColor,
  459. BgColor: bgColor,
  460. FgColor: fgColor,
  461. Icons: [2]int{assets.ExpandMore, assets.ExpandLess},
  462. },
  463. Over: &FolderStyle{
  464. Margins: BorderSizes{0, 0, 0, 0},
  465. Border: BorderSizes{1, 1, 1, 1},
  466. Paddings: BorderSizes{2, 0, 2, 2},
  467. BorderColor: borderColor,
  468. BgColor: bgColorOver,
  469. FgColor: fgColor,
  470. Icons: [2]int{assets.ExpandMore, assets.ExpandLess},
  471. },
  472. Focus: &FolderStyle{
  473. Margins: BorderSizes{0, 0, 0, 0},
  474. Border: BorderSizes{1, 1, 1, 1},
  475. Paddings: BorderSizes{2, 2, 2, 2},
  476. BorderColor: borderColor,
  477. BgColor: bgColorOver,
  478. FgColor: fgColor,
  479. Icons: [2]int{assets.ExpandMore, assets.ExpandLess},
  480. },
  481. Disabled: &FolderStyle{
  482. Margins: BorderSizes{0, 0, 0, 0},
  483. Border: BorderSizes{1, 1, 1, 1},
  484. Paddings: BorderSizes{2, 2, 2, 2},
  485. BorderColor: borderColor,
  486. BgColor: bgColorOver,
  487. FgColor: fgColor,
  488. Icons: [2]int{assets.ExpandMore, assets.ExpandLess},
  489. },
  490. }
  491. StyleDefault.Tree = TreeStyles{
  492. List: &ListStyles{
  493. Scroller: &ScrollerStyles{
  494. Normal: ScrollerStyle{
  495. Border: BorderSizes{1, 1, 1, 1},
  496. Paddings: BorderSizes{0, 0, 0, 0},
  497. BorderColor: borderColor,
  498. BgColor: bgColor,
  499. FgColor: fgColor,
  500. },
  501. Over: ScrollerStyle{
  502. Border: BorderSizes{1, 1, 1, 1},
  503. Paddings: BorderSizes{0, 0, 0, 0},
  504. BorderColor: borderColor,
  505. BgColor: bgColorOver,
  506. FgColor: fgColor,
  507. },
  508. Focus: ScrollerStyle{
  509. Border: BorderSizes{1, 1, 1, 1},
  510. Paddings: BorderSizes{0, 0, 0, 0},
  511. BorderColor: borderColor,
  512. BgColor: bgColorOver,
  513. FgColor: fgColor,
  514. },
  515. Disabled: ScrollerStyle{
  516. Border: BorderSizes{1, 1, 1, 1},
  517. Paddings: BorderSizes{0, 0, 0, 0},
  518. BorderColor: borderColor,
  519. BgColor: bgColor,
  520. FgColor: fgColor,
  521. },
  522. },
  523. Item: &ListItemStyles{
  524. Normal: ListItemStyle{
  525. Border: BorderSizes{1, 0, 1, 0},
  526. Paddings: BorderSizes{0, 0, 0, 2},
  527. BorderColor: math32.Color4{0, 0, 0, 0},
  528. BgColor: bgColor4,
  529. FgColor: fgColor,
  530. },
  531. Selected: ListItemStyle{
  532. Border: BorderSizes{1, 0, 1, 0},
  533. Paddings: BorderSizes{0, 0, 0, 2},
  534. BorderColor: math32.Color4{0, 0, 0, 0},
  535. BgColor: bgColor4Sel,
  536. FgColor: fgColorSel,
  537. },
  538. Highlighted: ListItemStyle{
  539. Border: BorderSizes{1, 0, 1, 0},
  540. Paddings: BorderSizes{0, 0, 0, 2},
  541. BorderColor: math32.Color4{0, 0, 0, 1},
  542. BgColor: bgColor4Over,
  543. FgColor: fgColor,
  544. },
  545. SelHigh: ListItemStyle{
  546. Border: BorderSizes{1, 0, 1, 0},
  547. Paddings: BorderSizes{0, 0, 0, 2},
  548. BorderColor: math32.Color4{0, 0, 0, 1},
  549. BgColor: bgColor4Sel,
  550. FgColor: fgColorSel,
  551. },
  552. },
  553. },
  554. Node: &TreeNodeStyles{
  555. Normal: TreeNodeStyle{
  556. Border: BorderSizes{0, 0, 0, 0},
  557. Paddings: BorderSizes{0, 0, 0, 0},
  558. BorderColor: borderColor,
  559. BgColor: bgColor,
  560. FgColor: fgColor,
  561. Icons: [2]int{assets.ExpandMore, assets.ExpandLess},
  562. },
  563. },
  564. Padlevel: 16.0,
  565. }
  566. StyleDefault.ControlFolder = ControlFolderStyles{
  567. Folder: &FolderStyles{
  568. Normal: &FolderStyle{
  569. Margins: BorderSizes{0, 0, 0, 0},
  570. Border: BorderSizes{1, 1, 1, 1},
  571. Paddings: BorderSizes{2, 0, 2, 2},
  572. BorderColor: math32.Color4{0, 0, 0, 0},
  573. BgColor: math32.Color{0, 0.5, 1},
  574. FgColor: fgColor,
  575. Icons: [2]int{assets.ExpandMore, assets.ExpandLess},
  576. },
  577. Over: &FolderStyle{
  578. Margins: BorderSizes{0, 0, 0, 0},
  579. Border: BorderSizes{1, 1, 1, 1},
  580. Paddings: BorderSizes{2, 0, 2, 2},
  581. BorderColor: math32.Color4{0, 0, 0, 0},
  582. BgColor: math32.Color{0, 0.5, 1},
  583. FgColor: fgColor,
  584. Icons: [2]int{assets.ExpandMore, assets.ExpandLess},
  585. },
  586. Focus: &FolderStyle{
  587. Margins: BorderSizes{0, 0, 0, 0},
  588. Border: BorderSizes{1, 1, 1, 1},
  589. Paddings: BorderSizes{2, 2, 2, 2},
  590. BorderColor: math32.Color4{0, 0, 0, 0},
  591. BgColor: math32.Color{0, 0.5, 1},
  592. FgColor: fgColor,
  593. Icons: [2]int{assets.ExpandMore, assets.ExpandLess},
  594. },
  595. Disabled: &FolderStyle{
  596. Margins: BorderSizes{0, 0, 0, 0},
  597. Border: BorderSizes{1, 1, 1, 1},
  598. Paddings: BorderSizes{2, 2, 2, 2},
  599. BorderColor: math32.Color4{0, 0, 0, 0},
  600. BgColor: math32.Color{0, 0.5, 1},
  601. FgColor: fgColor,
  602. Icons: [2]int{assets.ExpandMore, assets.ExpandLess},
  603. },
  604. },
  605. Tree: &TreeStyles{
  606. List: &ListStyles{
  607. Scroller: &ScrollerStyles{
  608. Normal: ScrollerStyle{
  609. Border: BorderSizes{1, 1, 1, 1},
  610. Paddings: BorderSizes{0, 2, 0, 0},
  611. BorderColor: borderColor,
  612. BgColor: bgColor,
  613. FgColor: fgColor,
  614. },
  615. Over: ScrollerStyle{
  616. Border: BorderSizes{1, 1, 1, 1},
  617. Paddings: BorderSizes{0, 2, 0, 0},
  618. BorderColor: borderColor,
  619. BgColor: bgColorOver,
  620. FgColor: fgColor,
  621. },
  622. Focus: ScrollerStyle{
  623. Border: BorderSizes{1, 1, 1, 1},
  624. Paddings: BorderSizes{0, 2, 0, 0},
  625. BorderColor: borderColor,
  626. BgColor: bgColorOver,
  627. FgColor: fgColor,
  628. },
  629. Disabled: ScrollerStyle{
  630. Border: BorderSizes{1, 1, 1, 1},
  631. Paddings: BorderSizes{0, 2, 0, 0},
  632. BorderColor: borderColor,
  633. BgColor: bgColor,
  634. FgColor: fgColor,
  635. },
  636. },
  637. Item: &ListItemStyles{
  638. Normal: ListItemStyle{
  639. Border: BorderSizes{1, 0, 1, 0},
  640. Paddings: BorderSizes{0, 0, 0, 2},
  641. BorderColor: math32.Color4{0, 0, 0, 0},
  642. BgColor: bgColor4,
  643. FgColor: fgColor,
  644. },
  645. Selected: ListItemStyle{
  646. Border: BorderSizes{1, 0, 1, 0},
  647. Paddings: BorderSizes{0, 0, 0, 2},
  648. BorderColor: math32.Color4{0, 0, 0, 0},
  649. BgColor: bgColor4,
  650. FgColor: fgColor,
  651. },
  652. Highlighted: ListItemStyle{
  653. Border: BorderSizes{1, 0, 1, 0},
  654. Paddings: BorderSizes{0, 0, 0, 2},
  655. BorderColor: math32.Color4{0, 0, 0, 1},
  656. BgColor: bgColor4Over,
  657. FgColor: fgColor,
  658. },
  659. SelHigh: ListItemStyle{
  660. Border: BorderSizes{1, 0, 1, 0},
  661. Paddings: BorderSizes{0, 0, 0, 2},
  662. BorderColor: math32.Color4{0, 0, 0, 1},
  663. BgColor: bgColor4Sel,
  664. FgColor: fgColorSel,
  665. },
  666. },
  667. },
  668. Node: &TreeNodeStyles{
  669. Normal: TreeNodeStyle{
  670. Border: BorderSizes{0, 0, 0, 0},
  671. Paddings: BorderSizes{0, 0, 0, 0},
  672. BorderColor: borderColor,
  673. BgColor: bgColor,
  674. FgColor: fgColor,
  675. Icons: [2]int{assets.ExpandMore, assets.ExpandLess},
  676. },
  677. },
  678. Padlevel: 2.0,
  679. },
  680. }
  681. }