xref: /haiku/src/apps/stylededit/StyledEditView.h (revision e62d9cf8c568e4fd2c80e163cbdae5a4376e898f)
1 /*
2  * Copyright 2002-2007, Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Mattias Sundblad
7  *		Andrew Bachmann
8  *		Axel Dörfler, axeld@pinc-software.de
9  */
10 #ifndef STYLED_EDIT_VIEW_H
11 #define STYLED_EDIT_VIEW_H
12 
13 
14 #include <String.h>
15 #include <TextView.h>
16 
17 
18 class BFile;
19 class BHandler;
20 class BMessenger;
21 class BPositionIO;
22 
23 class StyledEditView : public BTextView {
24 public:
25 						StyledEditView(BRect viewframe, BRect textframe,
26 							BHandler* handler);
27 	virtual				~StyledEditView();
28 
29 	virtual	void		FrameResized(float width, float height);
30 	virtual	void		DeleteText(int32 start, int32 finish);
31 	virtual	void		InsertText(const char* text, int32 length,
32 							int32 offset,
33 							const text_run_array* runs = NULL);
34 	virtual	void		Select(int32 start, int32 finish);
35 
36 			void		Reset();
37 			void		SetSuppressChanges(bool suppressChanges);
38 			status_t	GetStyledText(BPositionIO* stream,
39 							const char* forceEncoding = NULL);
40 			status_t	WriteStyledEditFile(BFile* file);
41 
42 			void 		SetEncoding(uint32 encoding);
43 			uint32		GetEncoding() const;
44 
45 private:
46 			void		_UpdateStatus();
47 
48 			BMessenger*	fMessenger;
49 			bool		fSuppressChanges;
50 			BString		fEncoding;
51 			rgb_color	fInitialColor;
52 };
53 
54 
55 #endif	// STYLED_EDIT_VIEW_H
56