1/* 2 * Copyright 2001-2020 Haiku Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Frans van Nispen (xlr8@tref.nl) 7 */ 8 9//! The BTextView derivative owned by an instance of BTextControl. 10 11#ifndef _TEXT_CONTROLI_H 12#define _TEXT_CONTROLI_H 13 14 15#include <TextView.h> 16 17 18class BTextControl; 19 20namespace BPrivate { 21 22class _BTextInput_ : public BTextView { 23public: 24 _BTextInput_(BRect frame, BRect textRect, 25 uint32 resizeMask, 26 uint32 flags = B_WILL_DRAW | B_PULSE_NEEDED); 27 _BTextInput_(BMessage *data); 28virtual ~_BTextInput_(); 29 30static BArchivable* Instantiate(BMessage *data); 31virtual status_t Archive(BMessage *data, bool deep = true) const; 32 33virtual void MouseDown(BPoint where); 34virtual void FrameResized(float width, float height); 35virtual void KeyDown(const char *bytes, int32 numBytes); 36virtual void MakeFocus(bool focusState = true); 37 38virtual BSize MinSize(); 39 40 void SetInitialText(); 41 42virtual void Paste(BClipboard *clipboard); 43 44protected: 45 46virtual void InsertText(const char *inText, int32 inLength, 47 int32 inOffset, const text_run_array *inRuns); 48virtual void DeleteText(int32 fromOffset, int32 toOffset); 49 50private: 51 52 BTextControl *TextControl(); 53 54 char *fPreviousText; 55 bool fInMouseDown; 56}; 57 58} // namespace BPrivate 59 60using namespace BPrivate; 61 62 63#endif // _TEXT_CONTROLI_H 64 65