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
18class BFile;
19class BHandler;
20class BMessenger;
21class BPositionIO;
22
23class StyledEditView : public BTextView {
24public:
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
45private:
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