diff -r 000000000000 -r 6474c204b198 toolkit/components/autocomplete/nsAutoCompleteSimpleResult.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolkit/components/autocomplete/nsAutoCompleteSimpleResult.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,55 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef __nsAutoCompleteSimpleResult__ +#define __nsAutoCompleteSimpleResult__ + +#include "nsIAutoCompleteResult.h" +#include "nsIAutoCompleteSimpleResult.h" + +#include "nsString.h" +#include "nsCOMPtr.h" +#include "nsTArray.h" +#include "mozilla/Attributes.h" + +class nsAutoCompleteSimpleResult MOZ_FINAL : public nsIAutoCompleteSimpleResult +{ +public: + nsAutoCompleteSimpleResult(); + inline void CheckInvariants() { + NS_ASSERTION(mValues.Length() == mComments.Length(), "Arrays out of sync"); + NS_ASSERTION(mValues.Length() == mImages.Length(), "Arrays out of sync"); + NS_ASSERTION(mValues.Length() == mStyles.Length(), "Arrays out of sync"); + NS_ASSERTION(mValues.Length() == mFinalCompleteValues.Length(), "Arrays out of sync"); + } + + NS_DECL_ISUPPORTS + NS_DECL_NSIAUTOCOMPLETERESULT + NS_DECL_NSIAUTOCOMPLETESIMPLERESULT + +private: + ~nsAutoCompleteSimpleResult() {} + +protected: + + // What we really want is an array of structs with value/comment/image/style contents. + // But then we'd either have to use COM or manage object lifetimes ourselves. + // Having four arrays of string simplifies this, but is stupid. + nsTArray mValues; + nsTArray mComments; + nsTArray mImages; + nsTArray mStyles; + nsTArray mFinalCompleteValues; + + nsString mSearchString; + nsString mErrorDescription; + int32_t mDefaultIndex; + uint32_t mSearchResult; + + bool mTypeAheadResult; + + nsCOMPtr mListener; +}; + +#endif // __nsAutoCompleteSimpleResult__