1*24acc546SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*24acc546SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*24acc546SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*24acc546SAndrew Rist  * distributed with this work for additional information
6*24acc546SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*24acc546SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*24acc546SAndrew Rist  * "License"); you may not use this file except in compliance
9*24acc546SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*24acc546SAndrew Rist  *
11*24acc546SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*24acc546SAndrew Rist  *
13*24acc546SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*24acc546SAndrew Rist  * software distributed under the License is distributed on an
15*24acc546SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*24acc546SAndrew Rist  * KIND, either express or implied.  See the License for the
17*24acc546SAndrew Rist  * specific language governing permissions and limitations
18*24acc546SAndrew Rist  * under the License.
19*24acc546SAndrew Rist  *
20*24acc546SAndrew Rist  *************************************************************/
21*24acc546SAndrew Rist 
22*24acc546SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_forms.hxx"
26cdf0e10cSrcweir #include "richtextviewport.hxx"
27cdf0e10cSrcweir #include <editeng/editview.hxx>
28cdf0e10cSrcweir 
29cdf0e10cSrcweir //........................................................................
30cdf0e10cSrcweir namespace frm
31cdf0e10cSrcweir {
32cdf0e10cSrcweir //........................................................................
33cdf0e10cSrcweir 
34cdf0e10cSrcweir 	//====================================================================
35cdf0e10cSrcweir 	//= RichTextViewPort
36cdf0e10cSrcweir 	//====================================================================
37cdf0e10cSrcweir     //--------------------------------------------------------------------
RichTextViewPort(Window * _pParent)38cdf0e10cSrcweir     RichTextViewPort::RichTextViewPort( Window* _pParent )
39cdf0e10cSrcweir         :Control ( _pParent )
40cdf0e10cSrcweir         ,m_bHideInactiveSelection( true )
41cdf0e10cSrcweir     {
42cdf0e10cSrcweir     }
43cdf0e10cSrcweir 
44cdf0e10cSrcweir     //--------------------------------------------------------------------
setView(EditView & _rView)45cdf0e10cSrcweir     void RichTextViewPort::setView( EditView& _rView )
46cdf0e10cSrcweir     {
47cdf0e10cSrcweir         m_pView = &_rView;
48cdf0e10cSrcweir         SetPointer( _rView.GetPointer() );
49cdf0e10cSrcweir     }
50cdf0e10cSrcweir 
51cdf0e10cSrcweir     //--------------------------------------------------------------------
Paint(const Rectangle & _rRect)52cdf0e10cSrcweir     void RichTextViewPort::Paint( const Rectangle& _rRect )
53cdf0e10cSrcweir     {
54cdf0e10cSrcweir         m_pView->Paint( _rRect );
55cdf0e10cSrcweir     }
56cdf0e10cSrcweir 
57cdf0e10cSrcweir     //--------------------------------------------------------------------
GetFocus()58cdf0e10cSrcweir     void RichTextViewPort::GetFocus()
59cdf0e10cSrcweir     {
60cdf0e10cSrcweir         Control::GetFocus();
61cdf0e10cSrcweir         m_pView->SetSelectionMode( EE_SELMODE_STD );
62cdf0e10cSrcweir         m_pView->ShowCursor( sal_True );
63cdf0e10cSrcweir     }
64cdf0e10cSrcweir 
65cdf0e10cSrcweir     //--------------------------------------------------------------------
LoseFocus()66cdf0e10cSrcweir     void RichTextViewPort::LoseFocus()
67cdf0e10cSrcweir     {
68cdf0e10cSrcweir         m_pView->HideCursor();
69cdf0e10cSrcweir         m_pView->SetSelectionMode( m_bHideInactiveSelection ? EE_SELMODE_HIDDEN : EE_SELMODE_STD );
70cdf0e10cSrcweir         Control::LoseFocus();
71cdf0e10cSrcweir     }
72cdf0e10cSrcweir 
73cdf0e10cSrcweir     //--------------------------------------------------------------------
KeyInput(const KeyEvent & _rKEvt)74cdf0e10cSrcweir     void RichTextViewPort::KeyInput( const KeyEvent& _rKEvt )
75cdf0e10cSrcweir     {
76cdf0e10cSrcweir         if ( !m_pView->PostKeyEvent( _rKEvt ) )
77cdf0e10cSrcweir             Control::KeyInput( _rKEvt );
78cdf0e10cSrcweir         else
79cdf0e10cSrcweir             implInvalidateAttributes();
80cdf0e10cSrcweir     }
81cdf0e10cSrcweir 
82cdf0e10cSrcweir     //--------------------------------------------------------------------
MouseMove(const MouseEvent & _rMEvt)83cdf0e10cSrcweir     void RichTextViewPort::MouseMove( const MouseEvent& _rMEvt )
84cdf0e10cSrcweir     {
85cdf0e10cSrcweir         Control::MouseMove( _rMEvt );
86cdf0e10cSrcweir         m_pView->MouseMove( _rMEvt );
87cdf0e10cSrcweir     }
88cdf0e10cSrcweir 
89cdf0e10cSrcweir     //--------------------------------------------------------------------
MouseButtonDown(const MouseEvent & _rMEvt)90cdf0e10cSrcweir     void RichTextViewPort::MouseButtonDown( const MouseEvent& _rMEvt )
91cdf0e10cSrcweir     {
92cdf0e10cSrcweir         Control::MouseButtonDown( _rMEvt );
93cdf0e10cSrcweir         m_pView->MouseButtonDown( _rMEvt );
94cdf0e10cSrcweir         GrabFocus();
95cdf0e10cSrcweir     }
96cdf0e10cSrcweir 
97cdf0e10cSrcweir     //--------------------------------------------------------------------
MouseButtonUp(const MouseEvent & _rMEvt)98cdf0e10cSrcweir     void RichTextViewPort::MouseButtonUp( const MouseEvent& _rMEvt )
99cdf0e10cSrcweir     {
100cdf0e10cSrcweir         Control::MouseButtonUp( _rMEvt );
101cdf0e10cSrcweir         m_pView->MouseButtonUp( _rMEvt );
102cdf0e10cSrcweir         implInvalidateAttributes();
103cdf0e10cSrcweir     }
104cdf0e10cSrcweir 
105cdf0e10cSrcweir     //--------------------------------------------------------------------
SetHideInactiveSelection(bool _bHide)106cdf0e10cSrcweir     void RichTextViewPort::SetHideInactiveSelection( bool _bHide )
107cdf0e10cSrcweir     {
108cdf0e10cSrcweir         if ( m_bHideInactiveSelection == _bHide )
109cdf0e10cSrcweir             return;
110cdf0e10cSrcweir         m_bHideInactiveSelection = _bHide;
111cdf0e10cSrcweir         if ( !HasFocus() )
112cdf0e10cSrcweir             m_pView->SetSelectionMode( m_bHideInactiveSelection ? EE_SELMODE_HIDDEN : EE_SELMODE_STD );
113cdf0e10cSrcweir     }
114cdf0e10cSrcweir 
115cdf0e10cSrcweir     //--------------------------------------------------------------------
GetHideInactiveSelection() const116cdf0e10cSrcweir     bool RichTextViewPort::GetHideInactiveSelection() const
117cdf0e10cSrcweir     {
118cdf0e10cSrcweir         return m_bHideInactiveSelection;
119cdf0e10cSrcweir     }
120cdf0e10cSrcweir 
121cdf0e10cSrcweir //........................................................................
122cdf0e10cSrcweir }   // namespace frm
123cdf0e10cSrcweir //........................................................................
124