#pragma once
#include <vector>
#include "../include/base.h"
#include "CellRange.h"
using namespace std;
namespace mycell{
class ASelection
{
public:
//virtual void SetupRowHeaderDE(int row,DrawEnvironment& de)=0;
//virtual void SetupColHeaderDE(int col,DrawEnvironment& de)=0;
//virtual void SetupCellDE(int row,int col,DrawEnvironment& de)=0;
virtual BOOL IsSelectAll(/*CellRange const& cr*/)const=0;
virtual CellID GetActiveCell()const=0;
virtual void SetActiveCell(int row,int col)=0;
virtual void get_Range(vector<CellRange>& vec)const=0;
virtual void SetActiveSelection(int leftCol,int topRow,int rightCol,int bottomRow)=0;
virtual BOOL ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& lResult, DWORD dwMsgMapID = 0)=0;
virtual void OnColDelete(int beg,int end)
{
}
virtual void OnRowDelete(int beg,int end)
{
}
virtual bool InSelection(int row,int col)const=0;
virtual CellRange GetActiveSelection()const=0;
virtual void InvalidateWindow(CellID const& oldActiveCell,CellRange const& oldActiveCellRange)=0;
virtual bool IsMultiSelectionMode()const=0;
};
}//namespace mycell