// This is the SIP interface definition for QextScintillaBase.
//
// Copyright (c) 2007
// 	Riverbank Computing Limited <info@riverbankcomputing.co.uk>
// 
// This file is part of PyQt.
// 
// This copy of PyQt 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.
// 
// PyQt 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
// PyQt; see the file LICENSE.  If not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


// The documentation is in the main documentation file because SIP isn't clever
// enough to handle the resulting %Timeline complexity.


class QextScintillaBase : QWidget
{
%TypeHeaderCode
#include <qextscintillabase.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,
%If (QScintilla_1_6 -)
		SCI_AUTOCSETMAXWIDTH,
		SCI_AUTOCGETMAXWIDTH,
		SCI_AUTOCSETMAXHEIGHT,
		SCI_AUTOCGETMAXHEIGHT,
%End
%If (QScintilla_1_7 -)
		SCI_CALLTIPUSESTYLE,
%End
		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,
%If (QScintilla_1_6 -)
		SCI_WRAPCOUNT,
%End
		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,
%If (QScintilla_1_1 -)
		SCI_POSITIONBEFORE,
		SCI_POSITIONAFTER,
		SCI_COPYRANGE,
		SCI_COPYTEXT,
%End
%If (QScintilla_1_3 -)
		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,
%End
		SCI_HOMEWRAP,
		SCI_HOMEWRAPEXTEND,
		SCI_LINEENDWRAP,
		SCI_LINEENDWRAPEXTEND,
		SCI_VCHOMEWRAP,
		SCI_VCHOMEWRAPEXTEND,
%If (QScintilla_1_1 -)
		SCI_LINECOPY,
%End
%If (QScintilla_1_6 -)
		SCI_FINDCOLUMN,
		SCI_GETCARETSTICKY,
		SCI_SETCARETSTICKY,
		SCI_TOGGLECARETSTICKY,
%End
%If (QScintilla_1_3 -)
		SCI_SETWRAPVISUALFLAGS,
		SCI_GETWRAPVISUALFLAGS,
		SCI_SETWRAPVISUALFLAGSLOCATION,
		SCI_GETWRAPVISUALFLAGSLOCATION,
		SCI_SETWRAPSTARTINDENT,
		SCI_GETWRAPSTARTINDENT,
%End
%If (QScintilla_1_7 -)
		SCI_MARKERADDSET,
		SCI_SETPASTECONVERTENDINGS
		SCI_GETPASTECONVERTENDINGS
		SCI_SELECTIONDUPLICATE
		SCI_SETCARETLINEBACKALPHA
		SCI_GETCARETLINEBACKALPHA
		SCI_MARKERSETALPHA,
		SCI_GETSELALPHA,
		SCI_SETSELALPHA,
%End
		SCI_STARTRECORD,
		SCI_STOPRECORD,
		SCI_SETLEXER,
		SCI_GETLEXER,
		SCI_COLOURISE,
		SCI_SETPROPERTY,
		SCI_SETKEYWORDS,
		SCI_SETLEXERLANGUAGE,
%If (QScintilla_1_6 -)
		SCI_LOADLEXERLIBRARY,
		SCI_GETPROPERTY,
		SCI_GETPROPERTYEXPANDED,
		SCI_GETPROPERTYINT,
%End
%If (QScintilla_1_7 -)
		SCI_GETSTYLEBITSNEEDED,
%End
	};

%If (QScintilla_1_7 -)
	enum
	{
		SC_ALPHA_TRANSPARENT,
		SC_ALPHA_OPAQUE,
		SC_ALPHA_NOALPHA,
	};
%End

%If (QScintilla_1_3 -)
	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
	};
%End

	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,
%If (QScintilla_1_6 -)
		SC_MARK_FULLRECT,
%End
		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,
%If (QScintilla_1_7 -)
		SC_MARGIN_BACK,
		SC_MARGIN_FORE,
%End
	};

	enum {
		STYLE_DEFAULT,
		STYLE_LINENUMBER,
		STYLE_BRACELIGHT,
		STYLE_BRACEBAD,
		STYLE_CONTROLCHAR,
		STYLE_INDENTGUIDE,
%If (QScintilla_1_7 -)
		STYLE_CALLTIP,
%End
		STYLE_LASTPREDEFINED,
%If (QScintilla_1_3 -)
		STYLE_MAX
%End
	};

	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,
%If (QScintilla_1_6 -)
		SC_CHARSET_8859_15,
%End
	};

	enum {
		SC_CASE_MIXED,
		SC_CASE_UPPER,
		SC_CASE_LOWER
	};

	enum {
		INDIC_MAX,
		INDIC_PLAIN,
		INDIC_SQUIGGLE,
		INDIC_TT,
		INDIC_DIAGONAL,
		INDIC_STRIKE,
%If (QScintilla_1_2 -)
		INDIC_HIDDEN,
%End
%If (QScintilla_1_3 -)
		INDIC_BOX,
%End
%If (QScintilla_1_7 -)
		INDIC_ROUNDBOX,
%End
		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,
%If (QScintilla_1_6 -)
		SC_WRAP_CHAR,
%End
	};

	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 {
		SC_MOD_INSERTTEXT,
		SC_MOD_DELETETEXT,
		SC_MOD_CHANGESTYLE,
		SC_MOD_CHANGEFOLD,
		SC_PERFORMED_USER,
		SC_PERFORMED_UNDO,
		SC_PERFORMED_REDO,
%If (QScintilla_1_6 -)
		SC_MULTISTEPUNDOREDO,
%End
		SC_LASTSTEPINUNDOREDO,
		SC_MOD_CHANGEMARKER,
		SC_MOD_BEFOREINSERT,
		SC_MOD_BEFOREDELETE,
%If (QScintilla_1_6 -)
		SC_MULTILINEUNDOREDO,
%End
		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
	};

	enum {
%If (QScintilla_1_7 -)
		SCMOD_NORM,
%End
		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,
%If (QScintilla_1_2 -)
		SCLEX_SCRIPTOL,
%End
		SCLEX_ASM,
		SCLEX_CPPNOCASE,
		SCLEX_FORTRAN,
		SCLEX_F77,
		SCLEX_CSS,
		SCLEX_POV,
%If (QScintilla_1_1 -)
		SCLEX_LOUT,
		SCLEX_ESCRIPT,
%End
%If (QScintilla_1_2 -)
		SCLEX_PS,
		SCLEX_NSIS,
		SCLEX_MMIXAL,
%End
%If (QScintilla_1_3 -)
		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,
%End
%If (QScintilla_1_5 -)
                SCLEX_ASN1,
                SCLEX_VHDL,
%End
%If (QScintilla_1_6 -)
		SCLEX_CAML,
		SCLEX_BLITZBASIC,
		SCLEX_PUREBASIC,
		SCLEX_HASKELL,
		SCLEX_PHPSCRIPT,
		SCLEX_TADS3,
		SCLEX_REBOL,
		SCLEX_SMALLTALK,
		SCLEX_FLAGSHIP,
		SCLEX_CSOUND,
%End
%If (QScintilla_1_7 -)
		SCLEX_FREEBASIC,
		SCLEX_INNOSETUP,
		SCLEX_OPAL,
		SCLEX_SPICE,
%End
	};

	QextScintillaBase(QWidget * /TransferThis/,const char *,
			  WFlags = 0);

%ConvertToSubClassCode
	static struct class_graph {
		char *name;
		sipWrapperType **type;
		int yes, no;
	} graph[] = {
		{sipName_QextScintillaLexer,	&sipClass_QextScintillaLexer,	3, 1},
		{sipName_QextScintillaBase,	&sipClass_QextScintillaBase,	15, 2},
		{sipName_QextScintillaMacro,	&sipClass_QextScintillaMacro,	-1, -1},
#if QSCINTILLA_VERSION >= 0x010300
		{sipName_QextScintillaLexerPerl,	&sipClass_QextScintillaLexerPerl,	-1, 4},
#else
		{NULL,					NULL,					-1, 4},
#endif
#if QSCINTILLA_VERSION >= 0x010100
		{sipName_QextScintillaLexerHTML,	&sipClass_QextScintillaLexerHTML,	-1, 5},
#else
		{NULL,					NULL,					-1, 5},
#endif
#if QSCINTILLA_VERSION >= 0x010500
		{sipName_QextScintillaLexerRuby,	&sipClass_QextScintillaLexerRuby,	-1, 6},
#else
		{NULL,					NULL,					-1, 6},
#endif
		{sipName_QextScintillaLexerCPP,	&sipClass_QextScintillaLexerCPP,	11, 7},
		{sipName_QextScintillaLexerPython,	&sipClass_QextScintillaLexerPython,	-1, 8},
#if QSCINTILLA_VERSION >= 0x010100
		{sipName_QextScintillaLexerSQL,	&sipClass_QextScintillaLexerSQL,	-1, 9},
#else
		{NULL,				NULL,					-1, 9},
#endif
#if QSCINTILLA_VERSION >= 0x010400
		{sipName_QextScintillaLexerBash,	&sipClass_QextScintillaLexerBash,	-1, 10},
#else
		{NULL,					NULL,					-1, 10},
#endif
#if QSCINTILLA_VERSION >= 0x010500
		{sipName_QextScintillaLexerLua,	&sipClass_QextScintillaLexerLua,	-1, -1},
#else
		{NULL,					NULL,				-1, -1},
#endif
		{sipName_QextScintillaLexerIDL,	&sipClass_QextScintillaLexerIDL,	-1, 12},
		{sipName_QextScintillaLexerJavaScript,	&sipClass_QextScintillaLexerJavaScript,	-1, 13},
		{sipName_QextScintillaLexerCSharp,	&sipClass_QextScintillaLexerCSharp,	-1, 14},
		{sipName_QextScintillaLexerJava,	&sipClass_QextScintillaLexerJava,	-1, -1},
		{sipName_QextScintilla,	&sipClass_QextScintilla,	-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

%If (QScintilla_1_3 -)
	QextScintillaBase *pool();
%End

	long SendScintilla(unsigned int,unsigned long = 0,long = 0);
	long SendScintilla(unsigned int,unsigned long,const char *);
	long SendScintilla(unsigned int,const char *);
	long SendScintilla(unsigned int,const char *,const char *);
	long SendScintilla(unsigned int,long);
	//long SendScintilla(unsigned int,int);
	long SendScintilla(unsigned int,long,long,char *);
	long SendScintilla(unsigned int,unsigned long,const QColor &);
	long SendScintilla(unsigned int,const QColor &);
	long SendScintilla(unsigned int,unsigned long,QPainter *,const QRect &,
			   long,long);
	long SendScintilla(unsigned int,unsigned long,const QPixmap *);

	virtual QSize sizeHint() const;
%If (QScintilla_1_5 -)
	QWidget *viewport() const;
%End

signals:
	void QSCN_SELCHANGED(bool);

	void SCEN_CHANGE();

%If (QScintilla_1_6 -)
	void SCN_AUTOCSELECTION(const char *,int);
%End
	void SCN_CHARADDED(int);
	void SCN_CALLTIPCLICK(int);
	void SCN_DOUBLECLICK();
	void SCN_DWELLEND(int,int,int);
	void SCN_DWELLSTART(int,int,int);
	void SCN_HOTSPOTCLICK(int,int);
	void SCN_HOTSPOTDOUBLECLICK(int,int);
	void SCN_MACRORECORD(unsigned int,unsigned long,long);
	void SCN_MARGINCLICK(int,int,int);
	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);
	void SCN_UPDATEUI();
	void SCN_USERLISTSELECTION(const char *,int);
	void SCN_ZOOM();

protected:
        bool eventFilter(QObject *,QEvent *);
        virtual void keyPressEvent(QKeyEvent *);
        virtual void focusInEvent(QFocusEvent *);
        virtual void focusOutEvent(QFocusEvent *);
        virtual bool focusNextPrevChild(bool);
%If (QScintilla_1_5 -)
	virtual void startDrag();
%End

private:
	QextScintillaBase(const QextScintillaBase &);
};
