1*b4d21c83SStephan Aßmus /* 2*b4d21c83SStephan Aßmus * Copyright 2006 Haiku, Inc. All Rights Reserved. 3*b4d21c83SStephan Aßmus * Distributed under the terms of the MIT License. 4*b4d21c83SStephan Aßmus * 5*b4d21c83SStephan Aßmus * Authors: 6*b4d21c83SStephan Aßmus * Stephan Aßmus <superstippi@gmx.de> 7*b4d21c83SStephan Aßmus */ 8*b4d21c83SStephan Aßmus 9*b4d21c83SStephan Aßmus #ifndef INPUT_TEXT_VIEW_H 10*b4d21c83SStephan Aßmus #define INPUT_TEXT_VIEW_H 11*b4d21c83SStephan Aßmus 12*b4d21c83SStephan Aßmus #include <Invoker.h> 13*b4d21c83SStephan Aßmus #include <TextView.h> 14*b4d21c83SStephan Aßmus 15*b4d21c83SStephan Aßmus class InputTextView : public BTextView, 16*b4d21c83SStephan Aßmus public BInvoker { 17*b4d21c83SStephan Aßmus public: 18*b4d21c83SStephan Aßmus InputTextView(BRect frame, 19*b4d21c83SStephan Aßmus const char* name, 20*b4d21c83SStephan Aßmus BRect textRect, 21*b4d21c83SStephan Aßmus uint32 resizingMode, 22*b4d21c83SStephan Aßmus uint32 flags); 23*b4d21c83SStephan Aßmus virtual ~InputTextView(); 24*b4d21c83SStephan Aßmus 25*b4d21c83SStephan Aßmus // BTextView interface 26*b4d21c83SStephan Aßmus virtual void MouseDown(BPoint where); 27*b4d21c83SStephan Aßmus virtual void MouseUp(BPoint where); 28*b4d21c83SStephan Aßmus 29*b4d21c83SStephan Aßmus virtual void KeyDown(const char* bytes, int32 numBytes); 30*b4d21c83SStephan Aßmus virtual void MakeFocus(bool focus); 31*b4d21c83SStephan Aßmus 32*b4d21c83SStephan Aßmus // BInvoker interface 33*b4d21c83SStephan Aßmus virtual status_t Invoke(BMessage* message = NULL); 34*b4d21c83SStephan Aßmus 35*b4d21c83SStephan Aßmus // InputTextView 36*b4d21c83SStephan Aßmus virtual void RevertChanges() = 0; 37*b4d21c83SStephan Aßmus virtual void ApplyChanges() = 0; 38*b4d21c83SStephan Aßmus 39*b4d21c83SStephan Aßmus protected: 40*b4d21c83SStephan Aßmus // BTextView 41*b4d21c83SStephan Aßmus virtual void Select(int32 start, int32 finish); 42*b4d21c83SStephan Aßmus 43*b4d21c83SStephan Aßmus virtual void InsertText(const char* inText, 44*b4d21c83SStephan Aßmus int32 inLength, 45*b4d21c83SStephan Aßmus int32 inOffset, 46*b4d21c83SStephan Aßmus const text_run_array* inRuns); 47*b4d21c83SStephan Aßmus virtual void DeleteText(int32 fromOffset, 48*b4d21c83SStephan Aßmus int32 toOffset); 49*b4d21c83SStephan Aßmus 50*b4d21c83SStephan Aßmus void _CheckTextRect(); 51*b4d21c83SStephan Aßmus 52*b4d21c83SStephan Aßmus bool fWasFocus; 53*b4d21c83SStephan Aßmus }; 54*b4d21c83SStephan Aßmus 55*b4d21c83SStephan Aßmus #endif // INPUT_TEXT_VIEW_H 56*b4d21c83SStephan Aßmus 57*b4d21c83SStephan Aßmus 58