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
17class BFile;
18class BHandler;
19class BMessenger;
20class BPositionIO;
21
22
23class 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