2000-09-18 16:07:07 +00:00
/*************************************************************************
*
2005-09-09 12:21:09 +00:00
* OpenOffice . org - a multi - platform office productivity suite
2000-09-18 16:07:07 +00:00
*
2005-09-09 12:21:09 +00:00
* $ RCSfile : unocontrols . cxx , v $
2000-09-18 16:07:07 +00:00
*
2007-07-18 07:43:55 +00:00
* $ Revision : 1.82 $
2000-09-18 16:07:07 +00:00
*
2007-07-18 07:43:55 +00:00
* last change : $ Author : obo $ $ Date : 2007 - 07 - 18 08 : 43 : 55 $
2000-09-18 16:07:07 +00:00
*
2005-09-09 12:21:09 +00:00
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1 .
2000-09-18 16:07:07 +00:00
*
*
2005-09-09 12:21:09 +00:00
* GNU Lesser General Public License Version 2.1
* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
* Copyright 2005 by Sun Microsystems , Inc .
* 901 San Antonio Road , Palo Alto , CA 94303 , USA
2000-09-18 16:07:07 +00:00
*
2005-09-09 12:21:09 +00:00
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1 , as published by the Free Software Foundation .
2000-09-18 16:07:07 +00:00
*
2005-09-09 12:21:09 +00:00
* This library is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* Lesser General Public License for more details .
2000-09-18 16:07:07 +00:00
*
2005-09-09 12:21:09 +00:00
* You should have received a copy of the GNU Lesser General Public
* License along with this library ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston ,
* MA 02111 - 1307 USA
2000-09-18 16:07:07 +00:00
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2006-09-16 11:20:45 +00:00
// MARKER(update_precomp.py): autogen include statement, do not remove
# include "precompiled_toolkit.hxx"
2000-09-18 16:07:07 +00:00
# ifndef _COM_SUN_STAR_AWT_XTEXTAREA_HPP_
# include <com/sun/star/awt/XTextArea.hpp>
# endif
# ifndef _COM_SUN_STAR_AWT_XVCLWINDOWPEER_HPP_
# include <com/sun/star/awt/XVclWindowPeer.hpp>
# endif
# ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
# include <com/sun/star/lang/XMultiServiceFactory.hpp>
# endif
2001-01-24 14:00:58 +00:00
# ifndef _COM_SUN_STAR_AWT_POSSIZE_HPP_
# include <com/sun/star/awt/PosSize.hpp>
# endif
2004-07-05 14:57:14 +00:00
# ifndef _COM_SUN_STAR_AWT_VISUALEFFECT_HPP_
# include <com/sun/star/awt/VisualEffect.hpp>
# endif
2004-05-10 12:41:58 +00:00
# ifndef _COM_SUN_STAR_AWT_LINEENDFORMAT_HPP_
# include <com/sun/star/awt/LineEndFormat.hpp>
# endif
2006-10-18 12:15:32 +00:00
# ifndef _COM_SUN_STAR_GRAPHIC_XGRAPHICPROVIDER_HPP_
# include <com/sun/star/graphic/XGraphicProvider.hpp>
# endif
2004-04-02 09:33:51 +00:00
# ifndef _COM_SUN_STAR_UTIL_DATE_HPP_
# include <com/sun/star/util/Date.hpp>
# endif
2004-07-05 14:57:14 +00:00
2003-03-27 16:05:12 +00:00
# ifndef TOOLKIT_FORMATTED_CONTROL_HXX
# include <toolkit/controls/formattedcontrol.hxx>
# endif
2004-05-19 15:46:21 +00:00
# ifndef TOOLKIT_ROADMAP_CONTROL_HXX
# include <toolkit/controls/roadmapcontrol.hxx>
# endif
2001-08-07 10:18:02 +00:00
# ifndef _TOOLKIT_HELPER_UNOCONTROLS_HXX_
2000-09-18 16:07:07 +00:00
# include <toolkit/controls/unocontrols.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _TOOLKIT_HELPERS_GEOMETRYCONTROLMODEL_HXX_
2001-01-24 14:00:58 +00:00
# include <toolkit/controls/geometrycontrolmodel.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _TOOLKIT_CONTROLS_STDTABCONTROLLER_HXX_
2001-01-25 12:40:59 +00:00
# include <toolkit/controls/stdtabcontroller.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
2000-09-18 16:07:07 +00:00
# include <toolkit/helper/property.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _TOOLKIT_HELPER_UNOPROPERTYARRAYHELPER_HXX_
2000-09-18 16:07:07 +00:00
# include <toolkit/helper/unopropertyarrayhelper.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _TOOLKIT_HELPER_UNOMEMORYSTREAM_HXX_
2000-09-18 16:07:07 +00:00
# include <toolkit/helper/unomemorystream.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _TOOLKIT_HELPER_SERVICENAMES_HXX_
2000-09-18 16:07:07 +00:00
# include <toolkit/helper/servicenames.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _TOOLKIT_HELPER_MACROS_HXX_
2000-09-18 16:07:07 +00:00
# include <toolkit/helper/macros.hxx>
2001-08-07 10:18:02 +00:00
# endif
2004-07-05 14:57:14 +00:00
# ifndef TOOLKIT_INC_TOOLKIT_HELPER_IMAGEALIGN_HXX
# include <toolkit/helper/imagealign.hxx>
# endif
2000-09-18 16:07:07 +00:00
2001-08-07 10:18:02 +00:00
# ifndef _CPPUHELPER_TYPEPROVIDER_HXX_
2000-09-18 16:07:07 +00:00
# include <cppuhelper/typeprovider.hxx>
2001-08-07 10:18:02 +00:00
# endif
2000-09-18 16:07:07 +00:00
2006-10-18 12:15:32 +00:00
# ifndef COMPHELPER_COMPONENTCONTEXT_HXX
# include <comphelper/componentcontext.hxx>
# endif
2000-11-02 10:12:12 +00:00
# ifndef _COMPHELPER_PROCESSFACTORY_HXX_
# include <comphelper/processfactory.hxx>
# endif
2001-08-07 10:18:02 +00:00
# ifndef _COMPHELPER_EXTRACT_HXX_
# include <comphelper/extract.hxx>
# endif
2000-09-18 16:07:07 +00:00
2001-08-07 10:18:02 +00:00
# ifndef _SV_WRKWIN_HXX
2000-09-18 16:07:07 +00:00
# include <vcl/wrkwin.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _SV_SVAPP_HXX
2000-09-18 16:07:07 +00:00
# include <vcl/svapp.hxx>
2001-08-07 10:18:02 +00:00
# endif
2000-09-18 16:07:07 +00:00
2001-08-07 10:18:02 +00:00
# ifndef _SV_EDIT_HXX
2000-09-18 16:07:07 +00:00
# include <vcl/edit.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _SV_BUTTON_HXX
2000-09-18 16:07:07 +00:00
# include <vcl/button.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _SV_GROUP_HXX
2000-09-18 16:07:07 +00:00
# include <vcl/group.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _SV_FIXED_HXX
2000-09-18 16:07:07 +00:00
# include <vcl/fixed.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _SV_LSTBOX_HXX
2000-09-18 16:07:07 +00:00
# include <vcl/lstbox.hxx>
2001-08-07 10:18:02 +00:00
# endif
# ifndef _SV_COMBOBOX_HXX
2000-09-18 16:07:07 +00:00
# include <vcl/combobox.hxx>
2001-08-07 10:18:02 +00:00
# endif
2000-09-18 16:07:07 +00:00
2001-08-07 10:18:02 +00:00
# ifndef _TOOLS_DEBUG_HXX
2000-09-18 16:07:07 +00:00
# include <tools/debug.hxx>
2001-08-07 10:18:02 +00:00
# endif
2006-10-18 12:15:32 +00:00
# ifndef TOOLS_DIAGNOSE_EX_H
# include <tools/diagnose_ex.h>
# endif
2000-09-18 16:07:07 +00:00
2004-05-07 15:17:46 +00:00
# ifndef _DATE_HXX
2001-08-10 08:10:14 +00:00
# include <tools/date.hxx>
2004-05-07 15:17:46 +00:00
# endif
# ifndef _TOOLS_TIME_HXX
2001-08-10 08:10:14 +00:00
# include <tools/time.hxx>
2004-05-07 15:17:46 +00:00
# endif
# include <algorithm>
2001-08-10 08:10:14 +00:00
2001-01-24 14:00:58 +00:00
using namespace : : com : : sun : : star ;
2003-03-27 16:05:12 +00:00
using namespace : : toolkit ;
2001-01-24 14:00:58 +00:00
2003-05-22 09:52:09 +00:00
// ----------------------------------------------------
// helper
// ----------------------------------------------------
static void lcl_knitImageComponents ( const uno : : Reference < awt : : XControlModel > & _rxModel ,
const uno : : Reference < awt : : XWindowPeer > & _rxPeer ,
bool _bAdd )
{
uno : : Reference < awt : : XImageProducer > xProducer ( _rxModel , uno : : UNO_QUERY ) ;
if ( xProducer . is ( ) )
{
uno : : Reference < awt : : XImageConsumer > xConsumer ( _rxPeer , uno : : UNO_QUERY ) ;
if ( xConsumer . is ( ) )
{
if ( _bAdd )
{
xProducer - > addConsumer ( xConsumer ) ;
xProducer - > startProduction ( ) ;
}
else
xProducer - > removeConsumer ( xConsumer ) ;
}
}
}
2000-09-18 16:07:07 +00:00
// ----------------------------------------------------
// class UnoControlEditModel
// ----------------------------------------------------
UnoControlEditModel : : UnoControlEditModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_ALIGN ) ;
2007-07-06 13:27:55 +00:00
ImplRegisterProperty ( BASEPROPERTY_AUTOHSCROLL ) ;
ImplRegisterProperty ( BASEPROPERTY_AUTOVSCROLL ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ECHOCHAR ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
ImplRegisterProperty ( BASEPROPERTY_HARDLINEBREAKS ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_HSCROLL ) ;
2004-05-10 12:41:58 +00:00
ImplRegisterProperty ( BASEPROPERTY_LINE_END_FORMAT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_MAXTEXTLEN ) ;
ImplRegisterProperty ( BASEPROPERTY_MULTILINE ) ;
2007-07-06 13:27:55 +00:00
ImplRegisterProperty ( BASEPROPERTY_PAINTTRANSPARENT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_READONLY ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
ImplRegisterProperty ( BASEPROPERTY_TEXT ) ;
ImplRegisterProperty ( BASEPROPERTY_VSCROLL ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_HIDEINACTIVESELECTION ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlEditModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlEditModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlEditModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
2004-05-10 12:41:58 +00:00
uno : : Any aReturn ;
switch ( nPropId )
2000-09-18 16:07:07 +00:00
{
2004-05-10 12:41:58 +00:00
case BASEPROPERTY_LINE_END_FORMAT :
aReturn < < = ( sal_Int16 ) awt : : LineEndFormat : : LINE_FEED ; // LF
break ;
case BASEPROPERTY_DEFAULTCONTROL :
aReturn < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlEdit ) ;
break ;
default :
aReturn = UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
break ;
2000-09-18 16:07:07 +00:00
}
2004-05-10 12:41:58 +00:00
return aReturn ;
2000-09-18 16:07:07 +00:00
}
: : cppu : : IPropertyArrayHelper & UnoControlEditModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlEditModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoEditControl
// ----------------------------------------------------
UnoEditControl : : UnoEditControl ( )
2004-05-07 15:17:46 +00:00
: maTextListeners ( * this )
2006-06-19 22:05:22 +00:00
, mnMaxTextLen ( 0 )
2004-05-07 15:17:46 +00:00
, mbSetTextInPeer ( sal_False )
2006-06-19 22:05:22 +00:00
, mbSetMaxTextLenInPeer ( sal_False )
2004-05-07 15:17:46 +00:00
, mbHasTextProperty ( sal_False )
2000-09-18 16:07:07 +00:00
{
maComponentInfos . nWidth = 100 ;
maComponentInfos . nHeight = 12 ;
2004-05-19 15:46:21 +00:00
mnMaxTextLen = 0 ;
mbSetMaxTextLenInPeer = FALSE ;
2004-05-07 15:17:46 +00:00
}
uno : : Any SAL_CALL UnoEditControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
{
uno : : Any aReturn = UnoControlBase : : queryAggregation ( rType ) ;
if ( ! aReturn . hasValue ( ) )
aReturn = UnoEditControl_Base : : queryInterface ( rType ) ;
return aReturn ;
}
2001-10-11 14:27:26 +00:00
2004-05-07 15:17:46 +00:00
uno : : Any SAL_CALL UnoEditControl : : queryInterface ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
{
return UnoControlBase : : queryInterface ( rType ) ;
}
2001-10-11 14:27:26 +00:00
2004-05-07 15:17:46 +00:00
void SAL_CALL UnoEditControl : : acquire ( ) throw ( )
{
UnoControlBase : : acquire ( ) ;
}
2001-10-11 14:27:26 +00:00
2004-05-07 15:17:46 +00:00
void SAL_CALL UnoEditControl : : release ( ) throw ( )
{
UnoControlBase : : release ( ) ;
2000-09-18 16:07:07 +00:00
}
2004-05-07 15:17:46 +00:00
IMPLEMENT_FORWARD_XTYPEPROVIDER2 ( UnoEditControl , UnoControlBase , UnoEditControl_Base )
2000-09-18 16:07:07 +00:00
: : rtl : : OUString UnoEditControl : : GetComponentServiceName ( )
{
2004-05-07 15:17:46 +00:00
// by default, we want a simple edit field
: : rtl : : OUString sName ( : : rtl : : OUString : : createFromAscii ( " Edit " ) ) ;
// but maybe we are to display multi-line text?
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_MULTILINE ) ) ;
2006-08-29 09:58:09 +00:00
sal_Bool b = sal_Bool ( ) ;
2000-09-18 16:07:07 +00:00
if ( ( aVal > > = b ) & & b )
2004-05-07 15:17:46 +00:00
sName = : : rtl : : OUString : : createFromAscii ( " MultiLineEdit " ) ;
return sName ;
}
sal_Bool SAL_CALL UnoEditControl : : setModel ( const uno : : Reference < awt : : XControlModel > & _rModel ) throw ( uno : : RuntimeException )
{
sal_Bool bReturn = UnoControlBase : : setModel ( _rModel ) ;
mbHasTextProperty = ImplHasProperty ( BASEPROPERTY_TEXT ) ;
return bReturn ;
2000-09-18 16:07:07 +00:00
}
2002-09-05 07:54:42 +00:00
void UnoEditControl : : ImplSetPeerProperty ( const : : rtl : : OUString & rPropName , const uno : : Any & rVal )
{
sal_Bool bDone = sal_False ;
2004-05-07 15:17:46 +00:00
if ( GetPropertyId ( rPropName ) = = BASEPROPERTY_TEXT )
2002-09-05 07:54:42 +00:00
{
// #96986# use setText(), or text listener will not be called.
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTextComponent > xTextComponent ( getPeer ( ) , uno : : UNO_QUERY ) ;
2002-09-05 07:54:42 +00:00
if ( xTextComponent . is ( ) )
{
2004-05-07 15:17:46 +00:00
: : rtl : : OUString sText ;
rVal > > = sText ;
2007-01-02 14:35:43 +00:00
if ( ( sText . getLength ( ) > 0 ) & &
( sText . compareToAscii ( " & " , 1 ) = = 0 ) )
{
// Magic symbol '&' found at first place. Interpret as a place
// holder identifier. Now try to map it to the real value. The
// magic symbol must be removed.
rtl : : OUString aKeyValue ( sText . copy ( 1 ) ) ;
if ( UnoControl : : ImplMapPlaceHolder ( aKeyValue ) )
sText = aKeyValue ;
}
2004-05-07 15:17:46 +00:00
xTextComponent - > setText ( sText ) ;
2002-09-05 07:54:42 +00:00
bDone = sal_True ;
}
}
if ( ! bDone )
UnoControlBase : : ImplSetPeerProperty ( rPropName , rVal ) ;
}
2001-01-24 14:00:58 +00:00
void UnoEditControl : : dispose ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2004-05-07 15:17:46 +00:00
lang : : EventObject aEvt ( * this ) ;
2000-09-18 16:07:07 +00:00
maTextListeners . disposeAndClear ( aEvt ) ;
UnoControl : : dispose ( ) ;
}
2001-01-24 14:00:58 +00:00
void UnoEditControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
UnoControl : : createPeer ( rxToolkit , rParentPeer ) ;
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTextComponent > xText ( getPeer ( ) , uno : : UNO_QUERY ) ;
2004-05-07 15:17:46 +00:00
if ( xText . is ( ) )
{
2000-09-18 16:07:07 +00:00
xText - > addTextListener ( this ) ;
2001-10-11 14:27:26 +00:00
if ( mbSetMaxTextLenInPeer )
xText - > setMaxTextLen ( mnMaxTextLen ) ;
if ( mbSetTextInPeer )
xText - > setText ( maText ) ;
2004-05-07 15:17:46 +00:00
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoEditControl : : textChanged ( const awt : : TextEvent & e ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTextComponent > xText ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
2004-05-07 15:17:46 +00:00
if ( mbHasTextProperty )
2001-10-11 14:27:26 +00:00
{
uno : : Any aAny ;
aAny < < = xText - > getText ( ) ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_TEXT ) , aAny , sal_False ) ;
}
else
{
maText = xText - > getText ( ) ;
}
2000-09-18 16:07:07 +00:00
if ( maTextListeners . getLength ( ) )
maTextListeners . textChanged ( e ) ;
}
2001-01-24 14:00:58 +00:00
void UnoEditControl : : addTextListener ( const uno : : Reference < awt : : XTextListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maTextListeners . addInterface ( l ) ;
}
2001-01-24 14:00:58 +00:00
void UnoEditControl : : removeTextListener ( const uno : : Reference < awt : : XTextListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maTextListeners . removeInterface ( l ) ;
}
2001-01-24 14:00:58 +00:00
void UnoEditControl : : setText ( const : : rtl : : OUString & aText ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2004-05-07 15:17:46 +00:00
if ( mbHasTextProperty )
2001-10-11 14:27:26 +00:00
{
uno : : Any aAny ;
aAny < < = aText ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_TEXT ) , aAny , sal_True ) ;
}
else
{
maText = aText ;
2004-05-07 15:17:46 +00:00
mbSetTextInPeer = sal_True ;
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTextComponent > xText ( getPeer ( ) , uno : : UNO_QUERY ) ;
2004-05-07 15:17:46 +00:00
if ( xText . is ( ) )
2001-10-11 14:27:26 +00:00
xText - > setText ( maText ) ;
}
2000-09-18 16:07:07 +00:00
2001-08-10 11:27:24 +00:00
// Setting the property to the VCLXWindow doesn't call textChanged
if ( maTextListeners . getLength ( ) )
2000-09-18 16:07:07 +00:00
{
2004-05-07 15:17:46 +00:00
awt : : TextEvent aEvent ;
aEvent . Source = * this ;
2001-08-10 11:27:24 +00:00
maTextListeners . textChanged ( aEvent ) ;
2000-09-18 16:07:07 +00:00
}
}
2004-05-07 15:17:46 +00:00
namespace
{
static void lcl_normalize ( awt : : Selection & _rSel )
{
if ( _rSel . Min > _rSel . Max )
: : std : : swap ( _rSel . Min , _rSel . Max ) ;
}
2006-06-19 22:05:22 +00:00
/*
2004-05-07 15:17:46 +00:00
static bool lcl_intersect ( const awt : : Selection & _rLHS , const awt : : Selection & _rRHS )
{
OSL_PRECOND ( _rLHS . Min < = _rLHS . Max , " lcl_intersect: LHS to be normalized! " ) ;
OSL_PRECOND ( _rRHS . Min < = _rRHS . Max , " lcl_intersect: RHS to be normalized! " ) ;
return ! ( ( _rLHS . Max < _rRHS . Min ) | | ( _rLHS . Min > _rRHS . Max ) ) ;
}
2006-06-19 22:05:22 +00:00
*/
2004-05-07 15:17:46 +00:00
}
2001-08-10 11:27:24 +00:00
void UnoEditControl : : insertText ( const awt : : Selection & rSel , const : : rtl : : OUString & rNewText ) throw ( uno : : RuntimeException )
{
2004-05-07 15:17:46 +00:00
// normalize the selection - OUString::replaceAt has a strange behaviour if the min is greater than the max
awt : : Selection aSelection ( rSel ) ;
lcl_normalize ( aSelection ) ;
// preserve the selection resp. cursor position
awt : : Selection aNewSelection ( getSelection ( ) ) ;
# ifdef ALSO_PRESERVE_COMPLETE_SELECTION
// (not sure - looks uglier ...)
sal_Int32 nDeletedCharacters = ( aSelection . Max - aSelection . Min ) - rNewText . getLength ( ) ;
if ( aNewSelection . Min > aSelection . Min )
aNewSelection . Min - = nDeletedCharacters ;
if ( aNewSelection . Max > aSelection . Max )
aNewSelection . Max - = nDeletedCharacters ;
# else
aNewSelection . Max = : : std : : min ( aNewSelection . Min , aNewSelection . Max ) + rNewText . getLength ( ) ;
aNewSelection . Min = aNewSelection . Max ;
# endif
2001-08-10 11:27:24 +00:00
: : rtl : : OUString aOldText = getText ( ) ;
2004-05-07 15:17:46 +00:00
: : rtl : : OUString aNewText = aOldText . replaceAt ( aSelection . Min , aSelection . Max - aSelection . Min , rNewText ) ;
2001-08-10 11:27:24 +00:00
setText ( aNewText ) ;
2004-05-07 15:17:46 +00:00
setSelection ( aNewSelection ) ;
2001-08-10 11:27:24 +00:00
}
2001-01-24 14:00:58 +00:00
: : rtl : : OUString UnoEditControl : : getText ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-10-11 14:27:26 +00:00
: : rtl : : OUString aText = maText ;
2004-05-07 15:17:46 +00:00
if ( mbHasTextProperty )
2000-09-18 16:07:07 +00:00
aText = ImplGetPropertyValue_UString ( BASEPROPERTY_TEXT ) ;
2004-05-07 15:17:46 +00:00
else
{
uno : : Reference < awt : : XTextComponent > xText ( getPeer ( ) , uno : : UNO_QUERY ) ;
if ( xText . is ( ) )
aText = xText - > getText ( ) ;
}
2000-09-18 16:07:07 +00:00
return aText ;
}
2001-01-24 14:00:58 +00:00
: : rtl : : OUString UnoEditControl : : getSelectedText ( void ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2004-05-07 15:17:46 +00:00
: : rtl : : OUString sSelected ;
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTextComponent > xText ( getPeer ( ) , uno : : UNO_QUERY ) ;
2004-05-07 15:17:46 +00:00
if ( xText . is ( ) )
sSelected = xText - > getSelectedText ( ) ;
return sSelected ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoEditControl : : setSelection ( const awt : : Selection & aSelection ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTextComponent > xText ( getPeer ( ) , uno : : UNO_QUERY ) ;
2004-05-07 15:17:46 +00:00
if ( xText . is ( ) )
2000-09-18 16:07:07 +00:00
xText - > setSelection ( aSelection ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Selection UnoEditControl : : getSelection ( void ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
awt : : Selection aSel ;
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTextComponent > xText ( getPeer ( ) , uno : : UNO_QUERY ) ;
2004-05-07 15:17:46 +00:00
if ( xText . is ( ) )
2000-09-18 16:07:07 +00:00
aSel = xText - > getSelection ( ) ;
return aSel ;
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoEditControl : : isEditable ( void ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ! ImplGetPropertyValue_BOOL ( BASEPROPERTY_READONLY ) ;
}
2001-01-24 14:00:58 +00:00
void UnoEditControl : : setEditable ( sal_Bool bEditable ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = ( sal_Bool ) ! bEditable ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_READONLY ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Int16 UnoEditControl : : getMaxTextLen ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-10-11 14:27:26 +00:00
sal_Int16 nMaxLen = mnMaxTextLen ;
2004-05-07 15:17:46 +00:00
if ( ImplHasProperty ( BASEPROPERTY_MAXTEXTLEN ) )
2001-10-11 14:27:26 +00:00
nMaxLen = ImplGetPropertyValue_INT16 ( BASEPROPERTY_MAXTEXTLEN ) ;
return nMaxLen ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoEditControl : : setMaxTextLen ( sal_Int16 nLen ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-10-11 14:27:26 +00:00
if ( ImplHasProperty ( BASEPROPERTY_MAXTEXTLEN ) )
{
uno : : Any aAny ;
aAny < < = ( sal_Int16 ) nLen ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_MAXTEXTLEN ) , aAny , sal_True ) ;
}
else
{
mnMaxTextLen = nLen ;
2004-05-07 15:17:46 +00:00
mbSetMaxTextLenInPeer = sal_True ;
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTextComponent > xText ( getPeer ( ) , uno : : UNO_QUERY ) ;
2004-05-07 15:17:46 +00:00
if ( xText . is ( ) )
2001-10-11 14:27:26 +00:00
xText - > setMaxTextLen ( mnMaxTextLen ) ;
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoEditControl : : getMinimumSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getMinimumSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoEditControl : : getPreferredSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getPreferredSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoEditControl : : calcAdjustedSize ( const awt : : Size & rNewSize ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_calcAdjustedSize ( rNewSize ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoEditControl : : getMinimumSize ( sal_Int16 nCols , sal_Int16 nLines ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getMinimumSize ( nCols , nLines ) ;
}
2001-01-24 14:00:58 +00:00
void UnoEditControl : : getColumnsAndLines ( sal_Int16 & nCols , sal_Int16 & nLines ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
Impl_getColumnsAndLines ( nCols , nLines ) ;
}
// ----------------------------------------------------
// class UnoControlFileControlModel
// ----------------------------------------------------
UnoControlFileControlModel : : UnoControlFileControlModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
2002-07-09 14:28:08 +00:00
ImplRegisterProperty ( BASEPROPERTY_READONLY ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
ImplRegisterProperty ( BASEPROPERTY_TEXT ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_HIDEINACTIVESELECTION ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlFileControlModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlFileControlModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlFileControlModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlFileControl ) ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlFileControlModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlFileControlModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoFileControl
// ----------------------------------------------------
UnoFileControl : : UnoFileControl ( )
{
}
: : rtl : : OUString UnoFileControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " filecontrol " ) ;
}
2004-07-05 14:57:14 +00:00
// ----------------------------------------------------
// class ImageProducerControlModel
// ----------------------------------------------------
uno : : Any SAL_CALL ImageProducerControlModel : : queryInterface ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
{
return UnoControlModel : : queryInterface ( rType ) ;
}
uno : : Any SAL_CALL ImageProducerControlModel : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
{
uno : : Any aRet = : : cppu : : queryInterface ( rType , SAL_STATIC_CAST ( awt : : XImageProducer * , this ) ) ;
return ( aRet . hasValue ( ) ? aRet : UnoControlModel : : queryAggregation ( rType ) ) ;
}
void SAL_CALL ImageProducerControlModel : : acquire ( ) throw ( )
{
UnoControlModel : : acquire ( ) ;
}
void SAL_CALL ImageProducerControlModel : : release ( ) throw ( )
{
UnoControlModel : : release ( ) ;
}
2006-10-18 12:15:32 +00:00
uno : : Any ImageProducerControlModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
{
if ( nPropId = = BASEPROPERTY_GRAPHIC )
return uno : : makeAny ( uno : : Reference < graphic : : XGraphic > ( ) ) ;
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
namespace
{
uno : : Reference < graphic : : XGraphic > lcl_getGraphicFromURL_nothrow ( const : : rtl : : OUString & _rURL )
{
uno : : Reference < graphic : : XGraphic > xGraphic ;
if ( ! _rURL . getLength ( ) )
return xGraphic ;
try
{
: : comphelper : : ComponentContext aContext ( : : comphelper : : getProcessServiceFactory ( ) ) ;
uno : : Reference < graphic : : XGraphicProvider > xProvider ;
if ( aContext . createComponent ( " com.sun.star.graphic.GraphicProvider " , xProvider ) )
{
uno : : Sequence < beans : : PropertyValue > aMediaProperties ( 1 ) ;
aMediaProperties [ 0 ] . Name = : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " URL " ) ) ;
aMediaProperties [ 0 ] . Value < < = _rURL ;
xGraphic = xProvider - > queryGraphic ( aMediaProperties ) ;
}
}
catch ( const Exception & )
{
DBG_UNHANDLED_EXCEPTION ( ) ;
}
return xGraphic ;
}
}
2004-07-05 14:57:14 +00:00
void SAL_CALL ImageProducerControlModel : : setFastPropertyValue_NoBroadcast ( sal_Int32 nHandle , const : : com : : sun : : star : : uno : : Any & rValue ) throw ( : : com : : sun : : star : : uno : : Exception )
{
UnoControlModel : : setFastPropertyValue_NoBroadcast ( nHandle , rValue ) ;
2006-10-18 12:15:32 +00:00
// - ImageAlign and ImagePosition need to correspond to each other
// - Graphic and ImageURL need to correspond to each other
2004-07-05 14:57:14 +00:00
try
{
switch ( nHandle )
{
2006-10-18 12:15:32 +00:00
case BASEPROPERTY_IMAGEURL :
if ( ! mbAdjustingGraphic & & ImplHasProperty ( BASEPROPERTY_GRAPHIC ) )
{
mbAdjustingGraphic = true ;
: : rtl : : OUString sImageURL ;
OSL_VERIFY ( rValue > > = sImageURL ) ;
setPropertyValue ( GetPropertyName ( BASEPROPERTY_GRAPHIC ) , uno : : makeAny ( lcl_getGraphicFromURL_nothrow ( sImageURL ) ) ) ;
mbAdjustingGraphic = false ;
}
break ;
case BASEPROPERTY_GRAPHIC :
if ( ! mbAdjustingGraphic & & ImplHasProperty ( BASEPROPERTY_IMAGEURL ) )
{
mbAdjustingGraphic = true ;
setPropertyValue ( GetPropertyName ( BASEPROPERTY_IMAGEURL ) , uno : : makeAny ( : : rtl : : OUString ( ) ) ) ;
mbAdjustingGraphic = false ;
}
break ;
2004-07-05 14:57:14 +00:00
case BASEPROPERTY_IMAGEALIGN :
if ( ! mbAdjustingImagePosition & & ImplHasProperty ( BASEPROPERTY_IMAGEPOSITION ) )
{
2006-10-18 12:15:32 +00:00
mbAdjustingImagePosition = true ;
2004-07-05 14:57:14 +00:00
sal_Int16 nUNOValue = 0 ;
OSL_VERIFY ( rValue > > = nUNOValue ) ;
setPropertyValue ( GetPropertyName ( BASEPROPERTY_IMAGEPOSITION ) , uno : : makeAny ( getExtendedImagePosition ( nUNOValue ) ) ) ;
2006-10-18 12:15:32 +00:00
mbAdjustingImagePosition = false ;
2004-07-05 14:57:14 +00:00
}
break ;
case BASEPROPERTY_IMAGEPOSITION :
if ( ! mbAdjustingImagePosition & & ImplHasProperty ( BASEPROPERTY_IMAGEALIGN ) )
{
2006-10-18 12:15:32 +00:00
mbAdjustingImagePosition = true ;
2004-07-05 14:57:14 +00:00
sal_Int16 nUNOValue = 0 ;
OSL_VERIFY ( rValue > > = nUNOValue ) ;
setPropertyValue ( GetPropertyName ( BASEPROPERTY_IMAGEALIGN ) , uno : : makeAny ( getCompatibleImageAlign ( translateImagePosition ( nUNOValue ) ) ) ) ;
2006-10-18 12:15:32 +00:00
mbAdjustingImagePosition = false ;
2004-07-05 14:57:14 +00:00
}
break ;
}
}
catch ( const : : com : : sun : : star : : uno : : Exception & )
{
OSL_ENSURE ( sal_False , " ImageProducerControlModel::setFastPropertyValue_NoBroadcast: caught an exception while aligning the ImagePosition/ImageAlign properties! " ) ;
mbAdjustingImagePosition = sal_False ;
}
}
void ImageProducerControlModel : : addConsumer ( const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : awt : : XImageConsumer > & xConsumer ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
maListeners . push_back ( xConsumer ) ;
}
void ImageProducerControlModel : : removeConsumer ( const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : awt : : XImageConsumer > & xConsumer ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
maListeners . remove ( xConsumer ) ;
}
void ImageProducerControlModel : : startProduction ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
uno : : Sequence < uno : : Any > aArgs ( 1 ) ;
aArgs . getArray ( ) [ 0 ] = getPropertyValue ( GetPropertyName ( BASEPROPERTY_IMAGEURL ) ) ;
uno : : Reference < lang : : XMultiServiceFactory > xMSF = : : comphelper : : getProcessServiceFactory ( ) ;
uno : : Reference < awt : : XImageProducer > xImageProducer ( xMSF - > createInstanceWithArguments ( : : rtl : : OUString : : createFromAscii ( " com.sun.star.awt.ImageProducer " ) , aArgs ) , uno : : UNO_QUERY ) ;
if ( xImageProducer . is ( ) )
{
std : : list < uno : : Reference < awt : : XImageConsumer > > : : iterator aIter ( maListeners . begin ( ) ) ;
while ( aIter ! = maListeners . end ( ) )
{
xImageProducer - > addConsumer ( * aIter ) ;
aIter + + ;
}
xImageProducer - > startProduction ( ) ;
}
}
// ----------------------------------------------------
// class ImageConsumerControl
// ----------------------------------------------------
sal_Bool SAL_CALL ImageConsumerControl : : setModel ( const uno : : Reference < awt : : XControlModel > & _rModel ) throw ( uno : : RuntimeException )
{
// remove the peer as image consumer from the model
lcl_knitImageComponents ( getModel ( ) , getPeer ( ) , false ) ;
sal_Bool bReturn = UnoControlBase : : setModel ( _rModel ) ;
// add the peer as image consumer to the model
lcl_knitImageComponents ( getModel ( ) , getPeer ( ) , true ) ;
return bReturn ;
}
void SAL_CALL ImageConsumerControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
{
// remove the peer as image consumer from the model
lcl_knitImageComponents ( getModel ( ) , getPeer ( ) , false ) ;
UnoControlBase : : createPeer ( rxToolkit , rParentPeer ) ;
// add the peer as image consumer to the model
lcl_knitImageComponents ( getModel ( ) , getPeer ( ) , true ) ;
}
2006-11-14 11:29:01 +00:00
void SAL_CALL ImageConsumerControl : : dispose ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
// remove the peer as image consumer from the model
lcl_knitImageComponents ( getModel ( ) , getPeer ( ) , false ) ;
UnoControlBase : : dispose ( ) ;
}
2004-07-05 14:57:14 +00:00
void ImageConsumerControl : : ImplSetPeerProperty ( const : : rtl : : OUString & rPropName , const uno : : Any & rVal )
{
sal_uInt16 nType = GetPropertyId ( rPropName ) ;
if ( nType = = BASEPROPERTY_IMAGEURL )
{
uno : : Reference < awt : : XImageProducer > xImgProd ( getModel ( ) , uno : : UNO_QUERY ) ;
uno : : Reference < awt : : XImageConsumer > xImgCons ( getPeer ( ) , uno : : UNO_QUERY ) ;
if ( xImgProd . is ( ) & & xImgCons . is ( ) )
xImgProd - > startProduction ( ) ;
}
else
UnoControlBase : : ImplSetPeerProperty ( rPropName , rVal ) ;
}
2000-09-18 16:07:07 +00:00
// ----------------------------------------------------
// class UnoControlButtonModel
// ----------------------------------------------------
UnoControlButtonModel : : UnoControlButtonModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_DEFAULTBUTTON ) ;
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2006-10-18 12:15:32 +00:00
ImplRegisterProperty ( BASEPROPERTY_GRAPHIC ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
2001-06-06 07:36:56 +00:00
ImplRegisterProperty ( BASEPROPERTY_IMAGEALIGN ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_IMAGEPOSITION ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_IMAGEURL ) ;
ImplRegisterProperty ( BASEPROPERTY_LABEL ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
2001-10-17 07:47:10 +00:00
ImplRegisterProperty ( BASEPROPERTY_PUSHBUTTONTYPE ) ;
2003-12-11 10:59:33 +00:00
ImplRegisterProperty ( BASEPROPERTY_REPEAT ) ;
ImplRegisterProperty ( BASEPROPERTY_REPEAT_DELAY ) ;
2001-06-01 10:22:52 +00:00
ImplRegisterProperty ( BASEPROPERTY_STATE ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_TOGGLE ) ;
ImplRegisterProperty ( BASEPROPERTY_FOCUSONCLICK ) ;
ImplRegisterProperty ( BASEPROPERTY_MULTILINE ) ;
ImplRegisterProperty ( BASEPROPERTY_ALIGN ) ;
2005-01-21 15:47:38 +00:00
ImplRegisterProperty ( BASEPROPERTY_VERTICALALIGN ) ;
2000-09-18 16:07:07 +00:00
2004-07-05 14:57:14 +00:00
osl_incrementInterlockedCount ( & m_refCount ) ;
{
2005-03-18 13:11:11 +00:00
setFastPropertyValue_NoBroadcast ( BASEPROPERTY_IMAGEPOSITION , ImplGetDefaultValue ( BASEPROPERTY_IMAGEPOSITION ) ) ;
2004-07-05 14:57:14 +00:00
// this ensures that our ImagePosition is consistent with our ImageAlign property (since both
// defaults are not per se consistent), since both are coupled in setFastPropertyValue_NoBroadcast
}
osl_decrementInterlockedCount ( & m_refCount ) ;
2001-04-04 15:06:33 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlButtonModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlButtonModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlButtonModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
2004-07-05 14:57:14 +00:00
switch ( nPropId )
2000-09-18 16:07:07 +00:00
{
2004-07-05 14:57:14 +00:00
case BASEPROPERTY_DEFAULTCONTROL :
return uno : : makeAny ( : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlButton ) ) ;
case BASEPROPERTY_TOGGLE :
return uno : : makeAny ( ( sal_Bool ) sal_False ) ;
case BASEPROPERTY_ALIGN :
return uno : : makeAny ( ( sal_Int16 ) PROPERTY_ALIGN_CENTER ) ;
case BASEPROPERTY_FOCUSONCLICK :
return uno : : makeAny ( ( sal_Bool ) sal_True ) ;
2000-09-18 16:07:07 +00:00
}
2004-07-05 14:57:14 +00:00
return ImageProducerControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
2000-09-18 16:07:07 +00:00
: : cppu : : IPropertyArrayHelper & UnoControlButtonModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlButtonModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoButtonControl
// ----------------------------------------------------
UnoButtonControl : : UnoButtonControl ( )
: maActionListeners ( * this )
2006-08-28 13:56:47 +00:00
, maItemListeners ( * this )
2000-09-18 16:07:07 +00:00
{
maComponentInfos . nWidth = 50 ;
maComponentInfos . nHeight = 14 ;
}
: : rtl : : OUString UnoButtonControl : : GetComponentServiceName ( )
{
2001-10-17 07:47:10 +00:00
: : rtl : : OUString aName ( : : rtl : : OUString : : createFromAscii ( " pushbutton " ) ) ;
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_PUSHBUTTONTYPE ) ) ;
2006-08-29 09:58:09 +00:00
sal_Int16 n = sal_Int16 ( ) ;
2001-10-17 07:47:10 +00:00
if ( ( aVal > > = n ) & & n )
{
// Use PushButtonType later when available...
switch ( n )
{
case 1 /*PushButtonType::OK*/ : aName = : : rtl : : OUString : : createFromAscii ( " okbutton " ) ;
break ;
case 2 /*PushButtonType::CANCEL*/ : aName = : : rtl : : OUString : : createFromAscii ( " cancelbutton " ) ;
break ;
case 3 /*PushButtonType::HELP*/ : aName = : : rtl : : OUString : : createFromAscii ( " helpbutton " ) ;
break ;
default :
{
DBG_ERROR ( " Unknown Button Type! " ) ;
}
}
}
return aName ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoButtonControl : : dispose ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
lang : : EventObject aEvt ;
2000-09-18 16:07:07 +00:00
aEvt . Source = ( : : cppu : : OWeakObject * ) this ;
maActionListeners . disposeAndClear ( aEvt ) ;
2006-08-28 13:56:47 +00:00
maItemListeners . disposeAndClear ( aEvt ) ;
2004-07-05 14:57:14 +00:00
ImageConsumerControl : : dispose ( ) ;
2003-05-22 09:52:09 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoButtonControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2004-07-05 14:57:14 +00:00
ImageConsumerControl : : createPeer ( rxToolkit , rParentPeer ) ;
2006-08-28 13:56:47 +00:00
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-07-26 11:24:37 +00:00
xButton - > setActionCommand ( maActionCommand ) ;
2000-09-18 16:07:07 +00:00
if ( maActionListeners . getLength ( ) )
xButton - > addActionListener ( & maActionListeners ) ;
2006-08-28 13:56:47 +00:00
uno : : Reference < XToggleButton > xPushButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
if ( xPushButton . is ( ) )
xPushButton - > addItemListener ( this ) ;
2001-04-04 15:06:33 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoButtonControl : : addActionListener ( const uno : : Reference < awt : : XActionListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maActionListeners . addInterface ( l ) ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maActionListeners . getLength ( ) = = 1 )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xButton - > addActionListener ( & maActionListeners ) ;
}
}
2001-01-24 14:00:58 +00:00
void UnoButtonControl : : removeActionListener ( const uno : : Reference < awt : : XActionListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maActionListeners . getLength ( ) = = 1 )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xButton - > removeActionListener ( & maActionListeners ) ;
}
maActionListeners . removeInterface ( l ) ;
}
2006-08-28 13:56:47 +00:00
void UnoButtonControl : : addItemListener ( const uno : : Reference < awt : : XItemListener > & l ) throw ( uno : : RuntimeException )
{
maItemListeners . addInterface ( l ) ;
}
void UnoButtonControl : : removeItemListener ( const uno : : Reference < awt : : XItemListener > & l ) throw ( uno : : RuntimeException )
{
maItemListeners . removeInterface ( l ) ;
}
void SAL_CALL UnoButtonControl : : disposing ( const lang : : EventObject & Source ) throw ( uno : : RuntimeException )
{
ImageConsumerControl : : disposing ( Source ) ;
}
void SAL_CALL UnoButtonControl : : itemStateChanged ( const awt : : ItemEvent & rEvent ) throw ( uno : : RuntimeException )
{
// forward to model
uno : : Any aAny ;
aAny < < = ( sal_Int16 ) rEvent . Selected ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STATE ) , aAny , sal_False ) ;
// multiplex
ItemEvent aEvent ( rEvent ) ;
aEvent . Source = * this ;
maItemListeners . itemStateChanged ( aEvent ) ;
}
2001-01-24 14:00:58 +00:00
void UnoButtonControl : : setLabel ( const : : rtl : : OUString & rLabel ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = rLabel ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_LABEL ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
void UnoButtonControl : : setActionCommand ( const : : rtl : : OUString & rCommand ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maActionCommand = rCommand ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xButton - > setActionCommand ( rCommand ) ;
}
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoButtonControl : : getMinimumSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getMinimumSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoButtonControl : : getPreferredSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getPreferredSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoButtonControl : : calcAdjustedSize ( const awt : : Size & rNewSize ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_calcAdjustedSize ( rNewSize ) ;
}
// ----------------------------------------------------
// class UnoControlImageControlModel
// ----------------------------------------------------
UnoControlImageControlModel : : UnoControlImageControlModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
2006-10-18 12:15:32 +00:00
ImplRegisterProperty ( BASEPROPERTY_GRAPHIC ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_IMAGEURL ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
2001-10-12 11:31:09 +00:00
ImplRegisterProperty ( BASEPROPERTY_SCALEIMAGE ) ;
2002-08-16 08:15:10 +00:00
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlImageControlModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlImageControlModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlImageControlModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
2006-10-18 12:15:32 +00:00
return uno : : makeAny ( : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlImageControl ) ) ;
2004-07-05 14:57:14 +00:00
return ImageProducerControlModel : : ImplGetDefaultValue ( nPropId ) ;
2000-09-18 16:07:07 +00:00
}
: : cppu : : IPropertyArrayHelper & UnoControlImageControlModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlImageControlModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoImageControlControl
// ----------------------------------------------------
UnoImageControlControl : : UnoImageControlControl ( )
: maActionListeners ( * this )
{
// Woher die Defaults nehmen?
maComponentInfos . nWidth = 100 ;
maComponentInfos . nHeight = 100 ;
}
: : rtl : : OUString UnoImageControlControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " fixedimage " ) ;
}
2001-01-24 14:00:58 +00:00
void UnoImageControlControl : : dispose ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
lang : : EventObject aEvt ;
2000-09-18 16:07:07 +00:00
aEvt . Source = ( : : cppu : : OWeakObject * ) this ;
maActionListeners . disposeAndClear ( aEvt ) ;
UnoControl : : dispose ( ) ;
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoImageControlControl : : isTransparent ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return sal_True ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoImageControlControl : : getMinimumSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getMinimumSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoImageControlControl : : getPreferredSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getPreferredSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoImageControlControl : : calcAdjustedSize ( const awt : : Size & rNewSize ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_calcAdjustedSize ( rNewSize ) ;
}
// ----------------------------------------------------
// class UnoControlRadioButtonModel
// ----------------------------------------------------
UnoControlRadioButtonModel : : UnoControlRadioButtonModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2006-10-18 12:15:32 +00:00
ImplRegisterProperty ( BASEPROPERTY_GRAPHIC ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_IMAGEPOSITION ) ;
ImplRegisterProperty ( BASEPROPERTY_IMAGEURL ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_LABEL ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_STATE ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_VISUALEFFECT ) ;
ImplRegisterProperty ( BASEPROPERTY_MULTILINE ) ;
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_ALIGN ) ;
2005-01-21 15:47:38 +00:00
ImplRegisterProperty ( BASEPROPERTY_VERTICALALIGN ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlRadioButtonModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlRadioButtonModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlRadioButtonModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
2004-07-05 14:57:14 +00:00
switch ( nPropId )
2000-09-18 16:07:07 +00:00
{
2004-07-05 14:57:14 +00:00
case BASEPROPERTY_DEFAULTCONTROL :
return uno : : makeAny ( : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlRadioButton ) ) ;
case BASEPROPERTY_VISUALEFFECT :
return uno : : makeAny ( ( sal_Int16 ) awt : : VisualEffect : : LOOK3D ) ;
2000-09-18 16:07:07 +00:00
}
2004-07-05 14:57:14 +00:00
return ImageProducerControlModel : : ImplGetDefaultValue ( nPropId ) ;
2000-09-18 16:07:07 +00:00
}
: : cppu : : IPropertyArrayHelper & UnoControlRadioButtonModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlRadioButtonModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoRadioButtonControl
// ----------------------------------------------------
UnoRadioButtonControl : : UnoRadioButtonControl ( )
2001-04-04 09:30:44 +00:00
: maItemListeners ( * this ) , maActionListeners ( * this )
2000-09-18 16:07:07 +00:00
{
maComponentInfos . nWidth = 100 ;
maComponentInfos . nHeight = 12 ;
}
: : rtl : : OUString UnoRadioButtonControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " radiobutton " ) ;
}
2001-01-24 14:00:58 +00:00
void UnoRadioButtonControl : : dispose ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
lang : : EventObject aEvt ;
2000-09-18 16:07:07 +00:00
aEvt . Source = ( : : cppu : : OWeakObject * ) this ;
maItemListeners . disposeAndClear ( aEvt ) ;
2004-07-05 14:57:14 +00:00
ImageConsumerControl : : dispose ( ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoRadioButtonControl : : isTransparent ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return sal_True ;
}
2001-01-24 14:00:58 +00:00
void UnoRadioButtonControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2004-07-05 14:57:14 +00:00
ImageConsumerControl : : createPeer ( rxToolkit , rParentPeer ) ;
2000-09-18 16:07:07 +00:00
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XRadioButton > xRadioButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xRadioButton - > addItemListener ( this ) ;
2001-04-04 09:30:44 +00:00
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-07-26 11:24:37 +00:00
xButton - > setActionCommand ( maActionCommand ) ;
2001-04-04 09:30:44 +00:00
if ( maActionListeners . getLength ( ) )
xButton - > addActionListener ( & maActionListeners ) ;
2001-08-07 10:18:02 +00:00
// as default, set the "AutoToggle" to true
// (it is set to false in VCLXToolkit::ImplCreateWindow because of #87254#, but we want to
// have it enabled by default because of 85071)
uno : : Reference < awt : : XVclWindowPeer > xVclWindowPeer ( getPeer ( ) , uno : : UNO_QUERY ) ;
if ( xVclWindowPeer . is ( ) )
xVclWindowPeer - > setProperty ( GetPropertyName ( BASEPROPERTY_AUTOTOGGLE ) , : : cppu : : bool2any ( sal_True ) ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoRadioButtonControl : : addItemListener ( const uno : : Reference < awt : : XItemListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maItemListeners . addInterface ( l ) ;
}
2001-01-24 14:00:58 +00:00
void UnoRadioButtonControl : : removeItemListener ( const uno : : Reference < awt : : XItemListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maItemListeners . removeInterface ( l ) ;
}
2001-04-04 09:30:44 +00:00
void UnoRadioButtonControl : : addActionListener ( const uno : : Reference < awt : : XActionListener > & l ) throw ( uno : : RuntimeException )
{
maActionListeners . addInterface ( l ) ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maActionListeners . getLength ( ) = = 1 )
2001-04-04 09:30:44 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-04-04 09:30:44 +00:00
xButton - > addActionListener ( & maActionListeners ) ;
}
}
void UnoRadioButtonControl : : removeActionListener ( const uno : : Reference < awt : : XActionListener > & l ) throw ( uno : : RuntimeException )
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maActionListeners . getLength ( ) = = 1 )
2001-04-04 09:30:44 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-04-04 09:30:44 +00:00
xButton - > removeActionListener ( & maActionListeners ) ;
}
maActionListeners . removeInterface ( l ) ;
}
2001-01-24 14:00:58 +00:00
void UnoRadioButtonControl : : setLabel ( const : : rtl : : OUString & rLabel ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = rLabel ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_LABEL ) , aAny , sal_True ) ;
}
2001-04-04 09:30:44 +00:00
void UnoRadioButtonControl : : setActionCommand ( const : : rtl : : OUString & rCommand ) throw ( uno : : RuntimeException )
{
maActionCommand = rCommand ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-04-04 09:30:44 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-04-04 09:30:44 +00:00
xButton - > setActionCommand ( rCommand ) ;
}
}
2001-01-24 14:00:58 +00:00
void UnoRadioButtonControl : : setState ( sal_Bool bOn ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
sal_Int16 nState = bOn ? 1 : 0 ;
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = nState ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STATE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoRadioButtonControl : : getState ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
sal_Int16 nState = 0 ;
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STATE ) ) ;
2000-09-18 16:07:07 +00:00
aVal > > = nState ;
return nState ? sal_True : sal_False ;
}
2001-01-24 14:00:58 +00:00
void UnoRadioButtonControl : : itemStateChanged ( const awt : : ItemEvent & rEvent ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = ( sal_Int16 ) rEvent . Selected ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STATE ) , aAny , sal_False ) ;
2003-06-06 09:55:26 +00:00
// compatibility:
// in OOo 1.0.x, when the user clicked a radio button in a group of buttons, this resulted
// in _one_ itemStateChanged call for exactly the radio button which's state changed from
// "0" to "1".
// Nowadays, since the listener handling changed a lot towards 1.1 (the VCLXWindow reacts on more
// basic events from the VCL-windows, not anymore on the Link-based events like in 1.0.x), this
// isn't the case anymore: For instance, this method here gets called for the radio button
// which is being implicitily _de_selected, too. This is pretty bad for compatibility.
// Thus, we suppress all events with a new state other than "1". This is unlogical, and weird, when looking
// from a pure API perspective, but it's _compatible_ with older product versions, and this is
// all which matters here.
// #i14703# - 2003-05-23 - fs@openoffice.org
if ( 1 = = rEvent . Selected )
{
if ( maItemListeners . getLength ( ) )
maItemListeners . itemStateChanged ( rEvent ) ;
}
// note that speaking stricly, this is wrong: When in 1.0.x, the user would have de-selected
// a radio button _without_ selecing another one, this would have caused a notification.
// With the change done here, this today won't cause a notification anymore.
//
// Fortunately, it's not possible for the user to de-select a radio button without selecting another on,
// at least not via the regular UI. It _would_ be possible via the Accessibility API, which
// counts as "user input", too. But in 1.0.x, there was no Accessibility API, so there is nothing
// to be inconsistent with.
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoRadioButtonControl : : getMinimumSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getMinimumSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoRadioButtonControl : : getPreferredSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getPreferredSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoRadioButtonControl : : calcAdjustedSize ( const awt : : Size & rNewSize ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_calcAdjustedSize ( rNewSize ) ;
}
// ----------------------------------------------------
// class UnoControlCheckBoxModel
// ----------------------------------------------------
UnoControlCheckBoxModel : : UnoControlCheckBoxModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2006-10-18 12:15:32 +00:00
ImplRegisterProperty ( BASEPROPERTY_GRAPHIC ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_IMAGEPOSITION ) ;
ImplRegisterProperty ( BASEPROPERTY_IMAGEURL ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_LABEL ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_STATE ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
ImplRegisterProperty ( BASEPROPERTY_TRISTATE ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_VISUALEFFECT ) ;
ImplRegisterProperty ( BASEPROPERTY_MULTILINE ) ;
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_ALIGN ) ;
2005-01-21 15:47:38 +00:00
ImplRegisterProperty ( BASEPROPERTY_VERTICALALIGN ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlCheckBoxModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlCheckBoxModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlCheckBoxModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
2004-07-05 14:57:14 +00:00
switch ( nPropId )
2000-09-18 16:07:07 +00:00
{
2004-07-05 14:57:14 +00:00
case BASEPROPERTY_DEFAULTCONTROL :
return uno : : makeAny ( : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlCheckBox ) ) ;
case BASEPROPERTY_VISUALEFFECT :
return uno : : makeAny ( ( sal_Int16 ) awt : : VisualEffect : : LOOK3D ) ;
2000-09-18 16:07:07 +00:00
}
2004-07-05 14:57:14 +00:00
return ImageProducerControlModel : : ImplGetDefaultValue ( nPropId ) ;
2000-09-18 16:07:07 +00:00
}
: : cppu : : IPropertyArrayHelper & UnoControlCheckBoxModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlCheckBoxModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoCheckBoxControl
// ----------------------------------------------------
UnoCheckBoxControl : : UnoCheckBoxControl ( )
2001-07-26 11:24:37 +00:00
: maItemListeners ( * this ) , maActionListeners ( * this )
2000-09-18 16:07:07 +00:00
{
maComponentInfos . nWidth = 100 ;
maComponentInfos . nHeight = 12 ;
}
: : rtl : : OUString UnoCheckBoxControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " checkbox " ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCheckBoxControl : : dispose ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
lang : : EventObject aEvt ;
2000-09-18 16:07:07 +00:00
aEvt . Source = ( : : cppu : : OWeakObject * ) this ;
maItemListeners . disposeAndClear ( aEvt ) ;
2004-07-05 14:57:14 +00:00
ImageConsumerControl : : dispose ( ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoCheckBoxControl : : isTransparent ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return sal_True ;
}
2001-01-24 14:00:58 +00:00
void UnoCheckBoxControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2004-07-05 14:57:14 +00:00
ImageConsumerControl : : createPeer ( rxToolkit , rParentPeer ) ;
2000-09-18 16:07:07 +00:00
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XCheckBox > xCheckBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xCheckBox - > addItemListener ( this ) ;
2001-07-26 11:24:37 +00:00
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-07-26 11:24:37 +00:00
xButton - > setActionCommand ( maActionCommand ) ;
if ( maActionListeners . getLength ( ) )
xButton - > addActionListener ( & maActionListeners ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoCheckBoxControl : : addItemListener ( const uno : : Reference < awt : : XItemListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maItemListeners . addInterface ( l ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCheckBoxControl : : removeItemListener ( const uno : : Reference < awt : : XItemListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maItemListeners . removeInterface ( l ) ;
}
2001-07-26 11:24:37 +00:00
void UnoCheckBoxControl : : addActionListener ( const uno : : Reference < awt : : XActionListener > & l ) throw ( uno : : RuntimeException )
{
maActionListeners . addInterface ( l ) ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maActionListeners . getLength ( ) = = 1 )
2001-07-26 11:24:37 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-07-26 11:24:37 +00:00
xButton - > addActionListener ( & maActionListeners ) ;
}
}
void UnoCheckBoxControl : : removeActionListener ( const uno : : Reference < awt : : XActionListener > & l ) throw ( uno : : RuntimeException )
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maActionListeners . getLength ( ) = = 1 )
2001-07-26 11:24:37 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-07-26 11:24:37 +00:00
xButton - > removeActionListener ( & maActionListeners ) ;
}
maActionListeners . removeInterface ( l ) ;
}
void UnoCheckBoxControl : : setActionCommand ( const : : rtl : : OUString & rCommand ) throw ( uno : : RuntimeException )
{
maActionCommand = rCommand ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-07-26 11:24:37 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XButton > xButton ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-07-26 11:24:37 +00:00
xButton - > setActionCommand ( rCommand ) ;
}
}
2001-01-24 14:00:58 +00:00
void UnoCheckBoxControl : : setLabel ( const : : rtl : : OUString & rLabel ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = rLabel ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_LABEL ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCheckBoxControl : : setState ( short n ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = ( sal_Int16 ) n ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STATE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
short UnoCheckBoxControl : : getState ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
short nState = 0 ;
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STATE ) ) ;
2000-09-18 16:07:07 +00:00
aVal > > = nState ;
return nState ;
}
2001-01-24 14:00:58 +00:00
void UnoCheckBoxControl : : enableTriState ( sal_Bool b ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = b ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_TRISTATE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCheckBoxControl : : itemStateChanged ( const awt : : ItemEvent & rEvent ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = ( sal_Int16 ) rEvent . Selected ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STATE ) , aAny , sal_False ) ;
if ( maItemListeners . getLength ( ) )
maItemListeners . itemStateChanged ( rEvent ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoCheckBoxControl : : getMinimumSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getMinimumSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoCheckBoxControl : : getPreferredSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getPreferredSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoCheckBoxControl : : calcAdjustedSize ( const awt : : Size & rNewSize ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_calcAdjustedSize ( rNewSize ) ;
}
// ----------------------------------------------------
// class UnoControlFixedTextModel
// ----------------------------------------------------
UnoControlFixedTextModel : : UnoControlFixedTextModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_ALIGN ) ;
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_LABEL ) ;
ImplRegisterProperty ( BASEPROPERTY_MULTILINE ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
2005-01-21 15:47:38 +00:00
ImplRegisterProperty ( BASEPROPERTY_VERTICALALIGN ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlFixedTextModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlFixedTextModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlFixedTextModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlFixedText ) ;
return aAny ;
}
else if ( nPropId = = BASEPROPERTY_BORDER )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = ( sal_Int16 ) 0 ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlFixedTextModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlFixedTextModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoFixedTextControl
// ----------------------------------------------------
UnoFixedTextControl : : UnoFixedTextControl ( )
{
maComponentInfos . nWidth = 100 ;
maComponentInfos . nHeight = 12 ;
}
: : rtl : : OUString UnoFixedTextControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " fixedtext " ) ;
}
2001-01-24 14:00:58 +00:00
// uno::XInterface
uno : : Any UnoFixedTextControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aRet = : : cppu : : queryInterface ( rType ,
SAL_STATIC_CAST ( awt : : XFixedText * , this ) ,
SAL_STATIC_CAST ( awt : : XLayoutConstrains * , this ) ) ;
2000-09-18 16:07:07 +00:00
return ( aRet . hasValue ( ) ? aRet : UnoControlBase : : queryAggregation ( rType ) ) ;
}
2001-01-24 14:00:58 +00:00
// lang::XTypeProvider
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_START ( UnoFixedTextControl )
2001-01-24 14:00:58 +00:00
getCppuType ( ( uno : : Reference < awt : : XFixedText > * ) NULL ) ,
getCppuType ( ( uno : : Reference < awt : : XLayoutConstrains > * ) NULL ) ,
2000-09-18 16:07:07 +00:00
UnoControlBase : : getTypes ( )
IMPL_XTYPEPROVIDER_END
2001-01-24 14:00:58 +00:00
sal_Bool UnoFixedTextControl : : isTransparent ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return sal_True ;
}
2001-01-24 14:00:58 +00:00
void UnoFixedTextControl : : setText ( const : : rtl : : OUString & Text ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Text ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_LABEL ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
: : rtl : : OUString UnoFixedTextControl : : getText ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_UString ( BASEPROPERTY_LABEL ) ;
}
2001-01-24 14:00:58 +00:00
void UnoFixedTextControl : : setAlignment ( short nAlign ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = ( sal_Int16 ) nAlign ;
2001-08-10 08:57:11 +00:00
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_ALIGN ) , aAny , sal_True ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
short UnoFixedTextControl : : getAlignment ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
short nAlign = 0 ;
if ( mxModel . is ( ) )
{
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_ALIGN ) ) ;
2000-09-18 16:07:07 +00:00
aVal > > = nAlign ;
}
return nAlign ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoFixedTextControl : : getMinimumSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getMinimumSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoFixedTextControl : : getPreferredSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getPreferredSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoFixedTextControl : : calcAdjustedSize ( const awt : : Size & rNewSize ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_calcAdjustedSize ( rNewSize ) ;
}
// ----------------------------------------------------
// class UnoControlGroupBoxModel
// ----------------------------------------------------
UnoControlGroupBoxModel : : UnoControlGroupBoxModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_LABEL ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlGroupBoxModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlGroupBoxModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlGroupBoxModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlGroupBox ) ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlGroupBoxModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlGroupBoxModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoGroupBoxControl
// ----------------------------------------------------
UnoGroupBoxControl : : UnoGroupBoxControl ( )
{
maComponentInfos . nWidth = 100 ;
maComponentInfos . nHeight = 100 ;
}
: : rtl : : OUString UnoGroupBoxControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " groupbox " ) ;
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoGroupBoxControl : : isTransparent ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return sal_True ;
}
// ----------------------------------------------------
// class UnoControlListBoxModel
// ----------------------------------------------------
UnoControlListBoxModel : : UnoControlListBoxModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_DROPDOWN ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_LINECOUNT ) ;
ImplRegisterProperty ( BASEPROPERTY_MULTISELECTION ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_SELECTEDITEMS ) ;
ImplRegisterProperty ( BASEPROPERTY_STRINGITEMLIST ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
ImplRegisterProperty ( BASEPROPERTY_READONLY ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_ALIGN ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlListBoxModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlListBoxModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlListBoxModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlListBox ) ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlListBoxModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlListBoxModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
void UnoControlListBoxModel : : ImplPropertyChanged ( sal_uInt16 nPropId )
{
if ( nPropId = = BASEPROPERTY_STRINGITEMLIST )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int16 > aSeq ;
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = aSeq ;
setPropertyValue ( GetPropertyName ( BASEPROPERTY_SELECTEDITEMS ) , aAny ) ;
}
2002-05-16 04:55:33 +00:00
UnoControlModel : : ImplPropertyChanged ( nPropId ) ;
}
void UnoControlListBoxModel : : ImplNormalizePropertySequence ( const sal_Int32 _nCount , sal_Int32 * _pHandles ,
uno : : Any * _pValues , sal_Int32 * _pValidHandles ) const SAL_THROW ( ( ) )
{
// dependencies we know:
// BASEPROPERTY_STRINGITEMLIST->BASEPROPERTY_SELECTEDITEMS
2007-02-14 14:35:00 +00:00
ImplEnsureHandleOrder ( _nCount , _pHandles , _pValues , BASEPROPERTY_STRINGITEMLIST , BASEPROPERTY_SELECTEDITEMS ) ;
2002-05-16 04:55:33 +00:00
UnoControlModel : : ImplNormalizePropertySequence ( _nCount , _pHandles , _pValues , _pValidHandles ) ;
2000-09-18 16:07:07 +00:00
}
// ----------------------------------------------------
// class UnoListBoxControl
// ----------------------------------------------------
UnoListBoxControl : : UnoListBoxControl ( )
: maActionListeners ( * this ) ,
maItemListeners ( * this )
{
maComponentInfos . nWidth = 100 ;
maComponentInfos . nHeight = 12 ;
}
: : rtl : : OUString UnoListBoxControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " listbox " ) ;
}
2001-01-24 14:00:58 +00:00
// uno::XInterface
uno : : Any UnoListBoxControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aRet = : : cppu : : queryInterface ( rType ,
SAL_STATIC_CAST ( awt : : XListBox * , this ) ,
SAL_STATIC_CAST ( awt : : XItemListener * , this ) ,
SAL_STATIC_CAST ( lang : : XEventListener * , SAL_STATIC_CAST ( awt : : XItemListener * , this ) ) ,
SAL_STATIC_CAST ( awt : : XLayoutConstrains * , this ) ,
SAL_STATIC_CAST ( awt : : XTextLayoutConstrains * , this ) ) ;
2000-09-18 16:07:07 +00:00
return ( aRet . hasValue ( ) ? aRet : UnoControlBase : : queryAggregation ( rType ) ) ;
}
2001-01-24 14:00:58 +00:00
// lang::XTypeProvider
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_START ( UnoListBoxControl )
2001-01-24 14:00:58 +00:00
getCppuType ( ( uno : : Reference < awt : : XListBox > * ) NULL ) ,
getCppuType ( ( uno : : Reference < awt : : XItemListener > * ) NULL ) ,
getCppuType ( ( uno : : Reference < awt : : XLayoutConstrains > * ) NULL ) ,
getCppuType ( ( uno : : Reference < awt : : XTextLayoutConstrains > * ) NULL ) ,
2000-09-18 16:07:07 +00:00
UnoControlBase : : getTypes ( )
IMPL_XTYPEPROVIDER_END
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : dispose ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
lang : : EventObject aEvt ;
2000-09-18 16:07:07 +00:00
aEvt . Source = ( : : cppu : : OWeakObject * ) this ;
maActionListeners . disposeAndClear ( aEvt ) ;
maItemListeners . disposeAndClear ( aEvt ) ;
UnoControl : : dispose ( ) ;
}
2001-06-15 06:34:37 +00:00
void UnoListBoxControl : : ImplUpdateSelectedItemsProperty ( )
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-06-15 06:34:37 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-06-15 06:34:37 +00:00
DBG_ASSERT ( xListBox . is ( ) , " XListBox? " ) ;
uno : : Sequence < sal_Int16 > aSeq = xListBox - > getSelectedItemsPos ( ) ;
uno : : Any aAny ;
aAny < < = aSeq ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_SELECTEDITEMS ) , aAny , sal_False ) ;
}
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : ImplSetPeerProperty ( const : : rtl : : OUString & rPropName , const uno : : Any & rVal )
2000-09-18 16:07:07 +00:00
{
UnoControl : : ImplSetPeerProperty ( rPropName , rVal ) ;
// Wenn die SelectedItems vor der StringItemList gesetzt werden,
// hat das keine Auswirkung...
if ( rPropName = = GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) )
{
: : rtl : : OUString aSelPropName = GetPropertyName ( BASEPROPERTY_SELECTEDITEMS ) ;
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( aSelPropName ) ;
if ( ! ( aVal . getValueType ( ) . getTypeClass ( ) = = uno : : TypeClass_VOID ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XVclWindowPeer > xW ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-11-03 12:55:40 +00:00
if ( xW . is ( ) )
// same comment as in UnoControl::ImplSetPeerProperty - see there
xW - > setProperty ( aSelPropName , aVal ) ;
2000-09-18 16:07:07 +00:00
}
}
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
UnoControl : : createPeer ( rxToolkit , rParentPeer ) ;
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xListBox - > addItemListener ( this ) ;
if ( maActionListeners . getLength ( ) )
xListBox - > addActionListener ( & maActionListeners ) ;
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : addActionListener ( const uno : : Reference < awt : : XActionListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maActionListeners . addInterface ( l ) ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maActionListeners . getLength ( ) = = 1 )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xListBox - > addActionListener ( & maActionListeners ) ;
}
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : removeActionListener ( const uno : : Reference < awt : : XActionListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maActionListeners . getLength ( ) = = 1 )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xListBox - > removeActionListener ( & maActionListeners ) ;
}
maActionListeners . removeInterface ( l ) ;
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : addItemListener ( const uno : : Reference < awt : : XItemListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maItemListeners . addInterface ( l ) ;
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : removeItemListener ( const uno : : Reference < awt : : XItemListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maItemListeners . removeInterface ( l ) ;
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : addItem ( const : : rtl : : OUString & aItem , sal_Int16 nPos ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < : : rtl : : OUString > aSeq ( 1 ) ;
2000-09-18 16:07:07 +00:00
aSeq . getArray ( ) [ 0 ] = aItem ;
addItems ( aSeq , nPos ) ;
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : addItems ( const uno : : Sequence < : : rtl : : OUString > & aItems , sal_Int16 nPos ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) ) ;
uno : : Sequence < : : rtl : : OUString > aSeq ;
2000-09-18 16:07:07 +00:00
aVal > > = aSeq ;
sal_uInt16 nNewItems = ( sal_uInt16 ) aItems . getLength ( ) ;
sal_uInt16 nOldLen = ( sal_uInt16 ) aSeq . getLength ( ) ;
sal_uInt16 nNewLen = nOldLen + nNewItems ;
2001-01-24 14:00:58 +00:00
uno : : Sequence < : : rtl : : OUString > aNewSeq ( nNewLen ) ;
2000-09-18 16:07:07 +00:00
: : rtl : : OUString * pNewData = aNewSeq . getArray ( ) ;
: : rtl : : OUString * pOldData = aSeq . getArray ( ) ;
2004-02-04 10:11:33 +00:00
if ( ( nPos < 0 ) | | ( nPos > nOldLen ) )
2000-09-18 16:07:07 +00:00
nPos = ( sal_uInt16 ) nOldLen ;
sal_uInt16 n ;
// Items vor der Einfuege-Position
for ( n = 0 ; n < nPos ; n + + )
pNewData [ n ] = pOldData [ n ] ;
// Neue Items
for ( n = 0 ; n < nNewItems ; n + + )
pNewData [ nPos + n ] = aItems . getConstArray ( ) [ n ] ;
// Rest der alten Items
for ( n = nPos ; n < nOldLen ; n + + )
pNewData [ nNewItems + n ] = pOldData [ n ] ;
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = aNewSeq ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : removeItems ( sal_Int16 nPos , sal_Int16 nCount ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) ) ;
uno : : Sequence < : : rtl : : OUString > aSeq ;
2000-09-18 16:07:07 +00:00
aVal > > = aSeq ;
sal_uInt16 nOldLen = ( sal_uInt16 ) aSeq . getLength ( ) ;
if ( nOldLen & & ( nPos < nOldLen ) )
{
if ( nCount > ( nOldLen - nPos ) )
nCount = nOldLen - nPos ;
sal_uInt16 nNewLen = nOldLen - nCount ;
2001-01-24 14:00:58 +00:00
uno : : Sequence < : : rtl : : OUString > aNewSeq ( nNewLen ) ;
2000-09-18 16:07:07 +00:00
: : rtl : : OUString * pNewData = aNewSeq . getArray ( ) ;
: : rtl : : OUString * pOldData = aSeq . getArray ( ) ;
sal_uInt16 n ;
// Items vor der Entfern-Position
for ( n = 0 ; n < nPos ; n + + )
pNewData [ n ] = pOldData [ n ] ;
// Rest der Items
for ( n = nPos ; n < ( nOldLen - nCount ) ; n + + )
pNewData [ n ] = pOldData [ n + nCount ] ;
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = aNewSeq ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) , aAny , sal_True ) ;
}
}
2001-01-24 14:00:58 +00:00
sal_Int16 UnoListBoxControl : : getItemCount ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) ) ;
uno : : Sequence < : : rtl : : OUString > aSeq ;
2000-09-18 16:07:07 +00:00
aVal > > = aSeq ;
return ( sal_Int16 ) aSeq . getLength ( ) ;
}
2001-01-24 14:00:58 +00:00
: : rtl : : OUString UnoListBoxControl : : getItem ( sal_Int16 nPos ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
: : rtl : : OUString aItem ;
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) ) ;
uno : : Sequence < : : rtl : : OUString > aSeq ;
2000-09-18 16:07:07 +00:00
aVal > > = aSeq ;
if ( nPos < aSeq . getLength ( ) )
aItem = aSeq . getConstArray ( ) [ nPos ] ;
return aItem ;
}
2001-01-24 14:00:58 +00:00
uno : : Sequence < : : rtl : : OUString > UnoListBoxControl : : getItems ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) ) ;
uno : : Sequence < : : rtl : : OUString > aSeq ;
2000-09-18 16:07:07 +00:00
aVal > > = aSeq ;
return aSeq ;
}
2001-01-24 14:00:58 +00:00
sal_Int16 UnoListBoxControl : : getSelectedItemPos ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
sal_Int16 n = - 1 ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
n = xListBox - > getSelectedItemPos ( ) ;
}
return n ;
}
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int16 > UnoListBoxControl : : getSelectedItemsPos ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int16 > aSeq ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
aSeq = xListBox - > getSelectedItemsPos ( ) ;
}
return aSeq ;
}
2001-01-24 14:00:58 +00:00
: : rtl : : OUString UnoListBoxControl : : getSelectedItem ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
: : rtl : : OUString aItem ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
aItem = xListBox - > getSelectedItem ( ) ;
}
return aItem ;
}
2001-01-24 14:00:58 +00:00
uno : : Sequence < : : rtl : : OUString > UnoListBoxControl : : getSelectedItems ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < : : rtl : : OUString > aSeq ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
aSeq = xListBox - > getSelectedItems ( ) ;
}
return aSeq ;
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : selectItemPos ( sal_Int16 nPos , sal_Bool bSelect ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xListBox - > selectItemPos ( nPos , bSelect ) ;
}
2001-06-15 06:34:37 +00:00
ImplUpdateSelectedItemsProperty ( ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : selectItemsPos ( const uno : : Sequence < sal_Int16 > & aPositions , sal_Bool bSelect ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xListBox - > selectItemsPos ( aPositions , bSelect ) ;
}
2001-06-15 06:34:37 +00:00
ImplUpdateSelectedItemsProperty ( ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : selectItem ( const : : rtl : : OUString & aItem , sal_Bool bSelect ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xListBox - > selectItem ( aItem , bSelect ) ;
}
2001-06-15 06:34:37 +00:00
ImplUpdateSelectedItemsProperty ( ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : makeVisible ( sal_Int16 nEntry ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XListBox > xListBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xListBox - > makeVisible ( nEntry ) ;
}
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : setDropDownLineCount ( sal_Int16 nLines ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = ( sal_Int16 ) nLines ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_LINECOUNT ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Int16 UnoListBoxControl : : getDropDownLineCount ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_INT16 ( BASEPROPERTY_LINECOUNT ) ;
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoListBoxControl : : isMutipleMode ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 09:03:01 +00:00
return ImplGetPropertyValue_BOOL ( BASEPROPERTY_MULTISELECTION ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : setMultipleMode ( sal_Bool bMulti ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = bMulti ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_MULTISELECTION ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : itemStateChanged ( const awt : : ItemEvent & rEvent ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-06-15 06:34:37 +00:00
ImplUpdateSelectedItemsProperty ( ) ;
2000-09-18 16:07:07 +00:00
if ( maItemListeners . getLength ( ) )
2004-10-22 10:36:46 +00:00
{
try
{
maItemListeners . itemStateChanged ( rEvent ) ;
}
catch ( const Exception & e )
{
2006-10-12 09:33:10 +00:00
# if OSL_DEBUG_LEVEL == 0
( void ) e ; // suppress warning
# else
2004-10-22 10:36:46 +00:00
: : rtl : : OString sMessage ( " UnoListBoxControl::itemStateChanged: caught an exception: \n " ) ;
sMessage + = : : rtl : : OString ( e . Message . getStr ( ) , e . Message . getLength ( ) , RTL_TEXTENCODING_ASCII_US ) ;
OSL_ENSURE ( sal_False , sMessage . getStr ( ) ) ;
# endif
}
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoListBoxControl : : getMinimumSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getMinimumSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoListBoxControl : : getPreferredSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getPreferredSize ( ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoListBoxControl : : calcAdjustedSize ( const awt : : Size & rNewSize ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_calcAdjustedSize ( rNewSize ) ;
}
2001-01-24 14:00:58 +00:00
awt : : Size UnoListBoxControl : : getMinimumSize ( sal_Int16 nCols , sal_Int16 nLines ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return Impl_getMinimumSize ( nCols , nLines ) ;
}
2001-01-24 14:00:58 +00:00
void UnoListBoxControl : : getColumnsAndLines ( sal_Int16 & nCols , sal_Int16 & nLines ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
Impl_getColumnsAndLines ( nCols , nLines ) ;
}
// ----------------------------------------------------
// class UnoControlComboBoxModel
// ----------------------------------------------------
UnoControlComboBoxModel : : UnoControlComboBoxModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_AUTOCOMPLETE ) ;
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_DROPDOWN ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_LINECOUNT ) ;
ImplRegisterProperty ( BASEPROPERTY_MAXTEXTLEN ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_READONLY ) ;
ImplRegisterProperty ( BASEPROPERTY_STRINGITEMLIST ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
ImplRegisterProperty ( BASEPROPERTY_TEXT ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_HIDEINACTIVESELECTION ) ;
ImplRegisterProperty ( BASEPROPERTY_ALIGN ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlComboBoxModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlComboBoxModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlComboBoxModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlComboBox ) ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlComboBoxModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlComboBoxModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoComboBoxControl
// ----------------------------------------------------
UnoComboBoxControl : : UnoComboBoxControl ( )
: maActionListeners ( * this ) ,
maItemListeners ( * this )
{
maComponentInfos . nWidth = 100 ;
maComponentInfos . nHeight = 12 ;
}
: : rtl : : OUString UnoComboBoxControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " combobox " ) ;
}
2001-01-24 14:00:58 +00:00
// uno::XInterface
uno : : Any UnoComboBoxControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aRet = : : cppu : : queryInterface ( rType ,
SAL_STATIC_CAST ( awt : : XComboBox * , this ) ) ;
2000-09-18 16:07:07 +00:00
return ( aRet . hasValue ( ) ? aRet : UnoEditControl : : queryAggregation ( rType ) ) ;
}
2001-01-24 14:00:58 +00:00
// lang::XTypeProvider
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_START ( UnoComboBoxControl )
2001-01-24 14:00:58 +00:00
getCppuType ( ( uno : : Reference < awt : : XComboBox > * ) NULL ) ,
2000-09-18 16:07:07 +00:00
UnoEditControl : : getTypes ( )
IMPL_XTYPEPROVIDER_END
2001-01-24 14:00:58 +00:00
void UnoComboBoxControl : : dispose ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
lang : : EventObject aEvt ;
2000-09-18 16:07:07 +00:00
aEvt . Source = ( : : cppu : : OWeakObject * ) this ;
maActionListeners . disposeAndClear ( aEvt ) ;
maItemListeners . disposeAndClear ( aEvt ) ;
UnoControl : : dispose ( ) ;
}
2001-01-24 14:00:58 +00:00
void UnoComboBoxControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
UnoEditControl : : createPeer ( rxToolkit , rParentPeer ) ;
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XComboBox > xComboBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
if ( maActionListeners . getLength ( ) )
xComboBox - > addActionListener ( & maActionListeners ) ;
if ( maItemListeners . getLength ( ) )
xComboBox - > addItemListener ( & maItemListeners ) ;
}
2001-01-24 14:00:58 +00:00
void UnoComboBoxControl : : addActionListener ( const uno : : Reference < awt : : XActionListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maActionListeners . addInterface ( l ) ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maActionListeners . getLength ( ) = = 1 )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XComboBox > xComboBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xComboBox - > addActionListener ( & maActionListeners ) ;
}
}
2001-01-24 14:00:58 +00:00
void UnoComboBoxControl : : removeActionListener ( const uno : : Reference < awt : : XActionListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maActionListeners . getLength ( ) = = 1 )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XComboBox > xComboBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xComboBox - > removeActionListener ( & maActionListeners ) ;
}
maActionListeners . removeInterface ( l ) ;
}
2001-01-24 14:00:58 +00:00
void UnoComboBoxControl : : addItemListener ( const uno : : Reference < awt : : XItemListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
maItemListeners . addInterface ( l ) ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maItemListeners . getLength ( ) = = 1 )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XComboBox > xComboBox ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xComboBox - > addItemListener ( & maItemListeners ) ;
}
}
2001-01-24 14:00:58 +00:00
void UnoComboBoxControl : : removeItemListener ( const uno : : Reference < awt : : XItemListener > & l ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maItemListeners . getLength ( ) = = 1 )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XComboBox > xComboBox ( getPeer ( ) , uno : : UNO_QUERY ) ; // MT: Mal alles so umstellen, schoener als Ref anlegen und query rufen
2000-09-18 16:07:07 +00:00
xComboBox - > removeItemListener ( & maItemListeners ) ;
}
maItemListeners . removeInterface ( l ) ;
}
2001-01-24 14:00:58 +00:00
void UnoComboBoxControl : : addItem ( const : : rtl : : OUString & aItem , sal_Int16 nPos ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < : : rtl : : OUString > aSeq ( 1 ) ;
2000-09-18 16:07:07 +00:00
aSeq . getArray ( ) [ 0 ] = aItem ;
addItems ( aSeq , nPos ) ;
}
2001-01-24 14:00:58 +00:00
void UnoComboBoxControl : : addItems ( const uno : : Sequence < : : rtl : : OUString > & aItems , sal_Int16 nPos ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) ) ;
uno : : Sequence < : : rtl : : OUString > aSeq ;
2000-09-18 16:07:07 +00:00
aVal > > = aSeq ;
sal_uInt16 nNewItems = ( sal_uInt16 ) aItems . getLength ( ) ;
sal_uInt16 nOldLen = ( sal_uInt16 ) aSeq . getLength ( ) ;
sal_uInt16 nNewLen = nOldLen + nNewItems ;
2001-01-24 14:00:58 +00:00
uno : : Sequence < : : rtl : : OUString > aNewSeq ( nNewLen ) ;
2000-09-18 16:07:07 +00:00
: : rtl : : OUString * pNewData = aNewSeq . getArray ( ) ;
const : : rtl : : OUString * pOldData = aSeq . getConstArray ( ) ;
2004-02-04 10:11:33 +00:00
if ( ( nPos < 0 ) | | ( nPos > nOldLen ) )
2000-09-18 16:07:07 +00:00
nPos = ( sal_uInt16 ) nOldLen ;
sal_uInt16 n ;
// Items vor der Einfuege-Position
for ( n = 0 ; n < nPos ; n + + )
pNewData [ n ] = pOldData [ n ] ;
// Neue Items
for ( n = 0 ; n < nNewItems ; n + + )
pNewData [ nPos + n ] = aItems . getConstArray ( ) [ n ] ;
// Rest der alten Items
for ( n = nPos ; n < nOldLen ; n + + )
pNewData [ nNewItems + n ] = pOldData [ n ] ;
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = aNewSeq ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
void UnoComboBoxControl : : removeItems ( sal_Int16 nPos , sal_Int16 nCount ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) ) ;
uno : : Sequence < : : rtl : : OUString > aSeq ;
2000-09-18 16:07:07 +00:00
aVal > > = aSeq ;
sal_uInt16 nOldLen = ( sal_uInt16 ) aSeq . getLength ( ) ;
if ( nOldLen & & ( nPos < nOldLen ) )
{
if ( nCount > ( nOldLen - nPos ) )
nCount = nOldLen - nPos ;
sal_uInt16 nNewLen = nOldLen - nCount ;
2001-01-24 14:00:58 +00:00
uno : : Sequence < : : rtl : : OUString > aNewSeq ( nNewLen ) ;
2000-09-18 16:07:07 +00:00
: : rtl : : OUString * pNewData = aNewSeq . getArray ( ) ;
: : rtl : : OUString * pOldData = aSeq . getArray ( ) ;
sal_uInt16 n ;
// Items vor der Entfern-Position
for ( n = 0 ; n < nPos ; n + + )
pNewData [ n ] = pOldData [ n ] ;
// Rest der Items
for ( n = nPos ; n < ( nOldLen - nCount ) ; n + + )
pNewData [ n ] = pOldData [ n + nCount ] ;
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = aNewSeq ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) , aAny , sal_True ) ;
}
}
2001-01-24 14:00:58 +00:00
sal_Int16 UnoComboBoxControl : : getItemCount ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) ) ;
uno : : Sequence < : : rtl : : OUString > aSeq ;
2000-09-18 16:07:07 +00:00
aVal > > = aSeq ;
return ( sal_Int16 ) aSeq . getLength ( ) ;
}
2001-01-24 14:00:58 +00:00
: : rtl : : OUString UnoComboBoxControl : : getItem ( sal_Int16 nPos ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
: : rtl : : OUString aItem ;
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) ) ;
uno : : Sequence < : : rtl : : OUString > aSeq ;
2000-09-18 16:07:07 +00:00
aVal > > = aSeq ;
if ( nPos < aSeq . getLength ( ) )
aItem = aSeq . getConstArray ( ) [ nPos ] ;
return aItem ;
}
2001-01-24 14:00:58 +00:00
uno : : Sequence < : : rtl : : OUString > UnoComboBoxControl : : getItems ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aVal = ImplGetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRINGITEMLIST ) ) ;
uno : : Sequence < : : rtl : : OUString > aSeq ;
2000-09-18 16:07:07 +00:00
aVal > > = aSeq ;
return aSeq ;
}
2001-01-24 14:00:58 +00:00
void UnoComboBoxControl : : setDropDownLineCount ( sal_Int16 nLines ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = nLines ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_LINECOUNT ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Int16 UnoComboBoxControl : : getDropDownLineCount ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_INT16 ( BASEPROPERTY_LINECOUNT ) ;
}
2002-09-05 06:53:00 +00:00
// ----------------------------------------------------
// UnoSpinFieldControl
// ----------------------------------------------------
UnoSpinFieldControl : : UnoSpinFieldControl ( ) : maSpinListeners ( * this )
{
mbRepeat = sal_False ;
}
// uno::XInterface
uno : : Any UnoSpinFieldControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
{
uno : : Any aRet = : : cppu : : queryInterface ( rType ,
SAL_STATIC_CAST ( awt : : XSpinField * , this ) ) ;
return ( aRet . hasValue ( ) ? aRet : UnoEditControl : : queryAggregation ( rType ) ) ;
}
// lang::XTypeProvider
IMPL_XTYPEPROVIDER_START ( UnoSpinFieldControl )
getCppuType ( ( uno : : Reference < awt : : XSpinField > * ) NULL ) ,
UnoEditControl : : getTypes ( )
IMPL_XTYPEPROVIDER_END
void UnoSpinFieldControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
{
UnoEditControl : : createPeer ( rxToolkit , rParentPeer ) ;
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XSpinField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2002-09-05 06:53:00 +00:00
xField - > enableRepeat ( mbRepeat ) ;
if ( maSpinListeners . getLength ( ) )
xField - > addSpinListener ( & maSpinListeners ) ;
}
// ::com::sun::star::awt::XSpinField
void UnoSpinFieldControl : : addSpinListener ( const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : awt : : XSpinListener > & l ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
maSpinListeners . addInterface ( l ) ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maSpinListeners . getLength ( ) = = 1 )
2002-09-05 06:53:00 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XSpinField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2002-09-05 06:53:00 +00:00
xField - > addSpinListener ( & maSpinListeners ) ;
}
}
void UnoSpinFieldControl : : removeSpinListener ( const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : awt : : XSpinListener > & l ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) & & maSpinListeners . getLength ( ) = = 1 )
2002-09-05 06:53:00 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XSpinField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2002-09-05 06:53:00 +00:00
xField - > removeSpinListener ( & maSpinListeners ) ;
}
maSpinListeners . removeInterface ( l ) ;
}
void UnoSpinFieldControl : : up ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XSpinField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2002-09-05 06:53:00 +00:00
if ( xField . is ( ) )
xField - > up ( ) ;
}
void UnoSpinFieldControl : : down ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XSpinField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2002-09-05 06:53:00 +00:00
if ( xField . is ( ) )
xField - > down ( ) ;
}
void UnoSpinFieldControl : : first ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XSpinField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2002-09-05 06:53:00 +00:00
if ( xField . is ( ) )
xField - > first ( ) ;
}
void UnoSpinFieldControl : : last ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XSpinField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2002-09-05 06:53:00 +00:00
if ( xField . is ( ) )
xField - > last ( ) ;
}
void UnoSpinFieldControl : : enableRepeat ( sal_Bool bRepeat ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
mbRepeat = bRepeat ;
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XSpinField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2002-09-05 06:53:00 +00:00
if ( xField . is ( ) )
xField - > enableRepeat ( bRepeat ) ;
}
2000-09-18 16:07:07 +00:00
// ----------------------------------------------------
// class UnoControlDateFieldModel
// ----------------------------------------------------
UnoControlDateFieldModel : : UnoControlDateFieldModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_DATE ) ;
ImplRegisterProperty ( BASEPROPERTY_DATEMAX ) ;
ImplRegisterProperty ( BASEPROPERTY_DATEMIN ) ;
ImplRegisterProperty ( BASEPROPERTY_DATESHOWCENTURY ) ;
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_DROPDOWN ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_EXTDATEFORMAT ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_READONLY ) ;
2003-12-11 10:59:33 +00:00
ImplRegisterProperty ( BASEPROPERTY_REPEAT ) ;
ImplRegisterProperty ( BASEPROPERTY_REPEAT_DELAY ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_SPIN ) ;
ImplRegisterProperty ( BASEPROPERTY_STRICTFORMAT ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
2004-04-02 09:33:51 +00:00
ImplRegisterProperty ( BASEPROPERTY_ENFORCE_FORMAT ) ;
ImplRegisterProperty ( BASEPROPERTY_TEXT ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_HIDEINACTIVESELECTION ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlDateFieldModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlDateFieldModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlDateFieldModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlDateField ) ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlDateFieldModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlDateFieldModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoDateFieldControl
// ----------------------------------------------------
UnoDateFieldControl : : UnoDateFieldControl ( )
{
2001-08-10 08:10:14 +00:00
mnFirst = Date ( 1 , 1 , 1900 ) . GetDate ( ) ;
mnLast = Date ( 31 , 12 , 2200 ) . GetDate ( ) ;
2001-11-06 14:49:00 +00:00
mbLongFormat = 2 ;
2000-09-18 16:07:07 +00:00
}
: : rtl : : OUString UnoDateFieldControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " datefield " ) ;
}
2001-01-24 14:00:58 +00:00
// uno::XInterface
uno : : Any UnoDateFieldControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aRet = : : cppu : : queryInterface ( rType ,
SAL_STATIC_CAST ( awt : : XDateField * , this ) ) ;
2002-09-05 06:53:00 +00:00
return ( aRet . hasValue ( ) ? aRet : UnoSpinFieldControl : : queryAggregation ( rType ) ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
// lang::XTypeProvider
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_START ( UnoDateFieldControl )
2001-01-24 14:00:58 +00:00
getCppuType ( ( uno : : Reference < awt : : XDateField > * ) NULL ) ,
2002-09-05 06:53:00 +00:00
UnoSpinFieldControl : : getTypes ( )
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_END
2001-08-10 08:10:14 +00:00
void UnoDateFieldControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
{
2002-09-05 06:53:00 +00:00
UnoSpinFieldControl : : createPeer ( rxToolkit , rParentPeer ) ;
2001-08-10 08:10:14 +00:00
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XDateField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:10:14 +00:00
xField - > setFirst ( mnFirst ) ;
xField - > setLast ( mnLast ) ;
2001-11-06 14:49:00 +00:00
if ( mbLongFormat ! = 2 ) // not set
xField - > setLongFormat ( mbLongFormat ) ;
2001-08-10 08:10:14 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoDateFieldControl : : textChanged ( const awt : : TextEvent & e ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2004-04-02 09:33:51 +00:00
uno : : Reference < awt : : XVclWindowPeer > xPeer ( getPeer ( ) , uno : : UNO_QUERY ) ;
// also change the text property (#i25106#)
if ( xPeer . is ( ) )
{
: : rtl : : OUString sTextPropertyName = GetPropertyName ( BASEPROPERTY_TEXT ) ;
ImplSetPropertyValue ( sTextPropertyName , xPeer - > getProperty ( sTextPropertyName ) , sal_False ) ;
}
// re-calc the Date property
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XDateField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-01-24 14:00:58 +00:00
uno : : Any aValue ;
2004-04-02 09:33:51 +00:00
if ( xField - > isEmpty ( ) )
{
// the field says it's empty
sal_Bool bEnforceFormat = sal_True ;
if ( xPeer . is ( ) )
xPeer - > getProperty ( GetPropertyName ( BASEPROPERTY_ENFORCE_FORMAT ) ) > > = bEnforceFormat ;
if ( ! bEnforceFormat )
{
// and it also says that it is currently accepting invalid inputs, without
// forcing it to a valid date
uno : : Reference < awt : : XTextComponent > xText ( xPeer , uno : : UNO_QUERY ) ;
if ( xText . is ( ) & & xText - > getText ( ) . getLength ( ) )
// and in real, the text of the peer is *not* empty
// -> simulate an invalid date, which is different from "no date"
aValue < < = util : : Date ( 0 , 0 , 0 ) ;
}
}
else
2000-09-18 16:07:07 +00:00
aValue < < = xField - > getDate ( ) ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_DATE ) , aValue , sal_False ) ;
2004-04-02 09:33:51 +00:00
// multiplex the event
2000-09-18 16:07:07 +00:00
if ( GetTextListeners ( ) . getLength ( ) )
GetTextListeners ( ) . textChanged ( e ) ;
}
2001-01-24 14:00:58 +00:00
void UnoDateFieldControl : : setDate ( sal_Int32 Date ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Date ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_DATE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Int32 UnoDateFieldControl : : getDate ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_INT32 ( BASEPROPERTY_DATE ) ;
}
2001-01-24 14:00:58 +00:00
void UnoDateFieldControl : : setMin ( sal_Int32 Date ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Date ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_DATEMIN ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Int32 UnoDateFieldControl : : getMin ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_INT32 ( BASEPROPERTY_DATEMIN ) ;
}
2001-01-24 14:00:58 +00:00
void UnoDateFieldControl : : setMax ( sal_Int32 Date ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Date ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_DATEMAX ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Int32 UnoDateFieldControl : : getMax ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_INT32 ( BASEPROPERTY_DATEMAX ) ;
}
2001-01-24 14:00:58 +00:00
void UnoDateFieldControl : : setFirst ( sal_Int32 Date ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:10:14 +00:00
mnFirst = Date ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-08-10 08:10:14 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XDateField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:10:14 +00:00
xField - > setFirst ( Date ) ;
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
sal_Int32 UnoDateFieldControl : : getFirst ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:10:14 +00:00
return mnFirst ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoDateFieldControl : : setLast ( sal_Int32 Date ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:10:14 +00:00
mnLast = Date ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-08-10 08:10:14 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XDateField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:10:14 +00:00
xField - > setLast ( Date ) ;
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
sal_Int32 UnoDateFieldControl : : getLast ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:10:14 +00:00
return mnLast ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoDateFieldControl : : setLongFormat ( sal_Bool bLong ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:10:14 +00:00
mbLongFormat = bLong ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-08-10 08:10:14 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XDateField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:10:14 +00:00
xField - > setLongFormat ( bLong ) ;
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoDateFieldControl : : isLongFormat ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-11-06 14:49:00 +00:00
return ( mbLongFormat ! = 2 ) ? mbLongFormat : sal_False ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoDateFieldControl : : setEmpty ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XDateField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xField - > setEmpty ( ) ;
}
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoDateFieldControl : : isEmpty ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
sal_Bool bEmpty = sal_False ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XDateField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
bEmpty = xField - > isEmpty ( ) ;
}
return bEmpty ;
}
2001-01-24 14:00:58 +00:00
void UnoDateFieldControl : : setStrictFormat ( sal_Bool bStrict ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = bStrict ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRICTFORMAT ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoDateFieldControl : : isStrictFormat ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_BOOL ( BASEPROPERTY_STRICTFORMAT ) ;
}
// ----------------------------------------------------
// class UnoControlTimeFieldModel
// ----------------------------------------------------
UnoControlTimeFieldModel : : UnoControlTimeFieldModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_EXTTIMEFORMAT ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_READONLY ) ;
2003-12-11 10:59:33 +00:00
ImplRegisterProperty ( BASEPROPERTY_REPEAT ) ;
ImplRegisterProperty ( BASEPROPERTY_REPEAT_DELAY ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_SPIN ) ;
ImplRegisterProperty ( BASEPROPERTY_STRICTFORMAT ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
ImplRegisterProperty ( BASEPROPERTY_TIME ) ;
ImplRegisterProperty ( BASEPROPERTY_TIMEMAX ) ;
ImplRegisterProperty ( BASEPROPERTY_TIMEMIN ) ;
2004-04-02 09:33:51 +00:00
ImplRegisterProperty ( BASEPROPERTY_ENFORCE_FORMAT ) ;
ImplRegisterProperty ( BASEPROPERTY_TEXT ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_HIDEINACTIVESELECTION ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlTimeFieldModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlTimeFieldModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlTimeFieldModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlTimeField ) ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlTimeFieldModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlTimeFieldModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoTimeFieldControl
// ----------------------------------------------------
UnoTimeFieldControl : : UnoTimeFieldControl ( )
{
2001-08-10 08:10:14 +00:00
mnFirst = Time ( 0 , 0 ) . GetTime ( ) ;
mnLast = Time ( 23 , 59 , 59 , 99 ) . GetTime ( ) ;
2000-09-18 16:07:07 +00:00
}
: : rtl : : OUString UnoTimeFieldControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " timefield " ) ;
}
2001-01-24 14:00:58 +00:00
// uno::XInterface
uno : : Any UnoTimeFieldControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aRet = : : cppu : : queryInterface ( rType ,
SAL_STATIC_CAST ( awt : : XTimeField * , this ) ) ;
2002-09-05 06:53:00 +00:00
return ( aRet . hasValue ( ) ? aRet : UnoSpinFieldControl : : queryAggregation ( rType ) ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
// lang::XTypeProvider
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_START ( UnoTimeFieldControl )
2001-01-24 14:00:58 +00:00
getCppuType ( ( uno : : Reference < awt : : XTimeField > * ) NULL ) ,
2002-09-05 06:53:00 +00:00
UnoSpinFieldControl : : getTypes ( )
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_END
2001-08-10 08:10:14 +00:00
void UnoTimeFieldControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
{
2002-09-05 06:53:00 +00:00
UnoSpinFieldControl : : createPeer ( rxToolkit , rParentPeer ) ;
2001-08-10 08:10:14 +00:00
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTimeField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:10:14 +00:00
xField - > setFirst ( mnFirst ) ;
xField - > setLast ( mnLast ) ;
}
2001-01-24 14:00:58 +00:00
void UnoTimeFieldControl : : textChanged ( const awt : : TextEvent & e ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2004-04-02 09:33:51 +00:00
// also change the text property (#i25106#)
uno : : Reference < awt : : XVclWindowPeer > xPeer ( getPeer ( ) , uno : : UNO_QUERY ) ;
: : rtl : : OUString sTextPropertyName = GetPropertyName ( BASEPROPERTY_TEXT ) ;
ImplSetPropertyValue ( sTextPropertyName , xPeer - > getProperty ( sTextPropertyName ) , sal_False ) ;
// re-calc the Time property
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTimeField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-01-24 14:00:58 +00:00
uno : : Any aValue ;
2000-09-18 16:07:07 +00:00
if ( ! xField - > isEmpty ( ) )
2001-12-10 06:33:04 +00:00
aValue < < = xField - > getTime ( ) ;
2000-09-18 16:07:07 +00:00
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_TIME ) , aValue , sal_False ) ;
2004-04-02 09:33:51 +00:00
// multiplex the event
2000-09-18 16:07:07 +00:00
if ( GetTextListeners ( ) . getLength ( ) )
GetTextListeners ( ) . textChanged ( e ) ;
}
2001-01-24 14:00:58 +00:00
void UnoTimeFieldControl : : setTime ( sal_Int32 Time ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Time ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_TIME ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Int32 UnoTimeFieldControl : : getTime ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_INT32 ( BASEPROPERTY_TIME ) ;
}
2001-01-24 14:00:58 +00:00
void UnoTimeFieldControl : : setMin ( sal_Int32 Time ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Time ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_TIMEMIN ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Int32 UnoTimeFieldControl : : getMin ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_INT32 ( BASEPROPERTY_TIMEMIN ) ;
}
2001-01-24 14:00:58 +00:00
void UnoTimeFieldControl : : setMax ( sal_Int32 Time ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Time ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_TIMEMAX ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Int32 UnoTimeFieldControl : : getMax ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_INT32 ( BASEPROPERTY_TIMEMAX ) ;
}
2001-01-24 14:00:58 +00:00
void UnoTimeFieldControl : : setFirst ( sal_Int32 Time ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:10:14 +00:00
mnFirst = Time ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-08-10 08:10:14 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTimeField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:10:14 +00:00
xField - > setFirst ( mnFirst ) ;
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
sal_Int32 UnoTimeFieldControl : : getFirst ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:10:14 +00:00
return mnFirst ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoTimeFieldControl : : setLast ( sal_Int32 Time ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:10:14 +00:00
mnLast = Time ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-08-10 08:10:14 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTimeField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:10:14 +00:00
xField - > setFirst ( mnLast ) ;
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
sal_Int32 UnoTimeFieldControl : : getLast ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:10:14 +00:00
return mnLast ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoTimeFieldControl : : setEmpty ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTimeField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
xField - > setEmpty ( ) ;
}
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoTimeFieldControl : : isEmpty ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
sal_Bool bEmpty = sal_False ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XTimeField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-09-18 16:07:07 +00:00
bEmpty = xField - > isEmpty ( ) ;
}
return bEmpty ;
}
2001-01-24 14:00:58 +00:00
void UnoTimeFieldControl : : setStrictFormat ( sal_Bool bStrict ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = bStrict ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRICTFORMAT ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoTimeFieldControl : : isStrictFormat ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_BOOL ( BASEPROPERTY_STRICTFORMAT ) ;
}
// ----------------------------------------------------
// class UnoControlNumericFieldModel
// ----------------------------------------------------
UnoControlNumericFieldModel : : UnoControlNumericFieldModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_DECIMALACCURACY ) ;
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_NUMSHOWTHOUSANDSEP ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_READONLY ) ;
2003-12-11 10:59:33 +00:00
ImplRegisterProperty ( BASEPROPERTY_REPEAT ) ;
ImplRegisterProperty ( BASEPROPERTY_REPEAT_DELAY ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_SPIN ) ;
ImplRegisterProperty ( BASEPROPERTY_STRICTFORMAT ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
ImplRegisterProperty ( BASEPROPERTY_VALUEMAX_DOUBLE ) ;
ImplRegisterProperty ( BASEPROPERTY_VALUEMIN_DOUBLE ) ;
ImplRegisterProperty ( BASEPROPERTY_VALUESTEP_DOUBLE ) ;
ImplRegisterProperty ( BASEPROPERTY_VALUE_DOUBLE ) ;
2004-04-02 09:33:51 +00:00
ImplRegisterProperty ( BASEPROPERTY_ENFORCE_FORMAT ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_HIDEINACTIVESELECTION ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlNumericFieldModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlNumericFieldModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlNumericFieldModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlNumericField ) ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlNumericFieldModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlNumericFieldModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoNumericFieldControl
// ----------------------------------------------------
UnoNumericFieldControl : : UnoNumericFieldControl ( )
{
2001-08-10 08:52:16 +00:00
mnFirst = 0 ;
mnLast = 0x7FFFFFFF ;
2000-09-18 16:07:07 +00:00
}
: : rtl : : OUString UnoNumericFieldControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " numericfield " ) ;
}
2001-01-24 14:00:58 +00:00
// uno::XInterface
uno : : Any UnoNumericFieldControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aRet = : : cppu : : queryInterface ( rType ,
SAL_STATIC_CAST ( awt : : XNumericField * , this ) ) ;
2002-09-05 06:53:00 +00:00
return ( aRet . hasValue ( ) ? aRet : UnoSpinFieldControl : : queryAggregation ( rType ) ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
// lang::XTypeProvider
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_START ( UnoNumericFieldControl )
2001-01-24 14:00:58 +00:00
getCppuType ( ( uno : : Reference < awt : : XNumericField > * ) NULL ) ,
2002-09-05 06:53:00 +00:00
UnoSpinFieldControl : : getTypes ( )
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_END
2001-08-10 08:52:16 +00:00
void UnoNumericFieldControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
{
2002-09-05 06:53:00 +00:00
UnoSpinFieldControl : : createPeer ( rxToolkit , rParentPeer ) ;
2001-08-10 08:52:16 +00:00
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XNumericField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:52:16 +00:00
xField - > setFirst ( mnFirst ) ;
xField - > setLast ( mnLast ) ;
}
2001-01-24 14:00:58 +00:00
void UnoNumericFieldControl : : textChanged ( const awt : : TextEvent & e ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XNumericField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = xField - > getValue ( ) ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_VALUE_DOUBLE ) , aAny , sal_False ) ;
if ( GetTextListeners ( ) . getLength ( ) )
GetTextListeners ( ) . textChanged ( e ) ;
}
2001-01-24 14:00:58 +00:00
void UnoNumericFieldControl : : setValue ( double Value ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Value ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_VALUE_DOUBLE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
double UnoNumericFieldControl : : getValue ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_DOUBLE ( BASEPROPERTY_VALUE_DOUBLE ) ;
}
2001-01-24 14:00:58 +00:00
void UnoNumericFieldControl : : setMin ( double Value ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Value ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_VALUEMIN_DOUBLE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
double UnoNumericFieldControl : : getMin ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_DOUBLE ( BASEPROPERTY_VALUEMIN_DOUBLE ) ;
}
2001-01-24 14:00:58 +00:00
void UnoNumericFieldControl : : setMax ( double Value ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Value ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_VALUEMAX_DOUBLE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
double UnoNumericFieldControl : : getMax ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_DOUBLE ( BASEPROPERTY_VALUEMAX_DOUBLE ) ;
}
2001-01-24 14:00:58 +00:00
void UnoNumericFieldControl : : setFirst ( double Value ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
mnFirst = Value ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-08-10 08:52:16 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XNumericField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:52:16 +00:00
xField - > setFirst ( mnFirst ) ;
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
double UnoNumericFieldControl : : getFirst ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
return mnFirst ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoNumericFieldControl : : setLast ( double Value ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
mnLast = Value ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-08-10 08:52:16 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XNumericField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:52:16 +00:00
xField - > setLast ( mnLast ) ;
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
double UnoNumericFieldControl : : getLast ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
return mnLast ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoNumericFieldControl : : setStrictFormat ( sal_Bool bStrict ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = bStrict ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRICTFORMAT ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoNumericFieldControl : : isStrictFormat ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_BOOL ( BASEPROPERTY_STRICTFORMAT ) ;
}
2001-01-24 14:00:58 +00:00
void UnoNumericFieldControl : : setSpinSize ( double Digits ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Digits ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_VALUESTEP_DOUBLE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
double UnoNumericFieldControl : : getSpinSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_DOUBLE ( BASEPROPERTY_VALUESTEP_DOUBLE ) ;
}
2001-01-24 14:00:58 +00:00
void UnoNumericFieldControl : : setDecimalDigits ( sal_Int16 Digits ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
uno : : Any aAny ;
aAny < < = Digits ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_DECIMALACCURACY ) , aAny , sal_True ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
sal_Int16 UnoNumericFieldControl : : getDecimalDigits ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
return ImplGetPropertyValue_INT16 ( BASEPROPERTY_DECIMALACCURACY ) ;
2000-09-18 16:07:07 +00:00
}
// ----------------------------------------------------
// class UnoControlCurrencyFieldModel
// ----------------------------------------------------
UnoControlCurrencyFieldModel : : UnoControlCurrencyFieldModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_CURRENCYSYMBOL ) ;
ImplRegisterProperty ( BASEPROPERTY_CURSYM_POSITION ) ;
ImplRegisterProperty ( BASEPROPERTY_DECIMALACCURACY ) ;
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_NUMSHOWTHOUSANDSEP ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_READONLY ) ;
2003-12-11 10:59:33 +00:00
ImplRegisterProperty ( BASEPROPERTY_REPEAT ) ;
ImplRegisterProperty ( BASEPROPERTY_REPEAT_DELAY ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_SPIN ) ;
ImplRegisterProperty ( BASEPROPERTY_STRICTFORMAT ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
ImplRegisterProperty ( BASEPROPERTY_VALUEMAX_DOUBLE ) ;
ImplRegisterProperty ( BASEPROPERTY_VALUEMIN_DOUBLE ) ;
ImplRegisterProperty ( BASEPROPERTY_VALUESTEP_DOUBLE ) ;
ImplRegisterProperty ( BASEPROPERTY_VALUE_DOUBLE ) ;
2004-04-02 09:33:51 +00:00
ImplRegisterProperty ( BASEPROPERTY_ENFORCE_FORMAT ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_HIDEINACTIVESELECTION ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlCurrencyFieldModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlCurrencyFieldModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlCurrencyFieldModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlCurrencyField ) ;
return aAny ;
}
if ( nPropId = = BASEPROPERTY_CURSYM_POSITION )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = ( sal_Bool ) sal_False ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlCurrencyFieldModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlCurrencyFieldModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoCurrencyFieldControl
// ----------------------------------------------------
UnoCurrencyFieldControl : : UnoCurrencyFieldControl ( )
{
2001-08-10 08:52:16 +00:00
mnFirst = 0 ;
mnLast = 0x7FFFFFFF ;
2000-09-18 16:07:07 +00:00
}
: : rtl : : OUString UnoCurrencyFieldControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " longcurrencyfield " ) ;
}
2001-01-24 14:00:58 +00:00
// uno::XInterface
uno : : Any UnoCurrencyFieldControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aRet = : : cppu : : queryInterface ( rType ,
SAL_STATIC_CAST ( awt : : XCurrencyField * , this ) ) ;
2002-09-05 06:53:00 +00:00
return ( aRet . hasValue ( ) ? aRet : UnoSpinFieldControl : : queryAggregation ( rType ) ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
// lang::XTypeProvider
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_START ( UnoCurrencyFieldControl )
2001-01-24 14:00:58 +00:00
getCppuType ( ( uno : : Reference < awt : : XCurrencyField > * ) NULL ) ,
2002-09-05 06:53:00 +00:00
UnoSpinFieldControl : : getTypes ( )
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_END
2001-08-10 08:52:16 +00:00
void UnoCurrencyFieldControl : : createPeer ( const uno : : Reference < awt : : XToolkit > & rxToolkit , const uno : : Reference < awt : : XWindowPeer > & rParentPeer ) throw ( uno : : RuntimeException )
{
2002-09-05 06:53:00 +00:00
UnoSpinFieldControl : : createPeer ( rxToolkit , rParentPeer ) ;
2001-08-10 08:52:16 +00:00
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XCurrencyField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:52:16 +00:00
xField - > setFirst ( mnFirst ) ;
xField - > setLast ( mnLast ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCurrencyFieldControl : : textChanged ( const awt : : TextEvent & e ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XCurrencyField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = xField - > getValue ( ) ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_VALUE_DOUBLE ) , aAny , sal_False ) ;
if ( GetTextListeners ( ) . getLength ( ) )
GetTextListeners ( ) . textChanged ( e ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCurrencyFieldControl : : setValue ( double Value ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Value ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_VALUE_DOUBLE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
double UnoCurrencyFieldControl : : getValue ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_DOUBLE ( BASEPROPERTY_VALUE_DOUBLE ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCurrencyFieldControl : : setMin ( double Value ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Value ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_VALUEMIN_DOUBLE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
double UnoCurrencyFieldControl : : getMin ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_DOUBLE ( BASEPROPERTY_VALUEMIN_DOUBLE ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCurrencyFieldControl : : setMax ( double Value ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Value ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_VALUEMAX_DOUBLE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
double UnoCurrencyFieldControl : : getMax ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_DOUBLE ( BASEPROPERTY_VALUEMAX_DOUBLE ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCurrencyFieldControl : : setFirst ( double Value ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
mnFirst = Value ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-08-10 08:52:16 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XCurrencyField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:52:16 +00:00
xField - > setFirst ( mnFirst ) ;
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
double UnoCurrencyFieldControl : : getFirst ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
return mnFirst ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoCurrencyFieldControl : : setLast ( double Value ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
mnLast = Value ;
2003-03-27 16:05:12 +00:00
if ( getPeer ( ) . is ( ) )
2001-08-10 08:52:16 +00:00
{
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XCurrencyField > xField ( getPeer ( ) , uno : : UNO_QUERY ) ;
2001-08-10 08:52:16 +00:00
xField - > setLast ( mnLast ) ;
}
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
double UnoCurrencyFieldControl : : getLast ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
return mnLast ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
void UnoCurrencyFieldControl : : setStrictFormat ( sal_Bool bStrict ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = bStrict ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRICTFORMAT ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoCurrencyFieldControl : : isStrictFormat ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_BOOL ( BASEPROPERTY_STRICTFORMAT ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCurrencyFieldControl : : setSpinSize ( double Digits ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = Digits ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_VALUESTEP_DOUBLE ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
double UnoCurrencyFieldControl : : getSpinSize ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_DOUBLE ( BASEPROPERTY_VALUESTEP_DOUBLE ) ;
}
2001-01-24 14:00:58 +00:00
void UnoCurrencyFieldControl : : setDecimalDigits ( sal_Int16 Digits ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
uno : : Any aAny ;
aAny < < = Digits ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_DECIMALACCURACY ) , aAny , sal_True ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
sal_Int16 UnoCurrencyFieldControl : : getDecimalDigits ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-08-10 08:52:16 +00:00
return ImplGetPropertyValue_INT16 ( BASEPROPERTY_DECIMALACCURACY ) ;
2000-09-18 16:07:07 +00:00
}
// ----------------------------------------------------
// class UnoControlPatternFieldModel
// ----------------------------------------------------
UnoControlPatternFieldModel : : UnoControlPatternFieldModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_EDITMASK ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
2001-03-23 12:31:49 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_LITERALMASK ) ;
2001-06-22 10:18:38 +00:00
ImplRegisterProperty ( BASEPROPERTY_MAXTEXTLEN ) ;
2000-09-18 16:07:07 +00:00
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
ImplRegisterProperty ( BASEPROPERTY_READONLY ) ;
ImplRegisterProperty ( BASEPROPERTY_STRICTFORMAT ) ;
ImplRegisterProperty ( BASEPROPERTY_TABSTOP ) ;
ImplRegisterProperty ( BASEPROPERTY_TEXT ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_HIDEINACTIVESELECTION ) ;
2000-09-18 16:07:07 +00:00
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlPatternFieldModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlPatternFieldModel ) ;
}
2001-01-24 14:00:58 +00:00
uno : : Any UnoControlPatternFieldModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
2000-09-18 16:07:07 +00:00
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlPatternField ) ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlPatternFieldModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
2001-01-24 14:00:58 +00:00
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
2000-09-18 16:07:07 +00:00
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
2001-01-24 14:00:58 +00:00
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlPatternFieldModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
2000-09-18 16:07:07 +00:00
return xInfo ;
}
// ----------------------------------------------------
// class UnoPatternFieldControl
// ----------------------------------------------------
UnoPatternFieldControl : : UnoPatternFieldControl ( )
{
}
: : rtl : : OUString UnoPatternFieldControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " patternfield " ) ;
}
2001-01-24 14:00:58 +00:00
void UnoPatternFieldControl : : ImplSetPeerProperty ( const : : rtl : : OUString & rPropName , const uno : : Any & rVal )
2000-09-18 16:07:07 +00:00
{
sal_uInt16 nType = GetPropertyId ( rPropName ) ;
if ( ( nType = = BASEPROPERTY_TEXT ) | | ( nType = = BASEPROPERTY_EDITMASK ) | | ( nType = = BASEPROPERTY_LITERALMASK ) )
{
// Die Masken koennen nicht nacheinander gesetzt werden.
: : rtl : : OUString Text = ImplGetPropertyValue_UString ( BASEPROPERTY_TEXT ) ;
: : rtl : : OUString EditMask = ImplGetPropertyValue_UString ( BASEPROPERTY_EDITMASK ) ;
: : rtl : : OUString LiteralMask = ImplGetPropertyValue_UString ( BASEPROPERTY_LITERALMASK ) ;
2003-03-27 16:05:12 +00:00
uno : : Reference < awt : : XPatternField > xPF ( getPeer ( ) , uno : : UNO_QUERY ) ;
2000-11-03 12:55:40 +00:00
if ( xPF . is ( ) )
2007-07-18 07:43:55 +00:00
{
// same comment as in UnoControl::ImplSetPeerProperty - see there
: : rtl : : OUString sText ( Text ) ;
if ( ( Text . getLength ( ) > 0 ) & &
( Text . compareToAscii ( " & " , 1 ) = = 0 ) )
{
// Magic symbol '&' found at first place. Interpret as a place
// holder identifier. Now try to map it to the real value. The
// magic symbol must be removed.
rtl : : OUString aKeyValue ( Text . copy ( 1 ) ) ;
if ( UnoControl : : ImplMapPlaceHolder ( aKeyValue ) )
sText = aKeyValue ;
}
xPF - > setString ( sText ) ;
2000-11-03 12:55:40 +00:00
xPF - > setMasks ( EditMask , LiteralMask ) ;
}
2000-09-18 16:07:07 +00:00
}
else
2002-09-05 07:54:42 +00:00
UnoSpinFieldControl : : ImplSetPeerProperty ( rPropName , rVal ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
// uno::XInterface
uno : : Any UnoPatternFieldControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aRet = : : cppu : : queryInterface ( rType ,
SAL_STATIC_CAST ( awt : : XPatternField * , this ) ) ;
2002-09-05 06:53:00 +00:00
return ( aRet . hasValue ( ) ? aRet : UnoSpinFieldControl : : queryAggregation ( rType ) ) ;
2000-09-18 16:07:07 +00:00
}
2001-01-24 14:00:58 +00:00
// lang::XTypeProvider
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_START ( UnoPatternFieldControl )
2001-01-24 14:00:58 +00:00
getCppuType ( ( uno : : Reference < awt : : XPatternField > * ) NULL ) ,
2002-09-05 06:53:00 +00:00
UnoSpinFieldControl : : getTypes ( )
2000-09-18 16:07:07 +00:00
IMPL_XTYPEPROVIDER_END
2001-01-24 14:00:58 +00:00
void UnoPatternFieldControl : : setString ( const : : rtl : : OUString & rString ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
setText ( rString ) ;
}
2001-01-24 14:00:58 +00:00
: : rtl : : OUString UnoPatternFieldControl : : getString ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return getText ( ) ;
}
2001-01-24 14:00:58 +00:00
void UnoPatternFieldControl : : setMasks ( const : : rtl : : OUString & EditMask , const : : rtl : : OUString & LiteralMask ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = EditMask ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_EDITMASK ) , aAny , sal_True ) ;
aAny < < = LiteralMask ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_LITERALMASK ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
void UnoPatternFieldControl : : getMasks ( : : rtl : : OUString & EditMask , : : rtl : : OUString & LiteralMask ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
EditMask = ImplGetPropertyValue_UString ( BASEPROPERTY_EDITMASK ) ;
LiteralMask = ImplGetPropertyValue_UString ( BASEPROPERTY_LITERALMASK ) ;
}
2001-01-24 14:00:58 +00:00
void UnoPatternFieldControl : : setStrictFormat ( sal_Bool bStrict ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
2001-01-24 14:00:58 +00:00
uno : : Any aAny ;
2000-09-18 16:07:07 +00:00
aAny < < = bStrict ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_STRICTFORMAT ) , aAny , sal_True ) ;
}
2001-01-24 14:00:58 +00:00
sal_Bool UnoPatternFieldControl : : isStrictFormat ( ) throw ( uno : : RuntimeException )
2000-09-18 16:07:07 +00:00
{
return ImplGetPropertyValue_BOOL ( BASEPROPERTY_STRICTFORMAT ) ;
}
2001-04-26 08:09:16 +00:00
// ----------------------------------------------------
// class UnoControlProgressBarModel
// ----------------------------------------------------
UnoControlProgressBarModel : : UnoControlProgressBarModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_BACKGROUNDCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_BORDER ) ;
2004-07-05 14:57:14 +00:00
ImplRegisterProperty ( BASEPROPERTY_BORDERCOLOR ) ;
2001-04-26 08:09:16 +00:00
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
2001-05-04 12:23:35 +00:00
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
2001-04-26 08:09:16 +00:00
ImplRegisterProperty ( BASEPROPERTY_FILLCOLOR ) ;
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
2001-05-02 14:21:44 +00:00
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
2001-04-26 08:09:16 +00:00
ImplRegisterProperty ( BASEPROPERTY_PROGRESSVALUE ) ;
ImplRegisterProperty ( BASEPROPERTY_PROGRESSVALUE_MAX ) ;
ImplRegisterProperty ( BASEPROPERTY_PROGRESSVALUE_MIN ) ;
}
2000-09-18 16:07:07 +00:00
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlProgressBarModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2001-04-26 08:09:16 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlProgressBarModel ) ;
}
uno : : Any UnoControlProgressBarModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
uno : : Any aAny ;
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlProgressBar ) ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlProgressBarModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlProgressBarModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
{
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
return xInfo ;
}
// ----------------------------------------------------
// class UnoProgressBarControl
// ----------------------------------------------------
UnoProgressBarControl : : UnoProgressBarControl ( )
{
}
: : rtl : : OUString UnoProgressBarControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " ProgressBar " ) ;
}
// uno::XInterface
uno : : Any UnoProgressBarControl : : queryAggregation ( const uno : : Type & rType ) throw ( uno : : RuntimeException )
{
uno : : Any aRet = : : cppu : : queryInterface ( rType ,
SAL_STATIC_CAST ( awt : : XProgressBar * , this ) ) ;
return ( aRet . hasValue ( ) ? aRet : UnoControlBase : : queryAggregation ( rType ) ) ;
}
// lang::XTypeProvider
IMPL_XTYPEPROVIDER_START ( UnoProgressBarControl )
getCppuType ( ( uno : : Reference < awt : : XProgressBar > * ) NULL ) ,
UnoControlBase : : getTypes ( )
IMPL_XTYPEPROVIDER_END
// ::com::sun::star::awt::XProgressBar
void UnoProgressBarControl : : setForegroundColor ( sal_Int32 nColor ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
uno : : Any aAny ;
aAny < < = nColor ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_FILLCOLOR ) , aAny , sal_True ) ;
}
void UnoProgressBarControl : : setBackgroundColor ( sal_Int32 nColor ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
uno : : Any aAny ;
aAny < < = nColor ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_BACKGROUNDCOLOR ) , aAny , sal_True ) ;
}
void UnoProgressBarControl : : setValue ( sal_Int32 nValue ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
uno : : Any aAny ;
aAny < < = nValue ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_PROGRESSVALUE ) , aAny , sal_True ) ;
}
void UnoProgressBarControl : : setRange ( sal_Int32 nMin , sal_Int32 nMax ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
uno : : Any aMin ;
uno : : Any aMax ;
if ( nMin < nMax )
{
// take correct min and max
aMin < < = nMin ;
aMax < < = nMax ;
}
else
{
// change min and max
aMin < < = nMax ;
aMax < < = nMin ;
}
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_PROGRESSVALUE_MIN ) , aMin , sal_True ) ;
ImplSetPropertyValue ( GetPropertyName ( BASEPROPERTY_PROGRESSVALUE_MAX ) , aMax , sal_True ) ;
}
sal_Int32 UnoProgressBarControl : : getValue ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
{
return ImplGetPropertyValue_INT32 ( BASEPROPERTY_PROGRESSVALUE ) ;
2001-05-02 11:31:11 +00:00
}
2001-05-04 08:04:05 +00:00
// ----------------------------------------------------
// class UnoControlFixedLineModel
// ----------------------------------------------------
UnoControlFixedLineModel : : UnoControlFixedLineModel ( )
{
ImplRegisterProperty ( BASEPROPERTY_DEFAULTCONTROL ) ;
ImplRegisterProperty ( BASEPROPERTY_ENABLED ) ;
ImplRegisterProperty ( BASEPROPERTY_FONTDESCRIPTOR ) ;
ImplRegisterProperty ( BASEPROPERTY_HELPTEXT ) ;
ImplRegisterProperty ( BASEPROPERTY_HELPURL ) ;
ImplRegisterProperty ( BASEPROPERTY_LABEL ) ;
ImplRegisterProperty ( BASEPROPERTY_ORIENTATION ) ;
ImplRegisterProperty ( BASEPROPERTY_PRINTABLE ) ;
}
2001-05-11 06:59:47 +00:00
: : rtl : : OUString UnoControlFixedLineModel : : getServiceName ( ) throw ( : : com : : sun : : star : : uno : : RuntimeException )
2001-05-04 08:04:05 +00:00
{
return : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlFixedLineModel ) ;
}
uno : : Any UnoControlFixedLineModel : : ImplGetDefaultValue ( sal_uInt16 nPropId ) const
{
if ( nPropId = = BASEPROPERTY_DEFAULTCONTROL )
{
uno : : Any aAny ;
aAny < < = : : rtl : : OUString : : createFromAscii ( szServiceName_UnoControlFixedLine ) ;
return aAny ;
}
return UnoControlModel : : ImplGetDefaultValue ( nPropId ) ;
}
: : cppu : : IPropertyArrayHelper & UnoControlFixedLineModel : : getInfoHelper ( )
{
static UnoPropertyArrayHelper * pHelper = NULL ;
if ( ! pHelper )
{
uno : : Sequence < sal_Int32 > aIDs = ImplGetPropertyIds ( ) ;
pHelper = new UnoPropertyArrayHelper ( aIDs ) ;
}
return * pHelper ;
}
// beans::XMultiPropertySet
uno : : Reference < beans : : XPropertySetInfo > UnoControlFixedLineModel : : getPropertySetInfo ( ) throw ( uno : : RuntimeException )
{
static uno : : Reference < beans : : XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper ( ) ) ) ;
return xInfo ;
}
// ----------------------------------------------------
// class UnoFixedLineControl
// ----------------------------------------------------
UnoFixedLineControl : : UnoFixedLineControl ( )
{
maComponentInfos . nWidth = 100 ; // ??
maComponentInfos . nHeight = 100 ; // ??
}
: : rtl : : OUString UnoFixedLineControl : : GetComponentServiceName ( )
{
return : : rtl : : OUString : : createFromAscii ( " FixedLine " ) ;
}
sal_Bool UnoFixedLineControl : : isTransparent ( ) throw ( uno : : RuntimeException )
{
return sal_True ;
}