40#ifndef DRAIN_SELECTOR_XML
41#define DRAIN_SELECTOR_XML
45#include <drain/StringWrapper.h>
64DRAIN_ENUM_CONV(PseudoClassCSS);
76 template <
class ...TT>
88 template <
class T,
class ...TT>
89 void set(
const T & arg, TT... args){
95 void set(
const T & arg){
120 void set(
const std::string & arg){
127 void set(
const char *arg){
144 void set(
const PseudoClassCSS & arg){
145 pseudoClass.set(arg);
156 pseudoClass.assign(p);
175 void setClass(
const T & arg){
189 pseudoClass.set(psCls);
203 void toStream(std::ostream & ostr)
const {
208 if (
static_cast<int>(elem) != 0){
209 ostr << drain::Enum<E>::dict.getKey(elem);
216 if (!pseudoClass.empty()){
217 ostr <<
':' << pseudoClass;
222 const std::string & str()
const {
224 std::stringstream sstr;
226 currentStr = sstr.str();
232 operator const std::string &()
const {
239 E elem =
static_cast<E
>(0);
241 StringWrapper<PseudoClassCSS> pseudoClass;
247 std::string currentStr;
256DRAIN_ENUM_DICT(drain::PseudoClassCSS);
257DRAIN_ENUM_OSTREAM(drain::PseudoClassCSS);
A wrapper marking string an CSS effect.
Definition ClassXML.h:57
Definition SelectorXML.h:72
void set(const T &arg, TT... args)
Definition SelectorXML.h:89
void setPseudoClass(const T &psCls)
Set one of the element pseudo classes: focus, hover.
Definition SelectorXML.h:188
void set(const char *arg)
Set CSS class.
Definition SelectorXML.h:127
void set(const E &arg)
Set element.
Definition SelectorXML.h:110
void set(const StringWrapper< drain::PseudoClassCSS > &p)
Set one of the element pseudo classes: focus, hover.
Definition SelectorXML.h:155
void set(const PseudoClassCSS &arg)
Set one of the element pseudo classes: focus, hover.
Definition SelectorXML.h:144
void set(const std::string &arg)
Set CSS class.
Definition SelectorXML.h:120
void setElement(const T &arg)
Set element explicitly.
Definition SelectorXML.h:168
void set(const ClassXML &arg)
Set CSS class.
Definition SelectorXML.h:135
String-like object easily supporting conversion from other types, like Enum values.
Definition StringWrapper.h:51
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