xref: /haiku/src/apps/mail/AddressTextControl.h (revision 4182c53bc4cf0e2e8e801c14f8da5cddf534a376)
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