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