2016-08-16 12:23:49 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <cstddef>
|
|
|
|
|
|
|
|
#include <xlnt/styles/alignment.hpp>
|
|
|
|
#include <xlnt/styles/border.hpp>
|
|
|
|
#include <xlnt/styles/fill.hpp>
|
|
|
|
#include <xlnt/styles/font.hpp>
|
|
|
|
#include <xlnt/styles/number_format.hpp>
|
|
|
|
#include <xlnt/styles/protection.hpp>
|
|
|
|
#include <xlnt/utils/optional.hpp>
|
|
|
|
|
|
|
|
namespace xlnt {
|
|
|
|
|
|
|
|
class alignment;
|
|
|
|
class border;
|
|
|
|
class fill;
|
|
|
|
class font;
|
|
|
|
class number_format;
|
|
|
|
class protection;
|
|
|
|
|
|
|
|
namespace detail {
|
|
|
|
|
|
|
|
struct stylesheet;
|
|
|
|
|
|
|
|
struct format_impl
|
|
|
|
{
|
|
|
|
stylesheet *parent;
|
|
|
|
|
2016-08-18 19:34:18 +08:00
|
|
|
std::size_t id;
|
|
|
|
|
2016-08-19 10:11:59 +08:00
|
|
|
optional<std::size_t> alignment_id;
|
2016-11-08 10:11:30 +08:00
|
|
|
bool alignment_applied = false;
|
|
|
|
|
2016-08-19 10:11:59 +08:00
|
|
|
optional<std::size_t> border_id;
|
2016-11-08 10:11:30 +08:00
|
|
|
bool border_applied = false;
|
|
|
|
|
2016-08-19 10:11:59 +08:00
|
|
|
optional<std::size_t> fill_id;
|
2016-11-08 10:11:30 +08:00
|
|
|
bool fill_applied = false;
|
|
|
|
|
2016-08-19 10:11:59 +08:00
|
|
|
optional<std::size_t> font_id;
|
2016-11-08 10:11:30 +08:00
|
|
|
bool font_applied = false;
|
|
|
|
|
2016-08-19 10:11:59 +08:00
|
|
|
optional<std::size_t> number_format_id;
|
2016-11-08 10:11:30 +08:00
|
|
|
bool number_format_applied = false;
|
|
|
|
|
2016-08-19 10:11:59 +08:00
|
|
|
optional<std::size_t> protection_id;
|
2016-11-08 10:11:30 +08:00
|
|
|
bool protection_applied = false;
|
2016-08-18 19:34:18 +08:00
|
|
|
|
|
|
|
optional<std::string> style;
|
2016-11-08 10:11:30 +08:00
|
|
|
|
2016-11-10 08:52:18 +08:00
|
|
|
std::size_t references = 0;
|
|
|
|
|
2016-11-08 10:11:30 +08:00
|
|
|
XLNT_API friend bool operator==(const format_impl &left, const format_impl &right)
|
|
|
|
{
|
|
|
|
return left.parent == right.parent
|
|
|
|
&& left.alignment_id == right.alignment_id
|
|
|
|
&& left.border_id == right.border_id
|
|
|
|
&& left.fill_id == right.fill_id
|
|
|
|
&& left.font_id == right.font_id
|
|
|
|
&& left.number_format_id == right.number_format_id
|
|
|
|
&& left.protection_id == right.protection_id
|
|
|
|
&& left.style == right.style;
|
|
|
|
}
|
2016-08-16 12:23:49 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace detail
|
|
|
|
} // namespace xlnt
|