1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
- /* 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 nsWebBrowserFindImpl_h__
- #define nsWebBrowserFindImpl_h__
- #include "nsIWebBrowserFind.h"
- #include "nsCOMPtr.h"
- #include "nsWeakReference.h"
- #include "nsIFind.h"
- #include "nsString.h"
- #define NS_WEB_BROWSER_FIND_CONTRACTID "@mozilla.org/embedcomp/find;1"
- #define NS_WEB_BROWSER_FIND_CID \
- {0x57cf9383, 0x3405, 0x11d5, {0xbe, 0x5b, 0xaa, 0x20, 0xfa, 0x2c, 0xf3, 0x7c}}
- class nsISelection;
- class nsIDOMWindow;
- class nsIDocShell;
- //*****************************************************************************
- // class nsWebBrowserFind
- //*****************************************************************************
- class nsWebBrowserFind
- : public nsIWebBrowserFind
- , public nsIWebBrowserFindInFrames
- {
- public:
- nsWebBrowserFind();
- // nsISupports
- NS_DECL_ISUPPORTS
- // nsIWebBrowserFind
- NS_DECL_NSIWEBBROWSERFIND
- // nsIWebBrowserFindInFrames
- NS_DECL_NSIWEBBROWSERFINDINFRAMES
- protected:
- virtual ~nsWebBrowserFind();
- bool CanFindNext() { return mSearchString.Length() != 0; }
- nsresult SearchInFrame(nsPIDOMWindowOuter* aWindow, bool aWrapping,
- bool* aDidFind);
- nsresult OnStartSearchFrame(nsPIDOMWindowOuter* aWindow);
- nsresult OnEndSearchFrame(nsPIDOMWindowOuter* aWindow);
- already_AddRefed<nsISelection> GetFrameSelection(nsPIDOMWindowOuter* aWindow);
- nsresult ClearFrameSelection(nsPIDOMWindowOuter* aWindow);
- nsresult OnFind(nsPIDOMWindowOuter* aFoundWindow);
- void SetSelectionAndScroll(nsPIDOMWindowOuter* aWindow, nsIDOMRange* aRange);
- nsresult GetRootNode(nsIDOMDocument* aDomDoc, nsIDOMNode** aNode);
- nsresult GetSearchLimits(nsIDOMRange* aRange,
- nsIDOMRange* aStartPt, nsIDOMRange* aEndPt,
- nsIDOMDocument* aDoc, nsISelection* aSel,
- bool aWrap);
- nsresult SetRangeAroundDocument(nsIDOMRange* aSearchRange,
- nsIDOMRange* aStartPoint,
- nsIDOMRange* aEndPoint,
- nsIDOMDocument* aDoc);
- protected:
- nsString mSearchString;
- bool mFindBackwards;
- bool mWrapFind;
- bool mEntireWord;
- bool mMatchCase;
- bool mSearchSubFrames;
- bool mSearchParentFrames;
- // These are all weak because who knows if windows can go away during our
- // lifetime.
- nsWeakPtr mCurrentSearchFrame;
- nsWeakPtr mRootSearchFrame;
- nsWeakPtr mLastFocusedWindow;
- };
- #endif
|