You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeedu/kwordquiz/src/kwordquizview.h

125 lines
3.8 KiB

/***************************************************************************
kwordquizview.h - description
-------------------
begin : Wed Jul 24 20:12:30 PDT 2002
copyright : (C) 2002 by Peter Hedlund
email : peter.hedlund@kdemail.net
***************************************************************************/
/***************************************************************************
* *
* This program 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 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef KWORDQUIZVIEW_H
#define KWORDQUIZVIEW_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
// include files for TQt
#include <tqtable.h>
#include <kprinter.h>
#include "wqlreader.h"
#include "wqundo.h"
#include <kprinter.h>
#include "wqundo.h"
//include <wqviewbase.h>
class KWordQuizDoc;
class DlgSpecChar;
/**
@author Peter Hedlund
*/
class KWTQTableItem :public TQTableItem
{
public:
KWTQTableItem( TQTable* table, EditType et, const TQString & text );
virtual int alignment() const;
};
class KWordQuizView : public TQTable
{
Q_OBJECT
public:
/** Constructor for the main view */
KWordQuizView(TQWidget *parent = 0, const char *name=0);
/** Destructor for the main view */
~KWordQuizView();
/** returns a pointer to the document connected to the view instance. Mind that this method requires a KWordQuizApp instance as a parent
* widget to get to the window document pointer by calling the KWordQuizApp::getDocument() method.
*
* @see KWordQuizApp#getDocument
*/
KWordQuizDoc *getDocument() const;
//Reimplemented from TQTable
void paintCell ( TQPainter * p, int row, int col, const TQRect & cr, bool selected, const TQColorGroup & cg );
void setFont( const TQFont &);
void setText( int row, int col, const TQString &text );
/** contains the implementation for printing functionality */
void print(KPrinter *pPrinter);
bool gridIsEmpty();
void addUndo(const TQString & caption);
void doEditUndo();
void doEditCut();
void doEditCopy();
void doEditPaste();
void doEditClear();
void doEditInsert();
void doEditDelete();
void doEditMarkBlank();
void doEditUnmarkBlank();
void doVocabSort();
void doVocabShuffle();
void doVocabRC();
void doVocabSpecChar();
bool checkSyntax(bool all, bool blanks);
void saveCurrentSelection(bool clear);
protected:
TQWidget * beginEdit(int row, int col, bool replace);
void endEdit ( int row, int col, bool accept, bool replace );
void activateNextCell();
void keyPressEvent( TQKeyEvent* );
bool eventFilter( TQObject*, TQEvent* );
public slots:
void adjustRow(int row);
void slotSpecChar(const TQChar &);
void slotCheckedAnswer(int );
private slots:
void slotDlgSpecCharClosed();
signals:
void undoChange(const TQString & text, bool enabled);
private:
int m_currentRow;
int m_currentCol;
TQString m_currentText;
TQTableSelection m_currentSel;
DlgSpecChar* dlgSpecChar;
TQWidget * cellEditor;
/** the list of the undo objects */
static TQValueList<WQUndo> *m_undoList;
void doNewPage(TQPainter & painter, int res, int type);
void doEndOfPage(TQPainter & painter, int vPos, int pageNum, int res, int type);
bool checkForBlank(const TQString & s, bool blank);
};
#endif // KWORDQUIZVIEW_H