/* Copyright 2010 Grégory Soutadé This file is part of KissCount. KissCount is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. KissCount is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with KissCount. If not, see . */ #include "wxGridCellFormulaEditor.h" wxGridCellFormulaEditor::wxGridCellFormulaEditor(const wxString& formula) : _formula(formula) {} void wxGridCellFormulaEditor::BeginEdit (int row, int col, wxGrid *grid) { static bool inModification = false; Operation op; if (inModification) return ; inModification = true; op = ((GridAccount*) grid)->_displayedOperations[row]; if (op.formula.Length()) { grid->SetCellValue(row, col, op.formula); _formula = op.formula; } wxGridCellTextEditor::BeginEdit(row, col, grid); inModification = false; } bool wxGridCellFormulaEditor::EndEdit (int row, int col, wxGrid *grid/*, const wxString &oldval, wxString *newval*/) { wxString res = GetValue(); Operation op; bool ret; res = res.Trim(); if (res.StartsWith(wxT("="))) _formula = res; else _formula = wxT(""); ret = wxGridCellTextEditor::EndEdit(row, col, grid); if (_formula.Length()) grid->SetCellValue(row, col, wxT("0")); return ret; } wxString wxGridCellFormulaEditor::GetFormula() { return _formula; }