style.go 22 KB

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