gecko-dev/toolkit/components/find/nsFind.h
Masayuki Nakano f8844f0d9b Bug 181137 - part 7: Get rid of nsIContentIterator interface r=smaug
Now, nobody requires nsIContentIterator interface.  So, we can get rid of it.

Unfortunately, there is no macro to keep the inherited class,
ContentSubtreeIterator, in the cycle collection to make it keep managing
ContentSubtreeIterator::mRange without nsISupports interface.  Therefore, this
patch moves it into ContentIteratorBase temporarily.  Anyway, the following
patch makes those classes not refcountable.  At that time, this issue will be
fixed.

Differential Revision: https://phabricator.services.mozilla.com/D15927

--HG--
extra : moz-landing-system : lando
2019-01-11 01:51:42 +00:00

60 lines
1.6 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 nsFind_h__
#define nsFind_h__
#include "nsIFind.h"
#include "nsCOMPtr.h"
#include "nsCycleCollectionParticipant.h"
#include "nsINode.h"
#include "mozilla/intl/WordBreaker.h"
class nsIContent;
class nsRange;
#define NS_FIND_CONTRACTID "@mozilla.org/embedcomp/rangefind;1"
#define NS_FIND_CID \
{ \
0x471f4944, 0x1dd2, 0x11b2, { \
0x87, 0xac, 0x90, 0xbe, 0x0a, 0x51, 0xd6, 0x09 \
} \
}
class nsFindContentIterator;
class nsFind : public nsIFind {
public:
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_NSIFIND
NS_DECL_CYCLE_COLLECTION_CLASS(nsFind)
nsFind();
protected:
virtual ~nsFind();
// Parameters set from the interface:
bool mFindBackward;
bool mCaseSensitive;
// Use "find entire words" mode by setting to a word breaker or null, to
// disable "entire words" mode.
RefPtr<mozilla::intl::WordBreaker> mWordBreaker;
struct State;
class StateRestorer;
// Get the first character from the next node (last if mFindBackward).
//
// This will mutate the state, but then restore it afterwards.
char16_t PeekNextChar(State&) const;
};
#endif // nsFind_h__