xref: /haiku/src/apps/debugger/user_interface/gui/utility_windows/VariableEditWindow.h (revision 68ea01249e1e2088933cb12f9c28d4e5c5d1c9ef)
1 /*
2  * Copyright 2015, Rene Gollent, rene@gollent.com.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef VARIABLE_EDIT_WINDOW_H
6 #define VARIABLE_EDIT_WINDOW_H
7 
8 
9 #include <Window.h>
10 
11 #include "TableCellValueEditor.h"
12 
13 
14 class BButton;
15 class Value;
16 class ValueNode;
17 
18 
19 class VariableEditWindow : public BWindow,
20 	private TableCellValueEditor::Listener {
21 public:
22 								VariableEditWindow(Value* initialValue,
23 									ValueNode* node,
24 									TableCellValueEditor* editor,
25 									BHandler* target);
26 
27 								~VariableEditWindow();
28 
29 	static	VariableEditWindow* Create(Value* initialValue,
30 									ValueNode* node,
31 									TableCellValueEditor* editor,
32 									BHandler* closeTarget);
33 									// throws
34 
35 
36 	virtual	void				MessageReceived(BMessage* message);
37 
38 	virtual	void				Show();
39 	virtual	bool				QuitRequested();
40 
41 	// TableCellValueEditor::Listener
42 	virtual	void				TableCellEditBeginning();
43 	virtual	void				TableCellEditCancelled();
44 	virtual	void				TableCellEditEnded(Value* newValue);
45 
46 private:
47 			void	 			_Init();
48 
49 private:
50 			BButton*			fCancelButton;
51 			BButton*			fSaveButton;
52 			BHandler*			fTarget;
53 			ValueNode*			fNode;
54 			Value*				fInitialValue;
55 			Value*				fNewValue;
56 			TableCellValueEditor* fEditor;
57 };
58 
59 #endif // VARIABLE_EDIT_WINDOW_H
60