本文整理汇总了C++中dom::element::get_element_type方法的典型用法代码示例。如果您正苦于以下问题:C++ element::get_element_type方法的具体用法?C++ element::get_element_type怎么用?C++ element::get_element_type使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dom::element
的用法示例。
在下文中一共展示了element::get_element_type方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: toggle_checkmark
//toggles checkmark
void toggle_checkmark( dom::element select, dom::element item )
{
const wchar_t* _old_state = item.get_attribute(CHECK_ATTR);
std::wstring old_state = _old_state?_old_state:L"";
if( streq(item.get_element_type(), "options"))
{
// non-terminal node case
// inner function
struct child_toggler: dom::callback
{
const wchar_t* state;
child_toggler(const wchar_t* st): state(st) {}
inline bool on_element(HELEMENT he)
{
htmlayout::dom::element item = he;
item.set_attribute( CHECK_ATTR, state );
return false;
}
};
const wchar_t* new_state;
NODE_STATE old_state = get_state(item);
if(old_state == NODE_OFF)
new_state = L"on";
else
new_state = L"off";
child_toggler ct( new_state );
// do it for all children
item.find_all(&ct, "option,options");
// and for itself
item.set_attribute( CHECK_ATTR, new_state );
item.update();
}
else if( streq(item.get_element_type(), "option"))
{
// terminal node
const wchar_t* new_state;
if(wcseq(item.get_attribute("check"),L"on"))
{
new_state = L"off";
}
else
new_state = L"on";
item.set_attribute( CHECK_ATTR, new_state );
item.update();
}
// as state was changed we need to update parent chain here too.
dom::element p = item.parent();
while( p.is_valid() && p != select )
{
if( streq(p.get_element_type(),"options" ))
{
setup_node(p);
}
p = p.parent();
}
}