// Check if aHyperlink is a valid MaiHyperlink, and return the // nsIAccessibleHyperLink related. nsIAccessibleHyperLink * get_accessible_hyperlink(AtkHyperlink *aHyperlink) { NS_ENSURE_TRUE(MAI_IS_ATK_HYPERLINK(aHyperlink), nsnull); MaiHyperlink * maiHyperlink = MAI_ATK_HYPERLINK(aHyperlink)->maiHyperlink; NS_ENSURE_TRUE(maiHyperlink != nsnull, nsnull); NS_ENSURE_TRUE(maiHyperlink->GetAtkHyperlink() == aHyperlink, nsnull); return maiHyperlink->GetAccHyperlink(); }
AtkHyperlink* getHyperlinkCB(AtkHyperlinkImpl* aImpl) { nsAccessibleWrap* accWrap = GetAccessibleWrap(ATK_OBJECT(aImpl)); if (!accWrap) return nsnull; NS_ENSURE_TRUE(accWrap->IsLink(), nsnull); MaiHyperlink* maiHyperlink = accWrap->GetMaiHyperlink(); NS_ENSURE_TRUE(maiHyperlink, nsnull); return maiHyperlink->GetAtkHyperlink(); }
AtkHyperlink* MaiAtkObject::GetAtkHyperlink() { NS_ASSERTION(quark_mai_hyperlink, "quark_mai_hyperlink not initialized"); MaiHyperlink* maiHyperlink = (MaiHyperlink*)g_object_get_qdata(G_OBJECT(this), quark_mai_hyperlink); if (!maiHyperlink) { maiHyperlink = new MaiHyperlink(accWrap); g_object_set_qdata(G_OBJECT(this), quark_mai_hyperlink, maiHyperlink); } return maiHyperlink->GetAtkHyperlink(); }
AtkHyperlink * getLinkCB(AtkHypertext *aText, gint aLinkIndex) { nsAccessibleWrap *accWrap = GetAccessibleWrap(ATK_OBJECT(aText)); if (!accWrap) return nsnull; nsHyperTextAccessible* hyperText = accWrap->AsHyperText(); NS_ENSURE_TRUE(hyperText, nsnull); nsAccessible* hyperLink = hyperText->GetLinkAt(aLinkIndex); if (!hyperLink) return nsnull; AtkObject* hyperLinkAtkObj = nsAccessibleWrap::GetAtkObject(hyperLink); nsAccessibleWrap *accChild = GetAccessibleWrap(hyperLinkAtkObj); NS_ENSURE_TRUE(accChild, nsnull); MaiHyperlink *maiHyperlink = accChild->GetMaiHyperlink(); NS_ENSURE_TRUE(maiHyperlink, nsnull); return maiHyperlink->GetAtkHyperlink(); }