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 // MARKER(update_precomp.py): autogen include statement, do not remove 29 #include "precompiled_desktop.hxx" 30 31 #include <vcl/scrbar.hxx> 32 #include <svtools/txtattr.hxx> 33 #include <svtools/xtextedt.hxx> 34 35 #include "descedit.hxx" 36 37 #include "dp_gui.hrc" 38 39 using dp_gui::DescriptionEdit; 40 41 // DescriptionEdit ------------------------------------------------------- 42 43 DescriptionEdit::DescriptionEdit( Window* pParent, const ResId& rResId ) : 44 45 ExtMultiLineEdit( pParent, rResId ), 46 47 m_bIsVerticalScrollBarHidden( true ) 48 49 { 50 Init(); 51 } 52 53 // ----------------------------------------------------------------------- 54 55 void DescriptionEdit::Init() 56 { 57 Clear(); 58 // no tabstop 59 SetStyle( ( GetStyle() & ~WB_TABSTOP ) | WB_NOTABSTOP ); 60 // read-only 61 SetReadOnly(); 62 // no cursor 63 EnableCursor( sal_False ); 64 } 65 66 // ----------------------------------------------------------------------- 67 68 void DescriptionEdit::UpdateScrollBar() 69 { 70 if ( m_bIsVerticalScrollBarHidden ) 71 { 72 ScrollBar* pVScrBar = GetVScrollBar(); 73 if ( pVScrBar && pVScrBar->GetVisibleSize() < pVScrBar->GetRangeMax() ) 74 { 75 pVScrBar->Show(); 76 m_bIsVerticalScrollBarHidden = false; 77 } 78 } 79 } 80 81 // ----------------------------------------------------------------------- 82 83 void DescriptionEdit::Clear() 84 { 85 SetText( String() ); 86 87 m_bIsVerticalScrollBarHidden = true; 88 ScrollBar* pVScrBar = GetVScrollBar(); 89 if ( pVScrBar ) 90 pVScrBar->Hide(); 91 } 92 93 // ----------------------------------------------------------------------- 94 95 void DescriptionEdit::SetDescription( const String& rDescription ) 96 { 97 SetText( rDescription ); 98 UpdateScrollBar(); 99 } 100 101