1/*
2 * Copyright 2010, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef SET_TITLE_DIALOG_H
6#define SET_TITLE_DIALOG_H
7
8
9#include <String.h>
10#include <Window.h>
11
12
13class BButton;
14class BTextControl;
15
16
17class SetTitleDialog : public BWindow {
18public:
19			class Listener;
20
21public:
22								SetTitleDialog(const char* dialogTitle,
23									const char* label, const char* toolTip);
24	virtual						~SetTitleDialog();
25
26			void				Go(const BString& title, bool titleUserDefined,
27									Listener* listener);
28			void				Finish();
29									// window must be locked
30
31	virtual void				MessageReceived(BMessage* message);
32
33private:
34			Listener*			fListener;
35			BTextControl*		fTitleTextControl;
36			BButton*			fOKButton;
37			BButton*			fCancelButton;
38			BButton*			fDefaultButton;
39			BString				fOldTitle;
40			BString				fTitle;
41			bool				fOldTitleUserDefined;
42			bool				fTitleUserDefined;
43};
44
45
46class SetTitleDialog::Listener {
47public:
48	virtual						~Listener();
49
50	// hooks called in the dialog thread with the window locked
51	virtual	void				TitleChanged(SetTitleDialog* dialog,
52									const BString& title,
53									bool titleUserDefined) = 0;
54	virtual	void				SetTitleDialogDone(SetTitleDialog* dialog) = 0;
55};
56
57
58#endif	// SET_TITLE_DIALOG_H
59