qtmaterialtheme.h 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. #ifndef QTMATERIALTHEME_H
  2. #define QTMATERIALTHEME_H
  3. #include <QObject>
  4. #include <QScopedPointer>
  5. #include <QColor>
  6. #include <QIcon>
  7. namespace Material
  8. {
  9. enum ButtonPreset {
  10. FlatPreset,
  11. CheckablePreset
  12. };
  13. enum RippleStyle {
  14. CenteredRipple,
  15. PositionedRipple,
  16. NoRipple
  17. };
  18. enum OverlayStyle {
  19. NoOverlay,
  20. TintedOverlay,
  21. GrayOverlay
  22. };
  23. enum Role {
  24. Default,
  25. Primary,
  26. Secondary
  27. };
  28. enum ButtonIconPlacement {
  29. LeftIcon,
  30. RightIcon
  31. };
  32. enum ProgressType {
  33. DeterminateProgress,
  34. IndeterminateProgress
  35. };
  36. enum AvatarType {
  37. ImageAvatar,
  38. IconAvatar,
  39. LetterAvatar
  40. };
  41. enum Color {
  42. red50,
  43. red100,
  44. red200,
  45. red300,
  46. red400,
  47. red500,
  48. red600,
  49. red700,
  50. red800,
  51. red900,
  52. redA100,
  53. redA200,
  54. redA400,
  55. redA700,
  56. pink50,
  57. pink100,
  58. pink200,
  59. pink300,
  60. pink400,
  61. pink500,
  62. pink600,
  63. pink700,
  64. pink800,
  65. pink900,
  66. pinkA100,
  67. pinkA200,
  68. pinkA400,
  69. pinkA700,
  70. purple50,
  71. purple100,
  72. purple200,
  73. purple300,
  74. purple400,
  75. purple500,
  76. purple600,
  77. purple700,
  78. purple800,
  79. purple900,
  80. purpleA100,
  81. purpleA200,
  82. purpleA400,
  83. purpleA700,
  84. deepPurple50,
  85. deepPurple100,
  86. deepPurple200,
  87. deepPurple300,
  88. deepPurple400,
  89. deepPurple500,
  90. deepPurple600,
  91. deepPurple700,
  92. deepPurple800,
  93. deepPurple900,
  94. deepPurpleA100,
  95. deepPurpleA200,
  96. deepPurpleA400,
  97. deepPurpleA700,
  98. indigo50,
  99. indigo100,
  100. indigo200,
  101. indigo300,
  102. indigo400,
  103. indigo500,
  104. indigo600,
  105. indigo700,
  106. indigo800,
  107. indigo900,
  108. indigoA100,
  109. indigoA200,
  110. indigoA400,
  111. indigoA700,
  112. blue50,
  113. blue100,
  114. blue200,
  115. blue300,
  116. blue400,
  117. blue500,
  118. blue600,
  119. blue700,
  120. blue800,
  121. blue900,
  122. blueA100,
  123. blueA200,
  124. blueA400,
  125. blueA700,
  126. lightBlue50,
  127. lightBlue100,
  128. lightBlue200,
  129. lightBlue300,
  130. lightBlue400,
  131. lightBlue500,
  132. lightBlue600,
  133. lightBlue700,
  134. lightBlue800,
  135. lightBlue900,
  136. lightBlueA100,
  137. lightBlueA200,
  138. lightBlueA400,
  139. lightBlueA700,
  140. cyan50,
  141. cyan100,
  142. cyan200,
  143. cyan300,
  144. cyan400,
  145. cyan500,
  146. cyan600,
  147. cyan700,
  148. cyan800,
  149. cyan900,
  150. cyanA100,
  151. cyanA200,
  152. cyanA400,
  153. cyanA700,
  154. teal50,
  155. teal100,
  156. teal200,
  157. teal300,
  158. teal400,
  159. teal500,
  160. teal600,
  161. teal700,
  162. teal800,
  163. teal900,
  164. tealA100,
  165. tealA200,
  166. tealA400,
  167. tealA700,
  168. green50,
  169. green100,
  170. green200,
  171. green300,
  172. green400,
  173. green500,
  174. green600,
  175. green700,
  176. green800,
  177. green900,
  178. greenA100,
  179. greenA200,
  180. greenA400,
  181. greenA700,
  182. lightGreen50,
  183. lightGreen100,
  184. lightGreen200,
  185. lightGreen300,
  186. lightGreen400,
  187. lightGreen500,
  188. lightGreen600,
  189. lightGreen700,
  190. lightGreen800,
  191. lightGreen900,
  192. lightGreenA100,
  193. lightGreenA200,
  194. lightGreenA400,
  195. lightGreenA700,
  196. lime50,
  197. lime100,
  198. lime200,
  199. lime300,
  200. lime400,
  201. lime500,
  202. lime600,
  203. lime700,
  204. lime800,
  205. lime900,
  206. limeA100,
  207. limeA200,
  208. limeA400,
  209. limeA700,
  210. yellow50,
  211. yellow100,
  212. yellow200,
  213. yellow300,
  214. yellow400,
  215. yellow500,
  216. yellow600,
  217. yellow700,
  218. yellow800,
  219. yellow900,
  220. yellowA100,
  221. yellowA200,
  222. yellowA400,
  223. yellowA700,
  224. amber50,
  225. amber100,
  226. amber200,
  227. amber300,
  228. amber400,
  229. amber500,
  230. amber600,
  231. amber700,
  232. amber800,
  233. amber900,
  234. amberA100,
  235. amberA200,
  236. amberA400,
  237. amberA700,
  238. orange50,
  239. orange100,
  240. orange200,
  241. orange300,
  242. orange400,
  243. orange500,
  244. orange600,
  245. orange700,
  246. orange800,
  247. orange900,
  248. orangeA100,
  249. orangeA200,
  250. orangeA400,
  251. orangeA700,
  252. deepOrange50,
  253. deepOrange100,
  254. deepOrange200,
  255. deepOrange300,
  256. deepOrange400,
  257. deepOrange500,
  258. deepOrange600,
  259. deepOrange700,
  260. deepOrange800,
  261. deepOrange900,
  262. deepOrangeA100,
  263. deepOrangeA200,
  264. deepOrangeA400,
  265. deepOrangeA700,
  266. brown50,
  267. brown100,
  268. brown200,
  269. brown300,
  270. brown400,
  271. brown500,
  272. brown600,
  273. brown700,
  274. brown800,
  275. brown900,
  276. blueGrey50,
  277. blueGrey100,
  278. blueGrey200,
  279. blueGrey300,
  280. blueGrey400,
  281. blueGrey500,
  282. blueGrey600,
  283. blueGrey700,
  284. blueGrey800,
  285. blueGrey900,
  286. grey50,
  287. grey100,
  288. grey200,
  289. grey300,
  290. grey400,
  291. grey500,
  292. grey600,
  293. grey700,
  294. grey800,
  295. grey900,
  296. black,
  297. white,
  298. transparent,
  299. fullBlack,
  300. darkBlack,
  301. lightBlack,
  302. minBlack,
  303. faintBlack,
  304. fullWhite,
  305. darkWhite,
  306. lightWhite
  307. };
  308. }
  309. class QtMaterialThemePrivate;
  310. class QtMaterialTheme : public QObject
  311. {
  312. Q_OBJECT
  313. public:
  314. explicit QtMaterialTheme(QObject *parent = 0);
  315. ~QtMaterialTheme();
  316. QColor getColor(const QString &key) const;
  317. void setColor(const QString &key, const QColor &color);
  318. void setColor(const QString &key, Material::Color color);
  319. static QIcon icon(QString category, QString icon);
  320. protected:
  321. const QScopedPointer<QtMaterialThemePrivate> d_ptr;
  322. private:
  323. Q_DISABLE_COPY(QtMaterialTheme)
  324. Q_DECLARE_PRIVATE(QtMaterialTheme)
  325. };
  326. #endif // QTMATERIALTHEME_H