style_impl.hpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #pragma once
  2. #include <cstddef>
  3. #include <string>
  4. #include <xlnt/utils/optional.hpp>
  5. namespace xlnt {
  6. class alignment;
  7. class border;
  8. class fill;
  9. class font;
  10. class number_format;
  11. class protection;
  12. namespace detail {
  13. struct stylesheet;
  14. struct style_impl
  15. {
  16. stylesheet *parent;
  17. bool operator==(const style_impl& rhs) const
  18. {
  19. return name == rhs.name
  20. && formatting_record_id == rhs.formatting_record_id
  21. && custom_builtin == rhs.custom_builtin
  22. && hidden_style == rhs.hidden_style
  23. && builtin_id == rhs.builtin_id
  24. && outline_style == rhs.outline_style
  25. && alignment_id == rhs.alignment_id
  26. && alignment_applied == rhs.alignment_applied
  27. && border_id == rhs.border_id
  28. && border_applied == rhs.border_applied
  29. && fill_id == rhs.fill_id
  30. && fill_applied == rhs.fill_applied
  31. && font_id == rhs.font_id
  32. && font_applied == rhs.font_applied
  33. && number_format_id == rhs.number_format_id
  34. && number_format_applied == number_format_applied
  35. && protection_id == rhs.protection_id
  36. && protection_applied == rhs.protection_applied
  37. && pivot_button_ == rhs.pivot_button_
  38. && quote_prefix_ == rhs.quote_prefix_;
  39. }
  40. std::string name;
  41. std::size_t formatting_record_id;
  42. bool custom_builtin;
  43. bool hidden_style;
  44. optional<std::size_t> builtin_id;
  45. optional<std::size_t> outline_style;
  46. optional<std::size_t> alignment_id;
  47. optional<bool> alignment_applied;
  48. optional<std::size_t> border_id;
  49. optional<bool> border_applied;
  50. optional<std::size_t> fill_id;
  51. optional<bool> fill_applied;
  52. optional<std::size_t> font_id;
  53. optional<bool> font_applied;
  54. optional<std::size_t> number_format_id;
  55. optional<bool> number_format_applied;
  56. optional<std::size_t> protection_id;
  57. optional<bool> protection_applied;
  58. bool pivot_button_ = false;
  59. bool quote_prefix_ = false;
  60. };
  61. } // namespace detail
  62. } // namespace xlnt