/* * Copyright 2015, Rene Gollent, rene@gollent.com. * Distributed under the terms of the MIT License. */ #ifndef VARIABLE_EDIT_WINDOW_H #define VARIABLE_EDIT_WINDOW_H #include #include "TableCellValueEditor.h" class BButton; class Value; class ValueNode; class VariableEditWindow : public BWindow, private TableCellValueEditor::Listener { public: VariableEditWindow(Value* initialValue, ValueNode* node, TableCellValueEditor* editor, BHandler* target); ~VariableEditWindow(); static VariableEditWindow* Create(Value* initialValue, ValueNode* node, TableCellValueEditor* editor, BHandler* closeTarget); // throws virtual void MessageReceived(BMessage* message); virtual void Show(); virtual bool QuitRequested(); // TableCellValueEditor::Listener virtual void TableCellEditBeginning(); virtual void TableCellEditCancelled(); virtual void TableCellEditEnded(Value* newValue); private: void _Init(); private: BButton* fCancelButton; BButton* fSaveButton; BHandler* fTarget; ValueNode* fNode; Value* fInitialValue; Value* fNewValue; TableCellValueEditor* fEditor; }; #endif // VARIABLE_EDIT_WINDOW_H