Commits

releng  committed 05ed3f2

CWS-TOOLING: integrate CWS sqlsyntaxhighlighting
2008-11-20 17:23:29 +0100 mod r264074 : new colors by UX
2008-11-17 17:37:19 +0100 mod r263732 : revert manual fix for icu
2008-11-17 15:03:39 +0100 mod r263725 : manual fix for icu
2008-11-17 11:26:39 +0100 mod r263709 : manual fix for icu
2008-11-16 18:19:16 +0100 mod r263702 : `fix
2008-11-12 22:11:50 +0100 mod r263619 : CWS-TOOLING: rebase CWS sqlsyntaxhighlighting to trunk@263288 (milestone: DEV300:m35)
2008-11-12 11:04:33 +0100 mod r263578 : minor cleanup
2008-11-12 11:03:02 +0100 mod r263577 : seperate MulitLineEditSyntaxHighlighter into new file
2008-11-06 15:13:27 +0100 fs r263391 : merged from trunk
2008-11-06 15:09:20 +0100 fs r263390 : merged from trunk
2008-11-06 15:07:06 +0100 fs r263388 : reverted the change c262599. This seems to be a merge from trunk, but without properly setting svn:mergeinfo, thus it results in conflicts when doing a real 'svn merge'.
2008-11-06 15:03:19 +0100 fs r263387 : merged rev. 262769
2008-11-03 17:58:19 +0100 mod r263297 : little fixes
2008-11-03 17:56:49 +0100 mod r263296 : little fixes
2008-11-03 17:12:41 +0100 mod r263295 : new entry SQL comment for Tools-Appearance
2008-11-03 17:12:13 +0100 mod r263294 : different tokenizer based on language
2008-11-03 17:11:40 +0100 mod r263293 : new entry for Tools-Appearance: SQL Comment
2008-11-03 17:11:14 +0100 mod r263292 : get notification about color changes for sql view
2008-10-29 00:01:40 +0100 mod r262768 : string listbox
2008-10-28 23:57:45 +0100 mod r262767 : string listbox
2008-10-22 18:38:07 +0200 mod r262614 : source alignment fix
2008-10-22 18:37:23 +0200 mod r262613 : '' as string as well
2008-10-22 18:36:45 +0200 mod r262612 : get syntax highlighting in tools-sql...
2008-10-22 14:11:12 +0200 mod r262605 : formatting fix
2008-10-22 13:30:42 +0200 mod r262599 : additional entries for Tools-Options-Appearance
2008-10-19 22:53:50 +0200 mod r262302 : migration from cvs to svn
2008-10-19 22:37:45 +0200 mod r262301 : migration from cvs to svn
2008-10-19 22:36:04 +0200 mod r262300 : migration from cvs to svn

  • Participants
  • Parent commits b434906

Comments (0)

Files changed (27)

File basctl/source/basicide/baside2.cxx

  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: baside2.cxx,v $
- * $Revision: 1.46 $
+ * $Revision: 1.46.2.1 $
  *
  * This file is part of OpenOffice.org.
  *
         = Color(m_aColorConfig.GetColorValue(svtools::BASICERROR).nColor);
     m_aSyntaxColors[TT_OPERATOR]
         = Color(m_aColorConfig.GetColorValue(svtools::BASICOPERATOR).nColor);
-    m_aSyntaxColors[TT_KEYWORD]
+    m_aSyntaxColors[TT_KEYWORDS]
         = Color(m_aColorConfig.GetColorValue(svtools::BASICKEYWORD).nColor);
 
 	Font aFont( GetFont() );
         m_aSyntaxColors[TT_OPERATOR] = aColor;
         aColor = Color(m_aColorConfig.GetColorValue(svtools::BASICKEYWORD).
                        nColor);
-        if (bChanged || aColor != m_aSyntaxColors[TT_KEYWORD])
+        if (bChanged || aColor != m_aSyntaxColors[TT_KEYWORDS])
             bChanged = true;
-        m_aSyntaxColors[TT_KEYWORD] = aColor;
+        m_aSyntaxColors[TT_KEYWORDS] = aColor;
         if (bChanged)
             updateSyntaxHighlighting();
     }

File basctl/source/basicide/baside2.hxx

  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: baside2.hxx,v $
- * $Revision: 1.26 $
+ * $Revision: 1.26.22.1 $
  *
  * This file is part of OpenOffice.org.
  *
 #include <bastype3.hxx>
 #include <basidesh.hxx>
 
-#include <basic/hilight.hxx>
-
 class ExtTextEngine;
 class ExtTextView;
 class SvxSearchItem;
 #include <svtools/colorcfg.hxx>
 
 #include <sfx2/progress.hxx>
-
+#include <svtools/syntaxhighlight.hxx>
 
 DBG_NAMEEX( ModulWindow )
 
 
     ModulWindow * m_pModulWindow;
 
-    Color m_aSyntaxColors[TT_KEYWORD + 1];
+    Color m_aSyntaxColors[TT_KEYWORDS + 1];
     svtools::ColorConfig m_aColorConfig;
 
     ImageList m_aImagesNormal;

File basic/inc/basic/hilight.hxx

-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: hilight.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SB_HILIGHT_HXX
-#define _SB_HILIGHT_HXX
-
-#include <tools/string.hxx>
-#include <tools/gen.hxx>
-
-#include <svtools/svarray.hxx>
-
-//#include <sbxmod.cxx>
-class SimpleTokenizer_Impl;
-
-// Token-Typen TT_...
-enum TokenTypes
-{
-	TT_UNKNOWN,
-	TT_IDENTIFIER,
-	TT_WHITESPACE,
-	TT_NUMBER,
-	TT_STRING,
-	TT_EOL,
-	TT_COMMENT,
-	TT_ERROR,
-	TT_OPERATOR,
-	TT_KEYWORD
-};
-
-struct HighlightPortion { UINT16 nBegin; UINT16 nEnd; TokenTypes tokenType; };
-
-SV_DECL_VARARR(HighlightPortions, HighlightPortion, 0, 16)
-
-// Sprachmodus des HighLighters (spaeter eventuell feiner
-// differenzieren mit Keyword-Liste, C-Kommentar-Flag)
-enum HighlighterLanguage
-{
-	HIGHLIGHT_BASIC
-};
-
-//*** SyntaxHighlighter-Klasse ***
-// Konzept: Der Highlighter wird ueber alle Aenderungen im Source
-// informiert (notifyChange) und liefert dem Aufrufer jeweils die
-// Information zurueck, welcher Zeilen-Bereich des Source-Codes
-// aufgrund dieser Aenderung neu gehighlighted werden muss.
-// Dazu merkt sich Highlighter intern fuer jede Zeile, ob dort
-// C-Kommentare beginnen oder enden.
-class SyntaxHighlighter
-{
-	HighlighterLanguage eLanguage;
-	SimpleTokenizer_Impl* m_pSimpleTokenizer;
-	char* m_pKeyWords;
-	UINT16 m_nKeyWordCount;
-
-//	void initializeKeyWords( HighlighterLanguage eLanguage );
-
-public:
-	SyntaxHighlighter( void );
-	~SyntaxHighlighter( void );
-
-	// HighLighter (neu) initialisieren, die Zeilen-Tabelle wird
-	// dabei komplett geloescht, d.h. im Abschluss wird von einem
-	// leeren Source ausgegangen. In notifyChange() kann dann
-	// nur Zeile 0 angegeben werden.
-	void initialize( HighlighterLanguage eLanguage_ );
-
-	/**
-	 * Aenderung im Source anzeigen
-	 * @param nLine = Zeile, in der die Aenderung erfolgt, dies entspricht
-	 * der Zeile, in der im Editor der Cursor steht. Index der 1. Zeile ist 0.
-	 * @param nLineCountDifference = Anzahl der Zeilen, die im Rahmen der
-	 * Aenderung nach nLine eingefuegt (positiver Wert) oder entfernt
-	 * (negativer Wert) werden. 0, wenn von der Aenderung nur nLine
-	 * betroffen ist.
-	 * @param pChangedLines = Array der Zeilen, die von der Aenderung
-	 * betroffen sind (das Array enthaelt die geaenderten Zeilen)
-	 *
-	 * @return Zeilen-Bereich des SourceCodes, dessen Syntax-Higlighting
-	 * erneuert werden muss, z.B. weil ein C-Kommentar geoeffnet wurde.
-	 */
-	const Range notifyChange( UINT32 nLine, INT32 nLineCountDifference,
-								const String* pChangedLines, UINT32 nArrayLength);
-
-	/**
-	 * Higlighting durchfuehren
-	 * @param nLine = Zeile, fuer die die Highlight-Tokens geliefert
-	 * werden sollen. Index der 1. Zeile ist 0.
-	 * @param rLine = Zeile, fuer die die Highlight-Tokens geliefert
-	 * werden sollen. als String
-	 * @param Ein VarArray von HighlightPortion, in das die Start- und
-	 * die End-Indizes und die Typen der Token der Zeile eingetragen werden.
-	 */
-	void getHighlightPortions( UINT32 nLine, const String& rLine,
-											/*out*/HighlightPortions& pPortions );
-
-};
-
-#endif
-

File basic/prj/d.lst

 ..\inc\basic\sberrors.hxx %_DEST%\inc%_EXT%\basic\sberrors.hxx
 ..\inc\basic\basrdll.hxx %_DEST%\inc%_EXT%\basic\basrdll.hxx
 ..\inc\basic\sbstdobj.hxx %_DEST%\inc%_EXT%\basic\sbstdobj.hxx
-..\inc\basic\hilight.hxx %_DEST%\inc%_EXT%\basic\hilight.hxx
 ..\inc\basic\process.hxx %_DEST%\inc%_EXT%\basic\process.hxx
 ..\inc\basic\mybasic.hxx %_DEST%\inc%_EXT%\basic\mybasic.hxx
 ..\inc\basic\testtool.hxx %_DEST%\inc%_EXT%\basic\testtool.hxx

File basic/source/app/msgedit.hxx

  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: msgedit.hxx,v $
- * $Revision: 1.11 $
+ * $Revision: 1.11.40.1 $
  *
  * This file is part of OpenOffice.org.
  *
 #define _MSGEDIT_HXX
 
 #include <svtools/svtreebx.hxx>
+#include <basic/testtool.hxx>
+#include "dataedit.hxx"
 
-#include "dataedit.hxx"
-#include <basic/testtool.hxx>
 class BasicFrame;
 class AppError;
 

File basic/source/classes/sbxmod.cxx

  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: sbxmod.cxx,v $
- * $Revision: 1.44 $
+ * $Revision: 1.44.10.1 $
  *
  * This file is part of OpenOffice.org.
  *
 #include "runtime.hxx"
 #include "token.hxx"
 #include "sbunoobj.hxx"
-#include <basic/hilight.hxx>
+
+
+//#include <basic/hilight.hxx>
+#include <svtools/syntaxhighlight.hxx>
+
 #include <basic/basrdll.hxx>
 #include <vos/mutex.hxx>
 
+
 // for the bsearch
 #ifdef WNT
 #define CDECL _cdecl
 
 SV_IMPL_VARARR(HighlightPortions, HighlightPortion)
 
-// ##########################################################################
-// ACHTUNG!!!  Alle Woerter dieser Tabelle m�ssen KLEIN geschrieben werden!!!
-// ##########################################################################
-static const char* strListBasicKeyWords[] = {
-	"access",
-	"alias",
-	"and",
-	"any",
-	"append",
-	"as",
-	"base",
-	"binary",
-	"boolean",
-	"byref",
-	"byte",
-	"byval",
-	"call",
-	"case",
-	"cdecl",
-	"classmodule",
-	"close",
-	"compare",
-	"compatible",
-	"const",
-	"currency",
-	"date",
-	"declare",
-	"defbool",
-	"defcur",
-	"defdate",
-	"defdbl",
-	"deferr",
-	"defint",
-	"deflng",
-	"defobj",
-	"defsng",
-	"defstr",
-	"defvar",
-	"dim",
-	"do",
-	"double",
-	"each",
-	"else",
-	"elseif",
-	"end",
-	"end enum",
-	"end function",
-	"end if",
-	"end select",
-	"end sub",
-	"end type",
-	"endif",
-	"enum",
-	"eqv",
-	"erase",
-	"error",
-	"exit",
-	"explicit",
-	"for",
-	"function",
-	"get",
-	"global",
-	"gosub",
-	"goto",
-	"if",
-	"imp",
-	"implements",
-	"in",
-	"input",
-	"integer",
-	"is",
-	"let",
-	"lib",
-	"like",
-	"line",
-	"line input",
-	"local",
-	"lock",
-	"long",
-	"loop",
-	"lprint",
-	"lset",
-	"mod",
-	"name",
-	"new",
-	"next",
-	"not",
-	"object",
-	"on",
-	"open",
-	"option",
-	"optional",
-	"or",
-	"output",
-	"preserve",
-	"print",
-	"private",
-	"property",
-	"public",
-	"random",
-	"read",
-	"redim",
-	"rem",
-	"resume",
-	"return",
-	"rset",
-	"select",
-	"set",
-	"shared",
-	"single",
-	"static",
-	"step",
-	"stop",
-	"string",
-	"sub",
-	"system",
-	"text",
-	"then",
-	"to",
-	"type",
-	"typeof",
-	"until",
-	"variant",
-	"wend",
-	"while",
-	"with",
-	"write",
-	"xor"
-};
-
-extern "C" int CDECL compare_strings( const void *arg1, const void *arg2 )
-{
-	return strcmp( (char *)arg1, *(char **)arg2 );
-}
-
-
 
 /////////////////////////////////////////////////////////////////////////////
 
 	return TRUE;
 }
 
-
-/////////////////////////////////////////////////////////////////////////
-// Hilfsklasse zur Untersuchung von JavaScript-Modulen, zunaechst zum
-// Heraussuchen der Funktionen, spaeter auch zum Syntax-Highlighting verwenden
-
-//	Flags fuer Zeichen-Eigenschaften
-#define CHAR_START_IDENTIFIER	0x0001
-#define CHAR_IN_IDENTIFIER		0x0002
-#define CHAR_START_NUMBER		0x0004
-#define CHAR_IN_NUMBER			0x0008
-#define CHAR_IN_HEX_NUMBER		0x0010
-#define CHAR_IN_OCT_NUMBER		0x0020
-#define CHAR_START_STRING		0x0040
-#define CHAR_OPERATOR			0x0080
-#define CHAR_SPACE				0x0100
-#define CHAR_EOL				0x0200
-
-#define CHAR_EOF				0x00
-
-
-class SimpleTokenizer_Impl
-{
-	// Zeichen-Info-Tabelle
-	USHORT aCharTypeTab[256];
-
-	const sal_Unicode* mpStringBegin;
-	const sal_Unicode* mpActualPos;
-
-	// Zeile und Spalte
-	UINT32 nLine;
-	UINT32 nCol;
-
-	sal_Unicode peekChar( void )	{ return *mpActualPos; }
-	sal_Unicode getChar( void )		{ nCol++; return *mpActualPos++; }
-
-	// Hilfsfunktion: Zeichen-Flag Testen
-	BOOL testCharFlags( sal_Unicode c, USHORT nTestFlags );
-
-	// Neues Token holen, Leerstring == nix mehr da
-	BOOL getNextToken( /*out*/TokenTypes& reType,
-		/*out*/const sal_Unicode*& rpStartPos, /*out*/const sal_Unicode*& rpEndPos );
-
-	String getTokStr( /*out*/const sal_Unicode* pStartPos, /*out*/const sal_Unicode* pEndPos );
-
-#ifndef PRODUCT
-	// TEST: Token ausgeben
-	String getFullTokenStr( /*out*/TokenTypes eType,
-		/*out*/const sal_Unicode* pStartPos, /*out*/const sal_Unicode* pEndPos );
-#endif
-
-	const char** ppListKeyWords;
-	UINT16 nKeyWordCount;
-
-public:
-	SimpleTokenizer_Impl( void );
-	~SimpleTokenizer_Impl( void );
-
-	UINT16 parseLine( UINT32 nLine, const String* aSource );
-	void getHighlightPortions( UINT32 nParseLine, const String& rLine,
-													/*out*/HighlightPortions& portions );
-	void setKeyWords( const char** ppKeyWords, UINT16 nCount );
-};
-
-// Hilfsfunktion: Zeichen-Flag Testen
-BOOL SimpleTokenizer_Impl::testCharFlags( sal_Unicode c, USHORT nTestFlags )
-{
-	bool bRet = false;
-	if( c != 0 && c <= 255 )
-	{
-		bRet = ( (aCharTypeTab[c] & nTestFlags) != 0 );
-	}
-	else if( c > 255 )
-	{
-		bRet = (( CHAR_START_IDENTIFIER | CHAR_IN_IDENTIFIER ) & nTestFlags) != 0
-			? BasicSimpleCharClass::isAlpha( c, true ) : false;
-	}
-	return bRet;
-}
-
-void SimpleTokenizer_Impl::setKeyWords( const char** ppKeyWords, UINT16 nCount )
-{
-	ppListKeyWords = ppKeyWords;
-	nKeyWordCount = nCount;
-}
-
-// Neues Token holen
-BOOL SimpleTokenizer_Impl::getNextToken( /*out*/TokenTypes& reType,
-	/*out*/const sal_Unicode*& rpStartPos, /*out*/const sal_Unicode*& rpEndPos )
-{
-	reType = TT_UNKNOWN;
-
-	// Position merken
-	rpStartPos = mpActualPos;
-
-	// Zeichen untersuchen
-	sal_Unicode c = peekChar();
-	if( c == CHAR_EOF )
-		return FALSE;
-
-	// Zeichen lesen
-	getChar();
-
-	//*** Alle Moeglichkeiten durchgehen ***
-	// Space?
-	if ( (testCharFlags( c, CHAR_SPACE ) == TRUE) )
-	{
-		while( testCharFlags( peekChar(), CHAR_SPACE ) == TRUE )
-			getChar();
-
-		reType = TT_WHITESPACE;
-	}
-
-	// Identifier?
-	else if ( (testCharFlags( c, CHAR_START_IDENTIFIER ) == TRUE) )
-	{
-		BOOL bIdentifierChar;
-		do
-		{
-			// Naechstes Zeichen holen
-			c = peekChar();
-			bIdentifierChar = testCharFlags( c, CHAR_IN_IDENTIFIER );
-			if( bIdentifierChar )
-				getChar();
-		}
-		while( bIdentifierChar );
-
-		reType = TT_IDENTIFIER;
-
-		// Schluesselwort-Tabelle
-		if (ppListKeyWords != NULL)
-		{
-			int nCount = mpActualPos - rpStartPos;
-
-			// No keyword if string contains char > 255
-			bool bCanBeKeyword = true;
-			for( int i = 0 ; i < nCount ; i++ )
-			{
-				if( rpStartPos[i] > 255 )
-				{
-					bCanBeKeyword = false;
-					break;
-				}
-			}
-
-			if( bCanBeKeyword )
-			{
-				String aKWString(
-                    rpStartPos, sal::static_int_cast< xub_StrLen >(nCount) );
-				ByteString aByteStr( aKWString, RTL_TEXTENCODING_ASCII_US );
-				aByteStr.ToLowerAscii();
-				if ( bsearch( aByteStr.GetBuffer(), ppListKeyWords, nKeyWordCount, sizeof( char* ),
-																		compare_strings ) )
-				{
-					reType = TT_KEYWORD;
-
-					if ( aByteStr.Equals( "rem" ) )
-					{
-						// Alle Zeichen bis Zeilen-Ende oder EOF entfernen
-						sal_Unicode cPeek = peekChar();
-						while( cPeek != CHAR_EOF && testCharFlags( cPeek, CHAR_EOL ) == FALSE )
-						{
-							c = getChar();
-							cPeek = peekChar();
-						}
-
-						reType = TT_COMMENT;
-					}
-				}
-			}
-		}
-	}
-
-	// Operator?
-	else if ( testCharFlags( c, CHAR_OPERATOR ) == TRUE || c == '\'' )
-	{
-		// Kommentar ?
-		if ( c == '\'' )
-		{
-			c = getChar();	// '/' entfernen
-
-			// Alle Zeichen bis Zeilen-Ende oder EOF entfernen
-			sal_Unicode cPeek = peekChar();
-			while( cPeek != CHAR_EOF && testCharFlags( cPeek, CHAR_EOL ) == FALSE )
-			{
-				getChar();
-				cPeek = peekChar();
-			}
-
-			reType = TT_COMMENT;
-		}
-
-		// Echter Operator, kann hier einfach behandelt werden,
-		// da nicht der wirkliche Operator, wie z.B. += interessiert,
-		// sondern nur die Tatsache, dass es sich um einen handelt.
-		if( reType != TT_COMMENT )
-		{
-			reType = TT_OPERATOR;
-		}
-	}
-
-	// Objekt-Trenner? Muss vor Number abgehandelt werden
-	else if( c == '.' && ( peekChar() < '0' || peekChar() > '9' ) )
-	{
-		reType = TT_OPERATOR;
-	}
-
-	// Zahl?
-	else if( testCharFlags( c, CHAR_START_NUMBER ) == TRUE )
-	{
-		reType = TT_NUMBER;
-
-		// Zahlensystem, 10 = normal, wird bei Oct/Hex geaendert
-		int nRadix = 10;
-
-		// Ist es eine Hex- oder Oct-Zahl?
-		if( c == '&' )
-		{
-			// Octal?
-			if( peekChar() == 'o' || peekChar() == 'O' )
-			{
-				// o entfernen
-				getChar();
-				nRadix = 8; 	// Octal-Basis
-
-				// Alle Ziffern einlesen
-				while( testCharFlags( peekChar(), CHAR_IN_OCT_NUMBER ) )
-					c = getChar();
-			}
-			// Hex?
-			else if( peekChar() == 'h' || peekChar() == 'H' )
-			{
-				// x entfernen
-				getChar();
-				nRadix = 16;	 // Hex-Basis
-
-				// Alle Ziffern einlesen und puffern
-				while( testCharFlags( peekChar(), CHAR_IN_HEX_NUMBER ) )
-					c = getChar();
-			}
-			else
-			{
-				reType = TT_OPERATOR;
-			}
-		}
-
-		// Wenn nicht Oct oder Hex als double ansehen
-		if( reType == TT_NUMBER && nRadix == 10 )
-		{
-			// Flag, ob das letzte Zeichen ein Exponent war
-			BOOL bAfterExpChar = FALSE;
-
-			// Alle Ziffern einlesen
-			while( testCharFlags( peekChar(), CHAR_IN_NUMBER ) ||
-					(bAfterExpChar && peekChar() == '+' ) ||
-					(bAfterExpChar && peekChar() == '-' ) )
-					// Nach Exponent auch +/- OK
-			{
-				c = getChar();					// Zeichen lesen
-				bAfterExpChar = ( c == 'e' || c == 'E' );
-			}
-		}
-
-		// reType = TT_NUMBER;
-	}
-
-	// String?
-	else if( testCharFlags( c, CHAR_START_STRING ) == TRUE )
-	{
-		// Merken, welches Zeichen den String eroeffnet hat
-		sal_Unicode cEndString = c;
-		if( c == '[' )
-			cEndString = ']';
-
-		// Alle Ziffern einlesen und puffern
-		while( peekChar() != cEndString )
-		{
-			// #58846 EOF vor getChar() abfangen, damit EOF micht verloren geht
-			if( peekChar() == CHAR_EOF )
-			{
-				// ERROR: unterminated string literal
-				reType = TT_ERROR;
-				break;
-			}
-			c = getChar();
-			if( testCharFlags( c, CHAR_EOL ) == TRUE )
-			{
-				// ERROR: unterminated string literal
-				reType = TT_ERROR;
-				break;
-			}
-		}
-
-		//	Zeichen lesen
-		if( reType != TT_ERROR )
-		{
-			getChar();
-			if( cEndString == ']' )
-				reType = TT_IDENTIFIER;
-			else
-				reType = TT_STRING;
-		}
-	}
-
-	// Zeilenende?
-	else if( testCharFlags( c, CHAR_EOL ) == TRUE )
-	{
-		// Falls ein weiteres anderes EOL-Char folgt, weg damit
-		sal_Unicode cNext = peekChar();
-		if( cNext != c && testCharFlags( cNext, CHAR_EOL ) == TRUE )
-			getChar();
-
-		// Positions-Daten auf Zeilen-Beginn setzen
-		nCol = 0;
-		nLine++;
-
-		reType = TT_EOL;
-	}
-
-	// Alles andere bleibt TT_UNKNOWN
-
-
-	// End-Position eintragen
-	rpEndPos = mpActualPos;
-	return TRUE;
-}
-
-String SimpleTokenizer_Impl::getTokStr
-	( /*out*/const sal_Unicode* pStartPos, /*out*/const sal_Unicode* pEndPos )
-{
-	return String( pStartPos, (USHORT)( pEndPos - pStartPos ) );
-}
-
-#ifndef PRODUCT
-// TEST: Token ausgeben
-String SimpleTokenizer_Impl::getFullTokenStr( /*out*/TokenTypes eType,
-	/*out*/const sal_Unicode* pStartPos, /*out*/const sal_Unicode* pEndPos )
-{
-	String aOut;
-	switch( eType )
-	{
-		case TT_UNKNOWN:	aOut = String( RTL_CONSTASCII_USTRINGPARAM("TT_UNKNOWN:") ); break;
-		case TT_IDENTIFIER:	aOut = String( RTL_CONSTASCII_USTRINGPARAM("TT_IDENTIFIER:") ); break;
-		case TT_WHITESPACE:	aOut = String( RTL_CONSTASCII_USTRINGPARAM("TT_WHITESPACE:") ); break;
-		case TT_NUMBER:		aOut = String( RTL_CONSTASCII_USTRINGPARAM("TT_NUMBER:") ); break;
-		case TT_STRING:		aOut = String( RTL_CONSTASCII_USTRINGPARAM("TT_STRING:") ); break;
-		case TT_EOL:		aOut = String( RTL_CONSTASCII_USTRINGPARAM("TT_EOL:") ); break;
-		case TT_COMMENT:	aOut = String( RTL_CONSTASCII_USTRINGPARAM("TT_COMMENT:") ); break;
-		case TT_ERROR:		aOut = String( RTL_CONSTASCII_USTRINGPARAM("TT_ERROR:") ); break;
-		case TT_OPERATOR:	aOut = String( RTL_CONSTASCII_USTRINGPARAM("TT_OPERATOR:") ); break;
-		case TT_KEYWORD:	aOut = String( RTL_CONSTASCII_USTRINGPARAM("TT_KEYWORD:") ); break;
-	}
-	if( eType != TT_EOL )
-	{
-		aOut += String( pStartPos, (USHORT)( pEndPos - pStartPos ) );
-	}
-	aOut += String( RTL_CONSTASCII_USTRINGPARAM("\n") );
-	return aOut;
-}
-#endif
-
-SimpleTokenizer_Impl::SimpleTokenizer_Impl( void )
-{
-	memset( aCharTypeTab, 0, sizeof( aCharTypeTab ) );
-
-	// Zeichen-Tabelle fuellen
-	USHORT i;
-
-	// Zulaessige Zeichen fuer Identifier
-	USHORT nHelpMask = (USHORT)( CHAR_START_IDENTIFIER | CHAR_IN_IDENTIFIER );
-	for( i = 'a' ; i <= 'z' ; i++ )
-		aCharTypeTab[i] |= nHelpMask;
-	for( i = 'A' ; i <= 'Z' ; i++ )
-		aCharTypeTab[i] |= nHelpMask;
-	// '_' extra eintragen
-	aCharTypeTab[(int)'_'] |= nHelpMask;
-	// AB 23.6.97: '$' ist auch erlaubt
-	aCharTypeTab[(int)'$'] |= nHelpMask;
-
-	// Ziffern (Identifier und Number ist moeglich)
-	nHelpMask = (USHORT)( CHAR_IN_IDENTIFIER | CHAR_START_NUMBER |
-						 CHAR_IN_NUMBER | CHAR_IN_HEX_NUMBER );
-	for( i = '0' ; i <= '9' ; i++ )
-		aCharTypeTab[i] |= nHelpMask;
-
-	// e und E sowie . von Hand ergaenzen
-	aCharTypeTab[(int)'e'] |= CHAR_IN_NUMBER;
-	aCharTypeTab[(int)'E'] |= CHAR_IN_NUMBER;
-	aCharTypeTab[(int)'.'] |= (USHORT)( CHAR_IN_NUMBER | CHAR_START_NUMBER );
-	aCharTypeTab[(int)'&'] |= CHAR_START_NUMBER;
-
-	// Hex-Ziffern
-	for( i = 'a' ; i <= 'f' ; i++ )
-		aCharTypeTab[i] |= CHAR_IN_HEX_NUMBER;
-	for( i = 'A' ; i <= 'F' ; i++ )
-		aCharTypeTab[i] |= CHAR_IN_HEX_NUMBER;
-
-	// Oct-Ziffern
-	for( i = '0' ; i <= '7' ; i++ )
-		aCharTypeTab[i] |= CHAR_IN_OCT_NUMBER;
-
-	// String-Beginn/End-Zeichen
-	aCharTypeTab[(int)'\''] |= CHAR_START_STRING;
-	aCharTypeTab[(int)'\"'] |= CHAR_START_STRING;
-	aCharTypeTab[(int)'[']  |= CHAR_START_STRING;
-
-	// Operator-Zeichen
-	aCharTypeTab[(int)'!'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'%'] |= CHAR_OPERATOR;
-	// aCharTypeTab[(int)'&'] |= CHAR_OPERATOR;		Removed because of #i14140
-	aCharTypeTab[(int)'('] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)')'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'*'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'+'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)','] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'-'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'/'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)':'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'<'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'='] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'>'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'?'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'^'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'|'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'~'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'{'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)'}'] |= CHAR_OPERATOR;
-	// aCharTypeTab[(int)'['] |= CHAR_OPERATOR;		Removed because of #i17826
-	aCharTypeTab[(int)']'] |= CHAR_OPERATOR;
-	aCharTypeTab[(int)';'] |= CHAR_OPERATOR;
-
-	// Space
-	aCharTypeTab[(int)' ' ] |= CHAR_SPACE;
-	aCharTypeTab[(int)'\t'] |= CHAR_SPACE;
-
-	// Zeilen-Ende-Zeichen
-	aCharTypeTab[(int)'\r'] |= CHAR_EOL;
-	aCharTypeTab[(int)'\n'] |= CHAR_EOL;
-
-	ppListKeyWords = NULL;
-}
-
-SimpleTokenizer_Impl::~SimpleTokenizer_Impl( void )
-{
-}
-
-SimpleTokenizer_Impl* getSimpleTokenizer( void )
-{
-	static SimpleTokenizer_Impl* pSimpleTokenizer = NULL;
-	if( !pSimpleTokenizer )
-		pSimpleTokenizer = new SimpleTokenizer_Impl();
-	return pSimpleTokenizer;
-}
-
-// Heraussuchen der jeweils naechsten Funktion aus einem JavaScript-Modul
-UINT16 SimpleTokenizer_Impl::parseLine( UINT32 nParseLine, const String* aSource )
-{
-	// Position auf den Anfang des Source-Strings setzen
-	mpStringBegin = mpActualPos = aSource->GetBuffer();
-
-	// Zeile und Spalte initialisieren
-	nLine = nParseLine;
-	nCol = 0L;
-
-	// Variablen fuer die Out-Parameter
-	TokenTypes eType;
-	const sal_Unicode* pStartPos;
-	const sal_Unicode* pEndPos;
-
-	// Schleife ueber alle Tokens
-	UINT16 nTokenCount = 0;
-	while( getNextToken( eType, pStartPos, pEndPos ) )
-		nTokenCount++;
-
-	return nTokenCount;
-}
-
-void SimpleTokenizer_Impl::getHighlightPortions( UINT32 nParseLine, const String& rLine,
-													/*out*/HighlightPortions& portions  )
-{
-	// Position auf den Anfang des Source-Strings setzen
-	mpStringBegin = mpActualPos = rLine.GetBuffer();
-
-	// Zeile und Spalte initialisieren
-	nLine = nParseLine;
-	nCol = 0L;
-
-	// Variablen fuer die Out-Parameter
-	TokenTypes eType;
-	const sal_Unicode* pStartPos;
-	const sal_Unicode* pEndPos;
-
-	// Schleife ueber alle Tokens
-	while( getNextToken( eType, pStartPos, pEndPos ) )
-	{
-		HighlightPortion portion;
-
-		portion.nBegin = (UINT16)(pStartPos - mpStringBegin);
-		portion.nEnd = (UINT16)(pEndPos - mpStringBegin);
-		portion.tokenType = eType;
-
-		portions.Insert(portion, portions.Count());
-	}
-}
-
-
-//////////////////////////////////////////////////////////////////////////
-// Implementierung des SyntaxHighlighter
-
-SyntaxHighlighter::SyntaxHighlighter()
-{
-	m_pSimpleTokenizer = new SimpleTokenizer_Impl();
-	m_pKeyWords = NULL;
-	m_nKeyWordCount = 0;
-}
-
-SyntaxHighlighter::~SyntaxHighlighter()
-{
-	delete(m_pSimpleTokenizer);
-	delete(m_pKeyWords);
-}
-
-void SyntaxHighlighter::initialize( HighlighterLanguage eLanguage_ )
-{
-	eLanguage = eLanguage_;
-	delete(m_pSimpleTokenizer);
-	m_pSimpleTokenizer = new SimpleTokenizer_Impl();
-
-	if (eLanguage == HIGHLIGHT_BASIC)
-	{
-		m_pSimpleTokenizer->setKeyWords( strListBasicKeyWords,
-											sizeof( strListBasicKeyWords ) / sizeof( char* ));
-	}
-	else
-	{
-		m_pSimpleTokenizer->setKeyWords( NULL, 0 );
-	}
-}
-
-const Range SyntaxHighlighter::notifyChange( UINT32 nLine, INT32 nLineCountDifference,
-								const String* pChangedLines, UINT32 nArrayLength)
-{
-    (void)nLineCountDifference;
-
-	for( UINT32 i=0 ; i < nArrayLength ; i++ )
-		m_pSimpleTokenizer->parseLine(nLine+i, &pChangedLines[i]);
-
-	return Range( nLine, nLine + nArrayLength-1 );
-}
-
-void SyntaxHighlighter::getHighlightPortions( UINT32 nLine, const String& rLine,
-											/*out*/HighlightPortions& portions )
-{
-	m_pSimpleTokenizer->getHighlightPortions( nLine, rLine, portions );
-}
-
-
 /////////////////////////////////////////////////////////////////////////
 // Implementation SbJScriptModule (Basic-Modul fuer JavaScript-Sourcen)
 SbJScriptModule::SbJScriptModule( const String& rName )

File dbaccess/source/ui/control/sqledit.cxx

  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: sqledit.cxx,v $
- * $Revision: 1.12 $
+ * $Revision: 1.12.16.3 $
  *
  * This file is part of OpenOffice.org.
  *
 
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_dbaccess.hxx"
-#ifndef DBAUI_SQLEDIT_HXX
 #include "sqledit.hxx"
-#endif
-#ifndef DBAUI_QUERYVIEW_TEXT_HXX
 #include "QueryTextView.hxx"
-#endif
-#ifndef DBAUI_QUERYCONTAINERWINDOW_HXX
 #include "querycontainerwindow.hxx"
-#endif
-#ifndef _TOOLS_DEBUG_HXX
 #include <tools/debug.hxx>
-#endif
 #include "dbaccess_helpid.hrc"
-#ifndef DBACCESS_UI_BROWSER_ID_HXX
 #include "browserids.hxx"
-#endif
-#ifndef DBAUI_QUERYCONTROLLER_HXX
 #include "querycontroller.hxx"
-#endif
-#ifndef DBAUI_UNDOSQLEDIT_HXX
 #include "undosqledit.hxx"
-#endif
-#ifndef DBAUI_QUERYDESIGNVIEW_HXX
 #include "QueryDesignView.hxx"
-#endif
+
+#include <svtools/smplhint.hxx>
+
 //////////////////////////////////////////////////////////////////////////
 // OSqlEdit
 //------------------------------------------------------------------------------
 
 DBG_NAME(OSqlEdit)
 OSqlEdit::OSqlEdit( OQueryTextView* pParent,  WinBits nWinStyle ) :
-	MultiLineEdit( pParent, nWinStyle )
+	MultiLineEditSyntaxHighlight( pParent, nWinStyle )
 	,m_pView(pParent)
 	,m_bAccelAction( sal_False )
 	,m_bStopTimer(sal_False )
 	m_timerInvalidate.SetTimeout(200);
 	m_timerInvalidate.SetTimeoutHdl(LINK(this, OSqlEdit, OnInvalidateTimer));
 	m_timerInvalidate.Start();
+
+	ImplSetFont();
+	// listen for change of Font Setting
+	StartListening(m_SourceViewConfig);
+	StartListening(m_ColorConfig);
 }
 
 //------------------------------------------------------------------------------
 	DBG_DTOR(OSqlEdit,NULL);
 	if (m_timerUndoActionCreation.IsActive())
 		m_timerUndoActionCreation.Stop();	
+	EndListening(m_SourceViewConfig);
+	EndListening(m_ColorConfig);
 }
 //------------------------------------------------------------------------------
 void OSqlEdit::KeyInput( const KeyEvent& rKEvt )
 	if( (aKeyFunc==KEYFUNC_CUT)||(aKeyFunc==KEYFUNC_COPY)||(aKeyFunc==KEYFUNC_PASTE) )
 		m_bAccelAction = sal_True;
 
-	MultiLineEdit::KeyInput( rKEvt );
+	MultiLineEditSyntaxHighlight::KeyInput( rKEvt );
 
 	if( m_bAccelAction )
 		m_bAccelAction = sal_False;
 {
 	DBG_CHKTHIS(OSqlEdit,NULL);
 	m_strOrigText  =GetText();
-	MultiLineEdit::GetFocus();
+	MultiLineEditSyntaxHighlight::GetFocus();
 }
 
 //------------------------------------------------------------------------------
 		LINK(this, OSqlEdit, OnUndoActionTimer).Call(NULL);
 	}
 
-	MultiLineEdit::SetText(rNewText);
+	MultiLineEditSyntaxHighlight::SetText(rNewText);
 	m_strOrigText  =rNewText;
-}
+}	
 // -----------------------------------------------------------------------------
 void OSqlEdit::stopTimer()
 {
 		m_timerInvalidate.Start();
 }
 
+void OSqlEdit::Notify( SfxBroadcaster& rBC, const SfxHint& /*rHint*/ )
+{
+	if (&rBC == &m_SourceViewConfig)
+		ImplSetFont();        
+	else if (&rBC == &m_ColorConfig)
+		MultiLineEditSyntaxHighlight::UpdateData();
+}
+
+void OSqlEdit::ImplSetFont()
+{
+	AllSettings aSettings = GetSettings();
+	StyleSettings aStyleSettings = aSettings.GetStyleSettings();
+	String sFontName = m_SourceViewConfig.GetFontName();
+	if ( !sFontName.Len() )
+	{
+		Font aTmpFont( OutputDevice::GetDefaultFont( DEFAULTFONT_FIXED, Application::GetSettings().GetUILanguage(), 0 , this ) );
+		sFontName = aTmpFont.GetName();
+	}
+	Size aFontSize( 0, m_SourceViewConfig.GetFontHeight() );
+	Font aFont( sFontName, aFontSize );
+	aStyleSettings.SetFieldFont(aFont);
+	aSettings.SetStyleSettings(aStyleSettings);
+	SetSettings(aSettings);
+}
 //==============================================================================

File dbaccess/source/ui/inc/directsql.hxx

 #include <vcl/dialog.hxx>
 #endif
 #ifndef _SVEDIT_HXX 
-#include <svtools/svmedit.hxx>
+#include <svtools/editsyntaxhighlighter.hxx>
 #endif
 #ifndef _SV_FIXED_HXX 
 #include <vcl/fixed.hxx>
 
 		FixedLine		m_aFrame;
 		FixedText		m_aSQLLabel;
-		MultiLineEdit	m_aSQL;
+		MultiLineEditSyntaxHighlight	m_aSQL;
 		PushButton		m_aExecute;
 		FixedText		m_aHistoryLabel;
 		ListBox*		m_pSQLHistory;

File dbaccess/source/ui/inc/sqledit.hxx

-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: sqledit.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef DBAUI_SQLEDIT_HXX
-#define DBAUI_SQLEDIT_HXX
-
-#ifndef _SVEDIT_HXX 
-#include <svtools/svmedit.hxx>
-#endif
-
-namespace dbaui
-{
-	class OQueryTextView;
-	class OSqlEdit : public MultiLineEdit
-	{
-	private:
-		Timer	m_timerInvalidate;
-		Timer	m_timerUndoActionCreation;
-		Link	m_lnkTextModifyHdl;
-		String	m_strOrigText;		// wird beim Undo wiederhergestellt
-		OQueryTextView* m_pView;
-		BOOL	m_bAccelAction;		// Wird bei Cut, Copy, Paste gesetzt
-		BOOL	m_bStopTimer;
-
-		DECL_LINK(OnUndoActionTimer, void*);
-		DECL_LINK(OnInvalidateTimer, void*);
-
-	protected:
-		virtual void KeyInput( const KeyEvent& rKEvt );
-		virtual void GetFocus();
-
-		DECL_LINK(ModifyHdl, void*);
-
-	public:
-		OSqlEdit( OQueryTextView* pParent,  WinBits nWinStyle = WB_LEFT | WB_VSCROLL |WB_BORDER);
-		virtual ~OSqlEdit();
-
-        // Edit overridables
-		virtual void SetText(const String& rNewText);
-        using MultiLineEdit::SetText;
-
-        // own functionality
-		BOOL IsInAccelAct();
-
-		void SetTextModifyHdl(const Link& lnk) { m_lnkTextModifyHdl = lnk; }
-			// bitte nicht SetModifyHdl benutzen, den brauche ich selber, der hier wird von dem damit gesetzten Handler
-			// gerufen
-			// der Link bekommt einen Pointer-to-string, der nach dem Link nicht mehr gueltig ist
-
-		void stopTimer();
-		void startTimer();
-	};
-}
-
-#endif // DBAUI_SQLEDIT_HXX
-
-
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: sqledit.hxx,v $
+ * $Revision: 1.5.60.2 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef DBAUI_SQLEDIT_HXX
+#define DBAUI_SQLEDIT_HXX
+
+#include <svtools/editsyntaxhighlighter.hxx>
+#include <svtools/lstner.hxx>
+#include <svtools/colorcfg.hxx>
+#include <svtools/sourceviewconfig.hxx>
+
+namespace dbaui
+{
+	class OQueryTextView;
+	class OSqlEdit : public MultiLineEditSyntaxHighlight, SfxListener
+	{
+	private:
+		Timer					m_timerInvalidate;
+		Timer					m_timerUndoActionCreation;
+		Link					m_lnkTextModifyHdl;
+		String					m_strOrigText;		// wird beim Undo wiederhergestellt
+		OQueryTextView*			m_pView;
+		BOOL					m_bAccelAction;		// Wird bei Cut, Copy, Paste gesetzt
+		BOOL					m_bStopTimer;
+		svt::SourceViewConfig	m_SourceViewConfig;
+		svtools::ColorConfig	m_ColorConfig;
+
+		DECL_LINK(OnUndoActionTimer, void*);
+		DECL_LINK(OnInvalidateTimer, void*);
+
+	private: 
+		void			ImplSetFont();
+
+	protected:
+		virtual void KeyInput( const KeyEvent& rKEvt );
+		virtual void GetFocus();
+
+		DECL_LINK(ModifyHdl, void*);
+
+	public:
+		OSqlEdit( OQueryTextView* pParent,  WinBits nWinStyle = WB_LEFT | WB_VSCROLL |WB_BORDER);
+		virtual ~OSqlEdit();
+
+        // Edit overridables
+		virtual void SetText(const String& rNewText);
+        using MultiLineEditSyntaxHighlight::SetText;
+
+        // own functionality
+		BOOL IsInAccelAct();
+
+		void SetTextModifyHdl(const Link& lnk) { m_lnkTextModifyHdl = lnk; }
+			// bitte nicht SetModifyHdl benutzen, den brauche ich selber, der hier wird von dem damit gesetzten Handler
+			// gerufen
+			// der Link bekommt einen Pointer-to-string, der nach dem Link nicht mehr gueltig ist
+
+		void stopTimer();
+		void startTimer();
+
+		virtual void	Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+		using MultiLineEditSyntaxHighlight::Notify;
+	};
+}
+
+#endif // DBAUI_SQLEDIT_HXX
+
+

File icu/makefile.mk

 .ENDIF			# "$(USE_SHELL)"=="4nt"
 BUILD_DIR=source
 .IF "full_debug" == ""
+
 # Activating the debug mechanism produces incompatible libraries, you'd have
 # at least to relink all modules that are directly using ICU. Note that library
 # names get a 'd' appended and you'd have to edit the solenv/inc/libs.mk

File officecfg/registry/data/org/openoffice/Office/UI.xcu

  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: UI.xcu,v $
- * $Revision: 1.38 $
+ * $Revision: 1.38.90.1 $
  *
  * This file is part of OpenOffice.org.
  *
 						<value xsi:nil="true"/>
 					</prop>
 				</node>
+				<node oor:name="SQLIdentifier">
+					<prop oor:name="Color" oor:type="xs:int">
+						<value xsi:nil="true"/>
+					</prop>
+				</node>
+        <node oor:name="SQLNumber">
+          <prop oor:name="Color" oor:type="xs:int">
+            <value xsi:nil="true"/>
+          </prop>
+        </node>
+        <node oor:name="SQLString">
+          <prop oor:name="Color" oor:type="xs:int">
+            <value xsi:nil="true"/>
+          </prop>
+        </node>
+        <node oor:name="SQLOperator">
+          <prop oor:name="Color" oor:type="xs:int">
+            <value xsi:nil="true"/>
+          </prop>
+        </node>
+        <node oor:name="SQLKeyword">
+          <prop oor:name="Color" oor:type="xs:int">
+            <value xsi:nil="true"/>
+          </prop>
+        </node>
+        <node oor:name="SQLParameter">
+          <prop oor:name="Color" oor:type="xs:int">
+            <value xsi:nil="true"/>
+          </prop>
+        </node>
+        <node oor:name="SQLComment">
+          <prop oor:name="Color" oor:type="xs:int">
+            <value xsi:nil="true"/>
+          </prop>
+        </node>
 			</node>
 		</node>
 	</node>
 </oor:component-data>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

File officecfg/registry/schema/org/openoffice/Office/UI.xcs

  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: UI.xcs,v $
- * $Revision: 1.30 $
+ * $Revision: 1.30.126.1 $
  *
  * This file is part of OpenOffice.org.
  *
 					</info>
 				</prop>
 			</group>
+			<group oor:name="SQLIdentifier">
+				<info>
+					<desc>Specifies the settings for SQL identifiers, as used the Query Designer.</desc>
+				</info>
+				<prop oor:name="Color" oor:type="xs:int">
+					<info>
+						<desc>Specifies the color used for SQL identifiers.</desc>
+					</info>
+				</prop>
+			</group>
+      <group oor:name="SQLNumber">
+        <info>
+          <desc>Specifies the settings for SQL numbers, as used the Query Designer.</desc>
+        </info>
+        <prop oor:name="Color" oor:type="xs:int">
+          <info>
+            <desc>Specifies the color used for SQL numbers.</desc>
+          </info>
+        </prop>
+      </group>
+      <group oor:name="SQLString">
+        <info>
+          <desc>Specifies the settings for SQL strings, as used the Query Designer.</desc>
+        </info>
+        <prop oor:name="Color" oor:type="xs:int">
+          <info>
+            <desc>Specifies the color used for SQL strings.</desc>
+          </info>
+        </prop>
+      </group>
+      <group oor:name="SQLOperator">
+        <info>
+          <desc>Specifies the settings for SQL operators, as used the Query Designer.</desc>
+        </info>
+        <prop oor:name="Color" oor:type="xs:int">
+          <info>
+            <desc>Specifies the color used for SQL operators.</desc>
+          </info>
+        </prop>
+      </group>
+      <group oor:name="SQLKeyword">
+        <info>
+          <desc>Specifies the settings for SQL keywords, as used the Query Designer.</desc>
+        </info>
+        <prop oor:name="Color" oor:type="xs:int">
+          <info>
+            <desc>Specifies the color used for SQL keywords.</desc>
+          </info>
+        </prop>
+      </group>
+      <group oor:name="SQLParameter">
+        <info>
+          <desc>Specifies the settings for SQL parameters, as used the Query Designer.</desc>
+        </info>
+        <prop oor:name="Color" oor:type="xs:int">
+          <info>
+            <desc>Specifies the color used for SQL parameters.</desc>
+          </info>
+        </prop>
+      </group>
+      <group oor:name="SQLComment">
+        <info>
+          <desc>Specifies the settings for SQL comments, as used the Query Designer.</desc>
+        </info>
+        <prop oor:name="Color" oor:type="xs:int">
+          <info>
+            <desc>Specifies the color used for SQL parameters.</desc>
+          </info>
+        </prop>
+      </group>
 		</group>
 	</templates>
 	<component>

File reportdesign/util/description.xml

-<?xml version="1.0" encoding="utf-8"?>
-<description xmlns="http://openoffice.org/extensions/description/2006"
-    xmlns:d="http://openoffice.org/extensions/description/2006" 
-    xmlns:xlink="http://www.w3.org/1999/xlink">
-  <display-name>
-    <name lang="en-US">Sun™ Report Builder</name>
-    <!-- <name lang="en-US">Sun(TM) Report Builder</name> -->
-  </display-name>
-  <registration>
-    <simple-license accept-by="admin" default-license-id="en-US" >
-            <license-text xlink:href="licensefile" lang="isocode" license-id="lic-isocode"/>
-    </simple-license>
-  </registration>
-  <version value="1.0.6"/>
-  <identifier value="com.sun.reportdesigner"/>
-  <dependencies>
-    <OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0"/>
-  </dependencies>
-  <publisher>
-    <name xlink:href="http://www.sun.com/staroffice" lang="en">Sun Microsystems, Inc.</name>
-  </publisher>
-</description>
+<?xml version="1.0" encoding="utf-8"?>
+<description xmlns="http://openoffice.org/extensions/description/2006"
+    xmlns:d="http://openoffice.org/extensions/description/2006" 
+    xmlns:xlink="http://www.w3.org/1999/xlink">
+  <display-name>
+    <name lang="en-US">Sun™ Report Builder</name>
+    <!-- <name lang="en-US">Sun(TM) Report Builder</name> -->
+  </display-name>
+  <registration>
+    <simple-license accept-by="admin" default-license-id="en-US" >
+            <license-text xlink:href="licensefile" lang="isocode" license-id="lic-isocode"/>
+    </simple-license>
+  </registration>
+  <version value="1.0.6"/>
+  <identifier value="com.sun.reportdesigner"/>
+  <dependencies>
+    <OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0"/>
+  </dependencies>
+  <publisher>
+    <name xlink:href="http://www.sun.com/staroffice" lang="en">Sun Microsystems, Inc.</name>
+  </publisher>
+</description>

File svtools/inc/svtools/colorcfg.hxx

  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: colorcfg.hxx,v $
- * $Revision: 1.5 $
+ * $Revision: 1.5.108.1 $
  *
  * This file is part of OpenOffice.org.
  *
     BASICOPERATOR  ,
     BASICKEYWORD   ,
     BASICERROR   ,
+	SQLIDENTIFIER,
+	SQLNUMBER,
+	SQLSTRING,
+	SQLOPERATOR,
+	SQLKEYWORD,
+	SQLPARAMETER,
+	SQLCOMMENT,
     ColorConfigEntryCount
 };
 /* -----------------------------22.03.2002 15:36------------------------------

File svtools/inc/svtools/editsyntaxhighlighter.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: svmedit.hxx,v $
+ * $Revision: 1.3.108.4 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _EDITSYNTAXHIGHLIGHTER_HXX
+#define _EDITSYNTAXHIGHLIGHTER_HXX
+
+#include <svtools/svmedit.hxx>
+#include <svtools/syntaxhighlight.hxx>
+#include <svtools/svtdllapi.h>
+#include <svtools/colorcfg.hxx>
+
+class SVT_DLLPUBLIC MultiLineEditSyntaxHighlight : public MultiLineEdit
+{
+	private:
+		bool				mbDoBracketHilight;
+		SyntaxHighlighter	aHighlighter;
+		svtools::ColorConfig m_aColorConfig;
+		
+	private:
+		virtual void DoBracketHilight(USHORT aKey);
+
+	protected:
+		virtual long PreNotify( NotifyEvent& rNEvt );
+	
+	public:
+		MultiLineEditSyntaxHighlight( Window* pParent, WinBits nWinStyle = WB_LEFT | WB_BORDER , HighlighterLanguage aLanguage = HIGHLIGHT_SQL);
+		MultiLineEditSyntaxHighlight( Window* pParent, const ResId& rResId , HighlighterLanguage aLanguage = HIGHLIGHT_SQL);
+		~MultiLineEditSyntaxHighlight();
+
+		void EnableBracketHilight(bool aHilight = true);
+		bool IsBracketHilight();
+		virtual void UpdateData();
+		virtual void SetText(const String& rNewText);
+		virtual void SetText( const XubString& rStr, const Selection& rNewSelection )
+                    { SetText( rStr ); SetSelection( rNewSelection ); }
+		
+		Color GetColorValue(TokenTypes aToken);
+};
+
+#endif

File svtools/inc/svtools/svmedit.hxx

  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: svmedit.hxx,v $
- * $Revision: 1.3 $
+ * $Revision: 1.3.108.4 $
  *
  * This file is part of OpenOffice.org.
  *
 #ifndef _SVEDIT_HXX
 #define _SVEDIT_HXX
 
-#include "svtools/svtdllapi.h"
 #include <vcl/wintypes.hxx>
-#ifndef _EDIT_HXX //autogen
 #include <vcl/edit.hxx>
-#endif
+
+#include <svtools/syntaxhighlight.hxx>
+#include <svtools/svtdllapi.h>
+#include <svtools/colorcfg.hxx>
 
 class ImpSvMEdit;
 class Timer;
 	DECL_LINK( 		ImpUpdateDataHdl, Timer* );
 	void 			StateChanged( StateChangedType nType );
 	void 			DataChanged( const DataChangedEvent& rDCEvt );
-	long 			PreNotify( NotifyEvent& rNEvt );
+	virtual long 	PreNotify( NotifyEvent& rNEvt );
 	long 			Notify( NotifyEvent& rNEvt );
 	void 			ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground );
 	WinBits 		ImplInitStyle( WinBits nStyle );
 	return pUpdateDataTimer ? pUpdateDataTimer->GetTimeout() : 0;
 }
 
-
 #endif

File svtools/inc/svtools/syntaxhighlight.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: syntaxhighlight.hxx,v $
+ * $Revision: 1.1.2.3 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _SVTOOLS_SYNTAXHIGHLIGHT_HXX
+#define _SVTOOLS_SYNTAXHIGHLIGHT_HXX
+
+#include <list>
+
+#include <vos/macros.hxx>
+#include <vos/mutex.hxx>
+
+#include <vcl/svapp.hxx>
+
+#include <tools/stream.hxx>
+#include <tools/shl.hxx>
+
+#include <svtools/brdcst.hxx>
+#include <svtools/svtdllapi.h>
+
+
+// for the bsearch
+#ifdef WNT
+#define CDECL _cdecl
+#endif
+#if defined(UNX) || defined(OS2)
+#define CDECL
+#endif
+#ifdef UNX
+#include <sys/resource.h>
+#endif
+
+#include <stdio.h>
+
+#include <tools/string.hxx>
+#include <tools/gen.hxx>
+
+#include <svtools/svarray.hxx>
+
+
+// Token-Typen TT_...
+enum TokenTypes
+{
+	TT_UNKNOWN,
+	TT_IDENTIFIER,
+	TT_WHITESPACE,
+	TT_NUMBER,
+	TT_STRING,
+	TT_EOL,
+	TT_COMMENT,
+	TT_ERROR,
+	TT_OPERATOR,
+	TT_KEYWORDS,
+	TT_PARAMETER
+};
+
+struct HighlightPortion { UINT16 nBegin; UINT16 nEnd; TokenTypes tokenType; };
+
+
+
+SV_DECL_VARARR(HighlightPortions, HighlightPortion, 0, 16)
+
+/////////////////////////////////////////////////////////////////////////
+// Hilfsklasse zur Untersuchung von JavaScript-Modulen, zunaechst zum
+// Heraussuchen der Funktionen, spaeter auch zum Syntax-Highlighting verwenden
+
+//	Flags fuer Zeichen-Eigenschaften
+#define CHAR_START_IDENTIFIER	0x0001
+#define CHAR_IN_IDENTIFIER		0x0002
+#define CHAR_START_NUMBER		0x0004
+#define CHAR_IN_NUMBER			0x0008
+#define CHAR_IN_HEX_NUMBER		0x0010
+#define CHAR_IN_OCT_NUMBER		0x0020
+#define CHAR_START_STRING		0x0040
+#define CHAR_OPERATOR			0x0080
+#define CHAR_SPACE				0x0100
+#define CHAR_EOL				0x0200
+
+#define CHAR_EOF				0x00
+
+
+// Sprachmodus des HighLighters (spaeter eventuell feiner
+// differenzieren mit Keyword-Liste, C-Kommentar-Flag)
+enum HighlighterLanguage
+{
+	HIGHLIGHT_BASIC,
+	HIGHLIGHT_SQL
+};
+
+class SimpleTokenizer_Impl
+{
+	HighlighterLanguage aLanguage;
+	// Zeichen-Info-Tabelle
+	USHORT aCharTypeTab[256];
+
+	const sal_Unicode* mpStringBegin;
+	const sal_Unicode* mpActualPos;
+
+	// Zeile und Spalte
+	UINT32 nLine;
+	UINT32 nCol;
+
+	sal_Unicode peekChar( void )	{ return *mpActualPos; }
+	sal_Unicode getChar( void )		{ nCol++; return *mpActualPos++; }
+
+	// Hilfsfunktion: Zeichen-Flag Testen
+	BOOL testCharFlags( sal_Unicode c, USHORT nTestFlags );
+
+	// Neues Token holen, Leerstring == nix mehr da
+	BOOL getNextToken( /*out*/TokenTypes& reType,
+		/*out*/const sal_Unicode*& rpStartPos, /*out*/const sal_Unicode*& rpEndPos );
+
+	String getTokStr( /*out*/const sal_Unicode* pStartPos, /*out*/const sal_Unicode* pEndPos );
+
+#ifndef PRODUCT
+	// TEST: Token ausgeben
+	String getFullTokenStr( /*out*/TokenTypes eType,
+		/*out*/const sal_Unicode* pStartPos, /*out*/const sal_Unicode* pEndPos );
+#endif
+
+	const char** ppListKeyWords;
+	UINT16 nKeyWordCount;
+
+public:
+	SimpleTokenizer_Impl( HighlighterLanguage aLang = HIGHLIGHT_BASIC );
+	~SimpleTokenizer_Impl( void );
+
+	UINT16 parseLine( UINT32 nLine, const String* aSource );
+	void getHighlightPortions( UINT32 nParseLine, const String& rLine,
+													/*out*/HighlightPortions& portions );
+	void setKeyWords( const char** ppKeyWords, UINT16 nCount );
+};
+
+
+//*** SyntaxHighlighter-Klasse ***
+// Konzept: Der Highlighter wird ueber alle Aenderungen im Source
+// informiert (notifyChange) und liefert dem Aufrufer jeweils die
+// Information zurueck, welcher Zeilen-Bereich des Source-Codes
+// aufgrund dieser Aenderung neu gehighlighted werden muss.
+// Dazu merkt sich Highlighter intern fuer jede Zeile, ob dort
+// C-Kommentare beginnen oder enden.
+class SVT_DLLPUBLIC SyntaxHighlighter
+{
+	HighlighterLanguage eLanguage;
+	SimpleTokenizer_Impl* m_pSimpleTokenizer;
+	char* m_pKeyWords;
+	UINT16 m_nKeyWordCount;
+
+//	void initializeKeyWords( HighlighterLanguage eLanguage );
+
+public:
+	SyntaxHighlighter( void );
+	~SyntaxHighlighter( void );
+
+	// HighLighter (neu) initialisieren, die Zeilen-Tabelle wird
+	// dabei komplett geloescht, d.h. im Abschluss wird von einem
+	// leeren Source ausgegangen. In notifyChange() kann dann
+	// nur Zeile 0 angegeben werden.
+	void initialize( HighlighterLanguage eLanguage_ );
+
+	const Range notifyChange( UINT32 nLine, INT32 nLineCountDifference,
+								const String* pChangedLines, UINT32 nArrayLength);
+
+	void getHighlightPortions( UINT32 nLine, const String& rLine,
+											HighlightPortions& pPortions );
+
+	HighlighterLanguage GetLanguage() { return eLanguage;}
+};
+#endif

File svtools/prj/d.lst

 ..\inc\urlbmk.hxx %_DEST%\inc%_EXT%\svtools\urlbmk.hxx
 ..\inc\inetimg.hxx %_DEST%\inc%_EXT%\svtools\inetimg.hxx
 ..\inc\svtools\svmedit.hxx %_DEST%\inc%_EXT%\svtools\svmedit.hxx
+..\inc\svtools\editsyntaxhighlighter.hxx %_DEST%\inc%_EXT%\svtools\editsyntaxhighlighter.hxx
+..\inc\svtools\syntaxhighlight.hxx %_DEST%\inc%_EXT%\svtools\syntaxhighlight.hxx
 ..\inc\svtools\svmedit2.hxx %_DEST%\inc%_EXT%\svtools\svmedit2.hxx
 ..\inc\svtools\svstdarr.hxx %_DEST%\inc%_EXT%\svtools\svstdarr.hxx
 ..\inc\svtools\metitem.hxx %_DEST%\inc%_EXT%\svtools\metitem.hxx

File svtools/source/config/colorcfg.cxx

  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: colorcfg.cxx,v $
- * $Revision: 1.20 $
+ * $Revision: 1.20.82.1 $
  *
  * This file is part of OpenOffice.org.
  *
         { RTL_CONSTASCII_USTRINGPARAM("/BASICString")    ,  sal_False },
         { RTL_CONSTASCII_USTRINGPARAM("/BASICOperator")  ,  sal_False },
         { RTL_CONSTASCII_USTRINGPARAM("/BASICKeyword")   ,  sal_False },
-        { RTL_CONSTASCII_USTRINGPARAM("/BASICError"),  sal_False }
+        { RTL_CONSTASCII_USTRINGPARAM("/BASICError"),  sal_False },
+		{ RTL_CONSTASCII_USTRINGPARAM("/SQLIdentifier"),  sal_False },
+		{ RTL_CONSTASCII_USTRINGPARAM("/SQLNumber"),  sal_False },
+		{ RTL_CONSTASCII_USTRINGPARAM("/SQLString"),  sal_False },
+		{ RTL_CONSTASCII_USTRINGPARAM("/SQLOperator"),  sal_False },
+		{ RTL_CONSTASCII_USTRINGPARAM("/SQLKeyword"),  sal_False },
+		{ RTL_CONSTASCII_USTRINGPARAM("/SQLParameter"),  sal_False },
+		{ RTL_CONSTASCII_USTRINGPARAM("/SQLComment"),  sal_False }
     };
     int nIndex = 0;
     OUString sColor = C2U(cColor);
         0xc0c0c0, // WRITERFIELDSHADIN
         0xc0c0c0, // WRITERIDXSHADINGS
         0, // WRITERDIRECTCURSOR
-          COL_GREEN,  //WRITERSCRIPTINDICATOR
+        COL_GREEN,  //WRITERSCRIPTINDICATOR
         0xc0c0c0, //WRITERSECTIONBOUNDARIES
         COL_BLUE, //WRITERPAGEBREAKS,
         COL_LIGHTBLUE, // HTMLSGML
         COL_BLUE, // BASICOPERATOR  ,
         COL_BLUE, // BASICKEYWORD   ,
         COL_RED, //BASICERROR
+		0xF84E4E, // SQLIDENTIFIER
+		0xCC66CC, // SQLNUMBER
+		0x7CDB8C, // SQLSTRING
+		COL_BLACK, // SQLOPERATOR
+		0x0000FF, // SQLKEYWORD
+		0x259D9D, // SQLPARAMTER
+		COL_GRAY,// SQLCOMMENT 
     };
     Color aRet;
     switch(eEntry)

File svtools/source/edit/editsyntaxhighlighter.cxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: editsyntaxhighlighter.cxx,v $
+ * $Revision: 1.44.108.7 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_svtools.hxx"
+
+#include <svtools/svmedit.hxx>
+#include <svtools/xtextedt.hxx>
+#include <svtools/editsyntaxhighlighter.hxx>
+#include "../../inc/txtattr.hxx"
+
+
+MultiLineEditSyntaxHighlight::MultiLineEditSyntaxHighlight( Window* pParent, WinBits nWinStyle, 
+	HighlighterLanguage aLanguage): MultiLineEdit(pParent,nWinStyle), mbDoBracketHilight(true)
+{
+	EnableUpdateData(300);
+	aHighlighter.initialize( aLanguage );
+}
+
+MultiLineEditSyntaxHighlight::MultiLineEditSyntaxHighlight( Window* pParent, const ResId& rResId , 
+	HighlighterLanguage aLanguage): MultiLineEdit(pParent,rResId), mbDoBracketHilight(true)
+{
+	EnableUpdateData(300);
+	aHighlighter.initialize( aLanguage );
+}
+
+MultiLineEditSyntaxHighlight::~MultiLineEditSyntaxHighlight()
+{
+}
+
+void MultiLineEditSyntaxHighlight::EnableBracketHilight(bool aHilight)
+{
+	mbDoBracketHilight = aHilight;
+}
+
+bool MultiLineEditSyntaxHighlight::IsBracketHilight()
+{
+	return mbDoBracketHilight;
+}
+		
+void MultiLineEditSyntaxHighlight::SetText(const String& rNewText)