aboutsummaryrefslogtreecommitdiff
path: root/samples/C++
diff options
context:
space:
mode:
Diffstat (limited to 'samples/C++')
-rw-r--r--samples/C++/qscicommand.h415
-rw-r--r--samples/C++/qsciprinter.h116
2 files changed, 531 insertions, 0 deletions
diff --git a/samples/C++/qscicommand.h b/samples/C++/qscicommand.h
new file mode 100644
index 0000000..f8ecbc8
--- /dev/null
+++ b/samples/C++/qscicommand.h
@@ -0,0 +1,415 @@
+// This defines the interface to the QsciCommand class.
+//
+// Copyright (c) 2011 Riverbank Computing Limited <info@riverbankcomputing.com>
+//
+// This file is part of QScintilla.
+//
+// This file may be used under the terms of the GNU General Public
+// License versions 2.0 or 3.0 as published by the Free Software
+// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
+// included in the packaging of this file. Alternatively you may (at
+// your option) use any later version of the GNU General Public
+// License if such license has been publicly approved by Riverbank
+// Computing Limited (or its successors, if any) and the KDE Free Qt
+// Foundation. In addition, as a special exception, Riverbank gives you
+// certain additional rights. These rights are described in the Riverbank
+// GPL Exception version 1.1, which can be found in the file
+// GPL_EXCEPTION.txt in this package.
+//
+// If you are unsure which license is appropriate for your use, please
+// contact the sales department at sales@riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+#ifndef QSCICOMMAND_H
+#define QSCICOMMAND_H
+
+#ifdef __APPLE__
+extern "C++" {
+#endif
+
+#include <qstring.h>
+
+#include <Qsci/qsciglobal.h>
+#include <Qsci/qsciscintillabase.h>
+
+
+class QsciScintilla;
+
+
+//! \brief The QsciCommand 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 QSCINTILLA_EXPORT QsciCommand
+{
+public:
+ //! This enum defines the different commands that can be assigned to a key.
+ enum Command {
+ //! Move down one line.
+ LineDown = QsciScintillaBase::SCI_LINEDOWN,
+
+ //! Extend the selection down one line.
+ LineDownExtend = QsciScintillaBase::SCI_LINEDOWNEXTEND,
+
+ //! Extend the rectangular selection down one line.
+ LineDownRectExtend = QsciScintillaBase::SCI_LINEDOWNRECTEXTEND,
+
+ //! Scroll the view down one line.
+ LineScrollDown = QsciScintillaBase::SCI_LINESCROLLDOWN,
+
+ //! Move up one line.
+ LineUp = QsciScintillaBase::SCI_LINEUP,
+
+ //! Extend the selection up one line.
+ LineUpExtend = QsciScintillaBase::SCI_LINEUPEXTEND,
+
+ //! Extend the rectangular selection up one line.
+ LineUpRectExtend = QsciScintillaBase::SCI_LINEUPRECTEXTEND,
+
+ //! Scroll the view up one line.
+ LineScrollUp = QsciScintillaBase::SCI_LINESCROLLUP,
+
+ //! Scroll to the start of the document.
+ ScrollToStart = QsciScintillaBase::SCI_SCROLLTOSTART,
+
+ //! Scroll to the end of the document.
+ ScrollToEnd = QsciScintillaBase::SCI_SCROLLTOEND,
+
+ //! Scroll vertically to centre the current line.
+ VerticalCentreCaret = QsciScintillaBase::SCI_VERTICALCENTRECARET,
+
+ //! Move down one paragraph.
+ ParaDown = QsciScintillaBase::SCI_PARADOWN,
+
+ //! Extend the selection down one paragraph.
+ ParaDownExtend = QsciScintillaBase::SCI_PARADOWNEXTEND,
+
+ //! Move up one paragraph.
+ ParaUp = QsciScintillaBase::SCI_PARAUP,
+
+ //! Extend the selection up one paragraph.
+ ParaUpExtend = QsciScintillaBase::SCI_PARAUPEXTEND,
+
+ //! Move left one character.
+ CharLeft = QsciScintillaBase::SCI_CHARLEFT,
+
+ //! Extend the selection left one character.
+ CharLeftExtend = QsciScintillaBase::SCI_CHARLEFTEXTEND,
+
+ //! Extend the rectangular selection left one character.
+ CharLeftRectExtend = QsciScintillaBase::SCI_CHARLEFTRECTEXTEND,
+
+ //! Move right one character.
+ CharRight = QsciScintillaBase::SCI_CHARRIGHT,
+
+ //! Extend the selection right one character.
+ CharRightExtend = QsciScintillaBase::SCI_CHARRIGHTEXTEND,
+
+ //! Extend the rectangular selection right one character.
+ CharRightRectExtend = QsciScintillaBase::SCI_CHARRIGHTRECTEXTEND,
+
+ //! Move left one word.
+ WordLeft = QsciScintillaBase::SCI_WORDLEFT,
+
+ //! Extend the selection left one word.
+ WordLeftExtend = QsciScintillaBase::SCI_WORDLEFTEXTEND,
+
+ //! Move right one word.
+ WordRight = QsciScintillaBase::SCI_WORDRIGHT,
+
+ //! Extend the selection right one word.
+ WordRightExtend = QsciScintillaBase::SCI_WORDRIGHTEXTEND,
+
+ //! Move to the end of the previous word.
+ WordLeftEnd = QsciScintillaBase::SCI_WORDLEFTEND,
+
+ //! Extend the selection to the end of the previous word.
+ WordLeftEndExtend = QsciScintillaBase::SCI_WORDLEFTENDEXTEND,
+
+ //! Move to the end of the next word.
+ WordRightEnd = QsciScintillaBase::SCI_WORDRIGHTEND,
+
+ //! Extend the selection to the end of the next word.
+ WordRightEndExtend = QsciScintillaBase::SCI_WORDRIGHTENDEXTEND,
+
+ //! Move left one word part.
+ WordPartLeft = QsciScintillaBase::SCI_WORDPARTLEFT,
+
+ //! Extend the selection left one word part.
+ WordPartLeftExtend = QsciScintillaBase::SCI_WORDPARTLEFTEXTEND,
+
+ //! Move right one word part.
+ WordPartRight = QsciScintillaBase::SCI_WORDPARTRIGHT,
+
+ //! Extend the selection right one word part.
+ WordPartRightExtend = QsciScintillaBase::SCI_WORDPARTRIGHTEXTEND,
+
+ //! Move to the start of the document line.
+ Home = QsciScintillaBase::SCI_HOME,
+
+ //! Extend the selection to the start of the document line.
+ HomeExtend = QsciScintillaBase::SCI_HOMEEXTEND,
+
+ //! Extend the rectangular selection to the start of the document line.
+ HomeRectExtend = QsciScintillaBase::SCI_HOMERECTEXTEND,
+
+ //! Move to the start of the displayed line.
+ HomeDisplay = QsciScintillaBase::SCI_HOMEDISPLAY,
+
+ //! Extend the selection to the start of the displayed line.
+ HomeDisplayExtend = QsciScintillaBase::SCI_HOMEDISPLAYEXTEND,
+
+ //! Move to the start of the displayed or document line.
+ HomeWrap = QsciScintillaBase::SCI_HOMEWRAP,
+
+ //! Extend the selection to the start of the displayed or document
+ //! line.
+ HomeWrapExtend = QsciScintillaBase::SCI_HOMEWRAPEXTEND,
+
+ //! Move to the first visible character in the document line.
+ VCHome = QsciScintillaBase::SCI_VCHOME,
+
+ //! Extend the selection to the first visible character in the document
+ //! line.
+ VCHomeExtend = QsciScintillaBase::SCI_VCHOMEEXTEND,
+
+ //! Extend the rectangular selection to the first visible character in
+ //! the document line.
+ VCHomeRectExtend = QsciScintillaBase::SCI_VCHOMERECTEXTEND,
+
+ //! Move to the first visible character of the displayed or document
+ //! line.
+ VCHomeWrap = QsciScintillaBase::SCI_VCHOMEWRAP,
+
+ //! Extend the selection to the first visible character of the
+ //! displayed or document line.
+ VCHomeWrapExtend = QsciScintillaBase::SCI_VCHOMEWRAPEXTEND,
+
+ //! Move to the end of the document line.
+ LineEnd = QsciScintillaBase::SCI_LINEEND,
+
+ //! Extend the selection to the end of the document line.
+ LineEndExtend = QsciScintillaBase::SCI_LINEENDEXTEND,
+
+ //! Extend the rectangular selection to the end of the document line.
+ LineEndRectExtend = QsciScintillaBase::SCI_LINEENDRECTEXTEND,
+
+ //! Move to the end of the displayed line.
+ LineEndDisplay = QsciScintillaBase::SCI_LINEENDDISPLAY,
+
+ //! Extend the selection to the end of the displayed line.
+ LineEndDisplayExtend = QsciScintillaBase::SCI_LINEENDDISPLAYEXTEND,
+
+ //! Move to the end of the displayed or document line.
+ LineEndWrap = QsciScintillaBase::SCI_LINEENDWRAP,
+
+ //! Extend the selection to the end of the displayed or document line.
+ LineEndWrapExtend = QsciScintillaBase::SCI_LINEENDWRAPEXTEND,
+
+ //! Move to the start of the document.
+ DocumentStart = QsciScintillaBase::SCI_DOCUMENTSTART,
+
+ //! Extend the selection to the start of the document.
+ DocumentStartExtend = QsciScintillaBase::SCI_DOCUMENTSTARTEXTEND,
+
+ //! Move to the end of the document.
+ DocumentEnd = QsciScintillaBase::SCI_DOCUMENTEND,
+
+ //! Extend the selection to the end of the document.
+ DocumentEndExtend = QsciScintillaBase::SCI_DOCUMENTENDEXTEND,
+
+ //! Move up one page.
+ PageUp = QsciScintillaBase::SCI_PAGEUP,
+
+ //! Extend the selection up one page.
+ PageUpExtend = QsciScintillaBase::SCI_PAGEUPEXTEND,
+
+ //! Extend the rectangular selection up one page.
+ PageUpRectExtend = QsciScintillaBase::SCI_PAGEUPRECTEXTEND,
+
+ //! Move down one page.
+ PageDown = QsciScintillaBase::SCI_PAGEDOWN,
+
+ //! Extend the selection down one page.
+ PageDownExtend = QsciScintillaBase::SCI_PAGEDOWNEXTEND,
+
+ //! Extend the rectangular selection down one page.
+ PageDownRectExtend = QsciScintillaBase::SCI_PAGEDOWNRECTEXTEND,
+
+ //! Stuttered move up one page.
+ StutteredPageUp = QsciScintillaBase::SCI_STUTTEREDPAGEUP,
+
+ //! Stuttered extend the selection up one page.
+ StutteredPageUpExtend = QsciScintillaBase::SCI_STUTTEREDPAGEUPEXTEND,
+
+ //! Stuttered move down one page.
+ StutteredPageDown = QsciScintillaBase::SCI_STUTTEREDPAGEDOWN,
+
+ //! Stuttered extend the selection down one page.
+ StutteredPageDownExtend = QsciScintillaBase::SCI_STUTTEREDPAGEDOWNEXTEND,
+
+ //! Delete the current character.
+ Delete = QsciScintillaBase::SCI_CLEAR,
+
+ //! Delete the previous character.
+ DeleteBack = QsciScintillaBase::SCI_DELETEBACK,
+
+ //! Delete the previous character if not at start of line.
+ DeleteBackNotLine = QsciScintillaBase::SCI_DELETEBACKNOTLINE,
+
+ //! Delete the word to the left.
+ DeleteWordLeft = QsciScintillaBase::SCI_DELWORDLEFT,
+
+ //! Delete the word to the right.
+ DeleteWordRight = QsciScintillaBase::SCI_DELWORDRIGHT,
+
+ //! Delete right to the end of the next word.
+ DeleteWordRightEnd = QsciScintillaBase::SCI_DELWORDRIGHTEND,
+
+ //! Delete the line to the left.
+ DeleteLineLeft = QsciScintillaBase::SCI_DELLINELEFT,
+
+ //! Delete the line to the right.
+ DeleteLineRight = QsciScintillaBase::SCI_DELLINERIGHT,
+
+ //! Delete the current line.
+ LineDelete = QsciScintillaBase::SCI_LINEDELETE,
+
+ //! Cut the current line to the clipboard.
+ LineCut = QsciScintillaBase::SCI_LINECUT,
+
+ //! Copy the current line to the clipboard.
+ LineCopy = QsciScintillaBase::SCI_LINECOPY,
+
+ //! Transpose the current and previous lines.
+ LineTranspose = QsciScintillaBase::SCI_LINETRANSPOSE,
+
+ //! Duplicate the current line.
+ LineDuplicate = QsciScintillaBase::SCI_LINEDUPLICATE,
+
+ //! Select the whole document.
+ SelectAll = QsciScintillaBase::SCI_SELECTALL,
+
+ //! Move the selected lines up one line.
+ MoveSelectedLinesUp = QsciScintillaBase::SCI_MOVESELECTEDLINESUP,
+
+ //! Move the selected lines down one line.
+ MoveSelectedLinesDown = QsciScintillaBase::SCI_MOVESELECTEDLINESDOWN,
+
+ //! Duplicate the selection.
+ SelectionDuplicate = QsciScintillaBase::SCI_SELECTIONDUPLICATE,
+
+ //! Convert the selection to lower case.
+ SelectionLowerCase = QsciScintillaBase::SCI_LOWERCASE,
+
+ //! Convert the selection to upper case.
+ SelectionUpperCase = QsciScintillaBase::SCI_UPPERCASE,
+
+ //! Cut the selection to the clipboard.
+ SelectionCut = QsciScintillaBase::SCI_CUT,
+
+ //! Copy the selection to the clipboard.
+ SelectionCopy = QsciScintillaBase::SCI_COPY,
+
+ //! Paste from the clipboard.
+ Paste = QsciScintillaBase::SCI_PASTE,
+
+ //! Toggle insert/overtype.
+ EditToggleOvertype = QsciScintillaBase::SCI_EDITTOGGLEOVERTYPE,
+
+ //! Insert a platform dependent newline.
+ Newline = QsciScintillaBase::SCI_NEWLINE,
+
+ //! Insert a formfeed.
+ Formfeed = QsciScintillaBase::SCI_FORMFEED,
+
+ //! Indent one level.
+ Tab = QsciScintillaBase::SCI_TAB,
+
+ //! De-indent one level.
+ Backtab = QsciScintillaBase::SCI_BACKTAB,
+
+ //! Cancel any current operation.
+ Cancel = QsciScintillaBase::SCI_CANCEL,
+
+ //! Undo the last command.
+ Undo = QsciScintillaBase::SCI_UNDO,
+
+ //! Redo the last command.
+ Redo = QsciScintillaBase::SCI_REDO,
+
+ //! Zoom in.
+ ZoomIn = QsciScintillaBase::SCI_ZOOMIN,
+
+ //! Zoom out.
+ ZoomOut = QsciScintillaBase::SCI_ZOOMOUT,
+ };
+
+ //! Return the command that will be executed by this instance.
+ Command command() const {return scicmd;}
+
+ //! Execute the command.
+ void execute();
+
+ //! 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_PageUp, \c Key_PageDown, \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, \c ALT and \c META.
+ //!
+ //! \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 QsciCommandSet;
+
+ QsciCommand(QsciScintilla *qs, Command cmd, int key, int altkey,
+ const char *desc);
+
+ void bindKey(int key,int &qk,int &scik);
+
+ QsciScintilla *qsCmd;
+ Command scicmd;
+ int qkey, scikey, qaltkey, scialtkey;
+ const char *descCmd;
+
+ QsciCommand(const QsciCommand &);
+ QsciCommand &operator=(const QsciCommand &);
+};
+
+#ifdef __APPLE__
+}
+#endif
+
+#endif
diff --git a/samples/C++/qsciprinter.h b/samples/C++/qsciprinter.h
new file mode 100644
index 0000000..f30d645
--- /dev/null
+++ b/samples/C++/qsciprinter.h
@@ -0,0 +1,116 @@
+// This module defines interface to the QsciPrinter class.
+//
+// Copyright (c) 2011 Riverbank Computing Limited <info@riverbankcomputing.com>
+//
+// This file is part of QScintilla.
+//
+// This file may be used under the terms of the GNU General Public
+// License versions 2.0 or 3.0 as published by the Free Software
+// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
+// included in the packaging of this file. Alternatively you may (at
+// your option) use any later version of the GNU General Public
+// License if such license has been publicly approved by Riverbank
+// Computing Limited (or its successors, if any) and the KDE Free Qt
+// Foundation. In addition, as a special exception, Riverbank gives you
+// certain additional rights. These rights are described in the Riverbank
+// GPL Exception version 1.1, which can be found in the file
+// GPL_EXCEPTION.txt in this package.
+//
+// If you are unsure which license is appropriate for your use, please
+// contact the sales department at sales@riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+#ifndef QSCIPRINTER_H
+#define QSCIPRINTER_H
+
+#ifdef __APPLE__
+extern "C++" {
+#endif
+
+#include <qprinter.h>
+
+#include <Qsci/qsciglobal.h>
+#include <Qsci/qsciscintilla.h>
+
+
+QT_BEGIN_NAMESPACE
+class QRect;
+class QPainter;
+QT_END_NAMESPACE
+
+class QsciScintillaBase;
+
+
+//! \brief The QsciPrinter class is a sub-class of the Qt QPrinter class that
+//! is able to print the text of a Scintilla document.
+//!
+//! The class can be further sub-classed to alter to layout of the text, adding
+//! headers and footers for example.
+class QSCINTILLA_EXPORT QsciPrinter : public QPrinter
+{
+public:
+ //! Constructs a printer paint device with mode \a mode.
+ QsciPrinter(PrinterMode mode = ScreenResolution);
+
+ //! Destroys the QsciPrinter instance.
+ virtual ~QsciPrinter();
+
+ //! Format a page, by adding headers and footers for example, before the
+ //! document text is drawn on it. \a painter is the painter to be used to
+ //! add customised text and graphics. \a drawing is true if the page is
+ //! actually being drawn rather than being sized. \a painter drawing
+ //! methods must only be called when \a drawing is true. \a area is the
+ //! area of the page that will be used to draw the text. This should be
+ //! modified if it is necessary to reserve space for any customised text or
+ //! graphics. By default the area is relative to the printable area of the
+ //! page. Use QPrinter::setFullPage() because calling printRange() if you
+ //! want to try and print over the whole page. \a pagenr is the number of
+ //! the page. The first page is numbered 1.
+ virtual void formatPage(QPainter &painter, bool drawing, QRect &area,
+ int pagenr);
+
+ //! Return the number of points to add to each font when printing.
+ //!
+ //! \sa setMagnification()
+ int magnification() const {return mag;}
+
+ //! Sets the number of points to add to each font when printing to \a
+ //! magnification.
+ //!
+ //! \sa magnification()
+ virtual void setMagnification(int magnification);
+
+ //! Print a range of lines from the Scintilla instance \a qsb. \a from is
+ //! the first line to print and a negative value signifies the first line
+ //! of text. \a to is the last line to print and a negative value
+ //! signifies the last line of text. true is returned if there was no
+ //! error.
+ virtual int printRange(QsciScintillaBase *qsb, int from = -1, int to = -1);
+
+ //! Return the line wrap mode used when printing. The default is
+ //! QsciScintilla::WrapWord.
+ //!
+ //! \sa setWrapMode()
+ QsciScintilla::WrapMode wrapMode() const {return wrap;}
+
+ //! Sets the line wrap mode used when printing to \a wmode.
+ //!
+ //! \sa wrapMode()
+ virtual void setWrapMode(QsciScintilla::WrapMode wmode);
+
+private:
+ int mag;
+ QsciScintilla::WrapMode wrap;
+
+ QsciPrinter(const QsciPrinter &);
+ QsciPrinter &operator=(const QsciPrinter &);
+};
+
+#ifdef __APPLE__
+}
+#endif
+
+#endif