// This is the SIP interface definition for QsciScintillaBase.
//
// Copyright (c) 2008 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.
// 
// Please review the following information to ensure GNU General
// Public Licensing requirements will be met:
// http://trolltech.com/products/qt/licenses/licensing/opensource/. If
// you are unsure which license is appropriate for your use, please
// review the following information:
// http://trolltech.com/products/qt/licenses/licensing/licensingoverview
// or contact the sales department at sales@riverbankcomputing.com.
// 
// This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
// INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly
// granted herein.
// 
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


class QsciScintillaBase : QWidget
{
%TypeHeaderCode
#include <Qsci/qsciscintillabase.h>
%End

public:
    enum {
        SCI_START,
        SCI_OPTIONAL_START,
        SCI_LEXER_START,
        SCI_ADDTEXT,
        SCI_ADDSTYLEDTEXT,
        SCI_INSERTTEXT,
        SCI_CLEARALL,
        SCI_CLEARDOCUMENTSTYLE,
        SCI_GETLENGTH,
        SCI_GETCHARAT,
        SCI_GETCURRENTPOS,
        SCI_GETANCHOR,
        SCI_GETSTYLEAT,
        SCI_REDO,
        SCI_SETUNDOCOLLECTION,
        SCI_SELECTALL,
        SCI_SETSAVEPOINT,
        SCI_GETSTYLEDTEXT,
        SCI_CANREDO,
        SCI_MARKERLINEFROMHANDLE,
        SCI_MARKERDELETEHANDLE,
        SCI_GETUNDOCOLLECTION,
        SCI_GETVIEWWS,
        SCI_SETVIEWWS,
        SCI_POSITIONFROMPOINT,
        SCI_POSITIONFROMPOINTCLOSE,
        SCI_GOTOLINE,
        SCI_GOTOPOS,
        SCI_SETANCHOR,
        SCI_GETCURLINE,
        SCI_GETENDSTYLED,
        SCI_CONVERTEOLS,
        SCI_GETEOLMODE,
        SCI_SETEOLMODE,
        SCI_STARTSTYLING,
        SCI_SETSTYLING,
        SCI_GETBUFFEREDDRAW,
        SCI_SETBUFFEREDDRAW,
        SCI_SETTABWIDTH,
        SCI_GETTABWIDTH,
        SCI_SETCODEPAGE,
        SCI_SETUSEPALETTE,
        SCI_MARKERDEFINE,
        SCI_MARKERSETFORE,
        SCI_MARKERSETBACK,
        SCI_MARKERADD,
        SCI_MARKERDELETE,
        SCI_MARKERDELETEALL,
        SCI_MARKERGET,
        SCI_MARKERNEXT,
        SCI_MARKERPREVIOUS,
        SCI_MARKERDEFINEPIXMAP,
        SCI_SETMARGINTYPEN,
        SCI_GETMARGINTYPEN,
        SCI_SETMARGINWIDTHN,
        SCI_GETMARGINWIDTHN,
        SCI_SETMARGINMASKN,
        SCI_GETMARGINMASKN,
        SCI_SETMARGINSENSITIVEN,
        SCI_GETMARGINSENSITIVEN,
        SCI_STYLECLEARALL,
        SCI_STYLESETFORE,
        SCI_STYLESETBACK,
        SCI_STYLESETBOLD,
        SCI_STYLESETITALIC,
        SCI_STYLESETSIZE,
        SCI_STYLESETFONT,
        SCI_STYLESETEOLFILLED,
        SCI_STYLERESETDEFAULT,
        SCI_STYLESETUNDERLINE,
        SCI_STYLESETCASE,
        SCI_STYLESETCHARACTERSET,
        SCI_SETSELFORE,
        SCI_SETSELBACK,
        SCI_SETCARETFORE,
        SCI_ASSIGNCMDKEY,
        SCI_CLEARCMDKEY,
        SCI_CLEARALLCMDKEYS,
        SCI_SETSTYLINGEX,
        SCI_STYLESETVISIBLE,
        SCI_GETCARETPERIOD,
        SCI_SETCARETPERIOD,
        SCI_SETWORDCHARS,
        SCI_BEGINUNDOACTION,
        SCI_ENDUNDOACTION,
        SCI_INDICSETSTYLE,
        SCI_INDICGETSTYLE,
        SCI_INDICSETFORE,
        SCI_INDICGETFORE,
        SCI_SETWHITESPACEFORE,
        SCI_SETWHITESPACEBACK,
        SCI_SETSTYLEBITS,
        SCI_GETSTYLEBITS,
        SCI_SETLINESTATE,
        SCI_GETLINESTATE,
        SCI_GETMAXLINESTATE,
        SCI_GETCARETLINEVISIBLE,
        SCI_SETCARETLINEVISIBLE,
        SCI_GETCARETLINEBACK,
        SCI_SETCARETLINEBACK,
        SCI_STYLESETCHANGEABLE,
        SCI_AUTOCSHOW,
        SCI_AUTOCCANCEL,
        SCI_AUTOCACTIVE,
        SCI_AUTOCPOSSTART,
        SCI_AUTOCCOMPLETE,
        SCI_AUTOCSTOPS,
        SCI_AUTOCSETSEPARATOR,
        SCI_AUTOCGETSEPARATOR,
        SCI_AUTOCSELECT,
        SCI_AUTOCSETCANCELATSTART,
        SCI_AUTOCGETCANCELATSTART,
        SCI_AUTOCSETFILLUPS,
        SCI_AUTOCSETCHOOSESINGLE,
        SCI_AUTOCGETCHOOSESINGLE,
        SCI_AUTOCSETIGNORECASE,
        SCI_AUTOCGETIGNORECASE,
        SCI_USERLISTSHOW,
        SCI_AUTOCSETAUTOHIDE,
        SCI_AUTOCGETAUTOHIDE,
        SCI_AUTOCSETDROPRESTOFWORD,
        SCI_AUTOCGETDROPRESTOFWORD,
        SCI_SETINDENT,
        SCI_GETINDENT,
        SCI_SETUSETABS,
        SCI_GETUSETABS,
        SCI_SETLINEINDENTATION,
        SCI_GETLINEINDENTATION,
        SCI_GETLINEINDENTPOSITION,
        SCI_GETCOLUMN,
        SCI_SETHSCROLLBAR,
        SCI_GETHSCROLLBAR,
        SCI_SETINDENTATIONGUIDES,
        SCI_GETINDENTATIONGUIDES,
        SCI_SETHIGHLIGHTGUIDE,
        SCI_GETHIGHLIGHTGUIDE,
        SCI_GETLINEENDPOSITION,
        SCI_GETCODEPAGE,
        SCI_GETCARETFORE,
        SCI_GETUSEPALETTE,
        SCI_GETREADONLY,
        SCI_SETCURRENTPOS,
        SCI_SETSELECTIONSTART,
        SCI_GETSELECTIONSTART,
        SCI_SETSELECTIONEND,
        SCI_GETSELECTIONEND,
        SCI_SETPRINTMAGNIFICATION,
        SCI_GETPRINTMAGNIFICATION,
        SCI_SETPRINTCOLOURMODE,
        SCI_GETPRINTCOLOURMODE,
        SCI_FINDTEXT,
        SCI_FORMATRANGE,
        SCI_GETFIRSTVISIBLELINE,
        SCI_GETLINE,
        SCI_GETLINECOUNT,
        SCI_SETMARGINLEFT,
        SCI_GETMARGINLEFT,
        SCI_SETMARGINRIGHT,
        SCI_GETMARGINRIGHT,
        SCI_GETMODIFY,
        SCI_SETSEL,
        SCI_GETSELTEXT,
        SCI_GETTEXTRANGE,
        SCI_HIDESELECTION,
        SCI_POINTXFROMPOSITION,
        SCI_POINTYFROMPOSITION,
        SCI_LINEFROMPOSITION,
        SCI_POSITIONFROMLINE,
        SCI_LINESCROLL,
        SCI_SCROLLCARET,
        SCI_REPLACESEL,
        SCI_SETREADONLY,
        SCI_NULL,
        SCI_CANPASTE,
        SCI_CANUNDO,
        SCI_EMPTYUNDOBUFFER,
        SCI_UNDO,
        SCI_CUT,
        SCI_COPY,
        SCI_PASTE,
        SCI_CLEAR,
        SCI_SETTEXT,
        SCI_GETTEXT,
        SCI_GETTEXTLENGTH,
        SCI_GETDIRECTFUNCTION,
        SCI_GETDIRECTPOINTER,
        SCI_SETOVERTYPE,
        SCI_GETOVERTYPE,
        SCI_SETCARETWIDTH,
        SCI_GETCARETWIDTH,
        SCI_SETTARGETSTART,
        SCI_GETTARGETSTART,
        SCI_SETTARGETEND,
        SCI_GETTARGETEND,
        SCI_REPLACETARGET,
        SCI_REPLACETARGETRE,
        SCI_SEARCHINTARGET,
        SCI_SETSEARCHFLAGS,
        SCI_GETSEARCHFLAGS,
        SCI_CALLTIPSHOW,
        SCI_CALLTIPCANCEL,
        SCI_CALLTIPACTIVE,
        SCI_CALLTIPPOSSTART,
        SCI_CALLTIPSETHLT,
        SCI_CALLTIPSETBACK,
        SCI_CALLTIPSETFORE,
        SCI_CALLTIPSETFOREHLT,
        SCI_AUTOCSETMAXWIDTH,
        SCI_AUTOCGETMAXWIDTH,
        SCI_AUTOCSETMAXHEIGHT,
        SCI_AUTOCGETMAXHEIGHT,
        SCI_CALLTIPUSESTYLE,
        SCI_VISIBLEFROMDOCLINE,
        SCI_DOCLINEFROMVISIBLE,
        SCI_SETFOLDLEVEL,
        SCI_GETFOLDLEVEL,
        SCI_GETLASTCHILD,
        SCI_GETFOLDPARENT,
        SCI_SHOWLINES,
        SCI_HIDELINES,
        SCI_GETLINEVISIBLE,
        SCI_SETFOLDEXPANDED,
        SCI_GETFOLDEXPANDED,
        SCI_TOGGLEFOLD,
        SCI_ENSUREVISIBLE,
        SCI_SETFOLDFLAGS,
        SCI_ENSUREVISIBLEENFORCEPOLICY,
        SCI_WRAPCOUNT,
        SCI_SETTABINDENTS,
        SCI_GETTABINDENTS,
        SCI_SETBACKSPACEUNINDENTS,
        SCI_GETBACKSPACEUNINDENTS,
        SCI_SETMOUSEDWELLTIME,
        SCI_GETMOUSEDWELLTIME,
        SCI_WORDSTARTPOSITION,
        SCI_WORDENDPOSITION,
        SCI_SETWRAPMODE,
        SCI_GETWRAPMODE,
        SCI_SETLAYOUTCACHE,
        SCI_GETLAYOUTCACHE,
        SCI_SETSCROLLWIDTH,
        SCI_GETSCROLLWIDTH,
        SCI_TEXTWIDTH,
        SCI_SETENDATLASTLINE,
        SCI_GETENDATLASTLINE,
        SCI_TEXTHEIGHT,
        SCI_SETVSCROLLBAR,
        SCI_GETVSCROLLBAR,
        SCI_APPENDTEXT,
        SCI_GETTWOPHASEDRAW,
        SCI_SETTWOPHASEDRAW,
        SCI_AUTOCGETTYPESEPARATOR,
        SCI_AUTOCSETTYPESEPARATOR,
        SCI_TARGETFROMSELECTION,
        SCI_LINESJOIN,
        SCI_LINESSPLIT,
        SCI_SETFOLDMARGINCOLOUR,
        SCI_SETFOLDMARGINHICOLOUR,
        SCI_LINEDOWN,
        SCI_LINEDOWNEXTEND,
        SCI_LINEUP,
        SCI_LINEUPEXTEND,
        SCI_CHARLEFT,
        SCI_CHARLEFTEXTEND,
        SCI_CHARRIGHT,
        SCI_CHARRIGHTEXTEND,
        SCI_WORDLEFT,
        SCI_WORDLEFTEXTEND,
        SCI_WORDRIGHT,
        SCI_WORDRIGHTEXTEND,
        SCI_HOME,
        SCI_HOMEEXTEND,
        SCI_LINEEND,
        SCI_LINEENDEXTEND,
        SCI_DOCUMENTSTART,
        SCI_DOCUMENTSTARTEXTEND,
        SCI_DOCUMENTEND,
        SCI_DOCUMENTENDEXTEND,
        SCI_PAGEUP,
        SCI_PAGEUPEXTEND,
        SCI_PAGEDOWN,
        SCI_PAGEDOWNEXTEND,
        SCI_EDITTOGGLEOVERTYPE,
        SCI_CANCEL,
        SCI_DELETEBACK,
        SCI_TAB,
        SCI_BACKTAB,
        SCI_NEWLINE,
        SCI_FORMFEED,
        SCI_VCHOME,
        SCI_VCHOMEEXTEND,
        SCI_ZOOMIN,
        SCI_ZOOMOUT,
        SCI_DELWORDLEFT,
        SCI_DELWORDRIGHT,
        SCI_LINECUT,
        SCI_LINEDELETE,
        SCI_LINETRANSPOSE,
        SCI_LOWERCASE,
        SCI_UPPERCASE,
        SCI_LINESCROLLDOWN,
        SCI_LINESCROLLUP,
        SCI_DELETEBACKNOTLINE,
        SCI_HOMEDISPLAY,
        SCI_HOMEDISPLAYEXTEND,
        SCI_LINEENDDISPLAY,
        SCI_LINEENDDISPLAYEXTEND,
        SCI_MOVECARETINSIDEVIEW,
        SCI_LINELENGTH,
        SCI_BRACEHIGHLIGHT,
        SCI_BRACEBADLIGHT,
        SCI_BRACEMATCH,
        SCI_GETVIEWEOL,
        SCI_SETVIEWEOL,
        SCI_GETDOCPOINTER,
        SCI_SETDOCPOINTER,
        SCI_SETMODEVENTMASK,
        SCI_GETEDGECOLUMN,
        SCI_SETEDGECOLUMN,
        SCI_GETEDGEMODE,
        SCI_SETEDGEMODE,
        SCI_GETEDGECOLOUR,
        SCI_SETEDGECOLOUR,
        SCI_SEARCHANCHOR,
        SCI_SEARCHNEXT,
        SCI_SEARCHPREV,
        SCI_LINESONSCREEN,
        SCI_USEPOPUP,
        SCI_SELECTIONISRECTANGLE,
        SCI_SETZOOM,
        SCI_GETZOOM,
        SCI_CREATEDOCUMENT,
        SCI_ADDREFDOCUMENT,
        SCI_RELEASEDOCUMENT,
        SCI_GETMODEVENTMASK,
        SCI_SETFOCUS,
        SCI_GETFOCUS,
        SCI_SETSTATUS,
        SCI_GETSTATUS,
        SCI_SETMOUSEDOWNCAPTURES,
        SCI_GETMOUSEDOWNCAPTURES,
        SCI_SETCURSOR,
        SCI_GETCURSOR,
        SCI_SETCONTROLCHARSYMBOL,
        SCI_GETCONTROLCHARSYMBOL,
        SCI_WORDPARTLEFT,
        SCI_WORDPARTLEFTEXTEND,
        SCI_WORDPARTRIGHT,
        SCI_WORDPARTRIGHTEXTEND,
        SCI_SETVISIBLEPOLICY,
        SCI_DELLINELEFT,
        SCI_DELLINERIGHT,
        SCI_SETXOFFSET,
        SCI_GETXOFFSET,
        SCI_CHOOSECARETX,
        SCI_GRABFOCUS,
        SCI_SETXCARETPOLICY,
        SCI_SETYCARETPOLICY,
        SCI_LINEDUPLICATE,
        SCI_REGISTERIMAGE,
        SCI_SETPRINTWRAPMODE,
        SCI_GETPRINTWRAPMODE,
        SCI_CLEARREGISTEREDIMAGES,
        SCI_STYLESETHOTSPOT,
        SCI_SETHOTSPOTACTIVEFORE,
        SCI_SETHOTSPOTACTIVEBACK,
        SCI_SETHOTSPOTACTIVEUNDERLINE,
        SCI_PARADOWN,
        SCI_PARADOWNEXTEND,
        SCI_PARAUP,
        SCI_PARAUPEXTEND,
        SCI_POSITIONBEFORE,
        SCI_POSITIONAFTER,
        SCI_COPYRANGE,
        SCI_COPYTEXT,
        SCI_SETSELECTIONMODE,
        SCI_GETSELECTIONMODE,
        SCI_GETLINESELSTARTPOSITION,
        SCI_GETLINESELENDPOSITION,
        SCI_LINEDOWNRECTEXTEND,
        SCI_LINEUPRECTEXTEND,
        SCI_CHARLEFTRECTEXTEND,
        SCI_CHARRIGHTRECTEXTEND,
        SCI_HOMERECTEXTEND,
        SCI_VCHOMERECTEXTEND,
        SCI_LINEENDRECTEXTEND,
        SCI_PAGEUPRECTEXTEND,
        SCI_PAGEDOWNRECTEXTEND,
        SCI_STUTTEREDPAGEUP,
        SCI_STUTTEREDPAGEUPEXTEND,
        SCI_STUTTEREDPAGEDOWN,
        SCI_STUTTEREDPAGEDOWNEXTEND,
        SCI_WORDLEFTEND,
        SCI_WORDLEFTENDEXTEND,
        SCI_WORDRIGHTEND,
        SCI_WORDRIGHTENDEXTEND,
        SCI_SETWHITESPACECHARS,
        SCI_SETCHARSDEFAULT,
        SCI_AUTOCGETCURRENT,
        SCI_ALLOCATE,
        SCI_HOMEWRAP,
        SCI_HOMEWRAPEXTEND,
        SCI_LINEENDWRAP,
        SCI_LINEENDWRAPEXTEND,
        SCI_VCHOMEWRAP,
        SCI_VCHOMEWRAPEXTEND,
        SCI_LINECOPY,
        SCI_FINDCOLUMN,
        SCI_GETCARETSTICKY,
        SCI_SETCARETSTICKY,
        SCI_TOGGLECARETSTICKY,
        SCI_SETWRAPVISUALFLAGS,
        SCI_GETWRAPVISUALFLAGS,
        SCI_SETWRAPVISUALFLAGSLOCATION,
        SCI_GETWRAPVISUALFLAGSLOCATION,
        SCI_SETWRAPSTARTINDENT,
        SCI_GETWRAPSTARTINDENT,
        SCI_MARKERADDSET,
        SCI_SETPASTECONVERTENDINGS
        SCI_GETPASTECONVERTENDINGS
        SCI_SELECTIONDUPLICATE
        SCI_SETCARETLINEBACKALPHA
        SCI_GETCARETLINEBACKALPHA
        SCI_MARKERSETALPHA,
        SCI_GETSELALPHA,
        SCI_SETSELALPHA,
        SCI_GETSELEOLFILLED,
        SCI_SETSELEOLFILLED,
        SCI_STYLEGETFORE,
        SCI_STYLEGETBACK,
        SCI_STYLEGETBOLD,
        SCI_STYLEGETITALIC,
        SCI_STYLEGETSIZE,
        SCI_STYLEGETFONT,
        SCI_STYLEGETEOLFILLED,
        SCI_STYLEGETUNDERLINE,
        SCI_STYLEGETCASE,
        SCI_STYLEGETCHARACTERSET,
        SCI_STYLEGETVISIBLE,
        SCI_STYLEGETCHANGEABLE,
        SCI_STYLEGETHOTSPOT,
        SCI_GETHOTSPOTACTIVEFORE,
        SCI_GETHOTSPOTACTIVEBACK,
        SCI_GETHOTSPOTACTIVEUNDERLINE,
        SCI_GETHOTSPOTSINGLELINE,
        SCI_SETINDICATORCURRENT,
        SCI_GETINDICATORCURRENT,
        SCI_SETINDICATORVALUE,
        SCI_GETINDICATORVALUE,
        SCI_INDICATORFILLRANGE,
        SCI_INDICATORCLEARRANGE,
        SCI_INDICATORALLONFOR,
        SCI_INDICATORVALUEAT,
        SCI_INDICATORSTART,
        SCI_INDICATOREND,
        SCI_INDICSETUNDER,
        SCI_INDICGETUNDER,
        SCI_SETCARETSTYLE,
        SCI_GETCARETSTYLE,
        SCI_SETPOSITIONCACHE,
        SCI_GETPOSITIONCACHE,
        SCI_SETSCROLLWIDTHTRACKING,
        SCI_GETSCROLLWIDTHTRACKING,
        SCI_DELWORDRIGHTEND,
        SCI_COPYALLOWLINE,
        SCI_GETCHARACTERPOINTER,
        SCI_SETKEYSUNICODE,
        SCI_GETKEYSUNICODE,
        SCI_STARTRECORD,
        SCI_STOPRECORD,
        SCI_SETLEXER,
        SCI_GETLEXER,
        SCI_COLOURISE,
        SCI_SETPROPERTY,
        SCI_SETKEYWORDS,
        SCI_SETLEXERLANGUAGE,
        SCI_LOADLEXERLIBRARY,
        SCI_GETPROPERTY,
        SCI_GETPROPERTYEXPANDED,
        SCI_GETPROPERTYINT,
        SCI_GETSTYLEBITSNEEDED,
    };

    enum
    {
        SC_ALPHA_TRANSPARENT,
        SC_ALPHA_OPAQUE,
        SC_ALPHA_NOALPHA,
    };

    enum
    {
        SC_WRAPVISUALFLAG_NONE,
        SC_WRAPVISUALFLAG_END,
        SC_WRAPVISUALFLAG_START
    };

    enum
    {
        SC_WRAPVISUALFLAGLOC_DEFAULT,
        SC_WRAPVISUALFLAGLOC_END_BY_TEXT,
        SC_WRAPVISUALFLAGLOC_START_BY_TEXT
    };

    enum {
        SC_SEL_STREAM,
        SC_SEL_RECTANGLE,
        SC_SEL_LINES
    };

    enum {
        SCWS_INVISIBLE,
        SCWS_VISIBLEALWAYS,
        SCWS_VISIBLEAFTERINDENT
    };

    enum {
        SC_EOL_CRLF,
        SC_EOL_CR,
        SC_EOL_LF
    };

    enum {
        SC_CP_DBCS,
        SC_CP_UTF8
    };

    enum {
        SC_MARK_CIRCLE,
        SC_MARK_ROUNDRECT,
        SC_MARK_ARROW,
        SC_MARK_SMALLRECT,
        SC_MARK_SHORTARROW,
        SC_MARK_EMPTY,
        SC_MARK_ARROWDOWN,
        SC_MARK_MINUS,
        SC_MARK_PLUS,
        SC_MARK_VLINE,
        SC_MARK_LCORNER,
        SC_MARK_TCORNER,
        SC_MARK_BOXPLUS,
        SC_MARK_BOXPLUSCONNECTED,
        SC_MARK_BOXMINUS,
        SC_MARK_BOXMINUSCONNECTED,
        SC_MARK_LCORNERCURVE,
        SC_MARK_TCORNERCURVE,
        SC_MARK_CIRCLEPLUS,
        SC_MARK_CIRCLEPLUSCONNECTED,
        SC_MARK_CIRCLEMINUS,
        SC_MARK_CIRCLEMINUSCONNECTED,
        SC_MARK_BACKGROUND,
        SC_MARK_DOTDOTDOT,
        SC_MARK_ARROWS,
        SC_MARK_PIXMAP,
        SC_MARK_FULLRECT,
        SC_MARK_LEFTRECT,
        SC_MARK_CHARACTER
    };

    enum {
        SC_MARKNUM_FOLDEREND,
        SC_MARKNUM_FOLDEROPENMID,
        SC_MARKNUM_FOLDERMIDTAIL,
        SC_MARKNUM_FOLDERTAIL,
        SC_MARKNUM_FOLDERSUB,
        SC_MARKNUM_FOLDER,
        SC_MARKNUM_FOLDEROPEN,
        SC_MASK_FOLDERS
    };

    enum {
        SC_MARGIN_SYMBOL,
        SC_MARGIN_NUMBER,
        SC_MARGIN_BACK,
        SC_MARGIN_FORE,
    };

    enum {
        STYLE_DEFAULT,
        STYLE_LINENUMBER,
        STYLE_BRACELIGHT,
        STYLE_BRACEBAD,
        STYLE_CONTROLCHAR,
        STYLE_INDENTGUIDE,
        STYLE_CALLTIP,
        STYLE_LASTPREDEFINED,
        STYLE_MAX
    };

    enum {
        SC_CHARSET_ANSI,
        SC_CHARSET_DEFAULT,
        SC_CHARSET_BALTIC,
        SC_CHARSET_CHINESEBIG5,
        SC_CHARSET_EASTEUROPE,
        SC_CHARSET_GB2312,
        SC_CHARSET_GREEK,
        SC_CHARSET_HANGUL,
        SC_CHARSET_MAC,
        SC_CHARSET_OEM,
        SC_CHARSET_RUSSIAN,
        SC_CHARSET_SHIFTJIS,
        SC_CHARSET_SYMBOL,
        SC_CHARSET_TURKISH,
        SC_CHARSET_JOHAB,
        SC_CHARSET_HEBREW,
        SC_CHARSET_ARABIC,
        SC_CHARSET_VIETNAMESE,
        SC_CHARSET_THAI,
        SC_CHARSET_8859_15,
    };

    enum {
        SC_CASE_MIXED,
        SC_CASE_UPPER,
        SC_CASE_LOWER
    };

    enum
    {
        SC_IV_NONE,
        SC_IV_REAL,
        SC_IV_LOOKFORWARD,
        SC_IV_LOOKBOTH
    };

    enum {
        INDIC_MAX,
        INDIC_PLAIN,
        INDIC_SQUIGGLE,
        INDIC_TT,
        INDIC_DIAGONAL,
        INDIC_STRIKE,
        INDIC_HIDDEN,
        INDIC_BOX,
        INDIC_ROUNDBOX,
        INDIC_CONTAINER,
        INDIC0_MASK,
        INDIC1_MASK,
        INDIC2_MASK,
        INDICS_MASK
    };

    enum {
        SC_PRINT_NORMAL,
        SC_PRINT_INVERTLIGHT,
        SC_PRINT_BLACKONWHITE,
        SC_PRINT_COLOURONWHITE,
        SC_PRINT_COLOURONWHITEDEFAULTBG
    };

    enum {
        SCFIND_WHOLEWORD,
        SCFIND_MATCHCASE,
        SCFIND_WORDSTART,
        SCFIND_REGEXP,
        SCFIND_POSIX
    };

    enum {
        SC_FOLDLEVELBASE,
        SC_FOLDLEVELWHITEFLAG,
        SC_FOLDLEVELHEADERFLAG,
        SC_FOLDLEVELBOXHEADERFLAG,
        SC_FOLDLEVELBOXFOOTERFLAG,
        SC_FOLDLEVELCONTRACTED,
        SC_FOLDLEVELUNINDENT,
        SC_FOLDLEVELNUMBERMASK
    };

    enum
    {
        SC_FOLDFLAG_BOX,
        SC_FOLDFLAG_LINEBEFORE_EXPANDED,
        SC_FOLDFLAG_LINEBEFORE_CONTRACTED,
        SC_FOLDFLAG_LINEAFTER_EXPANDED,
        SC_FOLDFLAG_LINEAFTER_CONTRACTED,
        SC_FOLDFLAG_LEVELNUMBERS
    };

    enum {
        SC_TIME_FOREVER
    };

    enum {
        SC_WRAP_NONE,
        SC_WRAP_WORD,
        SC_WRAP_CHAR,
    };

    enum {
        SC_CACHE_NONE,
        SC_CACHE_CARET,
        SC_CACHE_PAGE,
        SC_CACHE_DOCUMENT
    };

    enum {
        EDGE_NONE,
        EDGE_LINE,
        EDGE_BACKGROUND
    };

    enum {
        SC_CURSORNORMAL,
        SC_CURSORWAIT
    };

    enum {
        VISIBLE_SLOP,
        VISIBLE_STRICT
    };

    enum {
        CARET_SLOP,
        CARET_STRICT,
        CARET_JUMPS,
        CARET_EVEN
    };

    enum
    {
        CARETSTYLE_INVISIBLE,
        CARETSTYLE_LINE,
        CARETSTYLE_BLOCK
    };

    enum {
        SC_MOD_INSERTTEXT,
        SC_MOD_DELETETEXT,
        SC_MOD_CHANGESTYLE,
        SC_MOD_CHANGEFOLD,
        SC_PERFORMED_USER,
        SC_PERFORMED_UNDO,
        SC_PERFORMED_REDO,
        SC_MULTISTEPUNDOREDO,
        SC_LASTSTEPINUNDOREDO,
        SC_MOD_CHANGEMARKER,
        SC_MOD_BEFOREINSERT,
        SC_MOD_BEFOREDELETE,
        SC_MULTILINEUNDOREDO,
        SC_STARTACTION,
        SC_MOD_CHANGEINDICATOR,
        SC_MOD_CHANGELINESTATE,
        SC_MODEVENTMASKALL
    };

    enum {
        SCK_DOWN,
        SCK_UP,
        SCK_LEFT,
        SCK_RIGHT,
        SCK_HOME,
        SCK_END,
        SCK_PRIOR,
        SCK_NEXT,
        SCK_DELETE,
        SCK_INSERT,
        SCK_ESCAPE,
        SCK_BACK,
        SCK_TAB,
        SCK_RETURN,
        SCK_ADD,
        SCK_SUBTRACT,
        SCK_DIVIDE,
        SCK_WIN,
        SCK_RWIN,
        SCK_MENU
    };

    enum {
        SCMOD_NORM,
        SCMOD_SHIFT,
        SCMOD_CTRL,
        SCMOD_ALT
    };

    enum {
        SCLEX_CONTAINER,
        SCLEX_NULL,
        SCLEX_PYTHON,
        SCLEX_CPP,
        SCLEX_HTML,
        SCLEX_XML,
        SCLEX_PERL,
        SCLEX_SQL,
        SCLEX_VB,
        SCLEX_PROPERTIES,
        SCLEX_ERRORLIST,
        SCLEX_MAKEFILE,
        SCLEX_BATCH,
        SCLEX_LATEX,
        SCLEX_LUA,
        SCLEX_DIFF,
        SCLEX_CONF,
        SCLEX_PASCAL,
        SCLEX_AVE,
        SCLEX_ADA,
        SCLEX_LISP,
        SCLEX_RUBY,
        SCLEX_EIFFEL,
        SCLEX_EIFFELKW,
        SCLEX_TCL,
        SCLEX_NNCRONTAB,
        SCLEX_BULLANT,
        SCLEX_VBSCRIPT,
        SCLEX_ASP,
        SCLEX_PHP,
        SCLEX_BAAN,
        SCLEX_MATLAB,
        SCLEX_SCRIPTOL,
        SCLEX_ASM,
        SCLEX_CPPNOCASE,
        SCLEX_FORTRAN,
        SCLEX_F77,
        SCLEX_CSS,
        SCLEX_POV,
        SCLEX_LOUT,
        SCLEX_ESCRIPT,
        SCLEX_PS,
        SCLEX_NSIS,
        SCLEX_MMIXAL,
        SCLEX_CLW,
        SCLEX_CLWNOCASE,
        SCLEX_LOT,
        SCLEX_YAML,
        SCLEX_TEX,
        SCLEX_METAPOST,
        SCLEX_POWERBASIC,
        SCLEX_FORTH,
        SCLEX_ERLANG,
        SCLEX_OCTAVE,
        SCLEX_MSSQL,
        SCLEX_VERILOG,
        SCLEX_KIX,
        SCLEX_GUI4CLI,
        SCLEX_SPECMAN,
        SCLEX_AU3,
        SCLEX_APDL,
        SCLEX_BASH,
        SCLEX_ASN1,
        SCLEX_VHDL,
        SCLEX_CAML,
        SCLEX_BLITZBASIC,
        SCLEX_PUREBASIC,
        SCLEX_HASKELL,
        SCLEX_PHPSCRIPT,
        SCLEX_TADS3,
        SCLEX_REBOL,
        SCLEX_SMALLTALK,
        SCLEX_FLAGSHIP,
        SCLEX_CSOUND,
        SCLEX_FREEBASIC,
        SCLEX_INNOSETUP,
        SCLEX_OPAL,
        SCLEX_SPICE,
        SCLEX_D,
        SCLEX_CMAKE,
        SCLEX_GAP,
        SCLEX_PLM,
        SCLEX_PROGRESS,
        SCLEX_ABAQUS,
        SCLEX_ASYMPTOTE,
        SCLEX_R,
        SCLEX_MAGIK,
        SCLEX_POWERSHELL,
        SCLEX_MYSQL,
        SCLEX_PO,
    };

    QsciScintillaBase(QWidget *parent /TransferThis/ = 0, const char *name = 0,
            WFlags f = 0);
    virtual ~QsciScintillaBase();

%ConvertToSubClassCode
static struct class_graph {
    char *name;
    sipWrapperType **type;
    int yes, no;
} graph[] = {
    {sipName_QsciMacro, &sipClass_QsciMacro, -1, 1},
    {sipName_QsciAbstractAPIs, &sipClass_QsciAbstractAPIs, 4, 2},
    {sipName_QsciScintillaBase, &sipClass_QsciScintillaBase, 5, 3},
    {sipName_QsciLexer, &sipClass_QsciLexer, 6, -1},
    {sipName_QsciAPIs, &sipClass_QsciAPIs, -1, -1},
    {sipName_QsciScintilla, &sipClass_QsciScintilla, -1, -1},
    {sipName_QsciLexerBash, &sipClass_QsciLexerBash, -1, 7},
    {sipName_QsciLexerMakefile, &sipClass_QsciLexerMakefile, -1, 8},
    {sipName_QsciLexerCSS, &sipClass_QsciLexerCSS, -1, 9},
    {sipName_QsciLexerPerl, &sipClass_QsciLexerPerl, -1, 10},
    {sipName_QsciLexerBatch, &sipClass_QsciLexerBatch, -1, 11},
    {sipName_QsciLexerDiff, &sipClass_QsciLexerDiff, -1, 12},
    {sipName_QsciLexerD, &sipClass_QsciLexerD, -1, 13},
    {sipName_QsciLexerYAML, &sipClass_QsciLexerYAML, -1, 14},
    {sipName_QsciLexerSQL, &sipClass_QsciLexerSQL, -1, 15},
    {sipName_QsciLexerVHDL, &sipClass_QsciLexerVHDL, -1, 16},
    {sipName_QsciLexerLua, &sipClass_QsciLexerLua, -1, 17},
    {sipName_QsciLexerRuby, &sipClass_QsciLexerRuby, -1, 18},
    {sipName_QsciLexerCMake, &sipClass_QsciLexerCMake, -1, 19},
    {sipName_QsciLexerFortran77, &sipClass_QsciLexerFortran77, 29, 20},
    {sipName_QsciLexerPostScript, &sipClass_QsciLexerPostScript, -1, 21},
    {sipName_QsciLexerPOV, &sipClass_QsciLexerPOV, -1, 22},
    {sipName_QsciLexerPascal, &sipClass_QsciLexerPascal, -1, 23},
    {sipName_QsciLexerPython, &sipClass_QsciLexerPython, -1, 24},
    {sipName_QsciLexerTeX, &sipClass_QsciLexerTeX, -1, 25},
    {sipName_QsciLexerHTML, &sipClass_QsciLexerHTML, 30, 26},
    {sipName_QsciLexerCPP, &sipClass_QsciLexerCPP, 31, 27},
    {sipName_QsciLexerProperties, &sipClass_QsciLexerProperties, -1, 28},
    {sipName_QsciLexerTCL, &sipClass_QsciLexerTCL, -1, -1},
    {sipName_QsciLexerFortran, &sipClass_QsciLexerFortran, -1, -1},
    {sipName_QsciLexerXML, &sipClass_QsciLexerXML, -1, -1},
    {sipName_QsciLexerCSharp, &sipClass_QsciLexerCSharp, -1, 32},
    {sipName_QsciLexerIDL, &sipClass_QsciLexerIDL, -1, 33},
    {sipName_QsciLexerJava, &sipClass_QsciLexerJava, -1, 34},
    {sipName_QsciLexerJavaScript, &sipClass_QsciLexerJavaScript, -1, -1},
};

int i = 0;

sipClass = NULL;

do
{
    struct class_graph *cg = &graph[i];

    if (cg->name != NULL && sipCpp->inherits(cg->name))
    {
        sipClass = *cg->type;
        i = cg->yes;
    }
    else
        i = cg->no;
}
while (i >= 0);
%End

    static QsciScintillaBase *pool();

    long SendScintilla(unsigned int msg, unsigned long wParam = 0,
            long lParam = 0) const;
    long SendScintilla(unsigned int msg, unsigned long wParam,
            void *lParam) const;
    long SendScintilla(unsigned int msg, unsigned long wParam,
            const char *lParam) const;
    long SendScintilla(unsigned int msg, const char *lParam); const
    long SendScintilla(unsigned int msg, const char *wParam,
            const char *lParam) const;
    long SendScintilla(unsigned int msg, long wParam) const;
    //long SendScintilla(unsigned int msg, int wParam) const;
    long SendScintilla(unsigned int msg, long cpMin, long cpMax,
            char *lpstrText) const;
    long SendScintilla(unsigned int msg, unsigned long wParam,
            const QColor &col) const;
    long SendScintilla(unsigned int msg, const QColor &col) const;
    long SendScintilla(unsigned int msg, unsigned long wParam, QPainter *hdc,
            const QRect &rc, long cpMin, long cpMax) const;
    long SendScintilla(unsigned int msg, unsigned long wParam,
            const QPixmap &lParam) const;

    void *SendScintillaPtrResult(unsigned int msg) const;

    QScrollBar *horizontalScrollBar() const;
    QScrollBar *verticalScrollBar() const;
    QWidget *viewport() const;
    virtual bool eventFilter(QObject *o, QEvent *e);

signals:
    void QSCN_SELCHANGED(bool yes);

    void SCEN_CHANGE();

    void SCN_AUTOCCANCELLED();
    void SCN_AUTOCSELECTION(const char *selection, int position);
    void SCN_CALLTIPCLICK(int direction);
    void SCN_CHARADDED(int charadded);
    void SCN_DOUBLECLICK(int position, int line, int modifiers);
    void SCN_DWELLEND(int, int, int);
    void SCN_DWELLSTART(int, int, int);
    void SCN_HOTSPOTCLICK(int position, int modifiers);
    void SCN_HOTSPOTDOUBLECLICK(int position, int modifiers);
    void SCN_INDICATORCLICK(int position, int modifiers);
    void SCN_INDICATORRELEASE(int position, int modifiers);
    void SCN_MACRORECORD(unsigned int, unsigned long, void *);
    void SCN_MARGINCLICK(int position, int modifiers, int margin);
    void SCN_MODIFIED(int, int, const char *, int, int, int, int, int);
    void SCN_MODIFYATTEMPTRO();
    void SCN_NEEDSHOWN(int, int);
    void SCN_PAINTED();
    void SCN_SAVEPOINTLEFT();
    void SCN_SAVEPOINTREACHED();
    void SCN_STYLENEEDED(int position);
    void SCN_UPDATEUI();
    void SCN_USERLISTSELECTION(const char *, int);
    void SCN_ZOOM();

protected:
    virtual void contextMenuEvent(QContextMenuEvent *e);
    virtual void dragEnterEvent(QDragEnterEvent *e);
    virtual void dragLeaveEvent(QDragLeaveEvent *e);
    virtual void dragMoveEvent(QDragMoveEvent *e);
    virtual void dropEvent(QDropEvent *e);
    virtual void focusInEvent(QFocusEvent *e);
    virtual void focusOutEvent(QFocusEvent *e);
    virtual bool focusNextPrevChild(bool next);
    virtual void keyPressEvent(QKeyEvent *e);
    virtual void mouseDoubleClickEvent(QMouseEvent *e);
    virtual void mouseMoveEvent(QMouseEvent *e);
    virtual void mousePressEvent(QMouseEvent *e);
    virtual void mouseReleaseEvent(QMouseEvent *e);
    virtual void paintEvent(QPaintEvent *e);
    virtual void resizeEvent(QResizeEvent *e);

private:
    QsciScintillaBase(const QsciScintillaBase &);
};
