summaryrefslogtreecommitdiff
path: root/forms/source/richtext/richtextcontrol.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'forms/source/richtext/richtextcontrol.cxx')
-rw-r--r--forms/source/richtext/richtextcontrol.cxx33
1 files changed, 31 insertions, 2 deletions
diff --git a/forms/source/richtext/richtextcontrol.cxx b/forms/source/richtext/richtextcontrol.cxx
index 43f784f2219c..9150eac63e17 100644
--- a/forms/source/richtext/richtextcontrol.cxx
+++ b/forms/source/richtext/richtextcontrol.cxx
@@ -46,13 +46,15 @@
/** === begin UNO includes === **/
#include <com/sun/star/awt/PosSize.hpp>
/** === end UNO includes === **/
+
+#include <toolkit/helper/vclunohelper.hxx>
#include <tools/diagnose_ex.h>
#include <vcl/svapp.hxx>
#include <svx/svxids.hrc>
#include <svx/editview.hxx>
-#include <svtools/itemset.hxx>
-#include <svtools/itempool.hxx>
+#include <svl/itemset.hxx>
+#include <svl/itempool.hxx>
#include <sfx2/msgpool.hxx>
//--------------------------------------------------------------------------
@@ -400,6 +402,33 @@ namespace frm
}
//--------------------------------------------------------------------
+ void SAL_CALL ORichTextPeer::draw( sal_Int32 _nX, sal_Int32 _nY ) throw(::com::sun::star::uno::RuntimeException)
+ {
+ ::vos::OGuard aGuard( Application::GetSolarMutex() );
+
+ RichTextControl* pControl = static_cast< RichTextControl* >( GetWindow() );
+ if ( !pControl )
+ return;
+
+ OutputDevice* pTargetDevice = VCLUnoHelper::GetOutputDevice( getGraphics() );
+ OSL_ENSURE( pTargetDevice != NULL, "ORichTextPeer::draw: no graphics -> no drawing!" );
+ if ( !pTargetDevice )
+ return;
+
+ ::Size aSize = pControl->GetSizePixel();
+ const MapUnit eTargetUnit = pTargetDevice->GetMapMode().GetMapUnit();
+ if ( eTargetUnit != MAP_PIXEL )
+ aSize = pControl->PixelToLogic( aSize, eTargetUnit );
+
+ ::Point aPos( _nX, _nY );
+ // the XView::draw API talks about pixels, always ...
+ if ( eTargetUnit != MAP_PIXEL )
+ aPos = pTargetDevice->PixelToLogic( aPos );
+
+ pControl->Draw( pTargetDevice, aPos, aSize, WINDOW_DRAW_NOCONTROLS );
+ }
+
+ //--------------------------------------------------------------------
void SAL_CALL ORichTextPeer::setProperty( const ::rtl::OUString& _rPropertyName, const Any& _rValue ) throw (RuntimeException)
{
if ( !GetWindow() )