1/*
2 * Copyright 2001-2020 Haiku Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Frans van Nispen (xlr8@tref.nl)
7 */
8
9//! The BTextView derivative owned by an instance of BTextControl.
10
11#ifndef	_TEXT_CONTROLI_H
12#define	_TEXT_CONTROLI_H
13
14
15#include <TextView.h>
16
17
18class BTextControl;
19
20namespace BPrivate {
21
22class _BTextInput_ : public BTextView {
23public:
24						_BTextInput_(BRect frame, BRect textRect,
25							uint32 resizeMask,
26							uint32 flags = B_WILL_DRAW | B_PULSE_NEEDED);
27						_BTextInput_(BMessage *data);
28virtual					~_BTextInput_();
29
30static	BArchivable*	Instantiate(BMessage *data);
31virtual	status_t		Archive(BMessage *data, bool deep = true) const;
32
33virtual	void			MouseDown(BPoint where);
34virtual	void			FrameResized(float width, float height);
35virtual	void			KeyDown(const char *bytes, int32 numBytes);
36virtual	void			MakeFocus(bool focusState = true);
37
38virtual	BSize			MinSize();
39
40		void			SetInitialText();
41
42virtual	void			Paste(BClipboard *clipboard);
43
44protected:
45
46virtual	void			InsertText(const char *inText, int32 inLength,
47								   int32 inOffset, const text_run_array *inRuns);
48virtual	void			DeleteText(int32 fromOffset, int32 toOffset);
49
50private:
51
52		BTextControl	*TextControl();
53
54		char			*fPreviousText;
55		bool			fInMouseDown;
56};
57
58}	// namespace BPrivate
59
60using namespace BPrivate;
61
62
63#endif	// _TEXT_CONTROLI_H
64
65