/* 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 . */ #ifndef GRIDACCOUNT_H #define GRIDACCOUNT_H #include #include #include #include #include #include #include #include "wxGridCellFastBoolEditor.h" #include "wxGridCellTreeButtonRenderer.h" #include "wxGridCellTreeButtonEditor.h" #include "wxGridCellFormulaEditor.h" #include "wxGridCellTabStringRenderer.h" class KissCount; enum {TREE, DESCRIPTION, DATE, DEBIT, CREDIT, CATEGORY, ACCOUNT, DELETE, CHECKED, NUMBER_COLS_OPS}; class GridAccount : public wxGrid { public: GridAccount(KissCount* kiss, wxWindow *parent, wxWindowID id); ~GridAccount(); wxPen GetColGridLinePen (int col); wxPen GetRowGridLinePen (int row); void LoadOperations(std::vector* operations, bool canAddOperation, bool setWeek, int month, int year); void InsertOperationWithWeek(User* user, Operation& op, int line, bool fix, int month, int year) ; void InsertOperation(User* user, Operation& op, int line, bool fix, int month, int year) ; void Group(); void UnGroup(); void OnCellLeftClick(wxGridEvent& evt); void OnOperationModified(wxGridEvent& event); int _fixCosts; int _week1, _week2, _week3, _week4; std::vector _displayedOperations; private: KissCount* _kiss; wxString* _categories, *_accounts; std::vector* _operations; bool _canAddOperation; int _curMonth, _curYear; void SetWeek(int week, int line); void ResetWeeks(); void InsertIntoGrid(Operation& op); void DeleteOperation(const Operation& op); void UpdateMeta(Operation& op); void RemoveMeta(Operation& op, int line, bool removeRoot, bool deleteOp); void CheckMeta(Operation& op, int line, bool check); Operation& GetOperation(const wxString& id); void UpdateOperation(Operation& op); int GetDisplayedRow(const wxString& id); void GetSelectedOperations(std::vector* rows); DECLARE_EVENT_TABLE(); }; #endif