desktop/source/lib/init.cxx | 27 +++++++++++++++++++ include/LibreOfficeKit/LibreOfficeKit.h | 3 ++ include/vcl/IDialogRenderable.hxx | 44 ++++++++++++++++++++++++++++++++ sc/qa/unit/screenshots/screenshots.cxx | 2 - sw/inc/unotxdoc.hxx | 11 ++++++++ sw/source/uibase/uno/unotxdoc.cxx | 31 ++++++++++++++++++++++ vcl/Library_vcl.mk | 2 + vcl/source/app/IDialogRenderable.cxx | 22 ++++++++++++++++ vcl/source/app/ITiledRenderable.cxx | 22 ++++++++++++++++ vcl/source/gdi/virdev.cxx | 10 ------- vcl/source/window/debugevent.cxx | 3 +- 11 files changed, 165 insertions(+), 12 deletions(-)
New commits: commit abc2e3aaa5d7f201671b6fff2bc211bde0bbe22c Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Thu Jun 22 12:20:01 2017 +0200 Instantiate spell dialog and paint in a paintDialog call Change-Id: I7bd7f9cb33cd79d1e55ce51fe39917c5741bdf18 diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index dfc75a7f824d..78d3ffe123fc 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -168,6 +168,7 @@ #include <svx/svdview.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/servicehelper.hxx> +#include <SwSpellDialogChildWindow.hxx> #include <memory> #define TWIPS_PER_PIXEL 15 @@ -3640,12 +3641,20 @@ vcl::DialogID SwXTextDocument::findDialog() return vcl::DialogID(0); } -void SwXTextDocument::paintDialog(vcl::DialogID /*rDialogID*/, VirtualDevice& /*rDevice*/, int /*nWidth*/, int /*nHeight*/) +void SwXTextDocument::paintDialog(vcl::DialogID /*rDialogID*/, VirtualDevice& rDevice, int nWidth, int nHeight) { - //SwViewShell* pViewShell = pDocShell->GetWrtShell(); + SfxViewShell* pViewShell = pDocShell->GetView(); + SfxViewFrame* pViewFrame = pViewShell->GetViewFrame(); + SfxChildWindow* pSfxChildWindow = SwSpellDialogChildWindow::CreateImpl(&pViewFrame->GetWindow(), SwSpellDialogChildWindow::GetChildWindowId(), + &pViewFrame->GetBindings(), nullptr); + + Size aSize(nWidth, nHeight); + + vcl::Window* pWindow = pSfxChildWindow->GetWindow(); - //SwSpellDialogChildWindow::CreateImpl(nullptr, SwSpellDialogChildWindow::GetChildWindowId(), - // pViewShell->GetBindings(), ); + pWindow->SetSizePixel(aSize); + pWindow->Show(); + pWindow->Paint(rDevice, tools::Rectangle(Point(), aSize)); } void SwXTextDocument::postDialogMouseEvent(vcl::DialogID /*rDialogID*/, int /*nType*/, int /*nCharCode*/, int /*nKeyCode*/) commit e81338c4e66a3f1193ed338ebab8c436a830db6b Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Fri May 26 22:55:31 2017 +0200 Add IDialogRenderable interface for rendering of dialogs Change-Id: I1d85729a1ac1a99d33ea2bde1b50ccf4c05ca9a9 diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 4566a01dac37..476b283c9104 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -84,6 +84,7 @@ #include <vcl/sysdata.hxx> #include <vcl/virdev.hxx> #include <vcl/ITiledRenderable.hxx> +#include <vcl/IDialogRenderable.hxx> #include <unicode/uchar.h> #include <unotools/configmgr.hxx> #include <unotools/syslocaleoptions.hxx> @@ -590,6 +591,8 @@ static unsigned char* doc_renderFont(LibreOfficeKitDocument* pThis, int* pFontHeight); static char* doc_getPartHash(LibreOfficeKitDocument* pThis, int nPart); +static void doc_paintDialog(LibreOfficeKitDocument* pThis, unsigned char* pBuffer, int nWidth, int nHeight); + LibLODocument_Impl::LibLODocument_Impl(const uno::Reference <css::lang::XComponent> &xComponent) : mxComponent(xComponent) { @@ -636,6 +639,8 @@ LibLODocument_Impl::LibLODocument_Impl(const uno::Reference <css::lang::XCompone m_pDocumentClass->renderFont = doc_renderFont; m_pDocumentClass->getPartHash = doc_getPartHash; + m_pDocumentClass->paintDialog = doc_paintDialog; + gDocumentClass = m_pDocumentClass; } pClass = m_pDocumentClass.get(); @@ -1153,6 +1158,12 @@ ITiledRenderable* getTiledRenderable(LibreOfficeKitDocument* pThis) return dynamic_cast<ITiledRenderable*>(pDocument->mxComponent.get()); } +IDialogRenderable* getDialogRenderable(LibreOfficeKitDocument* pThis) +{ + LibLODocument_Impl* pDocument = static_cast<LibLODocument_Impl*>(pThis); + return dynamic_cast<IDialogRenderable*>(pDocument->mxComponent.get()); +} + } // anonymous namespace // Wonder global state ... @@ -3001,6 +3012,22 @@ unsigned char* doc_renderFont(SAL_UNUSED_PARAMETER LibreOfficeKitDocument* /*pTh return nullptr; } +static void doc_paintDialog(LibreOfficeKitDocument* pThis, unsigned char* pBuffer, int nWidth, int nHeight) +{ + SolarMutexGuard aGuard; + + IDialogRenderable* pDialogRenderable = getDialogRenderable(pThis); + + ScopedVclPtrInstance<VirtualDevice> pDevice(nullptr, Size(1, 1), DeviceFormat::DEFAULT); + pDevice->SetBackground(Wallpaper(Color(COL_TRANSPARENT))); + + pDevice->SetOutputSizePixelScaleOffsetAndBuffer(Size(nWidth, nHeight), Fraction(1.0), Point(), pBuffer); + + vcl::DialogID aDialogID(pDialogRenderable->findDialog()); + + pDialogRenderable->paintDialog(aDialogID, *pDevice.get(), nWidth, nHeight); +} + static char* lo_getError (LibreOfficeKit *pThis) { SolarMutexGuard aGuard; diff --git a/include/LibreOfficeKit/LibreOfficeKit.h b/include/LibreOfficeKit/LibreOfficeKit.h index 0633f46f97e2..2f0702c67ca8 100644 --- a/include/LibreOfficeKit/LibreOfficeKit.h +++ b/include/LibreOfficeKit/LibreOfficeKit.h @@ -266,6 +266,9 @@ struct _LibreOfficeKitDocumentClass int* pArray, size_t nSize); + /// WIP + void (*paintDialog) (LibreOfficeKitDocument* pThis, unsigned char* pBuffer, int nWidth, int nHeight); + #endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY }; diff --git a/include/vcl/IDialogRenderable.hxx b/include/vcl/IDialogRenderable.hxx new file mode 100644 index 000000000000..18694092c2fa --- /dev/null +++ b/include/vcl/IDialogRenderable.hxx @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#ifndef INCLUDED_VCL_IDIALOGRENDERABLE_HXX +#define INCLUDED_VCL_IDIALOGRENDERABLE_HXX + +#include <tools/gen.hxx> +#include <vcl/pointr.hxx> +#include <vcl/virdev.hxx> + +namespace vcl +{ + +typedef sal_Int32 DialogID; + +class VCL_DLLPUBLIC IDialogRenderable +{ +public: + virtual ~IDialogRenderable(); + + virtual DialogID findDialog() = 0; + + virtual void paintDialog(DialogID rDialogID, VirtualDevice &rDevice, + int nOutputWidth, int nOutputHeight) = 0; + + virtual void postDialogMouseEvent(DialogID rDialogID, int nType, + int nCharCode, int nKeyCode) = 0; + + virtual void postDialogKeyEvent(DialogID rDialogID, int nType, int nX, int nY, + int nCount, int nButtons, int nModifier) = 0; +}; + +} // namespace vcl + +#endif // INCLUDED_VCL_IDIALOGRENDERABLE_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx index 797aec9512fa..0d782213ce61 100644 --- a/sw/inc/unotxdoc.hxx +++ b/sw/inc/unotxdoc.hxx @@ -70,6 +70,7 @@ #include <cppuhelper/implbase.hxx> #include <vcl/event.hxx> #include <vcl/ITiledRenderable.hxx> +#include <vcl/IDialogRenderable.hxx> #include <com/sun/star/tiledrendering/XTiledRenderable.hpp> #include <unobaseclass.hxx> @@ -131,6 +132,7 @@ class SW_DLLPUBLIC SwXTextDocument : public SwXTextDocumentBaseClass, public SvxFmMSFactory, public SfxBaseModel, public vcl::ITiledRenderable, + public vcl::IDialogRenderable, public css::tiledrendering::XTiledRenderable { private: @@ -428,6 +430,15 @@ public: OUString getRulerState() override; /// @see vcl::ITiledRenderable::getPostIts(). OUString getPostIts() override; + + vcl::DialogID findDialog() override; + void paintDialog(vcl::DialogID rDialogID, VirtualDevice &rDevice, int nWidth, int nHeight) override; + void postDialogMouseEvent(vcl::DialogID rDialogID, int nType, + int nCharCode, int nKeyCode) override; + + void postDialogKeyEvent(vcl::DialogID rDialogID, int nType, int nX, int nY, + int nCount, int nButtons, int nModifier) override; + // css::tiledrendering::XTiledRenderable virtual void SAL_CALL paintTile( const ::css::uno::Any& Parent, ::sal_Int32 nOutputWidth, ::sal_Int32 nOutputHeight, ::sal_Int32 nTilePosX, ::sal_Int32 nTilePosY, ::sal_Int32 nTileWidth, ::sal_Int32 nTileHeight ) override; diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index c1e25aadb2a7..dfc75a7f824d 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -3635,6 +3635,28 @@ void SAL_CALL SwXTextDocument::paintTile( const ::css::uno::Any& Parent, ::sal_I #endif } +vcl::DialogID SwXTextDocument::findDialog() +{ + return vcl::DialogID(0); +} + +void SwXTextDocument::paintDialog(vcl::DialogID /*rDialogID*/, VirtualDevice& /*rDevice*/, int /*nWidth*/, int /*nHeight*/) +{ + //SwViewShell* pViewShell = pDocShell->GetWrtShell(); + + //SwSpellDialogChildWindow::CreateImpl(nullptr, SwSpellDialogChildWindow::GetChildWindowId(), + // pViewShell->GetBindings(), ); +} + +void SwXTextDocument::postDialogMouseEvent(vcl::DialogID /*rDialogID*/, int /*nType*/, int /*nCharCode*/, int /*nKeyCode*/) +{ +} + +void SwXTextDocument::postDialogKeyEvent(vcl::DialogID /*rDialogID*/, int /*nType*/, int /*nX*/, int /*nY*/, + int /*nCount*/, int /*nButtons*/, int /*nModifier*/) +{ +} + void * SAL_CALL SwXTextDocument::operator new( size_t t) throw() { return SwXTextDocumentBaseClass::operator new(t); diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index 4c636accce92..bc48ea8b0338 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -330,6 +330,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/app/IconThemeScanner \ vcl/source/app/IconThemeSelector \ vcl/source/app/ITiledRenderable \ + vcl/source/app/IDialogRenderable \ vcl/source/app/sound \ vcl/source/app/stdtext \ vcl/source/app/svapp \ diff --git a/vcl/source/app/IDialogRenderable.cxx b/vcl/source/app/IDialogRenderable.cxx new file mode 100644 index 000000000000..58ec05265101 --- /dev/null +++ b/vcl/source/app/IDialogRenderable.cxx @@ -0,0 +1,22 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#include <vcl/IDialogRenderable.hxx> + +namespace vcl +{ + +IDialogRenderable::~IDialogRenderable() +{ +} + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit d663eabbebad69dd64e5d9b05c60375304b28573 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Fri May 26 22:37:06 2017 +0200 move ITileRenderable implementation to own file Change-Id: Ib05ecf5f92e0ae4adf99c4dd10d60e730a95cf45 diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index 5d62542e8b13..4c636accce92 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -329,6 +329,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/app/IconThemeInfo \ vcl/source/app/IconThemeScanner \ vcl/source/app/IconThemeSelector \ + vcl/source/app/ITiledRenderable \ vcl/source/app/sound \ vcl/source/app/stdtext \ vcl/source/app/svapp \ diff --git a/vcl/source/app/ITiledRenderable.cxx b/vcl/source/app/ITiledRenderable.cxx new file mode 100644 index 000000000000..3eb5dcd2da6e --- /dev/null +++ b/vcl/source/app/ITiledRenderable.cxx @@ -0,0 +1,22 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#include <vcl/ITiledRenderable.hxx> + +namespace vcl +{ + +ITiledRenderable::~ITiledRenderable() +{ +} + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx index 52bb9f566873..974533d9ea13 100644 --- a/vcl/source/gdi/virdev.cxx +++ b/vcl/source/gdi/virdev.cxx @@ -23,18 +23,8 @@ #include "outdev.h" #include "PhysicalFontCollection.hxx" #include "svdata.hxx" - #include <vcl/ITiledRenderable.hxx> -namespace vcl -{ - -ITiledRenderable::~ITiledRenderable() -{ -} - -} - using namespace ::com::sun::star::uno; bool VirtualDevice::AcquireGraphics() const commit 901ee5207599d683b0f82c954f905c04fd8b676f Author: Pranav Kant <pran...@collabora.co.uk> Date: Wed Jul 26 23:28:09 2017 +0530 Give name to debug event injector Change-Id: I3468776797426b04c1cb3206dbb194837a652e16 diff --git a/vcl/source/window/debugevent.cxx b/vcl/source/window/debugevent.cxx index 80438d07f481..da2b68917f5c 100644 --- a/vcl/source/window/debugevent.cxx +++ b/vcl/source/window/debugevent.cxx @@ -22,7 +22,8 @@ #if OSL_DEBUG_LEVEL > 0 DebugEventInjector::DebugEventInjector( sal_uInt32 nMaxEvents) : - mnEventsLeft( nMaxEvents ) + Timer("debug event injector") + , mnEventsLeft( nMaxEvents ) { SetTimeout( 1000 /* ms */ ); Start(); commit 6ed7a1da3cdc0434c39c3d87822c6fa04aec222c Author: Pranav Kant <pran...@collabora.co.uk> Date: Wed Jun 28 18:51:51 2017 +0530 Typo Change-Id: I2ecf3050aa68a0f2986c43b651d71b662a77e55a diff --git a/sc/qa/unit/screenshots/screenshots.cxx b/sc/qa/unit/screenshots/screenshots.cxx index adcfe9e93dbe..2c32d2c75874 100644 --- a/sc/qa/unit/screenshots/screenshots.cxx +++ b/sc/qa/unit/screenshots/screenshots.cxx @@ -123,7 +123,7 @@ void ScScreenshotTest::initialize() void ScScreenshotTest::registerKnownDialogsByID(mapType& rKnownDialogs) { - // fill map of unknown dialogs + // fill map of known dialogs rKnownDialogs["modules/scalc/ui/insertsheet.ui"] = 0; rKnownDialogs["modules/scalc/ui/deletecells.ui"] = 1; rKnownDialogs["modules/scalc/ui/pastespecial.ui"] = 2;
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits