40#ifndef DRAIN_SELECTOR_XML
41#define DRAIN_SELECTOR_XML
45#include <drain/StringWrapper.h>
46#include <drain/Converter.h>
65DRAIN_ENUM_CONV(PseudoClassCSS);
77 template <
class ...TT>
89 template <
class T,
class ...TT>
90 void set(
const T & arg, TT... args){
96 void set(
const T & arg){
121 void set(
const std::string & arg){
128 void set(
const char *arg){
145 void set(
const PseudoClassCSS & arg){
146 pseudoClass.set(arg);
157 pseudoClass.assign(p);
176 void setClass(
const T & arg){
190 pseudoClass.set(psCls);
204 void toStream(std::ostream & ostr)
const {
209 if (
static_cast<int>(elem) != 0){
210 ostr << drain::Enum<E>::dict.getKey(elem);
217 if (!pseudoClass.empty()){
218 ostr <<
':' << pseudoClass;
223 const std::string & str()
const {
225 std::stringstream sstr;
227 currentStr = sstr.str();
233 operator const std::string &()
const {
240 E elem =
static_cast<E
>(0);
242 StringWrapper<PseudoClassCSS> pseudoClass;
248 std::string currentStr;
257DRAIN_ENUM_DICT(drain::PseudoClassCSS);
258DRAIN_ENUM_OSTREAM(drain::PseudoClassCSS);
A wrapper marking string an CSS effect.
Definition ClassXML.h:57
Definition SelectorXML.h:73
void set(const T &arg, TT... args)
Definition SelectorXML.h:90
void setPseudoClass(const T &psCls)
Set one of the element pseudo classes: focus, hover.
Definition SelectorXML.h:189
void set(const char *arg)
Set CSS class.
Definition SelectorXML.h:128
void set(const E &arg)
Set element.
Definition SelectorXML.h:111
void set(const StringWrapper< drain::PseudoClassCSS > &p)
Set one of the element pseudo classes: focus, hover.
Definition SelectorXML.h:156
void set(const PseudoClassCSS &arg)
Set one of the element pseudo classes: focus, hover.
Definition SelectorXML.h:145
void set(const std::string &arg)
Set CSS class.
Definition SelectorXML.h:121
void setElement(const T &arg)
Set element explicitly.
Definition SelectorXML.h:169
void set(const ClassXML &arg)
Set CSS class.
Definition SelectorXML.h:136
String-like object easily supporting conversion from other types, like Enum values.
Definition StringWrapper.h:50
Definition DataSelector.cpp:1277
A container for a static dictionary of enumeration values.
Definition Enum.h:51
static E getValue(const E &value, bool lenient=true)
Convenience for object.set(...) like commands.
Definition Enum.h:96