insilmaril@2: /* emacs: -*- Mode: C; c-style: "bsd"; c-basic-offset: 4; c-recognize-knr-p: nil; -*- */ insilmaril@0: #ifndef TEXTEDITOR_H insilmaril@0: #define TEXTEDITOR_H insilmaril@0: insilmaril@5: #include insilmaril@2: #include insilmaril@2: #include insilmaril@0: #include insilmaril@0: #include insilmaril@2: //Added by qt3to4: insilmaril@2: #include insilmaril@0: insilmaril@0: insilmaril@0: enum EditorState {inactiveEditor,emptyEditor,filledEditor}; insilmaril@0: insilmaril@2: class MyTextEdit; insilmaril@2: insilmaril@5: 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@2: void setFilenameHint (const QString&); insilmaril@2: QString getFilenameHint (); 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: 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@2: void textVAlign(); insilmaril@0: void fontChanged( const QFont &f ); insilmaril@0: void colorChanged( const QColor &c ); insilmaril@0: void alignmentChanged( int a ); insilmaril@2: void verticalAlignmentChanged(int a); insilmaril@0: void enableActions(); insilmaril@0: void disableActions(); insilmaril@0: insilmaril@0: private: insilmaril@0: QPrinter *printer; insilmaril@2: MyTextEdit *e; insilmaril@0: QPoint lastPos; // save last position of window insilmaril@0: QString filename; insilmaril@2: 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@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@2: *actionAlignJustify, insilmaril@2: *actionAlignSubScript, insilmaril@2: *actionAlignSuperScript; insilmaril@2: }; insilmaril@0: insilmaril@2: /* Wraps currentVerticalAlignmentChanged(VerticalAlignment) insilmaril@2: * to currentVerticalAlignmentChanged(int) insilmaril@2: * this way the signal can be used without use of the internal insilmaril@2: * VerticalAlignment enum of QTextEdit insilmaril@2: * If VerticalAlignment has been a global like the normal alignment there insilmaril@2: * have been no problems! insilmaril@2: */ insilmaril@2: insilmaril@2: class MyTextEdit : public Q3TextEdit insilmaril@2: { insilmaril@2: Q_OBJECT; insilmaril@2: public: insilmaril@2: MyTextEdit(QWidget *parent, const char *name) : Q3TextEdit(parent, name) { insilmaril@2: connect(this, insilmaril@2: SIGNAL(currentVerticalAlignmentChanged(VerticalAlignment)), insilmaril@2: this, insilmaril@2: SLOT(verticalAlignmentChanged(VerticalAlignment))); insilmaril@2: } insilmaril@2: int verticalAlignment() const { return m_verticalAlignment; } insilmaril@2: signals: insilmaril@2: void currentVerticalAlignmentChanged(int a); insilmaril@2: public slots: insilmaril@2: void verticalAlignmentChanged(VerticalAlignment a) { insilmaril@2: m_verticalAlignment = a; insilmaril@2: emit currentVerticalAlignmentChanged((int)a); insilmaril@2: } insilmaril@2: private: insilmaril@2: int m_verticalAlignment; insilmaril@0: }; insilmaril@0: insilmaril@0: #endif