@EditGuiSkin.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class EditGuiSkin : GuiSkin
  4. {
  5. class Button
  6. {
  7. UID normal_id, pushed_id, disabled_id, pushed_disabled_id, text_style_id;
  8. TimeStamp normal, pushed, disabled, pushed_disabled,
  9. normal_color, pushed_color, disabled_color, pushed_disabled_color,
  10. text_size, text_padd, text_style;
  11. void copyTo(GuiSkin::Button &skin, C Project &proj)C;
  12. void includeIDs(MemPtr<UID> ids)C;
  13. bool newer(C Button &src)C;
  14. bool equal(C Button &src)C;
  15. void newData();
  16. bool sync(GuiSkin::Button &val, C Button &src, C GuiSkin::Button &src_val);
  17. bool undo(GuiSkin::Button &val, C Button &src, C GuiSkin::Button &src_val);
  18. bool save(File &f)C;
  19. bool load(File &f);
  20. void reset();
  21. public:
  22. Button();
  23. };
  24. class ButtonImage : Button
  25. {
  26. UID image_id;
  27. TimeStamp image, image_color;
  28. void copyTo(GuiSkin::ButtonImage &skin, C Project &proj)C;
  29. void includeIDs(MemPtr<UID> ids)C;
  30. bool newer(C ButtonImage &src)C;
  31. bool equal(C ButtonImage &src)C;
  32. void newData();
  33. bool sync(GuiSkin::ButtonImage &val, C ButtonImage &src, C GuiSkin::ButtonImage &src_val);
  34. bool undo(GuiSkin::ButtonImage &val, C ButtonImage &src, C GuiSkin::ButtonImage &src_val);
  35. bool save(File &f)C;
  36. bool load(File &f);
  37. void reset();
  38. public:
  39. ButtonImage();
  40. };
  41. class CheckBox
  42. {
  43. UID off_id, on_id, multi_id;
  44. TimeStamp off, on, multi,
  45. normal_color, disabled_color;
  46. void copyTo(GuiSkin::CheckBox &skin, C Project &proj)C;
  47. void includeIDs(MemPtr<UID> ids)C;
  48. bool newer(C CheckBox &src)C;
  49. bool equal(C CheckBox &src)C;
  50. void newData();
  51. bool sync(GuiSkin::CheckBox &val, C CheckBox &src, C GuiSkin::CheckBox &src_val);
  52. bool undo(GuiSkin::CheckBox &val, C CheckBox &src, C GuiSkin::CheckBox &src_val);
  53. bool save(File &f)C;
  54. bool load(File &f);
  55. void reset();
  56. public:
  57. CheckBox();
  58. };
  59. class ComboBox : ButtonImage // 'image' is used as the side arrow
  60. {
  61. void copyTo(GuiSkin::ComboBox &skin, C Project &proj)C;
  62. void includeIDs(MemPtr<UID> ids)C;
  63. bool newer(C ComboBox &src)C;
  64. bool equal(C ComboBox &src)C;
  65. void newData();
  66. bool sync(GuiSkin::ComboBox &val, C ComboBox &src, C GuiSkin::ComboBox &src_val);
  67. bool undo(GuiSkin::ComboBox &val, C ComboBox &src, C GuiSkin::ComboBox &src_val);
  68. bool save(File &f)C;
  69. bool load(File &f);
  70. void reset();
  71. };
  72. class Desc
  73. {
  74. UID normal_id, text_style_id;
  75. TimeStamp normal,
  76. normal_color,
  77. padding,
  78. text_style;
  79. void copyTo(GuiSkin::Desc &skin, C Project &proj)C;
  80. void includeIDs(MemPtr<UID> ids)C;
  81. bool newer(C Desc &src)C;
  82. bool equal(C Desc &src)C;
  83. void newData();
  84. bool sync(GuiSkin::Desc &val, C Desc &src, C GuiSkin::Desc &src_val);
  85. bool undo(GuiSkin::Desc &val, C Desc &src, C GuiSkin::Desc &src_val);
  86. bool save(File &f)C;
  87. bool load(File &f);
  88. void reset();
  89. public:
  90. Desc();
  91. };
  92. class IMM
  93. {
  94. UID normal_id, text_style_id;
  95. TimeStamp normal,
  96. normal_color,
  97. padding,
  98. text_style;
  99. void copyTo(GuiSkin::IMM &skin, C Project &proj)C;
  100. void includeIDs(MemPtr<UID> ids)C;
  101. bool newer(C IMM &src)C;
  102. bool equal(C IMM &src)C;
  103. void newData();
  104. bool sync(GuiSkin::IMM &val, C IMM &src, C GuiSkin::IMM &src_val);
  105. bool undo(GuiSkin::IMM &val, C IMM &src, C GuiSkin::IMM &src_val);
  106. bool save(File &f)C;
  107. bool load(File &f);
  108. void reset();
  109. public:
  110. IMM();
  111. };
  112. class List
  113. {
  114. UID cursor_id, highlight_id, selection_id, text_style_id, resize_column_id;
  115. TimeStamp cursor, highlight, selection,
  116. cursor_color, highlight_color, selection_color,
  117. text_style, resize_column;
  118. Button column;
  119. void copyTo(GuiSkin::List &skin, C Project &proj)C;
  120. void includeIDs(MemPtr<UID> ids)C;
  121. bool newer(C List &src)C;
  122. bool equal(C List &src)C;
  123. void newData();
  124. bool sync(GuiSkin::List &val, C List &src, C GuiSkin::List &src_val);
  125. bool undo(GuiSkin::List &val, C List &src, C GuiSkin::List &src_val);
  126. bool save(File &f)C;
  127. bool load(File &f);
  128. void reset();
  129. public:
  130. List();
  131. };
  132. class Menu
  133. {
  134. UID normal_id, check_id, sub_menu_id;
  135. TimeStamp normal,
  136. normal_color,
  137. padding,
  138. list_elm_height,
  139. check, sub_menu,
  140. check_color, sub_menu_color;
  141. void copyTo(GuiSkin::Menu &skin, C Project &proj)C;
  142. void includeIDs(MemPtr<UID> ids)C;
  143. bool newer(C Menu &src)C;
  144. bool equal(C Menu &src)C;
  145. void newData();
  146. bool sync(GuiSkin::Menu &val, C Menu &src, C GuiSkin::Menu &src_val);
  147. bool undo(GuiSkin::Menu &val, C Menu &src, C GuiSkin::Menu &src_val);
  148. bool save(File &f)C;
  149. bool load(File &f);
  150. void reset();
  151. public:
  152. Menu();
  153. };
  154. class MenuBar
  155. {
  156. UID background_id, highlight_id, text_style_id;
  157. TimeStamp background, highlight,
  158. background_color, highlight_color,
  159. bar_height, text_size, text_padd,
  160. text_style;
  161. void copyTo(GuiSkin::MenuBar &skin, C Project &proj)C;
  162. void includeIDs(MemPtr<UID> ids)C;
  163. bool newer(C MenuBar &src)C;
  164. bool equal(C MenuBar &src)C;
  165. void newData();
  166. bool sync(GuiSkin::MenuBar &val, C MenuBar &src, C GuiSkin::MenuBar &src_val);
  167. bool undo(GuiSkin::MenuBar &val, C MenuBar &src, C GuiSkin::MenuBar &src_val);
  168. bool save(File &f)C;
  169. bool load(File &f);
  170. void reset();
  171. public:
  172. MenuBar();
  173. };
  174. class Progress
  175. {
  176. UID background_id, progress_id, text_style_id;
  177. TimeStamp background, progress,
  178. background_color, progress_color,
  179. text_style, text_size,
  180. draw_progress_partial;
  181. void copyTo(GuiSkin::Progress &skin, C Project &proj)C;
  182. void includeIDs(MemPtr<UID> ids)C;
  183. bool newer(C Progress &src)C;
  184. bool equal(C Progress &src)C;
  185. void newData();
  186. bool sync(GuiSkin::Progress &val, C Progress &src, C GuiSkin::Progress &src_val);
  187. bool undo(GuiSkin::Progress &val, C Progress &src, C GuiSkin::Progress &src_val);
  188. bool save(File &f)C;
  189. bool load(File &f);
  190. void reset();
  191. public:
  192. Progress();
  193. };
  194. class Property
  195. {
  196. ButtonImage value;
  197. void copyTo(GuiSkin::Property &skin, C Project &proj)C;
  198. void includeIDs(MemPtr<UID> ids)C;
  199. bool newer(C Property &src)C;
  200. bool equal(C Property &src)C;
  201. void newData();
  202. bool sync(GuiSkin::Property &val, C Property &src, C GuiSkin::Property &src_val);
  203. bool undo(GuiSkin::Property &val, C Property &src, C GuiSkin::Property &src_val);
  204. bool save(File &f)C;
  205. bool load(File &f);
  206. void reset();
  207. };
  208. class Region
  209. {
  210. UID normal_id;
  211. TimeStamp normal,
  212. normal_color;
  213. ButtonImage view;
  214. void copyTo(GuiSkin::Region &skin, C Project &proj)C;
  215. void includeIDs(MemPtr<UID> ids)C;
  216. bool newer(C Region &src)C;
  217. bool equal(C Region &src)C;
  218. void newData();
  219. bool sync(GuiSkin::Region &val, C Region &src, C GuiSkin::Region &src_val);
  220. bool undo(GuiSkin::Region &val, C Region &src, C GuiSkin::Region &src_val);
  221. bool save(File &f)C;
  222. bool load(File &f);
  223. void reset();
  224. public:
  225. Region();
  226. };
  227. class SlideBar
  228. {
  229. UID background_id;
  230. TimeStamp background, background_color;
  231. ButtonImage left, center, right;
  232. void copyTo(GuiSkin::SlideBar &skin, C Project &proj)C;
  233. void includeIDs(MemPtr<UID> ids)C;
  234. bool newer(C SlideBar &src)C;
  235. bool equal(C SlideBar &src)C;
  236. void newData();
  237. bool sync(GuiSkin::SlideBar &val, C SlideBar &src, C GuiSkin::SlideBar &src_val);
  238. bool undo(GuiSkin::SlideBar &val, C SlideBar &src, C GuiSkin::SlideBar &src_val);
  239. bool save(File &f)C;
  240. bool load(File &f);
  241. void reset();
  242. public:
  243. SlideBar();
  244. };
  245. class Slider
  246. {
  247. UID background_id, progress_id, slider_id;
  248. TimeStamp background, progress, slider,
  249. background_color, progress_color, slider_color,
  250. background_shrink,
  251. draw_progress_partial;
  252. void copyTo(GuiSkin::Slider &skin, C Project &proj)C;
  253. void includeIDs(MemPtr<UID> ids)C;
  254. bool newer(C Slider &src)C;
  255. bool equal(C Slider &src)C;
  256. void newData();
  257. bool sync(GuiSkin::Slider &val, C Slider &src, C GuiSkin::Slider &src_val);
  258. bool undo(GuiSkin::Slider &val, C Slider &src, C GuiSkin::Slider &src_val);
  259. bool save(File &f)C;
  260. bool load(File &f);
  261. void reset();
  262. public:
  263. Slider();
  264. };
  265. class Tab : Button
  266. {
  267. class Kind
  268. {
  269. UID normal_id, pushed_id;
  270. TimeStamp normal, pushed;
  271. Kind(C Button &button);
  272. bool valid()C;
  273. void copyTo(Button &button)C;
  274. bool apply (Kind &kind )C;
  275. bool apply (Button &button)C;
  276. void includeIDs(MemPtr<UID> ids)C;
  277. bool newer(C Kind &src)C;
  278. bool equal(C Kind &src)C;
  279. void newData();
  280. bool sync(C Kind &src);
  281. bool undo(C Kind &src);
  282. bool save(File &f)C;
  283. bool load(File &f);
  284. void reset();
  285. public:
  286. Kind();
  287. };
  288. Kind left, horizontal, right, top, vertical, bottom, top_left, top_right, bottom_left, bottom_right;
  289. void copyTo(GuiSkin::Tab &skin, C Project &proj)C;
  290. void includeIDs(MemPtr<UID> ids)C;
  291. bool newer(C Tab &src)C;
  292. bool equal(C Tab &src)C;
  293. void newData();
  294. bool sync(GuiSkin::Tab &val, C Tab &src, C GuiSkin::Tab &src_val);
  295. bool undo(GuiSkin::Tab &val, C Tab &src, C GuiSkin::Tab &src_val);
  296. bool save(File &f)C;
  297. bool load(File &f);
  298. void reset();
  299. };
  300. class Text
  301. {
  302. UID text_style_id;
  303. TimeStamp text_style;
  304. void copyTo(GuiSkin::Text &skin, C Project &proj)C;
  305. void includeIDs(MemPtr<UID> ids)C;
  306. bool newer(C Text &src)C;
  307. bool equal(C Text &src)C;
  308. void newData();
  309. bool sync(GuiSkin::Text &val, C Text &src, C GuiSkin::Text &src_val);
  310. bool undo(GuiSkin::Text &val, C Text &src, C GuiSkin::Text &src_val);
  311. bool save(File &f)C;
  312. bool load(File &f);
  313. void reset();
  314. public:
  315. Text();
  316. };
  317. class TextLine
  318. {
  319. UID normal_id, disabled_id, text_style_id, find_image_id;
  320. TimeStamp normal, disabled,
  321. normal_panel_color, normal_text_color, disabled_panel_color, disabled_text_color, rect_color,
  322. text_size,
  323. text_style,
  324. find_image;
  325. ButtonImage clear;
  326. void copyTo(GuiSkin::TextLine &skin, C Project &proj)C;
  327. void includeIDs(MemPtr<UID> ids)C;
  328. bool newer(C TextLine &src)C;
  329. bool equal(C TextLine &src)C;
  330. void newData();
  331. bool sync(GuiSkin::TextLine &val, C TextLine &src, C GuiSkin::TextLine &src_val);
  332. bool undo(GuiSkin::TextLine &val, C TextLine &src, C GuiSkin::TextLine &src_val);
  333. bool save(File &f)C;
  334. bool load(File &f);
  335. void reset();
  336. public:
  337. TextLine();
  338. };
  339. class Window
  340. {
  341. UID normal_id, active_id, normal_no_bar_id, active_no_bar_id,
  342. normal_text_style_id, active_text_style_id;
  343. TimeStamp normal, active, normal_no_bar, active_no_bar,
  344. normal_color, active_color,
  345. normal_text_style, active_text_style,
  346. text_size, text_padd, button_offset;
  347. ButtonImage minimize, maximize, close;
  348. void copyTo(GuiSkin::Window &skin, C Project &proj)C;
  349. void includeIDs(MemPtr<UID> ids)C;
  350. bool newer(C Window &src)C;
  351. bool equal(C Window &src)C;
  352. void newData();
  353. bool sync(GuiSkin::Window &val, C Window &src, C GuiSkin::Window &src_val);
  354. bool undo(GuiSkin::Window &val, C Window &src, C GuiSkin::Window &src_val);
  355. bool save(File &f)C;
  356. bool load(File &f);
  357. void reset();
  358. public:
  359. Window();
  360. };
  361. class Base
  362. {
  363. UID font_id, text_style_id;
  364. TimeStamp background_color,
  365. border_color,
  366. mouse_highlight_color,
  367. keyboard_highlight_color,
  368. font, text_style;
  369. Button button;
  370. CheckBox checkbox;
  371. ComboBox combobox;
  372. Desc desc;
  373. IMM imm;
  374. List list;
  375. Menu menu;
  376. MenuBar menubar;
  377. Progress progress;
  378. Property property;
  379. Region region;
  380. SlideBar slidebar;
  381. Slider slider;
  382. Tab tab;
  383. Text text;
  384. TextLine textline;
  385. Window window;
  386. void includeIDs(MemPtr<UID> ids)C;
  387. void copyTo(GuiSkin &skin, C Project &proj)C;
  388. bool newer(C Base &src)C;
  389. bool equal(C Base &src)C;
  390. void newData();
  391. bool sync(GuiSkin &val, C Base &src, C GuiSkin &src_val);
  392. bool undo(GuiSkin &val, C Base &src, C GuiSkin &src_val);
  393. bool save(File &f)C;
  394. bool load(File &f);
  395. void reset();
  396. public:
  397. Base();
  398. };
  399. Base base;
  400. void reset ( );
  401. void newData( );
  402. bool newer (C EditGuiSkin &src)C;
  403. bool equal (C EditGuiSkin &src)C;
  404. bool sync (C EditGuiSkin &src);
  405. bool undo (C EditGuiSkin &src);
  406. void copyTo ( GuiSkin &skin, C Project&proj)C; // call 'copyTo' after assignment to fixup what's missing
  407. // io
  408. bool save(File &f)C;
  409. bool load(File &f);
  410. bool load(C Str &name);
  411. };
  412. /******************************************************************************/
  413. /******************************************************************************/
  414. /******************************************************************************/