xref: /haiku/src/apps/deskcalc/InputTextView.h (revision b4d21c8325e187a3e0019470c431213addc74500)
1*b4d21c83SStephan Aßmus /*
2*b4d21c83SStephan Aßmus  * Copyright 2006 Haiku, Inc. All Rights Reserved.
3*b4d21c83SStephan Aßmus  * Distributed under the terms of the MIT License.
4*b4d21c83SStephan Aßmus  *
5*b4d21c83SStephan Aßmus  * Authors:
6*b4d21c83SStephan Aßmus  *		Stephan Aßmus <superstippi@gmx.de>
7*b4d21c83SStephan Aßmus  */
8*b4d21c83SStephan Aßmus 
9*b4d21c83SStephan Aßmus #ifndef INPUT_TEXT_VIEW_H
10*b4d21c83SStephan Aßmus #define INPUT_TEXT_VIEW_H
11*b4d21c83SStephan Aßmus 
12*b4d21c83SStephan Aßmus #include <Invoker.h>
13*b4d21c83SStephan Aßmus #include <TextView.h>
14*b4d21c83SStephan Aßmus 
15*b4d21c83SStephan Aßmus class InputTextView : public BTextView,
16*b4d21c83SStephan Aßmus 					  public BInvoker {
17*b4d21c83SStephan Aßmus  public:
18*b4d21c83SStephan Aßmus 								InputTextView(BRect frame,
19*b4d21c83SStephan Aßmus 											  const char* name,
20*b4d21c83SStephan Aßmus 											  BRect textRect,
21*b4d21c83SStephan Aßmus 											  uint32 resizingMode,
22*b4d21c83SStephan Aßmus 											  uint32 flags);
23*b4d21c83SStephan Aßmus 	virtual						~InputTextView();
24*b4d21c83SStephan Aßmus 
25*b4d21c83SStephan Aßmus 	// BTextView interface
26*b4d21c83SStephan Aßmus 	virtual	void				MouseDown(BPoint where);
27*b4d21c83SStephan Aßmus 	virtual	void				MouseUp(BPoint where);
28*b4d21c83SStephan Aßmus 
29*b4d21c83SStephan Aßmus 	virtual	void				KeyDown(const char* bytes, int32 numBytes);
30*b4d21c83SStephan Aßmus 	virtual	void				MakeFocus(bool focus);
31*b4d21c83SStephan Aßmus 
32*b4d21c83SStephan Aßmus 	// BInvoker interface
33*b4d21c83SStephan Aßmus 	virtual	status_t			Invoke(BMessage* message = NULL);
34*b4d21c83SStephan Aßmus 
35*b4d21c83SStephan Aßmus 	// InputTextView
36*b4d21c83SStephan Aßmus 	virtual	void				RevertChanges() = 0;
37*b4d21c83SStephan Aßmus 	virtual	void				ApplyChanges() = 0;
38*b4d21c83SStephan Aßmus 
39*b4d21c83SStephan Aßmus protected:
40*b4d21c83SStephan Aßmus 								// BTextView
41*b4d21c83SStephan Aßmus 	virtual	void				Select(int32 start, int32 finish);
42*b4d21c83SStephan Aßmus 
43*b4d21c83SStephan Aßmus 	virtual	void				InsertText(const char* inText,
44*b4d21c83SStephan Aßmus 										   int32 inLength,
45*b4d21c83SStephan Aßmus 										   int32 inOffset,
46*b4d21c83SStephan Aßmus 										   const text_run_array* inRuns);
47*b4d21c83SStephan Aßmus 	virtual	void				DeleteText(int32 fromOffset,
48*b4d21c83SStephan Aßmus 										   int32 toOffset);
49*b4d21c83SStephan Aßmus 
50*b4d21c83SStephan Aßmus 			void				_CheckTextRect();
51*b4d21c83SStephan Aßmus 
52*b4d21c83SStephan Aßmus 			bool				fWasFocus;
53*b4d21c83SStephan Aßmus };
54*b4d21c83SStephan Aßmus 
55*b4d21c83SStephan Aßmus #endif // INPUT_TEXT_VIEW_H
56*b4d21c83SStephan Aßmus 
57*b4d21c83SStephan Aßmus 
58