You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.0 KiB
C++
46 lines
1.0 KiB
C++
/*
|
|
KSpread's code is IMO often hard to read. The cause of this is that there
|
|
is no clear distinction between coordinates on the screen and coordinates
|
|
in a sheet. Therefore I want to propose to define our own types to refer to
|
|
coordinates on the sheet.
|
|
This is a quick draft of how it could look like. It is definitely not complete.
|
|
So feel free to change it and add comments. The types are very straightforward,
|
|
so I think no further comments are needed yet. -- Wilco --
|
|
*/
|
|
|
|
namespace KSpread
|
|
{
|
|
|
|
typedef Column unsigned long int;
|
|
typedef Row unsigned long int;
|
|
|
|
|
|
class Coordinate
|
|
{
|
|
public:
|
|
Coordinate( Row, Column );
|
|
|
|
Row row() const { return m_iRow; }
|
|
Column column() const { return m_iColumn; }
|
|
|
|
private:
|
|
Row m_iRow;
|
|
Column m_iColumn;
|
|
};
|
|
|
|
|
|
class Selection
|
|
{
|
|
public:
|
|
Selection( Coordinate, Coordinate );
|
|
|
|
Coordinate begin() const { return m_crdBegin; }
|
|
Coordinate end() const { return m_crdEnd; }
|
|
|
|
private:
|
|
Coordinate m_crdBegin;
|
|
Coordinate m_crdEnd;
|
|
};
|
|
|
|
} // namespace KSpread
|