1/*
2 * Copyright 2005-2011, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT license.
4 *
5 * Authors:
6 *		Robert Polic
7 *
8 * Copyright 1999, Be Incorporated.   All Rights Reserved.
9 * This file may be used under the terms of the Be Sample Code License.
10 */
11#ifndef ATTRIBUTE_TEXT_CONTROL_H
12#define ATTRIBUTE_TEXT_CONTROL_H
13
14#include <String.h>
15#include <TextControl.h>
16
17
18class AttributeTextControl : public BTextControl {
19public:
20								AttributeTextControl(const char* label,
21									const char* attribute);
22	virtual						~AttributeTextControl();
23
24	virtual	void				MouseDown(BPoint);
25	virtual	void				MouseMoved(BPoint, uint32, const BMessage*);
26
27			bool				HasChanged();
28			void				Revert();
29			void				Update();
30
31			const BString&		Attribute() const
32									{ return fAttribute; }
33
34private:
35			const BString&		_MakeUniformUrl(BString &url) const;
36			const BString&		_BuildMimeString(BString &mimeType,
37									const BString &url) const;
38
39			bool				_ContainsUrl() const;
40
41			BRect				_VisibleLabelBounds() const;
42			void				_HandleLabelClicked(const char*);
43
44private:
45			BString				fAttribute;
46			BString				fOriginalValue;
47};
48
49#endif // ATTRIBUTE_TEXT_CONTROL_H
50