Text Style.cpp 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /******************************************************************************/
  2. #include "stdafx.h"
  3. /******************************************************************************/
  4. /******************************************************************************/
  5. bool EditTextStyle::newer(C EditTextStyle &src)C
  6. {
  7. return shadow_time>src.shadow_time || shade_time>src.shade_time || color_time>src.color_time || selection_time>src.selection_time || align_time>src.align_time || size_time>src.size_time || space_time>src.space_time || font_time>src.font_time;
  8. }
  9. bool EditTextStyle::equal(C EditTextStyle &src)C
  10. {
  11. return shadow_time==src.shadow_time && shade_time==src.shade_time && color_time==src.color_time && selection_time==src.selection_time && align_time==src.align_time && size_time==src.size_time && space_time==src.space_time && font_time==src.font_time;
  12. }
  13. void EditTextStyle::newData()
  14. {
  15. shadow_time++; shade_time++; color_time++; selection_time++; align_time++; size_time++; space_time++; font_time++;
  16. }
  17. bool EditTextStyle::sync(C EditTextStyle &src)
  18. {
  19. bool changed=false;
  20. changed|=Sync( shadow_time, src. shadow_time, shadow , src.shadow );
  21. changed|=Sync( shade_time, src. shade_time, shade , src.shade );
  22. changed|=Sync( color_time, src. color_time, color , src.color );
  23. changed|=Sync(selection_time, src. selection_time, selection , src.selection );
  24. changed|=Sync( align_time, src. align_time, align , src.align );
  25. changed|=Sync( size_time, src. size_time, size , src.size );
  26. changed|=Sync( space_time, src. space_time, space , src.space );
  27. changed|=Sync( font_time, src. font_time, font , src.font );
  28. return changed;
  29. }
  30. bool EditTextStyle::undo(C EditTextStyle &src)
  31. {
  32. bool changed=false;
  33. changed|=Undo( shadow_time, src. shadow_time, shadow , src.shadow );
  34. changed|=Undo( shade_time, src. shade_time, shade , src.shade );
  35. changed|=Undo( color_time, src. color_time, color , src.color );
  36. changed|=Undo(selection_time, src. selection_time, selection , src.selection );
  37. changed|=Undo( align_time, src. align_time, align , src.align );
  38. changed|=Undo( size_time, src. size_time, size , src.size );
  39. changed|=Undo( space_time, src. space_time, space , src.space );
  40. changed|=Undo( font_time, src. font_time, font , src.font );
  41. return changed;
  42. }
  43. void EditTextStyle::reset() {T=EditTextStyle();}
  44. void EditTextStyle::create(C TextStyle &src, C UID &font, C TimeStamp &time)
  45. {
  46. SCAST(TextStyle, T)=src;
  47. ::EE::TextStyle::font(null);
  48. T.font=font;
  49. shadow_time=shade_time=color_time=selection_time=align_time=size_time=space_time=font_time=time;
  50. }
  51. void EditTextStyle::copyTo(TextStyle &dest, C Project &proj)C
  52. {
  53. dest=T;
  54. dest.font(proj.gamePath(font));
  55. }
  56. bool EditTextStyle::save(File &f)C
  57. {
  58. f.cmpUIntV(1);
  59. ::EE::TextStyle::save(f);
  60. f<<font<<shadow_time<<shade_time<<color_time<<selection_time<<align_time<<size_time<<space_time<<font_time;
  61. return f.ok();
  62. }
  63. bool EditTextStyle::load(File &f)
  64. {
  65. reset(); switch(f.decUIntV())
  66. {
  67. case 1: if(::EE::TextStyle::load(f))
  68. {
  69. f>>font>>shadow_time>>shade_time>>color_time>>selection_time>>align_time>>size_time>>space_time>>font_time;
  70. if(f.ok())return true;
  71. }break;
  72. case 0: if(::EE::TextStyle::load(f))
  73. {
  74. f>>font>>shadow_time>>shade_time>>color_time>>align_time>>size_time>>space_time>>font_time;
  75. if(f.ok())return true;
  76. }break;
  77. }
  78. reset(); return false;
  79. }
  80. bool EditTextStyle::load(C Str &name)
  81. {
  82. File f; if(f.readTry(name))return load(f);
  83. reset(); return false;
  84. }
  85. EditTextStyle::EditTextStyle() : font(UIDZero) {}
  86. /******************************************************************************/