insilmaril@0: #ifndef TEXTEDITOR_H insilmaril@0: #define TEXTEDITOR_H insilmaril@0: insilmaril@366: #include insilmaril@0: insilmaril@0: enum EditorState {inactiveEditor,emptyEditor,filledEditor}; insilmaril@0: jhilmer@142: class MyTextEdit; jhilmer@142: 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@106: void setFilenameHint (const QString&); insilmaril@106: QString getFilenameHint (); insilmaril@366: bool findText(const QString &, const QTextDocument::FindFlags &); // 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@390: void textEditorClosed(); 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 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*); jhilmer@142: void textVAlign(); insilmaril@0: void fontChanged( const QFont &f ); insilmaril@0: void colorChanged( const QColor &c ); insilmaril@388: void formatChanged (const QTextCharFormat &f); insilmaril@0: void alignmentChanged( int a ); insilmaril@388: void verticalAlignmentChanged(QTextCharFormat::VerticalAlignment); insilmaril@0: void enableActions(); insilmaril@0: void disableActions(); insilmaril@366: void setState (EditorState); insilmaril@0: insilmaril@0: private: insilmaril@0: QPrinter *printer; insilmaril@388: QTextEdit *e; insilmaril@0: QPoint lastPos; // save last position of window insilmaril@0: QString filename; insilmaril@106: QString filenameHint; 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@388: QComboBox *comboFont, *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: *actionFormatUseFixedFont, insilmaril@0: *actionSettingsVarFont, insilmaril@0: *actionSettingsFixedFont, insilmaril@0: *actionSettingsFonthintDefault, insilmaril@0: *actionTextBold, insilmaril@0: *actionTextUnderline, insilmaril@0: *actionTextItalic, insilmaril@0: *actionTextColor, insilmaril@388: *actionAlignSubScript, insilmaril@388: *actionAlignSuperScript, insilmaril@0: *actionAlignLeft, insilmaril@0: *actionAlignCenter, insilmaril@0: *actionAlignRight, insilmaril@388: *actionAlignJustify; insilmaril@0: }; insilmaril@0: insilmaril@0: #endif