void RadioButtonGroup::remove(HTMLInputElement* button) { DCHECK_EQ(button->type(), InputTypeNames::radio); auto it = m_members.find(button); if (it == m_members.end()) return; bool wasValid = isValid(); DCHECK_EQ(it->value, button->isRequired()); updateRequiredButton(*it, false); m_members.remove(it); if (m_checkedButton == button) m_checkedButton = nullptr; if (m_members.isEmpty()) { DCHECK(!m_requiredCount); DCHECK(!m_checkedButton); } else if (wasValid != isValid()) { setNeedsValidityCheckForAllButtons(); } if (!wasValid) { // A radio button not in a group is always valid. We need to make it // valid only if the group was invalid. button->setNeedsValidityCheck(); } // Send notification to update AX attributes for AXObjects which radiobutton // group has. if (!m_members.isEmpty()) { HTMLInputElement* input = m_members.begin()->key; if (AXObjectCache* cache = input->document().existingAXObjectCache()) cache->radiobuttonRemovedFromGroup(input); } }
void RadioButtonGroup::requiredAttributeChanged(HTMLInputElement* button) { DCHECK_EQ(button->type(), InputTypeNames::radio); auto it = m_members.find(button); DCHECK_NE(it, m_members.end()); bool wasValid = isValid(); // Synchronize the 'required' flag for the button, along with // updating the overall count. updateRequiredButton(*it, button->isRequired()); if (wasValid != isValid()) setNeedsValidityCheckForAllButtons(); }
int main() { #if 0 SipProtocol protocol; protocol.buildRequestHeader("[email protected]", //user "192.168.80.111", //from "192.168.80.125", //to "192.168.80.125", //via "1" , //cseq "qega444afa4g6aga4g"//call-id ); waitForCall(&protocol); protocol.dumpProperties(); #endif DisableCompare<CppString> discom; Members val; val.insert(pair<CppString, int>("key1", 1)); val.insert(pair<CppString, int>("key2", 2)); Members::iterator iter; for(iter = val.begin(); iter != val.end(); iter++) { cout << iter->first << endl; } }