#ifndef _SPREADSHEET_H
#define _SPREADSHEET_H
#include <QMainWindow>
#include <QicsRegion.h>
class QComboBox;
class QLineEdit;
class QicsDataModel;
class QicsTable;
#ifdef QSA
class QSProject;
#endif
class Spreadsheet : public QMainWindow
{
Q_OBJECT
public:
Spreadsheet(QWidget* parent = 0);
protected:
QicsDataModel *dm;
QicsTable *table;
QLineEdit* cellLineEdit;
QComboBox* fontFamilyCombo;
QComboBox* fontSizeCombo;
QAction *boldAction;
QAction *italicAction;
QAction *underlineAction;
QAction *textLeftAction;
QAction *textCenterAction;
QAction *textRightAction;
QString fileName;
int startSelectedRow, startSelectedColumn;
int endSelectedRow, endSelectedColumn;
QicsRegion selectedRegion;
#ifdef QSA
QSProject* project;
#endif
void loadFile(QString);
void writeFile(QString);
void getSelectedRegion();
void setFontCombos(const QFont&);
public slots:
void setCellValue(int row, int col, int value);
QString getCellValue(int row, int col);
void sortAscending();
void sortDescending();
private slots:
void resized();
void copy();
void cut();
void paste();
void fileNew();
void openFile();
void saveFile();
void saveFileAs();
void insertRow();
void insertColumn();
void deleteRow();
void deleteColumn();
void formatFont();
void formatBackgroundColor();
void formatForegroundColor();
void selectFont(int);
void selectFontSize(int combo);
void textAlignLeft();
void textAlignRight();
void textAlignCenter();
void textBold();
void textItalic();
void textUnderline();
void setCurrencyFormatter();
void cellLineUpdate();
void updateSelection(bool);
void addSpan();
void removeSpan();
void showQSAWorkbench();
void testScripts();
void saveScripts();
#ifdef CREATE_OBJS_WITH_QICSTABLE
void print();
#endif
};
#endif