summaryrefslogtreecommitdiffstats
path: root/qt/qextscintillacommand.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt/qextscintillacommand.h')
-rw-r--r--qt/qextscintillacommand.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/qt/qextscintillacommand.h b/qt/qextscintillacommand.h
new file mode 100644
index 0000000..0e4557c
--- /dev/null
+++ b/qt/qextscintillacommand.h
@@ -0,0 +1,99 @@
+// This defines the interface to the QextScintillaCommand class.
+//
+// Copyright (c) 2006
+// Riverbank Computing Limited <info@riverbankcomputing.co.uk>
+//
+// This file is part of QScintilla.
+//
+// This copy of QScintilla 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, or (at your option) any
+// later version.
+//
+// QScintilla is supplied in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+// details.
+//
+// You should have received a copy of the GNU General Public License along with
+// QScintilla; see the file LICENSE. If not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifndef QEXTSCINTILLACOMMAND_H
+#define QEXTSCINTILLACOMMAND_H
+
+
+#include <qstring.h>
+
+#include <qextscintillaglobal.h>
+
+
+class QextScintilla;
+
+
+//! \brief The QextScintillaCommand class represents an internal editor command
+//! that may have one or two keys bound to it.
+//!
+//! Methods are provided to change the keys bound to the command and to remove
+//! a key binding. Each command has a user friendly description of the command
+//! for use in key mapping dialogs.
+class QEXTSCINTILLA_EXPORT QextScintillaCommand
+{
+public:
+ //! Binds the key \a key to the command. If \a key is 0 then the key
+ //! binding is removed. If \a key is invalid then the key binding is
+ //! unchanged. Valid keys are any visible or control character or any
+ //! of \c Key_Down, \c Key_Up, \c Key_Left, \c Key_Right, \c Key_Home,
+ //! \c Key_End, \c Key_Prior, \c Key_Next, \c Key_Delete,
+ //! \c Key_Insert, \c Key_Escape, \c Key_Backspace, \c Key_Tab and
+ //! \c Key_Return. Keys may be modified with any combination of
+ //! \c SHIFT, \c CTRL and \c ALT.
+ //!
+ //! \sa key(), setAlternateKey(), validKey()
+ void setKey(int key);
+
+ //! Binds the alternate key \a altkey to the command. If \a key is 0
+ //! then the alternate key binding is removed.
+ //!
+ //! \sa alternateKey(), setKey(), validKey()
+ void setAlternateKey(int altkey);
+
+ //! The key that is currently bound to the command is returned.
+ //!
+ //! \sa setKey(), alternateKey()
+ int key() const {return qkey;}
+
+ //! The alternate key that is currently bound to the command is
+ //! returned.
+ //!
+ //! \sa setAlternateKey(), key()
+ int alternateKey() const {return qaltkey;}
+
+ //! If the key \a key is valid then TRUE is returned.
+ static bool validKey(int key);
+
+ //! The user friendly description of the command is returned.
+ QString description() const;
+
+private:
+ friend class QextScintillaCommandSet;
+
+ QextScintillaCommand(QextScintilla *qs,int msg,int key,int altkey,
+ const char *desc);
+
+ int msgId() const {return msgCmd;}
+ void bindKey(int key,int &qk,int &scik);
+
+ QextScintilla *qsCmd;
+ int msgCmd;
+ int qkey, scikey, qaltkey, scialtkey;
+ const char *descCmd;
+
+#if defined(Q_DISABLE_COPY)
+ QextScintillaCommand(const QextScintillaCommand &);
+ QextScintillaCommand &operator=(const QextScintillaCommand &);
+#endif
+};
+
+#endif