1/*
2 * Copyright 2015, Rene Gollent, rene@gollent.com.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef SIGNAL_DISPOSITION_EDIT_WINDOW_H
6#define SIGNAL_DISPOSITION_EDIT_WINDOW_H
7
8
9#include <Window.h>
10
11#include "Team.h"
12
13#include "types/Types.h"
14
15
16class BButton;
17class BMenu;
18class BMenuField;
19class Team;
20class UserInterfaceListener;
21
22
23class SignalDispositionEditWindow : public BWindow {
24public:
25								SignalDispositionEditWindow(
26									::Team* team,
27									int32 signal,
28									UserInterfaceListener* listener,
29									BHandler* target);
30
31								~SignalDispositionEditWindow();
32
33	static	SignalDispositionEditWindow* Create(::Team* team,
34									int32 signal,
35									UserInterfaceListener* listener,
36									BHandler* target);
37									// throws
38
39	virtual	void				MessageReceived(BMessage* message);
40
41	virtual	void				Show();
42
43private:
44			void	 			_Init();
45			BMenu*				_BuildSignalSelectionMenu();
46			void				_UpdateState();
47
48private:
49			::Team*				fTeam;
50			UserInterfaceListener* fListener;
51			bool				fEditMode;
52			int32				fCurrentSignal;
53			int32				fCurrentDisposition;
54			BButton*			fSaveButton;
55			BButton*			fCancelButton;
56			BMenuField*			fSignalSelectionField;
57			BMenuField*			fDispositionSelectionField;
58			BHandler*			fTarget;
59};
60
61
62#endif // SIGNAL_DISPOSITION_EDIT_WINDOW
63