1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _EDITSYNTAXHIGHLIGHTER_HXX
25 #define _EDITSYNTAXHIGHLIGHTER_HXX
26 
27 #include <svtools/svmedit.hxx>
28 #include <svtools/syntaxhighlight.hxx>
29 #include <svtools/svtdllapi.h>
30 #include <svtools/colorcfg.hxx>
31 
32 class SVT_DLLPUBLIC MultiLineEditSyntaxHighlight : public MultiLineEdit
33 {
34 	private:
35 		bool				mbDoBracketHilight;
36 		SyntaxHighlighter	aHighlighter;
37 		svtools::ColorConfig m_aColorConfig;
38 
39 	private:
40 		virtual void DoBracketHilight(sal_uInt16 aKey);
41 
42 	protected:
43 		virtual long PreNotify( NotifyEvent& rNEvt );
44 
45 	public:
46 		MultiLineEditSyntaxHighlight( Window* pParent, WinBits nWinStyle = WB_LEFT | WB_BORDER , HighlighterLanguage aLanguage = HIGHLIGHT_SQL);
47 		MultiLineEditSyntaxHighlight( Window* pParent, const ResId& rResId , HighlighterLanguage aLanguage = HIGHLIGHT_SQL);
48 		~MultiLineEditSyntaxHighlight();
49 
50 		void EnableBracketHilight(bool aHilight = true);
51 		bool IsBracketHilight();
52 		virtual void UpdateData();
53 		virtual void SetText(const String& rNewText);
SetText(const XubString & rStr,const Selection & rNewSelection)54 		virtual void SetText( const XubString& rStr, const Selection& rNewSelection )
55                     { SetText( rStr ); SetSelection( rNewSelection ); }
56 
57 		Color GetColorValue(TokenTypes aToken);
58 };
59 
60 #endif
61