1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef _EDITSYNTAXHIGHLIGHTER_HXX
29 #define _EDITSYNTAXHIGHLIGHTER_HXX
30 
31 #include <svtools/svmedit.hxx>
32 #include <svtools/syntaxhighlight.hxx>
33 #include <svtools/svtdllapi.h>
34 #include <svtools/colorcfg.hxx>
35 
36 class SVT_DLLPUBLIC MultiLineEditSyntaxHighlight : public MultiLineEdit
37 {
38 	private:
39 		bool				mbDoBracketHilight;
40 		SyntaxHighlighter	aHighlighter;
41 		svtools::ColorConfig m_aColorConfig;
42 
43 	private:
44 		virtual void DoBracketHilight(sal_uInt16 aKey);
45 
46 	protected:
47 		virtual long PreNotify( NotifyEvent& rNEvt );
48 
49 	public:
50 		MultiLineEditSyntaxHighlight( Window* pParent, WinBits nWinStyle = WB_LEFT | WB_BORDER , HighlighterLanguage aLanguage = HIGHLIGHT_SQL);
51 		MultiLineEditSyntaxHighlight( Window* pParent, const ResId& rResId , HighlighterLanguage aLanguage = HIGHLIGHT_SQL);
52 		~MultiLineEditSyntaxHighlight();
53 
54 		void EnableBracketHilight(bool aHilight = true);
55 		bool IsBracketHilight();
56 		virtual void UpdateData();
57 		virtual void SetText(const String& rNewText);
58 		virtual void SetText( const XubString& rStr, const Selection& rNewSelection )
59                     { SetText( rStr ); SetSelection( rNewSelection ); }
60 
61 		Color GetColorValue(TokenTypes aToken);
62 };
63 
64 #endif
65