xref: /haiku/src/kits/interface/TextInput.h (revision 2b76973fa2401f7a5edf68e6470f3d3210cbcff3)
1 /*
2  * Copyright 2001-2008, 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 #include <TextView.h>
15 
16 
17 class BTextControl;
18 
19 namespace BPrivate {
20 
21 class _BTextInput_ : public BTextView {
22 public:
23 						_BTextInput_(BRect frame, BRect textRect,
24 							uint32 resizeMask,
25 							uint32 flags = B_WILL_DRAW | B_PULSE_NEEDED);
26 						_BTextInput_(BMessage *data);
27 virtual					~_BTextInput_();
28 
29 static	BArchivable*	Instantiate(BMessage *data);
30 virtual	status_t		Archive(BMessage *data, bool deep = true) const;
31 
32 virtual	void			MouseDown(BPoint where);
33 virtual	void			FrameResized(float width, float height);
34 virtual	void			KeyDown(const char *bytes, int32 numBytes);
35 virtual	void			MakeFocus(bool focusState = true);
36 
37 virtual	BSize			MinSize();
38 
39 		void			AlignTextRect();
40 		void			SetInitialText();
41 
42 virtual	void			Paste(BClipboard *clipboard);
43 
44 protected:
45 
46 virtual	void			InsertText(const char *inText, int32 inLength,
47 								   int32 inOffset, const text_run_array *inRuns);
48 virtual	void			DeleteText(int32 fromOffset, int32 toOffset);
49 
50 private:
51 
52 		BTextControl	*TextControl();
53 
54 		char			*fPreviousText;
55 		bool			fBool;
56 };
57 
58 }	// namespace BPrivate
59 
60 using namespace BPrivate;
61 
62 
63 #endif	// _TEXT_CONTROLI_H
64 
65