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