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 #ifndef FORMS_SOURCE_RICHTEXT_RICHTEXTVIEWPORT_HXX
28 #define FORMS_SOURCE_RICHTEXT_RICHTEXTVIEWPORT_HXX
29 
30 #include <vcl/ctrl.hxx>
31 
32 class EditView;
33 //........................................................................
34 namespace frm
35 {
36 //........................................................................
37 
38 	//====================================================================
39 	//= RichTextViewPort
40 	//====================================================================
41     class RichTextViewPort : public Control
42     {
43     private:
44         EditView*   m_pView;
45         Link        m_aInvalidationHandler;
46         bool        m_bHideInactiveSelection;
47 
48     public:
49         RichTextViewPort( Window* _pParent );
50 
51         void    setView( EditView& _rView );
52 
53         inline void    setAttributeInvalidationHandler( const Link& _rHandler ) { m_aInvalidationHandler = _rHandler; }
54 
55         void    SetHideInactiveSelection( bool _bHide );
56         bool    GetHideInactiveSelection() const;
57 
58     protected:
59         virtual void        Paint( const Rectangle& rRect );
60         virtual void        GetFocus();
61         virtual void        LoseFocus();
62         virtual void        KeyInput( const KeyEvent& _rKEvt );
63         virtual void        MouseMove( const MouseEvent& _rMEvt );
64         virtual void        MouseButtonDown( const MouseEvent& _rMEvt );
65         virtual void        MouseButtonUp( const MouseEvent& _rMEvt );
66 
67     private:
68         inline void implInvalidateAttributes() const
69         {
70             if ( m_aInvalidationHandler.IsSet() )
71                 m_aInvalidationHandler.Call( NULL );
72         }
73     };
74 
75 //........................................................................
76 } // namespace frm
77 //........................................................................
78 
79 #endif // FORMS_SOURCE_RICHTEXT_RICHTEXTVIEWPORT_HXX
80 
81