style.go 23 KB

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