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