зеркало из https://github.com/mozilla/pjs.git
new file for text reflow optimiziation
This commit is contained in:
Родитель
aabeccb811
Коммит
70376de659
|
@ -0,0 +1,93 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
#include "nsTextContentChangeData.h"
|
||||
|
||||
// Create a new instance of nsTextContentChangeData with a refcnt of 1
|
||||
nsresult
|
||||
NS_NewTextContentChangeData(nsTextContentChangeData** aResult)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aResult);
|
||||
nsTextContentChangeData* it = new nsTextContentChangeData();
|
||||
if (!it) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
it->mRefCnt++;
|
||||
*aResult = it;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsTextContentChangeData::nsTextContentChangeData()
|
||||
: mType(Insert),
|
||||
mOffset(0),
|
||||
mLength(0),
|
||||
mReplaceLength(0)
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
nsTextContentChangeData::~nsTextContentChangeData()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsTextContentChangeData, nsITextContentChangeData);
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextContentChangeData::GetChangeType(ChangeType* aResult)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aResult);
|
||||
*aResult = mType;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextContentChangeData::GetReplaceData(PRInt32* aOffset,
|
||||
PRInt32* aSourceLength,
|
||||
PRInt32* aReplaceLength)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aOffset);
|
||||
NS_ENSURE_ARG_POINTER(aSourceLength);
|
||||
NS_ENSURE_ARG_POINTER(aReplaceLength);
|
||||
*aOffset = mOffset;
|
||||
*aSourceLength = mLength;
|
||||
*aReplaceLength = mReplaceLength;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextContentChangeData::GetInsertData(PRInt32* aOffset,
|
||||
PRInt32* aInsertLength)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aOffset);
|
||||
NS_ENSURE_ARG_POINTER(aInsertLength);
|
||||
*aOffset = mOffset;
|
||||
*aInsertLength = mLength;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextContentChangeData::GetAppendData(PRInt32* aOffset,
|
||||
PRInt32* aAppendLength)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aOffset);
|
||||
NS_ENSURE_ARG_POINTER(aAppendLength);
|
||||
*aOffset = mOffset;
|
||||
*aAppendLength = mLength;
|
||||
return NS_OK;
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
#ifndef nsTextContentChangeData_h___
|
||||
#define nsTextContentChangeData_h___
|
||||
|
||||
#include "nsITextContent.h"
|
||||
|
||||
class nsTextContentChangeData : public nsITextContentChangeData {
|
||||
public:
|
||||
friend nsresult
|
||||
NS_NewTextContentChangeData(nsTextContentChangeData** aResult);
|
||||
|
||||
// nsISupports
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
// nsITextContentChangedData
|
||||
NS_IMETHOD GetChangeType(ChangeType* aResult);
|
||||
|
||||
NS_IMETHOD GetReplaceData(PRInt32* aOffset,
|
||||
PRInt32* aSourceLength,
|
||||
PRInt32* aReplaceLength);
|
||||
|
||||
NS_IMETHOD GetInsertData(PRInt32* aOffset,
|
||||
PRInt32* aInsertLength);
|
||||
|
||||
NS_IMETHOD GetAppendData(PRInt32* aOffset,
|
||||
PRInt32* aAppendLength);
|
||||
|
||||
void SetData(ChangeType aType, PRInt32 aOffset, PRInt32 aLength) {
|
||||
mType = aType;
|
||||
mOffset = aOffset;
|
||||
mLength = aLength;
|
||||
}
|
||||
|
||||
void SetReplaceLength(PRInt32 aReplaceLength) {
|
||||
mReplaceLength = aReplaceLength;
|
||||
}
|
||||
|
||||
protected:
|
||||
nsTextContentChangeData();
|
||||
virtual ~nsTextContentChangeData();
|
||||
|
||||
ChangeType mType;
|
||||
PRInt32 mOffset;
|
||||
PRInt32 mLength;
|
||||
PRInt32 mReplaceLength; // only used for replace type
|
||||
};
|
||||
|
||||
// Create a new instance of nsTextContentChangeData with a refcnt of 1
|
||||
extern nsresult
|
||||
NS_NewTextContentChangeData(nsTextContentChangeData** aResult);
|
||||
|
||||
#endif /* nsTextContentChangeData_h___ */
|
|
@ -0,0 +1,93 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
#include "nsTextContentChangeData.h"
|
||||
|
||||
// Create a new instance of nsTextContentChangeData with a refcnt of 1
|
||||
nsresult
|
||||
NS_NewTextContentChangeData(nsTextContentChangeData** aResult)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aResult);
|
||||
nsTextContentChangeData* it = new nsTextContentChangeData();
|
||||
if (!it) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
it->mRefCnt++;
|
||||
*aResult = it;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsTextContentChangeData::nsTextContentChangeData()
|
||||
: mType(Insert),
|
||||
mOffset(0),
|
||||
mLength(0),
|
||||
mReplaceLength(0)
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
nsTextContentChangeData::~nsTextContentChangeData()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsTextContentChangeData, nsITextContentChangeData);
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextContentChangeData::GetChangeType(ChangeType* aResult)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aResult);
|
||||
*aResult = mType;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextContentChangeData::GetReplaceData(PRInt32* aOffset,
|
||||
PRInt32* aSourceLength,
|
||||
PRInt32* aReplaceLength)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aOffset);
|
||||
NS_ENSURE_ARG_POINTER(aSourceLength);
|
||||
NS_ENSURE_ARG_POINTER(aReplaceLength);
|
||||
*aOffset = mOffset;
|
||||
*aSourceLength = mLength;
|
||||
*aReplaceLength = mReplaceLength;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextContentChangeData::GetInsertData(PRInt32* aOffset,
|
||||
PRInt32* aInsertLength)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aOffset);
|
||||
NS_ENSURE_ARG_POINTER(aInsertLength);
|
||||
*aOffset = mOffset;
|
||||
*aInsertLength = mLength;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextContentChangeData::GetAppendData(PRInt32* aOffset,
|
||||
PRInt32* aAppendLength)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aOffset);
|
||||
NS_ENSURE_ARG_POINTER(aAppendLength);
|
||||
*aOffset = mOffset;
|
||||
*aAppendLength = mLength;
|
||||
return NS_OK;
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
#ifndef nsTextContentChangeData_h___
|
||||
#define nsTextContentChangeData_h___
|
||||
|
||||
#include "nsITextContent.h"
|
||||
|
||||
class nsTextContentChangeData : public nsITextContentChangeData {
|
||||
public:
|
||||
friend nsresult
|
||||
NS_NewTextContentChangeData(nsTextContentChangeData** aResult);
|
||||
|
||||
// nsISupports
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
// nsITextContentChangedData
|
||||
NS_IMETHOD GetChangeType(ChangeType* aResult);
|
||||
|
||||
NS_IMETHOD GetReplaceData(PRInt32* aOffset,
|
||||
PRInt32* aSourceLength,
|
||||
PRInt32* aReplaceLength);
|
||||
|
||||
NS_IMETHOD GetInsertData(PRInt32* aOffset,
|
||||
PRInt32* aInsertLength);
|
||||
|
||||
NS_IMETHOD GetAppendData(PRInt32* aOffset,
|
||||
PRInt32* aAppendLength);
|
||||
|
||||
void SetData(ChangeType aType, PRInt32 aOffset, PRInt32 aLength) {
|
||||
mType = aType;
|
||||
mOffset = aOffset;
|
||||
mLength = aLength;
|
||||
}
|
||||
|
||||
void SetReplaceLength(PRInt32 aReplaceLength) {
|
||||
mReplaceLength = aReplaceLength;
|
||||
}
|
||||
|
||||
protected:
|
||||
nsTextContentChangeData();
|
||||
virtual ~nsTextContentChangeData();
|
||||
|
||||
ChangeType mType;
|
||||
PRInt32 mOffset;
|
||||
PRInt32 mLength;
|
||||
PRInt32 mReplaceLength; // only used for replace type
|
||||
};
|
||||
|
||||
// Create a new instance of nsTextContentChangeData with a refcnt of 1
|
||||
extern nsresult
|
||||
NS_NewTextContentChangeData(nsTextContentChangeData** aResult);
|
||||
|
||||
#endif /* nsTextContentChangeData_h___ */
|
Загрузка…
Ссылка в новой задаче