mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-15 21:36:20 +00:00
add Set/GetWordBreaker to nsIDocument. Reviewed and approved by kipp
This commit is contained in:
parent
43351bf5de
commit
3af2e4fcc5
content/base
layout/base
@ -51,6 +51,7 @@ class nsINameSpaceManager;
|
||||
class nsIDOMSelection;
|
||||
class nsIDOMDocumentFragment;
|
||||
class nsILineBreaker;
|
||||
class nsIWordBreaker;
|
||||
|
||||
// IID for the nsIDocument interface
|
||||
#define NS_IDOCUMENT_IID \
|
||||
@ -117,6 +118,8 @@ public:
|
||||
*/
|
||||
NS_IMETHOD GetLineBreaker(nsILineBreaker** aResult) = 0;
|
||||
NS_IMETHOD SetLineBreaker(nsILineBreaker* aLineBreaker) = 0;
|
||||
NS_IMETHOD GetWordBreaker(nsIWordBreaker** aResult) = 0;
|
||||
NS_IMETHOD SetWordBreaker(nsIWordBreaker* aWordBreaker) = 0;
|
||||
|
||||
/**
|
||||
* Access HTTP header data (this may also get set from other sources, like
|
||||
|
@ -97,9 +97,11 @@ static NS_DEFINE_IID(kDOMScriptObjectFactoryCID, NS_DOM_SCRIPT_OBJECT_FACTORY_CI
|
||||
|
||||
|
||||
#include "nsILineBreakerFactory.h"
|
||||
#include "nsIWordBreakerFactory.h"
|
||||
#include "nsLWBrkCIID.h"
|
||||
static NS_DEFINE_IID(kLWBrkCID, NS_LWBRK_CID);
|
||||
static NS_DEFINE_IID(kILineBreakerFactoryIID, NS_ILINEBREAKERFACTORY_IID);
|
||||
static NS_DEFINE_IID(kIWordBreakerFactoryIID, NS_IWORDBREAKERFACTORY_IID);
|
||||
|
||||
class nsDOMStyleSheetCollection : public nsIDOMStyleSheetCollection,
|
||||
public nsIScriptObjectOwner,
|
||||
@ -570,6 +572,7 @@ nsDocument::nsDocument()
|
||||
mNameSpaceManager = nsnull;
|
||||
mHeaderData = nsnull;
|
||||
mLineBreaker = nsnull;
|
||||
mWordBreaker = nsnull;
|
||||
|
||||
Init();/* XXX */
|
||||
}
|
||||
@ -624,6 +627,7 @@ nsDocument::~nsDocument()
|
||||
mHeaderData = nsnull;
|
||||
}
|
||||
NS_IF_RELEASE(mLineBreaker);
|
||||
NS_IF_RELEASE(mWordBreaker);
|
||||
}
|
||||
|
||||
nsresult nsDocument::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
||||
@ -851,6 +855,36 @@ NS_IMETHODIMP nsDocument::SetLineBreaker(nsILineBreaker* aLineBreaker)
|
||||
NS_IF_ADDREF(mLineBreaker);
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsDocument::GetWordBreaker(nsIWordBreaker** aResult)
|
||||
{
|
||||
if(nsnull == mWordBreaker ) {
|
||||
// no line breaker, find a default one
|
||||
nsIWordBreakerFactory *lf;
|
||||
nsresult result;
|
||||
result = nsServiceManager::GetService(kLWBrkCID,
|
||||
kIWordBreakerFactoryIID,
|
||||
(nsISupports **)&lf);
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
nsIWordBreaker *lb = nsnull ;
|
||||
nsAutoString lbarg("");
|
||||
result = lf->GetBreaker(lbarg, &lb);
|
||||
if(NS_SUCCEEDED(result)) {
|
||||
mWordBreaker = lb;
|
||||
}
|
||||
result = nsServiceManager::ReleaseService(kLWBrkCID, lf);
|
||||
}
|
||||
}
|
||||
*aResult = mWordBreaker;
|
||||
NS_IF_ADDREF(mWordBreaker);
|
||||
return NS_OK; // XXX we should do error handling here
|
||||
}
|
||||
NS_IMETHODIMP nsDocument::SetWordBreaker(nsIWordBreaker* aWordBreaker)
|
||||
{
|
||||
NS_IF_RELEASE(mWordBreaker);
|
||||
mWordBreaker = aWordBreaker;
|
||||
NS_IF_ADDREF(mWordBreaker);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDocument::GetHeaderData(nsIAtom* aHeaderField, nsString& aData) const
|
||||
|
@ -126,6 +126,8 @@ public:
|
||||
*/
|
||||
NS_IMETHOD GetLineBreaker(nsILineBreaker** aResult) ;
|
||||
NS_IMETHOD SetLineBreaker(nsILineBreaker* aLineBreaker) ;
|
||||
NS_IMETHOD GetWordBreaker(nsIWordBreaker** aResult) ;
|
||||
NS_IMETHOD SetWordBreaker(nsIWordBreaker* aWordBreaker) ;
|
||||
|
||||
/**
|
||||
* Access HTTP header data (this may also get set from other sources, like
|
||||
@ -373,6 +375,7 @@ protected:
|
||||
nsINameSpaceManager* mNameSpaceManager;
|
||||
nsDocHeaderData* mHeaderData;
|
||||
nsILineBreaker* mLineBreaker;
|
||||
nsIWordBreaker* mWordBreaker;
|
||||
};
|
||||
|
||||
#endif /* nsDocument_h___ */
|
||||
|
@ -51,6 +51,7 @@ class nsINameSpaceManager;
|
||||
class nsIDOMSelection;
|
||||
class nsIDOMDocumentFragment;
|
||||
class nsILineBreaker;
|
||||
class nsIWordBreaker;
|
||||
|
||||
// IID for the nsIDocument interface
|
||||
#define NS_IDOCUMENT_IID \
|
||||
@ -117,6 +118,8 @@ public:
|
||||
*/
|
||||
NS_IMETHOD GetLineBreaker(nsILineBreaker** aResult) = 0;
|
||||
NS_IMETHOD SetLineBreaker(nsILineBreaker* aLineBreaker) = 0;
|
||||
NS_IMETHOD GetWordBreaker(nsIWordBreaker** aResult) = 0;
|
||||
NS_IMETHOD SetWordBreaker(nsIWordBreaker* aWordBreaker) = 0;
|
||||
|
||||
/**
|
||||
* Access HTTP header data (this may also get set from other sources, like
|
||||
|
@ -97,9 +97,11 @@ static NS_DEFINE_IID(kDOMScriptObjectFactoryCID, NS_DOM_SCRIPT_OBJECT_FACTORY_CI
|
||||
|
||||
|
||||
#include "nsILineBreakerFactory.h"
|
||||
#include "nsIWordBreakerFactory.h"
|
||||
#include "nsLWBrkCIID.h"
|
||||
static NS_DEFINE_IID(kLWBrkCID, NS_LWBRK_CID);
|
||||
static NS_DEFINE_IID(kILineBreakerFactoryIID, NS_ILINEBREAKERFACTORY_IID);
|
||||
static NS_DEFINE_IID(kIWordBreakerFactoryIID, NS_IWORDBREAKERFACTORY_IID);
|
||||
|
||||
class nsDOMStyleSheetCollection : public nsIDOMStyleSheetCollection,
|
||||
public nsIScriptObjectOwner,
|
||||
@ -570,6 +572,7 @@ nsDocument::nsDocument()
|
||||
mNameSpaceManager = nsnull;
|
||||
mHeaderData = nsnull;
|
||||
mLineBreaker = nsnull;
|
||||
mWordBreaker = nsnull;
|
||||
|
||||
Init();/* XXX */
|
||||
}
|
||||
@ -624,6 +627,7 @@ nsDocument::~nsDocument()
|
||||
mHeaderData = nsnull;
|
||||
}
|
||||
NS_IF_RELEASE(mLineBreaker);
|
||||
NS_IF_RELEASE(mWordBreaker);
|
||||
}
|
||||
|
||||
nsresult nsDocument::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
||||
@ -851,6 +855,36 @@ NS_IMETHODIMP nsDocument::SetLineBreaker(nsILineBreaker* aLineBreaker)
|
||||
NS_IF_ADDREF(mLineBreaker);
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsDocument::GetWordBreaker(nsIWordBreaker** aResult)
|
||||
{
|
||||
if(nsnull == mWordBreaker ) {
|
||||
// no line breaker, find a default one
|
||||
nsIWordBreakerFactory *lf;
|
||||
nsresult result;
|
||||
result = nsServiceManager::GetService(kLWBrkCID,
|
||||
kIWordBreakerFactoryIID,
|
||||
(nsISupports **)&lf);
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
nsIWordBreaker *lb = nsnull ;
|
||||
nsAutoString lbarg("");
|
||||
result = lf->GetBreaker(lbarg, &lb);
|
||||
if(NS_SUCCEEDED(result)) {
|
||||
mWordBreaker = lb;
|
||||
}
|
||||
result = nsServiceManager::ReleaseService(kLWBrkCID, lf);
|
||||
}
|
||||
}
|
||||
*aResult = mWordBreaker;
|
||||
NS_IF_ADDREF(mWordBreaker);
|
||||
return NS_OK; // XXX we should do error handling here
|
||||
}
|
||||
NS_IMETHODIMP nsDocument::SetWordBreaker(nsIWordBreaker* aWordBreaker)
|
||||
{
|
||||
NS_IF_RELEASE(mWordBreaker);
|
||||
mWordBreaker = aWordBreaker;
|
||||
NS_IF_ADDREF(mWordBreaker);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDocument::GetHeaderData(nsIAtom* aHeaderField, nsString& aData) const
|
||||
|
@ -126,6 +126,8 @@ public:
|
||||
*/
|
||||
NS_IMETHOD GetLineBreaker(nsILineBreaker** aResult) ;
|
||||
NS_IMETHOD SetLineBreaker(nsILineBreaker* aLineBreaker) ;
|
||||
NS_IMETHOD GetWordBreaker(nsIWordBreaker** aResult) ;
|
||||
NS_IMETHOD SetWordBreaker(nsIWordBreaker* aWordBreaker) ;
|
||||
|
||||
/**
|
||||
* Access HTTP header data (this may also get set from other sources, like
|
||||
@ -373,6 +375,7 @@ protected:
|
||||
nsINameSpaceManager* mNameSpaceManager;
|
||||
nsDocHeaderData* mHeaderData;
|
||||
nsILineBreaker* mLineBreaker;
|
||||
nsIWordBreaker* mWordBreaker;
|
||||
};
|
||||
|
||||
#endif /* nsDocument_h___ */
|
||||
|
Loading…
x
Reference in New Issue
Block a user