void nsFileControlFrame::ContentStatesChanged(nsEventStates aStates) { if (aStates.HasState(NS_EVENT_STATE_DISABLED)) { nsContentUtils::AddScriptRunner(new SyncDisabledStateEvent(this)); } }
// progressbar: PRBool nsNativeTheme::IsIndeterminateProgress(nsIFrame* aFrame, nsEventStates aEventStates) { if (!aFrame || !aFrame->GetContent()) return PR_FALSE; if (aFrame->GetContent()->IsHTML(nsWidgetAtoms::progress)) { return aEventStates.HasState(NS_EVENT_STATE_INDETERMINATE); } return aFrame->GetContent()->AttrValueIs(kNameSpaceID_None, nsWidgetAtoms::mode, NS_LITERAL_STRING("undetermined"), eCaseMatters); }
bool nsNativeTheme::IsDisabled(nsIFrame* aFrame, nsEventStates aEventStates) { if (!aFrame) { return false; } nsIContent* content = aFrame->GetContent(); if (!content) { return PR_FALSE; } if (content->IsHTML()) { return aEventStates.HasState(NS_EVENT_STATE_DISABLED); } // For XML/XUL elements, an attribute must be equal to the literal // string "true" to be counted as true. An empty string should _not_ // be counted as true. return content->AttrValueIs(kNameSpaceID_None, nsWidgetAtoms::disabled, NS_LITERAL_STRING("true"), eCaseMatters); }