[Libreoffice-commits] core.git: Branch 'feature/slideshowprimitives' - 3 commits - drawinglayer/Library_drawinglayer.mk offapi/com postprocess/Rdb_services.mk sd/CppunitTest_sd_uimpress.mk sd/Library_sd.mk sd/Library_sdui.mk sd/source
Thorsten Behrens
tbehrens at suse.com
Sun Oct 13 13:56:10 PDT 2013
drawinglayer/Library_drawinglayer.mk | 1
offapi/com/sun/star/rendering/XCanvas.idl | 13 +++++++---
postprocess/Rdb_services.mk | 1
sd/CppunitTest_sd_uimpress.mk | 1
sd/Library_sd.mk | 1
sd/Library_sdui.mk | 1
sd/source/ui/framework/factories/Pane.cxx | 16 +++---------
sd/source/ui/presenter/PresenterCanvas.cxx | 9 ++++++-
sd/source/ui/presenter/PresenterCanvas.hxx | 5 +++
sd/source/ui/presenter/PresenterHelper.cxx | 18 +++-----------
sd/source/ui/presenter/PresenterPreviewCache.cxx | 12 +++------
sd/source/ui/presenter/PresenterTextView.cxx | 22 +++++++----------
sd/source/ui/presenter/SlideRenderer.cxx | 13 +++-------
sd/source/ui/slideshow/slideshowviewimpl.cxx | 29 ++++-------------------
sd/source/ui/slideshow/slideshowviewimpl.hxx | 2 -
15 files changed, 56 insertions(+), 88 deletions(-)
New commits:
commit 8457fe70c5706508f54663567231715f6e32d1c3
Author: Thorsten Behrens <tbehrens at suse.com>
Date: Fri Oct 11 16:22:44 2013 +0200
Kill remaining linker usages of cppcanvas.
Change-Id: I6b3a2de5a923abe4a49ac2bfd7610e16066d27e9
diff --git a/drawinglayer/Library_drawinglayer.mk b/drawinglayer/Library_drawinglayer.mk
index 2308200..2a72025 100644
--- a/drawinglayer/Library_drawinglayer.mk
+++ b/drawinglayer/Library_drawinglayer.mk
@@ -28,7 +28,6 @@ $(eval $(call gb_Library_use_libraries,drawinglayer,\
basegfx \
canvastools \
comphelper \
- cppcanvas \
cppu \
cppuhelper \
i18nlangtag \
diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index 98bff53..aa36517 100644
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -19,7 +19,6 @@ $(eval $(call gb_Rdb_add_components,services,\
canvas/source/vcl/vclcanvas \
comphelper/util/comphelp \
configmgr/source/configmgr \
- cppcanvas/source/uno/mtfrenderer \
cui/util/cui \
desktop/source/deployment/deployment \
drawinglayer/drawinglayer \
commit 97b912b1452d867cd0cf0d8b061508bc6f809608
Author: Thorsten Behrens <tbehrens at suse.com>
Date: Fri Oct 11 16:19:47 2013 +0200
Cleanse sd of cppcanvas helper use.
In preparation of killing that very module.
Change-Id: I728e585a972eecdfb51050492b0962a140afa3ec
diff --git a/sd/CppunitTest_sd_uimpress.mk b/sd/CppunitTest_sd_uimpress.mk
index f232a91..6c8497b 100644
--- a/sd/CppunitTest_sd_uimpress.mk
+++ b/sd/CppunitTest_sd_uimpress.mk
@@ -26,7 +26,6 @@ $(eval $(call gb_CppunitTest_use_libraries,sd_uimpress,\
basegfx \
canvastools \
comphelper \
- cppcanvas \
cppu \
cppuhelper \
drawinglayer \
diff --git a/sd/Library_sd.mk b/sd/Library_sd.mk
index be29e38..007d657 100644
--- a/sd/Library_sd.mk
+++ b/sd/Library_sd.mk
@@ -72,7 +72,6 @@ $(eval $(call gb_Library_use_libraries,sd,\
basegfx \
canvastools \
comphelper \
- cppcanvas \
cppu \
cppuhelper \
drawinglayer \
diff --git a/sd/Library_sdui.mk b/sd/Library_sdui.mk
index 8eb3145..f25a1c4 100644
--- a/sd/Library_sdui.mk
+++ b/sd/Library_sdui.mk
@@ -39,7 +39,6 @@ $(eval $(call gb_Library_use_sdk_api,sdui))
$(eval $(call gb_Library_use_libraries,sdui,\
basegfx \
comphelper \
- cppcanvas \
cppu \
cppuhelper \
editeng \
diff --git a/sd/source/ui/framework/factories/Pane.cxx b/sd/source/ui/framework/factories/Pane.cxx
index 30bcaa0..44077be 100644
--- a/sd/source/ui/framework/factories/Pane.cxx
+++ b/sd/source/ui/framework/factories/Pane.cxx
@@ -24,9 +24,11 @@
#include <osl/mutex.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <vcl/window.hxx>
-#include <cppcanvas/vclfactory.hxx>
#include <comphelper/servicehelper.hxx>
+#include <com/sun/star/rendering/XCanvas.hpp>
+#include <com/sun/star/rendering/XSpriteCanvas.hpp>
+
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::drawing::framework;
@@ -226,17 +228,7 @@ sal_Int64 SAL_CALL Pane::getSomething (const Sequence<sal_Int8>& rId)
Reference<rendering::XCanvas> Pane::CreateCanvas (void)
throw (RuntimeException)
{
- Reference<rendering::XCanvas> xCanvas;
-
- if (mpWindow != NULL)
- {
- ::cppcanvas::SpriteCanvasSharedPtr pCanvas (
- ::cppcanvas::VCLFactory::getInstance().createSpriteCanvas(*mpWindow));
- if (pCanvas.get() != NULL)
- xCanvas = Reference<rendering::XCanvas>(pCanvas->getUNOSpriteCanvas(), UNO_QUERY);
- }
-
- return xCanvas;
+ return mpWindow->GetSpriteCanvas();
}
diff --git a/sd/source/ui/presenter/PresenterCanvas.cxx b/sd/source/ui/presenter/PresenterCanvas.cxx
index 415c339..8d5f355 100644
--- a/sd/source/ui/presenter/PresenterCanvas.cxx
+++ b/sd/source/ui/presenter/PresenterCanvas.cxx
@@ -264,7 +264,7 @@ void SAL_CALL PresenterCanvas::initialize (
//----- XCanvas ---------------------------------------------------------------
-void SAL_CALL PresenterCanvas::clear (void)
+void SAL_CALL PresenterCanvas::erase (void)
throw (css::uno::RuntimeException)
{
ThrowIfDisposed();
@@ -273,6 +273,13 @@ void SAL_CALL PresenterCanvas::clear (void)
}
+void SAL_CALL PresenterCanvas::clear (const css::uno::Sequence<double>&)
+ throw (css::uno::RuntimeException)
+{
+ ThrowIfDisposed();
+ // ToDo: Clear the area covered by the child window. A simple forward
+ // would clear the whole shared canvas.
+}
void SAL_CALL PresenterCanvas::drawPoint (
diff --git a/sd/source/ui/presenter/PresenterCanvas.hxx b/sd/source/ui/presenter/PresenterCanvas.hxx
index 46d637e..c1084cf 100644
--- a/sd/source/ui/presenter/PresenterCanvas.hxx
+++ b/sd/source/ui/presenter/PresenterCanvas.hxx
@@ -151,7 +151,10 @@ public:
// XCanvas
- virtual void SAL_CALL clear (void)
+ virtual void SAL_CALL erase (void)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL clear (const css::uno::Sequence<double>& rColor)
throw (css::uno::RuntimeException);
virtual void SAL_CALL drawPoint (
diff --git a/sd/source/ui/presenter/PresenterHelper.cxx b/sd/source/ui/presenter/PresenterHelper.cxx
index d1180cc..8b1d0d5 100644
--- a/sd/source/ui/presenter/PresenterHelper.cxx
+++ b/sd/source/ui/presenter/PresenterHelper.cxx
@@ -24,7 +24,6 @@
#include "PresenterHelper.hxx"
#include "CanvasUpdateRequester.hxx"
#include "PresenterCanvas.hxx"
-#include <cppcanvas/vclfactory.hxx>
#include <com/sun/star/awt/WindowAttribute.hpp>
#include <com/sun/star/awt/WindowClass.hpp>
#include <com/sun/star/awt/WindowDescriptor.hpp>
@@ -32,6 +31,7 @@
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
#include <vcl/wrkwin.hxx>
+#include <vcl/canvastools.hxx>
#include "res_bmp.hrc"
#include "sdresid.hxx"
@@ -450,18 +450,10 @@ Reference<rendering::XBitmap> SAL_CALL PresenterHelper::loadBitmap (
::osl::MutexGuard aGuard (::osl::Mutex::getGlobalMutex());
- const cppcanvas::CanvasSharedPtr pCanvas (
- cppcanvas::VCLFactory::getInstance().createCanvas(
- Reference<css::rendering::XBitmapCanvas>(rxCanvas,UNO_QUERY)));
-
- if (pCanvas.get()!=NULL)
- {
- BitmapEx aBitmapEx = SdResId(nid);
- return cppcanvas::VCLFactory::getInstance().createBitmap(
- pCanvas, aBitmapEx)->getUNOBitmap();
- }
-
- return NULL;
+ BitmapEx aBitmapEx = SdResId(nid);
+ return ::vcl::unotools::xBitmapFromBitmapEx(
+ rxCanvas->getDevice(),
+ aBitmapEx);
}
diff --git a/sd/source/ui/presenter/PresenterPreviewCache.cxx b/sd/source/ui/presenter/PresenterPreviewCache.cxx
index 4810151..78650ae 100644
--- a/sd/source/ui/presenter/PresenterPreviewCache.cxx
+++ b/sd/source/ui/presenter/PresenterPreviewCache.cxx
@@ -23,9 +23,9 @@
#include "cache/SlsCacheContext.hxx"
#include "tools/IdleDetection.hxx"
#include "sdpage.hxx"
-#include <cppcanvas/vclfactory.hxx>
#include <com/sun/star/drawing/XDrawPage.hpp>
#include <com/sun/star/rendering/XBitmapCanvas.hpp>
+#include <vcl/canvastools.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -189,10 +189,6 @@ Reference<rendering::XBitmap> SAL_CALL PresenterPreviewCache::getSlidePreview (
ThrowIfDisposed();
OSL_ASSERT(mpCacheContext.get()!=NULL);
- cppcanvas::BitmapCanvasSharedPtr pCanvas (
- cppcanvas::VCLFactory::getInstance().createCanvas(
- Reference<rendering::XBitmapCanvas>(rxCanvas, UNO_QUERY)));
-
const SdrPage* pPage = mpCacheContext->GetPage(nSlideIndex);
if (pPage == NULL)
throw RuntimeException();
@@ -201,9 +197,9 @@ Reference<rendering::XBitmap> SAL_CALL PresenterPreviewCache::getSlidePreview (
if (aPreview.IsEmpty())
return NULL;
else
- return cppcanvas::VCLFactory::getInstance().createBitmap(
- pCanvas,
- aPreview)->getUNOBitmap();
+ return ::vcl::unotools::xBitmapFromBitmapEx(
+ rxCanvas->getDevice(),
+ aPreview);
}
diff --git a/sd/source/ui/presenter/PresenterTextView.cxx b/sd/source/ui/presenter/PresenterTextView.cxx
index 9498212..9857f44 100644
--- a/sd/source/ui/presenter/PresenterTextView.cxx
+++ b/sd/source/ui/presenter/PresenterTextView.cxx
@@ -21,7 +21,6 @@
#include "PresenterTextView.hxx"
#include <i18nlangtag/mslangid.hxx>
-#include <cppcanvas/vclfactory.hxx>
#include <svl/itempool.hxx>
#include <svl/itemset.hxx>
#include <unotools/linguprops.hxx>
@@ -36,6 +35,7 @@
#include <vcl/bitmapex.hxx>
#include <vcl/svapp.hxx>
#include <vcl/virdev.hxx>
+#include <vcl/canvastools.hxx>
#include <com/sun/star/awt/FontDescriptor.hpp>
#include <com/sun/star/awt/Size.hpp>
#include <com/sun/star/rendering/XSpriteCanvas.hpp>
@@ -96,7 +96,7 @@ public:
Implementation (void);
~Implementation (void);
- void SetCanvas (const cppcanvas::CanvasSharedPtr& rCanvas);
+ void SetCanvas (const Reference<rendering::XCanvas>& rCanvas);
void SetSize (const Size aSize);
void SetBackgroundColor (const Color aColor);
void SetTextColor (const Color aColor);
@@ -110,7 +110,7 @@ public:
private:
Reference<rendering::XBitmap> mxBitmap;
- cppcanvas::CanvasSharedPtr mpCanvas;
+ Reference<rendering::XCanvas> mxCanvas;
VirtualDevice* mpOutputDevice;
EditEngine* mpEditEngine;
SfxItemPool* mpEditEngineItemPool;
@@ -170,8 +170,7 @@ void SAL_CALL PresenterTextView::initialize (const Sequence<Any>& rArguments)
Reference<rendering::XBitmapCanvas> xCanvas (rArguments[0], UNO_QUERY_THROW);
if (xCanvas.is())
{
- mpImplementation->SetCanvas(
- cppcanvas::VCLFactory::getInstance().createCanvas(xCanvas));
+ mpImplementation->SetCanvas( xCanvas );
}
}
catch (RuntimeException&)
@@ -299,7 +298,7 @@ PresenterTextView::Implementation::Implementation (void)
msTopRelativePropertyName("RelativeTop"),
msTotalHeightPropertyName("TotalHeight"),
mxBitmap(),
- mpCanvas(),
+ mxCanvas(),
mpOutputDevice(new VirtualDevice(*Application::GetDefaultDevice(), 0, 0)),
mpEditEngine(NULL),
mpEditEngineItemPool(EditEngine::CreatePool()),
@@ -413,9 +412,9 @@ EditEngine* PresenterTextView::Implementation::CreateEditEngine (void)
-void PresenterTextView::Implementation::SetCanvas (const cppcanvas::CanvasSharedPtr& rpCanvas)
+void PresenterTextView::Implementation::SetCanvas (const Reference<rendering::XCanvas>& rCanvas)
{
- mpCanvas = rpCanvas;
+ mxCanvas = rCanvas;
mxBitmap = NULL;
}
@@ -580,10 +579,9 @@ Reference<rendering::XBitmap> PresenterTextView::Implementation::GetBitmap (void
mpEditEngine->Draw(mpOutputDevice, aWindowBox, Point(0,mnTop));
const BitmapEx aBitmap (mpOutputDevice->GetBitmapEx(Point(0,0), maSize));
- mxBitmap = cppcanvas::VCLFactory::getInstance().createBitmap(
- mpCanvas,
- aBitmap
- )->getUNOBitmap();
+ mxBitmap = ::vcl::unotools::xBitmapFromBitmapEx(
+ mxCanvas->getDevice(),
+ aBitmap);
}
return mxBitmap;
}
diff --git a/sd/source/ui/presenter/SlideRenderer.cxx b/sd/source/ui/presenter/SlideRenderer.cxx
index 9cdfcf8..a708aaa 100644
--- a/sd/source/ui/presenter/SlideRenderer.cxx
+++ b/sd/source/ui/presenter/SlideRenderer.cxx
@@ -24,7 +24,7 @@
#include <com/sun/star/rendering/XBitmapCanvas.hpp>
#include <osl/mutex.hxx>
#include <vcl/svapp.hxx>
-#include <cppcanvas/vclfactory.hxx>
+#include <vcl/canvastools.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -131,14 +131,9 @@ Reference<rendering::XBitmap> SlideRenderer::createPreviewForCanvas (
ThrowIfDisposed();
SolarMutexGuard aGuard;
- cppcanvas::BitmapCanvasSharedPtr pCanvas (cppcanvas::VCLFactory::getInstance().createCanvas(
- Reference<rendering::XBitmapCanvas>(rxCanvas, UNO_QUERY)));
- if (pCanvas.get() != NULL)
- return cppcanvas::VCLFactory::getInstance().createBitmap(
- pCanvas,
- CreatePreview(rxSlide, rMaximalSize, nSuperSampleFactor))->getUNOBitmap();
- else
- return NULL;
+ return ::vcl::unotools::xBitmapFromBitmapEx(
+ rxCanvas->getDevice(),
+ CreatePreview(rxSlide, rMaximalSize, nSuperSampleFactor));
}
diff --git a/sd/source/ui/slideshow/slideshowviewimpl.cxx b/sd/source/ui/slideshow/slideshowviewimpl.cxx
index 45c9b2b..1cbffa5 100644
--- a/sd/source/ui/slideshow/slideshowviewimpl.cxx
+++ b/sd/source/ui/slideshow/slideshowviewimpl.cxx
@@ -27,9 +27,7 @@
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
-
-#include <cppcanvas/vclfactory.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
+#include <vcl/canvastools.hxx>
using ::com::sun::star::uno::UNO_QUERY;
@@ -200,7 +198,7 @@ SlideShowView::SlideShowView( ShowWindow& rOutputWindow,
SlideshowImpl* pSlideShow,
bool bFullScreen )
: SlideShowView_Base( m_aMutex ),
- mpCanvas( ::cppcanvas::VCLFactory::getInstance().createSpriteCanvas( rOutputWindow ) ),
+ mxSpriteCanvas( rOutputWindow.GetSpriteCanvas() ),
mxWindow( VCLUnoHelper::GetInterface( &rOutputWindow ), uno::UNO_QUERY_THROW ),
mxWindowPeer( mxWindow, uno::UNO_QUERY_THROW ),
mxPointer(),
@@ -240,7 +238,7 @@ void SAL_CALL SlideShowView::dispose() throw (RuntimeException)
mxWindow->removeMouseMotionListener( this );
}
- mpCanvas.reset();
+ mxSpriteCanvas.clear();
mxWindow.clear();
// clear all listener containers
@@ -304,7 +302,7 @@ Reference< rendering::XSpriteCanvas > SAL_CALL SlideShowView::getCanvas( ) thro
{
::osl::MutexGuard aGuard( m_aMutex );
- return mpCanvas.get() ? mpCanvas->getUNOSpriteCanvas() : Reference< rendering::XSpriteCanvas >();
+ return mxSpriteCanvas;
}
void SAL_CALL SlideShowView::clear() throw (::com::sun::star::uno::RuntimeException)
@@ -313,23 +311,8 @@ void SAL_CALL SlideShowView::clear() throw (::com::sun::star::uno::RuntimeExcept
::osl::MutexGuard aGuard( m_aMutex );
SolarMutexGuard aSolarGuard;
- // fill the bounds rectangle in black
- // ----------------------------------
-
- const Size aWindowSize( mrOutputWindow.GetSizePixel() );
-
- ::basegfx::B2DPolygon aPoly( ::basegfx::tools::createPolygonFromRect(
- ::basegfx::B2DRectangle(0.0,0.0,
- aWindowSize.Width(),
- aWindowSize.Height() ) ) );
- ::cppcanvas::PolyPolygonSharedPtr pPolyPoly(
- ::cppcanvas::BaseGfxFactory::getInstance().createPolyPolygon( mpCanvas, aPoly ) );
-
- if( pPolyPoly.get() )
- {
- pPolyPoly->setRGBAFillColor( 0x000000FFU );
- pPolyPoly->draw();
- }
+ // fill the whole slideshow window in black
+ mxSpriteCanvas->clear( vcl::unotools::colorToStdColorSpaceSequence( Color(0x000000FFU) ));
}
geometry::IntegerSize2D SAL_CALL SlideShowView::getTranslationOffset( ) throw (RuntimeException)
diff --git a/sd/source/ui/slideshow/slideshowviewimpl.hxx b/sd/source/ui/slideshow/slideshowviewimpl.hxx
index 704d53c..f710435 100644
--- a/sd/source/ui/slideshow/slideshowviewimpl.hxx
+++ b/sd/source/ui/slideshow/slideshowviewimpl.hxx
@@ -249,7 +249,7 @@ private:
void updateimpl( ::osl::ClearableMutexGuard& rGuard, SlideshowImpl* pSlideShow );
- ::cppcanvas::SpriteCanvasSharedPtr mpCanvas;
+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XSpriteCanvas > mxSpriteCanvas;
::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > mxWindow;
::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > mxWindowPeer;
::com::sun::star::uno::Reference< ::com::sun::star::awt::XPointer > mxPointer;
commit b03b9e3e9be255665aeface7114723d20477bf06
Author: Thorsten Behrens <tbehrens at suse.com>
Date: Fri Oct 11 16:19:15 2013 +0200
WIP - needs implementation in XCanvas!
- the erase/clear function
Change-Id: Ibbfaf758613bec97851a63a2683b8bd91b7212b8
diff --git a/offapi/com/sun/star/rendering/XCanvas.idl b/offapi/com/sun/star/rendering/XCanvas.idl
index 28e2a8f..5a97339 100644
--- a/offapi/com/sun/star/rendering/XCanvas.idl
+++ b/offapi/com/sun/star/rendering/XCanvas.idl
@@ -112,13 +112,20 @@ interface XTextLayout;
*/
interface XCanvas : ::com::sun::star::uno::XInterface
{
- /** Clear the whole canvas area.<p>
+ /** Erase the whole canvas area.<p>
This method clears the whole canvas area to the device default
- color (e.g. white for a printer, transparent for an
+ content (e.g. white for a printer, transparent for an
XCustomSprite).
*/
- void clear();
+ void erase();
+
+ /** Clears the whole canvas area to given color.<p>
+
+ This method fills the whole canvas area with the given device
+ color.
+ */
+ void clear( [in] sequence<ColorComponent> aColor );
/** Draw a point in device resolution on the device.
More information about the Libreoffice-commits
mailing list