new file for text reflow optimiziation

git-svn-id: svn://10.0.0.236/trunk@51392 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
kipp%netscape.com
1999-10-21 20:40:25 +00:00
parent 90299835ef
commit 6ef7b73278
4 changed files with 324 additions and 0 deletions

View File

@@ -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;
}