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