diff --git a/mozilla/content/base/src/nsTextContentChangeData.cpp b/mozilla/content/base/src/nsTextContentChangeData.cpp new file mode 100644 index 00000000000..acb2c14984e --- /dev/null +++ b/mozilla/content/base/src/nsTextContentChangeData.cpp @@ -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; +} diff --git a/mozilla/content/base/src/nsTextContentChangeData.h b/mozilla/content/base/src/nsTextContentChangeData.h new file mode 100644 index 00000000000..f94c6aa44f6 --- /dev/null +++ b/mozilla/content/base/src/nsTextContentChangeData.h @@ -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___ */ diff --git a/mozilla/layout/base/src/nsTextContentChangeData.cpp b/mozilla/layout/base/src/nsTextContentChangeData.cpp new file mode 100644 index 00000000000..acb2c14984e --- /dev/null +++ b/mozilla/layout/base/src/nsTextContentChangeData.cpp @@ -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; +} diff --git a/mozilla/layout/base/src/nsTextContentChangeData.h b/mozilla/layout/base/src/nsTextContentChangeData.h new file mode 100644 index 00000000000..f94c6aa44f6 --- /dev/null +++ b/mozilla/layout/base/src/nsTextContentChangeData.h @@ -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___ */