summaryrefslogtreecommitdiffstats
path: root/kbabel/kbabel/hidingmsgedit.h
diff options
context:
space:
mode:
Diffstat (limited to 'kbabel/kbabel/hidingmsgedit.h')
-rw-r--r--kbabel/kbabel/hidingmsgedit.h161
1 files changed, 161 insertions, 0 deletions
diff --git a/kbabel/kbabel/hidingmsgedit.h b/kbabel/kbabel/hidingmsgedit.h
new file mode 100644
index 00000000..38e5d750
--- /dev/null
+++ b/kbabel/kbabel/hidingmsgedit.h
@@ -0,0 +1,161 @@
+/***************************************************************************
+ hidingmsgedit.h - description
+ -------------------
+ begin : So nov 2 2002
+ copyright : (C) 2002 by Stanislav Visnovsky
+ email : visnovsky@kde.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+
+ In addition, as a special exception, the copyright holders give
+ permission to link the code of this program with any edition of
+ the Qt library by Trolltech AS, Norway (or with modified versions
+ of Qt that use the same license as Qt), and distribute linked
+ combinations including the two. You must obey the GNU General
+ Public License in all respects for all of the code used other than
+ Qt. If you modify this file, you may extend this exception to
+ your version of the file, but you are not obligated to do so. If
+ you do not wish to do so, delete this exception statement from
+ your version.
+
+ * *
+ ***************************************************************************/
+
+#ifndef HIDINGMSGEDIT_H
+#define HIDINGMSGEDIT_H
+
+#include <qwidgetstack.h>
+#include <qguardedptr.h>
+#include <qptrlist.h>
+
+#include "mymultilineedit.h"
+
+class KSpell;
+class QTabWidget;
+class QPopupMenu;
+
+namespace KBabel
+{
+ class EditCommand;
+}
+
+/**
+ *@author Stanislav Visnovsky <visnovsky@kde.org>
+ */
+
+class HidingMsgEdit : public QWidgetStack {
+ Q_OBJECT
+public:
+ HidingMsgEdit(uint numberOfPlurals, QWidget* eventFilter=0, KSpell* spell=0, QWidget *parent=0, const char *name=0);
+ ~HidingMsgEdit();
+
+ void setNumberOfPlurals(uint numberOfPlurals);
+
+ // return index number for a currently shown plural form (0=singular or no plurals)
+ uint currentForm();
+
+ // MsgMultiLineEdit interface
+ bool isOverwriteMode() const { return _currentEdit->isOverwriteMode(); }
+ bool isModified();
+ bool hasSelectedText() const { return _currentEdit->hasSelectedText(); }
+ QString selectedText () const { return _currentEdit->selectedText(); }
+ void processCommand(KBabel::EditCommand* cmd, bool undo=false);
+ void offset2Pos(int offset, int &row, int &col) const
+ { return _currentEdit->offset2Pos(offset, row, col ); }
+ void getCursorPosition(int *para, int *index) const
+ { _currentEdit->getCursorPosition(para,index); }
+ int currentIndex() const
+ { return _currentEdit->currentIndex(); }
+ int beginOfLastMarkedText() const
+ { return _currentEdit->beginOfLastMarkedText(); }
+ virtual void setFont ( const QFont & );
+ void setCurrentColor(const MsgMultiLineEdit::TextColor color);
+ bool spacePoints() const { return _currentEdit->spacePoints(); }
+ void setSpacePoints(bool on);
+ bool quotes() const { return _currentEdit->quotes(); }
+ void setQuotes(bool on);
+ void setBgColor( const QColor& color);
+ bool highlightBg() const { return _currentEdit->highlightBg(); }
+ bool highlightSyntax() const { return _currentEdit->highlightSyntax(); }
+ void setHighlightColors(const QColor& quoteColor, const QColor& unquoteColor
+ , const QColor& cformatColor, const QColor& accelColor, const QColor& tagColor);
+ int beginOfMarkedText() { return _currentEdit->beginOfMarkedText(); }
+ virtual void insertAt ( const QString & s, int line, int col, bool mark = false )
+ { _currentEdit->insertAt( s, line, col, mark ); }
+
+ void setDiffMode(bool on);
+ void setDiffDisplayMode(bool underlineAdded, bool strikeOutDeleted);
+ void setDiffColors(const QColor& addColor, const QColor& delColor);
+ QString text(int para) { return _currentEdit->text(para); }
+
+ void setSpellChecker(KSpell* spell);
+
+ void selectTag(int start, int length) { _currentEdit->selectTag(start,length); }
+
+ // reiplemented to return correct value
+ bool hasFocus ();
+public slots: // Public slots
+ void setText(QStringList texts, QString msgctxt = QString::null);
+ void showSingle();
+ void showMultiple();
+ void showPlurals( bool on );
+ void showForm(int form);
+ virtual void setFocus() { _currentEdit->setFocus(); }
+ void forceUpdate() { _currentEdit->forceUpdate(); }
+
+ // MsgMultiLineEdit interface
+ virtual void setReadOnly( bool b );
+ virtual void setOverwriteMode( bool b );
+ virtual void setModified( bool b );
+ void setCleverEditing( bool on );
+ void setHighlightBg( bool on );
+ void setHighlightSyntax( bool on );
+ virtual void clear() { _currentEdit->clear(); }
+ virtual void cut() { _currentEdit->cut(); }
+ virtual void copy() { _currentEdit->copy(); }
+ virtual void paste() { _currentEdit->paste(); }
+ virtual void setSelection( int paraFrom, int indexFrom, int paraTo, int indexTo, int selNum = 0 )
+ { _currentEdit->setSelection( paraFrom, indexFrom, paraTo, indexTo, selNum) ; }
+ virtual void selectAll(bool select=true) { _currentEdit->selectAll(select); }
+ virtual void setCursorPosition ( int para, int index )
+ { _currentEdit->setCursorPosition(para,index); }
+ virtual void setContextMenu( QPopupMenu *menu );
+
+signals:
+ void signalUndoCmd(KBabel::EditCommand*);
+ void textChanged();
+ void textChanged(const QString&);
+ void cursorPositionChanged ( int para, int pos );
+ void currentFormChanged ( uint form );
+
+private slots:
+
+ void emitTextChanged();
+
+ // invoked if TabWidget changes the shown widget
+ void newCurrentMultiple( QWidget * );
+ // invoked by inner cursorPositionChanged() to transform line/col for wrapping
+ void emitCursorPositionChanged( int para, int pos );
+
+private: // Private attributes
+ /** Used for editting non-plural messages */
+ MsgMultiLineEdit* _singleEdit;
+ /** Used for editting plural forms */
+ QTabWidget* _multipleEdit;
+ QWidget* _eventFilter;
+
+ MsgMultiLineEdit* _currentEdit;
+ QPtrList<MsgMultiLineEdit> _allEdits;
+
+ uint _numberOfPlurals;
+
+ QGuardedPtr<KSpell> _spell;
+};
+
+#endif