1*df946869SAxel Dörfler /* 2*df946869SAxel Dörfler * Copyright 2015, Axel Dörfler, axeld@pinc-software.de. 3*df946869SAxel Dörfler * Distributed under the terms of the MIT License. 4*df946869SAxel Dörfler */ 5*df946869SAxel Dörfler #ifndef ADDRESS_TEXT_CONTROL_H 6*df946869SAxel Dörfler #define ADDRESS_TEXT_CONTROL_H 7*df946869SAxel Dörfler 8*df946869SAxel Dörfler 9*df946869SAxel Dörfler #include <Control.h> 10*df946869SAxel Dörfler 11*df946869SAxel Dörfler 12*df946869SAxel Dörfler class BButton; 13*df946869SAxel Dörfler class BPopUpMenu; 14*df946869SAxel Dörfler class BTextView; 15*df946869SAxel Dörfler 16*df946869SAxel Dörfler 17*df946869SAxel Dörfler class AddressTextControl : public BControl { 18*df946869SAxel Dörfler public: 19*df946869SAxel Dörfler AddressTextControl(const char* name, 20*df946869SAxel Dörfler BMessage* message); 21*df946869SAxel Dörfler virtual ~AddressTextControl(); 22*df946869SAxel Dörfler 23*df946869SAxel Dörfler virtual void AttachedToWindow(); 24*df946869SAxel Dörfler virtual void WindowActivated(bool active); 25*df946869SAxel Dörfler virtual void Draw(BRect updateRect); 26*df946869SAxel Dörfler virtual void MakeFocus(bool focus = true); 27*df946869SAxel Dörfler virtual void SetEnabled(bool enabled); 28*df946869SAxel Dörfler virtual void MessageReceived(BMessage* message); 29*df946869SAxel Dörfler 30*df946869SAxel Dörfler const BMessage* ModificationMessage() const; 31*df946869SAxel Dörfler void SetModificationMessage(BMessage* message); 32*df946869SAxel Dörfler 33*df946869SAxel Dörfler bool IsEditable() const; 34*df946869SAxel Dörfler void SetEditable(bool editable); 35*df946869SAxel Dörfler 36*df946869SAxel Dörfler void SetText(const char* text); 37*df946869SAxel Dörfler const char* Text() const; 38*df946869SAxel Dörfler int32 TextLength() const; 39*df946869SAxel Dörfler void GetSelection(int32* start, int32* end) const; 40*df946869SAxel Dörfler void Select(int32 start, int32 end); 41*df946869SAxel Dörfler void SelectAll(); 42*df946869SAxel Dörfler 43*df946869SAxel Dörfler bool HasFocus(); 44*df946869SAxel Dörfler 45*df946869SAxel Dörfler private: 46*df946869SAxel Dörfler void _AddAddress(const char* text); 47*df946869SAxel Dörfler void _UpdateTextViewColors(bool enabled); 48*df946869SAxel Dörfler 49*df946869SAxel Dörfler private: 50*df946869SAxel Dörfler class TextView; 51*df946869SAxel Dörfler class PopUpButton; 52*df946869SAxel Dörfler 53*df946869SAxel Dörfler TextView* fTextView; 54*df946869SAxel Dörfler PopUpButton* fPopUpButton; 55*df946869SAxel Dörfler BPopUpMenu* fRefDropMenu; 56*df946869SAxel Dörfler bool fWindowActive; 57*df946869SAxel Dörfler bool fEditable; 58*df946869SAxel Dörfler }; 59*df946869SAxel Dörfler 60*df946869SAxel Dörfler 61*df946869SAxel Dörfler #endif // ADDRESS_TEXT_CONTROL_H 62*df946869SAxel Dörfler 63