style_light.go 22 KB

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