diff options
author | Noel Power <noel.power@suse.com> | 2012-09-05 17:59:46 +0100 |
---|---|---|
committer | Noel Power <noel.power@suse.com> | 2012-09-11 16:04:10 +0100 |
commit | 7d69c50413884d5cba1498b5af3298820fb4621b (patch) | |
tree | 7ca333ed444140c00146069ef034084c7ec9abc4 /toolkit/source/awt/vclxwindows.cxx | |
parent | 595f467ec8de68f3faeacd02005f613bcf61f42c (diff) |
misc fixes and improvements
hook in new properties into the property controller
allow new values to be passed to control
Change-Id: Ibbf1c1de4bfc7cb15e46d0d6704a025e5f0d048c
Diffstat (limited to 'toolkit/source/awt/vclxwindows.cxx')
-rw-r--r-- | toolkit/source/awt/vclxwindows.cxx | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/toolkit/source/awt/vclxwindows.cxx b/toolkit/source/awt/vclxwindows.cxx index d5a313dc5117..a70d5acd7337 100644 --- a/toolkit/source/awt/vclxwindows.cxx +++ b/toolkit/source/awt/vclxwindows.cxx @@ -27,6 +27,7 @@ ************************************************************************/ #include <toolkit/awt/vclxwindows.hxx> +#include "toolkit/awt/scrollabledialog.hxx" #include <com/sun/star/awt/ScrollBarOrientation.hpp> #include <com/sun/star/graphic/GraphicProvider.hpp> #include <com/sun/star/graphic/XGraphicProvider.hpp> @@ -2450,8 +2451,47 @@ throw(::com::sun::star::uno::RuntimeException) sal_Bool bVoid = Value.getValueType().getTypeClass() == ::com::sun::star::uno::TypeClass_VOID; sal_uInt16 nPropType = GetPropertyId( PropertyName ); + printf("XDialog setProperty... %s\n", rtl::OUStringToOString( PropertyName, RTL_TEXTENCODING_UTF8 ).getStr() ); switch ( nPropType ) { + case BASEPROPERTY_SCROLLHEIGHT: + case BASEPROPERTY_SCROLLWIDTH: + case BASEPROPERTY_SCROLLTOP: + case BASEPROPERTY_SCROLLLEFT: + { + sal_Int32 nVal =0; + Value >>= nVal; + Size aSize( nVal, nVal ); + Window* pWindow = GetWindow(); + MapMode aMode( MAP_APPFONT ); + if ( pWindow ) + { + OutputDevice* pDev = VCLUnoHelper::GetOutputDevice( getGraphics() ); + if ( !pDev ) + pDev = pWindow->GetParent(); + + aSize = pDev->LogicToPixel( aSize, aMode ); + toolkit::ScrollableDialog* pScrollable = static_cast< toolkit::ScrollableDialog* >( pWindow ); + switch ( nPropType ) + { + case BASEPROPERTY_SCROLLHEIGHT: + pScrollable->SetScrollHeight( aSize.Height() ); + break; + case BASEPROPERTY_SCROLLWIDTH: + pScrollable->SetScrollWidth( aSize.Width() ); + break; + case BASEPROPERTY_SCROLLTOP: + pScrollable->SetScrollTop( aSize.Height() ); + break; + case BASEPROPERTY_SCROLLLEFT: + pScrollable->SetScrollLeft( aSize.Width() ); + break; + default: + break; + } + } + break; + } case BASEPROPERTY_GRAPHIC: { Reference< XGraphic > xGraphic; |