style.go 23 KB

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