29 std::string key_value_delimiter_;
31 std::string property_delimiter_;
39 std::string convert_to_string(T value)
const {
40 return std::to_string(value);
48 std::string convert_to_string(
bool value)
const {
49 return value ?
"true" :
"false";
57 std::string convert_to_string(
const std::string& value)
const {
71 void add_void(
const std::string& key,
const std::string& value) {
72 if(key.empty() && value.empty())
76 v_ += property_delimiter_;
78 if(!key.empty() && !value.empty())
79 v_ += key + key_value_delimiter_ + value;
89 property_string(
const std::string& key_value_delimiter =
"=",
const std::string& property_delimiter =
";") :
90 key_value_delimiter_(key_value_delimiter),
91 property_delimiter_(property_delimiter) {}
110 void add(
const std::string& key, T value) {
111 add_void(key, convert_to_string(value));
121 void add_bracketed(
const std::string& key,
const T value,
char bracket =
'\'') {
122 std::string str = bracket + convert_to_string(value) + bracket;
133 void add_bracketed(
const std::string& key,
const T value,
char opening_bracket,
char closing_bracket) {
134 std::string str = opening_bracket + convert_to_string(value) + closing_bracket;
139 operator std::string()
const {
A convenience class for compiling strings of delimited key-value pairs useful for defining GUI contro...
void add(const std::string &key, T value)
Add key-value pair to end of content, converting value to string.
property_string(const std::string &key_value_delimiter="=", const std::string &property_delimiter=";")
Construct a new empty property string using the given delimiters.
bool empty() const
Check if empty.
void add_bracketed(const std::string &key, const T value, char opening_bracket, char closing_bracket)
See add.
void add_bracketed(const std::string &key, const T value, char bracket='\'')
See add.
void clear()
Clear content.