Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* This Source Code Form is subject to the terms of the Mozilla Public
3 : * License, v. 2.0. If a copy of the MPL was not distributed with this
4 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 :
6 : #ifndef nsITextControlFrame_h___
7 : #define nsITextControlFrame_h___
8 :
9 : #include "nsIFormControlFrame.h"
10 :
11 : class nsISelectionController;
12 : class nsFrameSelection;
13 :
14 : namespace mozilla {
15 : class TextEditor;
16 : } // namespace mozilla
17 :
18 4 : class nsITextControlFrame : public nsIFormControlFrame
19 : {
20 : public:
21 : NS_DECL_QUERYFRAME_TARGET(nsITextControlFrame)
22 :
23 : enum SelectionDirection {
24 : eNone,
25 : eForward,
26 : eBackward
27 : };
28 :
29 : NS_IMETHOD_(already_AddRefed<mozilla::TextEditor>) GetTextEditor() = 0;
30 :
31 : NS_IMETHOD SetSelectionRange(uint32_t aSelectionStart,
32 : uint32_t aSelectionEnd,
33 : SelectionDirection aDirection = eNone) = 0;
34 :
35 : NS_IMETHOD GetOwnedSelectionController(nsISelectionController** aSelCon) = 0;
36 : virtual nsFrameSelection* GetOwnedFrameSelection() = 0;
37 :
38 : /**
39 : * Ensure editor is initialized with the proper flags and the default value.
40 : * @throws NS_ERROR_NOT_INITIALIZED if mEditor has not been created
41 : * @throws various and sundry other things
42 : */
43 : virtual nsresult EnsureEditorInitialized() = 0;
44 :
45 : virtual nsresult ScrollSelectionIntoView() = 0;
46 : };
47 :
48 : #endif
|