void nsFilePicker::ReadValuesFromFileChooser(GtkWidget *file_chooser) { mFiles.Clear(); if (mMode == nsIFilePicker::modeOpenMultiple) { mFile.Truncate(); GSList *list = _gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER(file_chooser)); g_slist_foreach(list, ReadMultipleFiles, NS_STATIC_CAST(gpointer, &mFiles)); g_slist_free(list); } else { gchar *filename = _gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(file_chooser)); mFile.Assign(filename); g_free(filename); } GtkFileFilter *filter = _gtk_file_chooser_get_filter (GTK_FILE_CHOOSER(file_chooser)); GSList *filter_list = _gtk_file_chooser_list_filters (GTK_FILE_CHOOSER(file_chooser)); mSelectedType = NS_STATIC_CAST(PRInt16, g_slist_index (filter_list, filter)); g_slist_free(filter_list); // Remember last used directory. nsCOMPtr<nsILocalFile> file; GetFile(getter_AddRefs(file)); if (file) { nsCOMPtr<nsIFile> dir; file->GetParent(getter_AddRefs(dir)); nsCOMPtr<nsILocalFile> localDir(do_QueryInterface(dir)); if (localDir) { localDir.swap(mPrevDisplayDirectory); } } }
static PRBool CommonPrefix(const PRUnichar *aString, const PRUnichar *aSubstr, PRInt32 aSubstrLen) { if (!aSubstrLen || (nsCRT::strlen(aString) < NS_STATIC_CAST(PRUint32, aSubstrLen))) return PR_FALSE; return (Substring(aString, aString+aSubstrLen).Equals(Substring(aSubstr, aSubstr+aSubstrLen), nsCaseInsensitiveStringComparator())); }
gint getAnchorCountCB(AtkHyperlink *aLink) { nsIAccessibleHyperLink *accHyperlink = get_accessible_hyperlink(aLink); NS_ENSURE_TRUE(accHyperlink, -1); PRInt32 count = -1; nsresult rv = accHyperlink->GetAnchors(&count); return (NS_FAILED(rv)) ? -1 : NS_STATIC_CAST(gint, count); }
gboolean isValidCB(AtkHyperlink *aLink) { nsIAccessibleHyperLink *accHyperlink = get_accessible_hyperlink(aLink); NS_ENSURE_TRUE(accHyperlink, FALSE); PRBool isValid = PR_FALSE; nsresult rv = accHyperlink->IsValid(&isValid); return (NS_FAILED(rv)) ? FALSE : NS_STATIC_CAST(gboolean, isValid); }
/* nsIDOMSVGPathSeg getItem (in unsigned long index); */ NS_IMETHODIMP nsSVGPathSegList::GetItem(PRUint32 index, nsIDOMSVGPathSeg **_retval) { if (index >= NS_STATIC_CAST(PRUint32, mSegments.Count())) { *_retval = nsnull; return NS_ERROR_DOM_INDEX_SIZE_ERR; } *_retval = ElementAt(index); NS_ADDREF(*_retval); return NS_OK; }
gint getStartIndexCB(AtkHyperlink *aLink) { nsIAccessibleHyperLink *accHyperlink = get_accessible_hyperlink(aLink); NS_ENSURE_TRUE(accHyperlink, -1); PRInt32 startIndex = -1; nsresult rv = accHyperlink->GetStartIndex(&startIndex); return (NS_FAILED(rv)) ? -1 : NS_STATIC_CAST(gint, startIndex); }
// Does an in place rotation of the line static void Rot13Line(nsCString &line) { nsCString::iterator start, end; line.BeginWriting(start); line.EndWriting(end); while (start != end) { *start = kRot13Table[NS_STATIC_CAST(PRInt32, *start)]; ++start; } }
pascal OSStatus nsMacMessagePump::MouseClickEventHandler(EventHandlerCallRef aHandlerCallRef, EventRef aEvent, void* aUserData) { EventMouseButton button; OSErr err = ::GetEventParameter(aEvent, kEventParamMouseButton, typeMouseButton, NULL, sizeof(EventMouseButton), NULL, &button); // Only handle middle click events here. Let the rest fall through. if (err != noErr || button != kEventMouseButtonTertiary) return eventNotHandledErr; EventRecord eventRecord; if (!::ConvertEventRefToEventRecord(aEvent, &eventRecord)) { // This will return FALSE on a middle click event; that's to let us know // it's giving us a nullEvent, which is expected since Classic events // don't support the middle button normally. // // We know better, so let's restore the actual event kind. UInt32 kind = ::GetEventKind(aEvent); eventRecord.what = (kind == kEventMouseDown) ? mouseDown : mouseUp; } // Classic mouse events don't record the button specifier. The message // parameter is unused in mouse click events, so let's stuff it there. // We'll pick it up in nsMacEventHandler::HandleMouseDownEvent(). eventRecord.message = NS_STATIC_CAST(UInt32, button); // Process the modified event internally nsMacMessagePump* self = NS_STATIC_CAST(nsMacMessagePump*, aUserData); PRBool handled = self->DispatchEvent(&eventRecord); if (handled) return noErr; return eventNotHandledErr; }
void txMozillaXMLOutput::endHTMLElement(nsIDOMElement* aElement) { nsresult rv; nsCOMPtr<nsIContent> content = do_QueryInterface(aElement); NS_ASSERTION(content, "Can't QI to nsIContent"); nsIAtom *atom = content->Tag(); if (mTableState == ADDED_TBODY) { NS_ASSERTION(atom == txHTMLAtoms::tbody, "Element flagged as added tbody isn't a tbody"); nsCOMPtr<nsIDOMNode> parent; mCurrentNode->GetParentNode(getter_AddRefs(parent)); mCurrentNode = parent; mTableState = NS_STATIC_CAST(TableState, NS_PTR_TO_INT32(mTableStateStack.pop())); return; } // Load scripts if (mNotifier && atom == txHTMLAtoms::script) { // Add this script element to the array of loading script elements. nsCOMPtr<nsIScriptElement> scriptElement = do_QueryInterface(mCurrentNode); NS_ASSERTION(scriptElement, "Need script element"); mNotifier->AddScriptElement(scriptElement); } // Set document title else if (mCreatingNewDocument && atom == txHTMLAtoms::title && !mHaveTitleElement) { // The first title wins mHaveTitleElement = PR_TRUE; nsCOMPtr<nsIDOMNSDocument> domDoc = do_QueryInterface(mDocument); nsCOMPtr<nsIDOMNode> textNode; aElement->GetFirstChild(getter_AddRefs(textNode)); if (domDoc && textNode) { nsAutoString text; textNode->GetNodeValue(text); text.CompressWhitespace(); domDoc->SetTitle(text); } } else if (mCreatingNewDocument && atom == txHTMLAtoms::base && !mHaveBaseElement) { // The first base wins mHaveBaseElement = PR_TRUE; nsCOMPtr<nsIDocument> doc = do_QueryInterface(mDocument); NS_ASSERTION(doc, "document doesn't implement nsIDocument"); nsAutoString value; content->GetAttr(kNameSpaceID_None, txHTMLAtoms::target, value); doc->SetBaseTarget(value); content->GetAttr(kNameSpaceID_None, txHTMLAtoms::href, value); nsCOMPtr<nsIURI> baseURI; rv = NS_NewURI(getter_AddRefs(baseURI), value, nsnull); if (NS_FAILED(rv)) return; doc->SetBaseURI(baseURI); // The document checks if it is legal to set this base } else if (mCreatingNewDocument && atom == txHTMLAtoms::meta) { // handle HTTP-EQUIV data nsAutoString httpEquiv; content->GetAttr(kNameSpaceID_None, txHTMLAtoms::httpEquiv, httpEquiv); if (httpEquiv.IsEmpty()) return; nsAutoString value; content->GetAttr(kNameSpaceID_None, txHTMLAtoms::content, value); if (value.IsEmpty()) return; TX_ToLowerCase(httpEquiv); nsCOMPtr<nsIAtom> header = do_GetAtom(httpEquiv); processHTTPEquiv(header, value); } }
void txMozillaXMLOutput::endElement(const nsAString& aName, const PRInt32 aNsID) { TX_ENSURE_CURRENTNODE; if (mBadChildLevel) { --mBadChildLevel; PR_LOG(txLog::xslt, PR_LOG_DEBUG, ("endElement, mBadChildLevel = %d\n", mBadChildLevel)); return; } --mTreeDepth; #ifdef DEBUG if (mTableState != ADDED_TBODY) { nsAutoString nodeName; mCurrentNode->GetNodeName(nodeName); NS_ASSERTION(nodeName.Equals(aName, nsCaseInsensitiveStringComparator()), "Unbalanced startElement and endElement calls!"); } else { nsCOMPtr<nsIDOMNode> parent; mCurrentNode->GetParentNode(getter_AddRefs(parent)); nsAutoString nodeName; parent->GetNodeName(nodeName); NS_ASSERTION(nodeName.Equals(aName, nsCaseInsensitiveStringComparator()), "Unbalanced startElement and endElement calls!"); } #endif closePrevious(eCloseElement | eFlushText); // Handle html-elements if ((mOutputFormat.mMethod == eHTMLOutput && aNsID == kNameSpaceID_None) || aNsID == kNameSpaceID_XHTML) { nsCOMPtr<nsIDOMElement> element = do_QueryInterface(mCurrentNode); NS_ASSERTION(element, "endElement'ing non-element"); endHTMLElement(element); } // Handle svg script elements if (aNsID == kNameSpaceID_SVG && txHTMLAtoms::script->Equals(aName)) { // Add this script element to the array of loading script elements. nsCOMPtr<nsIScriptElement> scriptElement = do_QueryInterface(mCurrentNode); NS_ASSERTION(scriptElement, "Need script element"); mNotifier->AddScriptElement(scriptElement); } if (mCreatingNewDocument) { // Handle all sorts of stylesheets nsCOMPtr<nsIStyleSheetLinkingElement> ssle = do_QueryInterface(mCurrentNode); if (ssle) { ssle->SetEnableUpdates(PR_TRUE); if (ssle->UpdateStyleSheet(nsnull, mNotifier) == NS_ERROR_HTMLPARSER_BLOCK) { nsCOMPtr<nsIStyleSheet> stylesheet; ssle->GetStyleSheet(*getter_AddRefs(stylesheet)); if (mNotifier) { mNotifier->AddStyleSheet(stylesheet); } } } } // Add the element to the tree if it wasn't added before and take one step // up the tree // we can't use GetParentNode to check if mCurrentNode is the // "non-added node" since that does strange things when we've called // BindToTree manually if (mCurrentNode == mNonAddedNode) { nsCOMPtr<nsIDocument> document = do_QueryInterface(mNonAddedParent); if (document && !mRootContent) { mRootContent = do_QueryInterface(mCurrentNode); // XXXbz what to do on failure here? document->SetRootContent(mRootContent); } else { nsCOMPtr<nsIDOMNode> resultNode; mNonAddedParent->AppendChild(mCurrentNode, getter_AddRefs(resultNode)); } mCurrentNode = mNonAddedParent; mNonAddedParent = nsnull; mNonAddedNode = nsnull; } else { nsCOMPtr<nsIDOMNode> parent; mCurrentNode->GetParentNode(getter_AddRefs(parent)); mCurrentNode = parent; } mTableState = NS_STATIC_CAST(TableState, NS_PTR_TO_INT32(mTableStateStack.pop())); }