insilmaril@0: #ifndef TEXTEDITOR_H insilmaril@0: #define TEXTEDITOR_H insilmaril@0: insilmaril@0: #include insilmaril@0: #include insilmaril@0: #include insilmaril@0: #include insilmaril@0: #include insilmaril@0: insilmaril@0: insilmaril@0: enum EditorState {inactiveEditor,emptyEditor,filledEditor}; insilmaril@0: insilmaril@0: class TextEditor : public QMainWindow { insilmaril@0: Q_OBJECT insilmaril@0: public: insilmaril@0: TextEditor(); insilmaril@0: ~TextEditor(); insilmaril@0: insilmaril@0: bool isEmpty(); insilmaril@0: void setShowWithMain (bool); insilmaril@0: bool showWithMain (); insilmaril@0: void setFontHint(const QString&); insilmaril@0: QString getFontHint(); insilmaril@0: QString getFontHintDefault(); insilmaril@0: void setFilename (const QString&); insilmaril@0: QString getFilename (); insilmaril@0: bool findText(const QString &, const bool &); // find Text insilmaril@0: insilmaril@0: protected: insilmaril@0: void setupFileActions(); insilmaril@0: void setupEditActions(); insilmaril@0: void setupFormatActions(); insilmaril@0: void setupSettingsActions(); insilmaril@0: void closeEvent( QCloseEvent* ); insilmaril@0: insilmaril@0: insilmaril@0: public: insilmaril@0: QString getText(); insilmaril@0: insilmaril@0: public slots: insilmaril@0: void editorChanged(); // received when text() changed insilmaril@0: void setText(QString); // set Text (by MapEditor) insilmaril@0: void setInactive(); // Nothing can be entered insilmaril@0: void editCopyAll(); insilmaril@0: insilmaril@0: signals: insilmaril@0: void textHasChanged(); insilmaril@0: void fontFamilyHasChanged(); insilmaril@0: void fontSizeHasChanged(); insilmaril@0: insilmaril@0: private slots: insilmaril@0: void textLoad(); insilmaril@0: void textSaveAs(); insilmaril@0: void textSave(); insilmaril@0: void textConvertPar(); insilmaril@0: void textJoinLines(); insilmaril@0: QString textConvertToASCII(const QString &); insilmaril@0: void textExportAsASCII(); insilmaril@0: void textPrint(); insilmaril@0: void textEditUndo(); insilmaril@0: void toggleFonthint(); insilmaril@0: void setFixedFont(); insilmaril@0: void setVarFont(); insilmaril@0: void textBold(); insilmaril@0: void textUnderline(); insilmaril@0: void textItalic(); insilmaril@0: void textFamily( const QString &f ); insilmaril@0: void textSize( const QString &p ); insilmaril@0: void textColor(); insilmaril@0: void textAlign(QAction*); insilmaril@0: void fontChanged( const QFont &f ); insilmaril@0: void colorChanged( const QColor &c ); insilmaril@0: void alignmentChanged( int a ); insilmaril@0: void enableActions(); insilmaril@0: void disableActions(); insilmaril@0: insilmaril@0: private: insilmaril@0: QPrinter *printer; insilmaril@0: QTextEdit *e; insilmaril@0: QPoint lastPos; // save last position of window insilmaril@0: QString filename; insilmaril@0: insilmaril@0: QBrush emptyPaper; // setting the background color insilmaril@0: QBrush filledPaper; // depending on the state insilmaril@0: QBrush inactivePaper; // depending on the state insilmaril@0: EditorState state; insilmaril@0: bool showwithmain; // same visibility as mainwindow? insilmaril@0: insilmaril@0: QFont varFont; insilmaril@0: QFont fixedFont; insilmaril@0: QComboBox insilmaril@0: *comboFont, insilmaril@0: *comboSize; insilmaril@0: insilmaril@0: QAction *actionFileLoad, insilmaril@0: *actionFileSave, insilmaril@0: *actionFileSaveAs, insilmaril@0: *actionFilePrint, insilmaril@0: *actionEditUndo, insilmaril@0: *actionEditRedo, insilmaril@0: *actionEditCopy, insilmaril@0: *actionEditCut, insilmaril@0: *actionEditPaste, insilmaril@0: *actionEditDeleteAll, insilmaril@0: *actionEditConvertPar, insilmaril@0: *actionEditJoinLines, insilmaril@0: *actionFormatUseFixedFont, insilmaril@0: *actionSettingsVarFont, insilmaril@0: *actionSettingsFixedFont, insilmaril@0: *actionSettingsFonthintDefault, insilmaril@0: *actionTextBold, insilmaril@0: *actionTextUnderline, insilmaril@0: *actionTextItalic, insilmaril@0: *actionTextColor, insilmaril@0: *actionAlignLeft, insilmaril@0: *actionAlignCenter, insilmaril@0: *actionAlignRight, insilmaril@0: *actionAlignJustify; insilmaril@0: insilmaril@0: insilmaril@0: }; insilmaril@0: insilmaril@0: #endif