xref: /haiku/src/apps/stylededit/StyledEditView.h (revision 822e8462075a234cd2bd4fc82d353a584346692d)
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 class BFile;
18 class BHandler;
19 class BMessenger;
20 class BPositionIO;
21 
22 
23 class StyledEditView : public BTextView {
24 	public:
25 						StyledEditView(BRect viewframe, BRect textframe,
26 							BHandler* handler);
27 		virtual			~StyledEditView();
28 
29 		virtual void	Select(int32 start, int32 finish);
30 		virtual void	DeleteText(int32 start, int32 finish);
31 		virtual void	FrameResized(float width, float height);
32 		virtual void	InsertText(const char* text, int32 length, int32 offset,
33 							const text_run_array* runs = NULL);
34 
35 		void		Reset();
36 		void		SetSuppressChanges(bool suppressChanges);
37 		status_t	GetStyledText(BPositionIO* stream,
38 							const char* forceEncoding = NULL);
39 		status_t	WriteStyledEditFile(BFile* file);
40 
41 		void 		SetEncoding(uint32 encoding);
42 		uint32 		GetEncoding() const;
43 
44 	private:
45 		void		_UpdateStatus();
46 
47 		BMessenger 	*fMessenger;
48 		bool		fSuppressChanges;
49 		BString		fEncoding;
50 };
51 
52 #endif	// STYLED_EDIT_VIEW_H
53 
54