[Libreoffice-commits] core.git: include/sfx2 sc/inc sc/source sfx2/source
Kohei Yoshida
kohei.yoshida at collabora.com
Mon May 19 13:03:18 PDT 2014
include/sfx2/sfxbasecontroller.hxx | 9 ++-
include/sfx2/viewsh.hxx | 7 ++
sc/inc/document.hxx | 3 +
sc/source/core/data/documen5.cxx | 47 ++++++++++++++-----
sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx | 1
sc/source/ui/app/client.cxx | 1
sc/source/ui/app/inputhdl.cxx | 1
sc/source/ui/app/transobj.cxx | 1
sc/source/ui/drawfunc/drawsh.cxx | 1
sc/source/ui/drawfunc/drawsh2.cxx | 1
sc/source/ui/drawfunc/drtxtob.cxx | 1
sc/source/ui/drawfunc/drtxtob1.cxx | 1
sc/source/ui/inc/tabview.hxx | 2
sc/source/ui/inc/tabvwsh.hxx | 4 +
sc/source/ui/inc/viewdata.hxx | 3 -
sc/source/ui/undo/undoblk.cxx | 1
sc/source/ui/vba/excelvbahelper.cxx | 1
sc/source/ui/view/cellsh.cxx | 1
sc/source/ui/view/cellsh1.cxx | 1
sc/source/ui/view/cliputil.cxx | 1
sc/source/ui/view/drawvie4.cxx | 1
sc/source/ui/view/editsh.cxx | 1
sc/source/ui/view/select.cxx | 1
sc/source/ui/view/spelldialog.cxx | 1
sc/source/ui/view/tabcont.cxx | 1
sc/source/ui/view/tabview.cxx | 2
sc/source/ui/view/tabvwsh2.cxx | 1
sc/source/ui/view/tabvwsh4.cxx | 27 ++++++++++
sc/source/ui/view/tabvwshb.cxx | 6 ++
sc/source/ui/view/tabvwshd.cxx | 1
sc/source/ui/view/tabvwshe.cxx | 1
sc/source/ui/view/tabvwshg.cxx | 1
sc/source/ui/view/viewdata.cxx | 3 -
sc/source/ui/view/viewfun3.cxx | 1
sc/source/ui/view/viewfun4.cxx | 1
sc/source/ui/view/viewfun7.cxx | 1
sfx2/source/view/frmload.cxx | 13 ++++-
sfx2/source/view/sfxbasecontroller.cxx | 6 ++
sfx2/source/view/viewsh.cxx | 5 +-
39 files changed, 143 insertions(+), 19 deletions(-)
New commits:
commit 2fc4f5cd750cc3899ffc6b2f831edcb01e7773b4
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Mon May 19 16:00:39 2014 -0400
Register OpenGL windows to ScGridWindow upon file load.
Change-Id: I6fdce232ef41079f20a983dc72da032196078858
diff --git a/include/sfx2/sfxbasecontroller.hxx b/include/sfx2/sfxbasecontroller.hxx
index cff3417..5389d8f 100644
--- a/include/sfx2/sfxbasecontroller.hxx
+++ b/include/sfx2/sfxbasecontroller.hxx
@@ -35,7 +35,8 @@
#include <com/sun/star/frame/XTitleChangeBroadcaster.hpp>
#include <com/sun/star/util/URL.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <cppuhelper/implbase9.hxx>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <cppuhelper/implbase10.hxx>
#include <cppuhelper/basemutex.hxx>
#include <osl/mutex.hxx>
#include <com/sun/star/task/XStatusIndicatorSupplier.hpp>
@@ -60,7 +61,7 @@ sal_Int16 MapGroupIDToCommandGroup( sal_Int16 nGroupID );
// class declarations
-typedef ::cppu::WeakImplHelper9 < css::frame::XController2
+typedef ::cppu::WeakImplHelper10 < css::frame::XController2
, css::frame::XControllerBorder
, css::frame::XDispatchProvider
, css::task::XStatusIndicatorSupplier
@@ -69,6 +70,7 @@ typedef ::cppu::WeakImplHelper9 < css::frame::XController2
, css::frame::XDispatchInformationProvider
, css::frame::XTitle
, css::frame::XTitleChangeBroadcaster
+ , css::lang::XInitialization
> SfxBaseController_Base;
class SFX2_DLLPUBLIC SfxBaseController :public SfxBaseController_Base
@@ -166,6 +168,9 @@ public:
virtual void SAL_CALL addTitleChangeListener( const css::uno::Reference< css::frame::XTitleChangeListener >& xListener ) throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
virtual void SAL_CALL removeTitleChangeListener( const css::uno::Reference< css::frame::XTitleChangeListener >& xListener ) throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+ // css::lang::XInitialization
+ virtual void SAL_CALL initialize( const ::css::uno::Sequence< ::css::uno::Any >& aArguments ) SAL_OVERRIDE;
+
// FIXME: TL needs this in sw/source/ui/uno/unotxdoc.cxx now;
// either the _Impl name should vanish or there should be an "official" API
SfxViewShell* GetViewShell_Impl() const;
diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx
index 13eb515..7c43c93 100644
--- a/include/sfx2/viewsh.hxx
+++ b/include/sfx2/viewsh.hxx
@@ -190,6 +190,13 @@ public:
void VisAreaChanged(const Rectangle& rRect);
// Misc
+
+ /**
+ * Initialize is called after the frame has been loaded and the controller
+ * has been set. By the time this is called the document has been fully
+ * imported.
+ */
+ virtual void Initialize();
virtual bool PrepareClose( bool bUI = true );
virtual OUString GetSelectionText( bool bCompleteWords = false );
virtual bool HasSelection( bool bText = true ) const;
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index ad080ae..08f1ca4 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -569,6 +569,9 @@ public:
bool HasChartAtPoint( SCTAB nTab, const Point& rPos, OUString& rName );
::com::sun::star::uno::Reference< ::com::sun::star::chart2::XChartDocument > GetChartByName( const OUString& rChartName );
+ std::vector<std::pair<css::uno::Reference<
+ css::chart2::XChartDocument>, Rectangle> > GetAllCharts();
+
SC_DLLPUBLIC void GetChartRanges( const OUString& rChartName, ::std::vector< ScRangeList >& rRanges, ScDocument* pSheetNameDoc );
void SetChartRanges( const OUString& rChartName, const ::std::vector< ScRangeList >& rRanges );
diff --git a/sc/source/core/data/documen5.cxx b/sc/source/core/data/documen5.cxx
index ff49e24..4076b43 100644
--- a/sc/source/core/data/documen5.cxx
+++ b/sc/source/core/data/documen5.cxx
@@ -663,6 +663,38 @@ uno::Reference< embed::XEmbeddedObject >
return uno::Reference< embed::XEmbeddedObject >();
}
+std::vector<std::pair<uno::Reference<chart2::XChartDocument>, Rectangle> > ScDocument::GetAllCharts()
+{
+ std::vector<std::pair<uno::Reference<chart2::XChartDocument>, Rectangle> > aRet;
+ if (!pDrawLayer)
+ return aRet;
+
+ for (SCTAB nTab=0; nTab< static_cast<SCTAB>(maTabs.size()); nTab++)
+ {
+ if (!maTabs[nTab])
+ continue;
+
+ SdrPage* pPage = pDrawLayer->GetPage(static_cast<sal_uInt16>(nTab));
+ OSL_ENSURE(pPage,"Page ?");
+
+ if (!pPage)
+ continue;
+
+ SdrObjListIter aIter( *pPage, IM_DEEPNOGROUPS );
+
+ for (SdrObject* pObject = aIter.Next(); pObject; pObject = aIter.Next())
+ {
+ if ( pObject->GetObjIdentifier() != OBJ_OLE2 )
+ continue;
+
+ uno::Reference< chart2::XChartDocument > xChartDoc( ScChartHelper::GetChartFromSdrObject( pObject ) );
+ Rectangle aRect = pObject->GetLastBoundRect();
+ aRet.push_back(std::pair<uno::Reference<chart2::XChartDocument>, Rectangle>(xChartDoc, aRect));
+ }
+ }
+ return aRet;
+}
+
void ScDocument::UpdateChartListenerCollection()
{
OSL_ASSERT(pChartListenerCollection);
@@ -702,8 +734,6 @@ void ScDocument::UpdateChartListenerCollection()
}
else
{
- bool bIsChart = false;
-
uno::Reference< embed::XEmbeddedObject > xIPObj = ((SdrOle2Obj*)pObject)->GetObjRef();
OSL_ENSURE( xIPObj.is(), "No embedded object is given!");
uno::Reference< ::com::sun::star::chart2::data::XDataReceiver > xReceiver;
@@ -728,15 +758,12 @@ void ScDocument::UpdateChartListenerCollection()
// => we have to do this stuff here, BEFORE the chart is actually loaded
}
- if (!bIsChart)
- {
- // put into list of other ole objects, so the object doesn't have to
- // be swapped in the next time UpdateChartListenerCollection is called
- //! remove names when objects are no longer there?
- // (object names aren't used again before reloading the document)
+ // put into list of other ole objects, so the object doesn't have to
+ // be swapped in the next time UpdateChartListenerCollection is called
+ //! remove names when objects are no longer there?
+ // (object names aren't used again before reloading the document)
- rNonOleObjects.insert(aObjName);
- }
+ rNonOleObjects.insert(aObjName);
}
}
}
diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
index bdc9b1d..6d26093 100644
--- a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
+++ b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
@@ -26,6 +26,7 @@
#include "hints.hxx"
#include "scmod.hxx"
#include "markdata.hxx"
+#include <gridwin.hxx>
#include <unotools/accessiblestatesethelper.hxx>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
diff --git a/sc/source/ui/app/client.cxx b/sc/source/ui/app/client.cxx
index e130446..089790d 100644
--- a/sc/source/ui/app/client.cxx
+++ b/sc/source/ui/app/client.cxx
@@ -35,6 +35,7 @@
#include "client.hxx"
#include "tabvwsh.hxx"
#include "docsh.hxx"
+#include <gridwin.hxx>
using namespace com::sun::star;
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 8b8d051..d354cba 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -78,6 +78,7 @@
#include "funcdesc.hxx"
#include "markdata.hxx"
#include "tokenarray.hxx"
+#include <gridwin.hxx>
// Maximum Ranges in RangeFinder
#define RANGEFIND_MAX 32
diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx
index eec781a..a538cd3 100644
--- a/sc/source/ui/app/transobj.cxx
+++ b/sc/source/ui/app/transobj.cxx
@@ -62,6 +62,7 @@
#include "cellsuno.hxx"
#include "stringutil.hxx"
#include "formulaiter.hxx"
+#include <gridwin.hxx>
using namespace com::sun::star;
diff --git a/sc/source/ui/drawfunc/drawsh.cxx b/sc/source/ui/drawfunc/drawsh.cxx
index a7552d3..3cc796f 100644
--- a/sc/source/ui/drawfunc/drawsh.cxx
+++ b/sc/source/ui/drawfunc/drawsh.cxx
@@ -47,6 +47,7 @@
#include <svx/drawitem.hxx>
#include <svx/xtable.hxx>
#include "tabvwsh.hxx"
+#include <gridwin.hxx>
#include <sfx2/bindings.hxx>
#define ScDrawShell
diff --git a/sc/source/ui/drawfunc/drawsh2.cxx b/sc/source/ui/drawfunc/drawsh2.cxx
index f436fe2..afc1ecd 100644
--- a/sc/source/ui/drawfunc/drawsh2.cxx
+++ b/sc/source/ui/drawfunc/drawsh2.cxx
@@ -45,6 +45,7 @@
#include "document.hxx"
#include "drwlayer.hxx"
#include "userdat.hxx"
+#include <gridwin.hxx>
#include <svx/svdoole2.hxx>
#include <svx/svdocapt.hxx>
diff --git a/sc/source/ui/drawfunc/drtxtob.cxx b/sc/source/ui/drawfunc/drtxtob.cxx
index f0ed72e..ba9f349 100644
--- a/sc/source/ui/drawfunc/drtxtob.cxx
+++ b/sc/source/ui/drawfunc/drtxtob.cxx
@@ -72,6 +72,7 @@
#include "viewutil.hxx"
#include "scresid.hxx"
#include "tabvwsh.hxx"
+#include <gridwin.hxx>
#define ScDrawTextObjectBar
#include "scslots.hxx"
diff --git a/sc/source/ui/drawfunc/drtxtob1.cxx b/sc/source/ui/drawfunc/drtxtob1.cxx
index 5cb6368..a437078 100644
--- a/sc/source/ui/drawfunc/drtxtob1.cxx
+++ b/sc/source/ui/drawfunc/drtxtob1.cxx
@@ -36,6 +36,7 @@
#include "drawview.hxx"
#include "viewdata.hxx"
#include "scresid.hxx"
+#include <gridwin.hxx>
#include "scabstdlg.hxx"
#include <boost/scoped_ptr.hpp>
diff --git a/sc/source/ui/inc/tabview.hxx b/sc/source/ui/inc/tabview.hxx
index 34a107b..dfb8e8b 100644
--- a/sc/source/ui/inc/tabview.hxx
+++ b/sc/source/ui/inc/tabview.hxx
@@ -324,7 +324,7 @@ public:
void StopMarking();
void FakeButtonUp( ScSplitPos eWhich );
- Window* GetActiveWin();
+ ScGridWindow* GetActiveWin();
Window* GetWindowByPos( ScSplitPos ePos );
ScSplitPos FindWindow( Window* pWindow ) const;
diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx
index 691dfa5..9eeb6f8 100644
--- a/sc/source/ui/inc/tabvwsh.hxx
+++ b/sc/source/ui/inc/tabvwsh.hxx
@@ -191,6 +191,8 @@ private:
void DoReadUserDataSequence( const ::com::sun::star::uno::Sequence<
::com::sun::star::beans::PropertyValue >& rSettings );
+ void AddOpenGLChartWindows();
+
DECL_LINK( SimpleRefClose, void* );
DECL_LINK( SimpleRefDone, OUString* );
DECL_LINK( SimpleRefAborted, OUString* );
@@ -331,7 +333,7 @@ public:
ObjectSelectionType GetCurObjectSelectionType();
virtual ErrCode DoVerb(long nVerb) SAL_OVERRIDE;
-
+ virtual void Initialize() SAL_OVERRIDE;
void StopEditShell();
bool IsDrawTextShell() const;
diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx
index c36aba9..6a86e46 100644
--- a/sc/source/ui/inc/viewdata.hxx
+++ b/sc/source/ui/inc/viewdata.hxx
@@ -101,6 +101,7 @@ class ScPatternAttr;
class ScExtDocOptions;
class ScViewData;
class ScMarkData;
+class ScGridWindow;
class ScViewDataTable // per-sheet data
{
@@ -240,7 +241,7 @@ public:
const ScMarkData& GetMarkData() const;
Window* GetDialogParent(); // forwarded from tabvwsh
- Window* GetActiveWin(); // from View
+ ScGridWindow* GetActiveWin(); // from View
ScDrawView* GetScDrawView(); // from View
bool IsMinimized(); // from View
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index dd0577e..0c5c495 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -51,6 +51,7 @@
#include <refhint.hxx>
#include <refupdatecontext.hxx>
#include <validat.hxx>
+#include <gridwin.hxx>
#include <set>
#include <boost/scoped_ptr.hpp>
diff --git a/sc/source/ui/vba/excelvbahelper.cxx b/sc/source/ui/vba/excelvbahelper.cxx
index 3b654bf..d57988c 100644
--- a/sc/source/ui/vba/excelvbahelper.cxx
+++ b/sc/source/ui/vba/excelvbahelper.cxx
@@ -28,6 +28,7 @@
#include "transobj.hxx"
#include "scmod.hxx"
#include "cellsuno.hxx"
+#include <gridwin.hxx>
#include <com/sun/star/script/vba/VBAEventId.hpp>
#include <com/sun/star/script/vba/XVBACompatibility.hpp>
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index 2a5aa5b..eca9ed8 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -56,6 +56,7 @@
#include "cliputil.hxx"
#include "clipparam.hxx"
#include "markdata.hxx"
+#include <gridwin.hxx>
#define ScCellShell
#define CellMovement
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index 3cccca4..8781fb7 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -83,6 +83,7 @@
#include <cellvalue.hxx>
#include <tokenarray.hxx>
#include <formulacell.hxx>
+#include <gridwin.hxx>
#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
diff --git a/sc/source/ui/view/cliputil.cxx b/sc/source/ui/view/cliputil.cxx
index 239c809..7c37d61 100644
--- a/sc/source/ui/view/cliputil.cxx
+++ b/sc/source/ui/view/cliputil.cxx
@@ -18,6 +18,7 @@
#include "rangelst.hxx"
#include "viewutil.hxx"
#include "markdata.hxx"
+#include <gridwin.hxx>
#include <vcl/waitobj.hxx>
diff --git a/sc/source/ui/view/drawvie4.cxx b/sc/source/ui/view/drawvie4.cxx
index ad38c2c..d5e280d 100644
--- a/sc/source/ui/view/drawvie4.cxx
+++ b/sc/source/ui/view/drawvie4.cxx
@@ -39,6 +39,7 @@
#include "scmod.hxx"
#include "globstr.hrc"
#include "chartarr.hxx"
+#include <gridwin.hxx>
#include <com/sun/star/embed/NoVisualAreaSizeException.hpp>
#include <com/sun/star/embed/Aspects.hpp>
diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx
index 7cb2936..fed79b5 100644
--- a/sc/source/ui/view/editsh.cxx
+++ b/sc/source/ui/view/editsh.cxx
@@ -69,6 +69,7 @@
#include "tabvwsh.hxx"
#include "editutil.hxx"
#include "globstr.hrc"
+#include <gridwin.hxx>
#define ScEditShell
#include "scslots.hxx"
diff --git a/sc/source/ui/view/select.cxx b/sc/source/ui/view/select.cxx
index 52d1907..378e469 100644
--- a/sc/source/ui/view/select.cxx
+++ b/sc/source/ui/view/select.cxx
@@ -30,6 +30,7 @@
#include "docsh.hxx"
#include "tabprotection.hxx"
#include "markdata.hxx"
+#include <gridwin.hxx>
#if defined WNT
#define SC_SELENG_REFMODE_UPDATE_INTERVAL_MIN 65
diff --git a/sc/source/ui/view/spelldialog.cxx b/sc/source/ui/view/spelldialog.cxx
index ae2849a..03e4073 100644
--- a/sc/source/ui/view/spelldialog.cxx
+++ b/sc/source/ui/view/spelldialog.cxx
@@ -34,6 +34,7 @@
#include "scmod.hxx"
#include "editable.hxx"
#include "undoblk.hxx"
+#include <gridwin.hxx>
#include <refupdatecontext.hxx>
SFX_IMPL_CHILDWINDOW_WITHID( ScSpellDialogChildWindow, SID_SPELL_DIALOG )
diff --git a/sc/source/ui/view/tabcont.cxx b/sc/source/ui/view/tabcont.cxx
index c6c41c0..e609277 100644
--- a/sc/source/ui/view/tabcont.cxx
+++ b/sc/source/ui/view/tabcont.cxx
@@ -33,6 +33,7 @@
#include "clipparam.hxx"
#include "dragdata.hxx"
#include "markdata.hxx"
+#include <gridwin.hxx>
// STATIC DATA -----------------------------------------------------------
diff --git a/sc/source/ui/view/tabview.cxx b/sc/source/ui/view/tabview.cxx
index 0541d05..286f1c1 100644
--- a/sc/source/ui/view/tabview.cxx
+++ b/sc/source/ui/view/tabview.cxx
@@ -863,7 +863,7 @@ double ScTabView::GetPendingRelTabBarWidth() const
return mfPendingTabBarWidth;
}
-Window* ScTabView::GetActiveWin()
+ScGridWindow* ScTabView::GetActiveWin()
{
ScSplitPos ePos = aViewData.GetActivePart();
OSL_ENSURE(pGridWin[ePos],"kein aktives Fenster");
diff --git a/sc/source/ui/view/tabvwsh2.cxx b/sc/source/ui/view/tabvwsh2.cxx
index 1542a00..a2810c1 100644
--- a/sc/source/ui/view/tabvwsh2.cxx
+++ b/sc/source/ui/view/tabvwsh2.cxx
@@ -41,6 +41,7 @@
#include "sc.hrc"
#include "scmod.hxx"
#include "appoptio.hxx"
+#include <gridwin.hxx>
// Create default drawing objects via keyboard
#include <svx/svdpagv.hxx>
diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx
index 955d9bf..01c171d 100644
--- a/sc/source/ui/view/tabvwsh4.cxx
+++ b/sc/source/ui/view/tabvwsh4.cxx
@@ -39,6 +39,7 @@
#include <unotools/moduleoptions.hxx>
#include <tools/urlobj.hxx>
#include <sfx2/docfile.hxx>
+#include <vcl/openglwin.hxx>
#include "tabvwsh.hxx"
#include "sc.hrc"
@@ -88,8 +89,10 @@
#include "preview.hxx"
#include "docoptio.hxx"
#include <documentlinkmgr.hxx>
+#include <gridwin.hxx>
#include <com/sun/star/document/XDocumentProperties.hpp>
+#include <com/sun/star/chart2/X3DChartWindowProvider.hpp>
extern SfxViewShell* pScActiveViewShell; // global.cxx
@@ -529,6 +532,30 @@ void ScTabViewShell::DoReadUserDataSequence( const uno::Sequence < beans::Proper
//! if ViewData has more tables than document, remove tables in ViewData
}
+void ScTabViewShell::AddOpenGLChartWindows()
+{
+ ScDocument* pDoc = GetViewData()->GetDocument();
+ ScGridWindow* pParentWindow = GetActiveWin();
+
+ std::vector<std::pair<uno::Reference<chart2::XChartDocument>, Rectangle> > aCharts = pDoc->GetAllCharts();
+
+ for(std::vector<std::pair<uno::Reference<chart2::XChartDocument>, Rectangle> >::iterator itr = aCharts.begin(),
+ itrEnd = aCharts.end(); itr != itrEnd; ++itr)
+ {
+ OpenGLWindow* pOpenGLWindow = new OpenGLWindow(pParentWindow);
+ pOpenGLWindow->Show(false);
+ Size aSize = itr->second.GetSize();
+
+ pOpenGLWindow->SetSizePixel(aSize);
+ Point aPos = itr->second.TopLeft();
+ pOpenGLWindow->SetPosPixel(aPos);
+ pParentWindow->AddChildWindow(pOpenGLWindow);
+ uno::Reference< chart2::X3DChartWindowProvider > x3DWindowProvider( itr->first, uno::UNO_QUERY_THROW );
+ sal_uInt64 nWindowPtr = reinterpret_cast<sal_uInt64>(pOpenGLWindow);
+ x3DWindowProvider->setWindow(nWindowPtr);
+ }
+}
+
// DoReadUserData is also called from ctor when switching from print preview
void ScTabViewShell::DoReadUserData( const OUString& rData )
diff --git a/sc/source/ui/view/tabvwshb.cxx b/sc/source/ui/view/tabvwshb.cxx
index 7d70114..3871bc8 100644
--- a/sc/source/ui/view/tabvwshb.cxx
+++ b/sc/source/ui/view/tabvwshb.cxx
@@ -58,6 +58,7 @@
#include "chartarr.hxx"
#include "drawview.hxx"
#include "ChartRangeSelectionListener.hxx"
+#include <gridwin.hxx>
#include <tools/urlobj.hxx>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
@@ -243,6 +244,11 @@ ErrCode ScTabViewShell::DoVerb(long nVerb)
return nErr;
}
+void ScTabViewShell::Initialize()
+{
+ AddOpenGLChartWindows();
+}
+
void ScTabViewShell::DeactivateOle()
{
// deactivate inplace editing if currently active
diff --git a/sc/source/ui/view/tabvwshd.cxx b/sc/source/ui/view/tabvwshd.cxx
index eac3ea4..f3431d3 100644
--- a/sc/source/ui/view/tabvwshd.cxx
+++ b/sc/source/ui/view/tabvwshd.cxx
@@ -28,6 +28,7 @@
#include "scmod.hxx"
#include "docsh.hxx"
#include "sc.hrc"
+#include <gridwin.hxx>
// STATIC DATA -----------------------------------------------------------
diff --git a/sc/source/ui/view/tabvwshe.cxx b/sc/source/ui/view/tabvwshe.cxx
index 545db9f..2629d49 100644
--- a/sc/source/ui/view/tabvwshe.cxx
+++ b/sc/source/ui/view/tabvwshe.cxx
@@ -40,6 +40,7 @@
#include "inputhdl.hxx"
#include <svx/srchdlg.hxx>
#include "document.hxx"
+#include <gridwin.hxx>
OUString ScTabViewShell::GetSelectionText( bool bWholeWord )
{
diff --git a/sc/source/ui/view/tabvwshg.cxx b/sc/source/ui/view/tabvwshg.cxx
index 53ede02..a2457bd 100644
--- a/sc/source/ui/view/tabvwshg.cxx
+++ b/sc/source/ui/view/tabvwshg.cxx
@@ -34,6 +34,7 @@ using namespace com::sun::star;
#include "document.hxx"
#include "drawview.hxx"
#include "globstr.hrc"
+#include <gridwin.hxx>
#include <avmedia/mediawindow.hxx>
void ScTabViewShell::InsertURLButton( const OUString& rName, const OUString& rURL,
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index 50e7b12..90f1377 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -58,6 +58,7 @@
#include "markdata.hxx"
#include "stlalgorithm.hxx"
#include "ViewSettingsSequenceDefines.hxx"
+#include <gridwin.hxx>
#include <rtl/ustrbuf.hxx>
#include <boost/checked_delete.hpp>
#include <comphelper/processfactory.hxx>
@@ -2115,7 +2116,7 @@ Window* ScViewData::GetDialogParent()
return pViewShell->GetDialogParent();
}
-Window* ScViewData::GetActiveWin()
+ScGridWindow* ScViewData::GetActiveWin()
{
OSL_ENSURE( pView, "GetActiveWin() ohne View" );
return pView->GetActiveWin();
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index 2f7375e..d82e725 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -65,6 +65,7 @@
#include "undodat.hxx"
#include "drawview.hxx"
#include "cliputil.hxx"
+#include <gridwin.hxx>
#include <boost/scoped_ptr.hpp>
using namespace com::sun::star;
diff --git a/sc/source/ui/view/viewfun4.cxx b/sc/source/ui/view/viewfun4.cxx
index 2e05759..73432c6 100644
--- a/sc/source/ui/view/viewfun4.cxx
+++ b/sc/source/ui/view/viewfun4.cxx
@@ -67,6 +67,7 @@
#include "compiler.hxx"
#include "tokenarray.hxx"
#include <refupdatecontext.hxx>
+#include <gridwin.hxx>
#include <boost/scoped_ptr.hpp>
diff --git a/sc/source/ui/view/viewfun7.cxx b/sc/source/ui/view/viewfun7.cxx
index ba35fe6..4cf39cf 100644
--- a/sc/source/ui/view/viewfun7.cxx
+++ b/sc/source/ui/view/viewfun7.cxx
@@ -46,6 +46,7 @@
#include "docsh.hxx"
#include "convuno.hxx"
#include "dragdata.hxx"
+#include <gridwin.hxx>
extern Point aDragStartDiff;
diff --git a/sfx2/source/view/frmload.cxx b/sfx2/source/view/frmload.cxx
index 5351212..afbf092 100644
--- a/sfx2/source/view/frmload.cxx
+++ b/sfx2/source/view/frmload.cxx
@@ -50,6 +50,7 @@
#include <com/sun/star/frame/XController2.hpp>
#include <com/sun/star/frame/XModel2.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
#include <comphelper/interaction.hxx>
#include <comphelper/namedvaluecollection.hxx>
@@ -71,6 +72,7 @@
#include <ucbhelper/simpleinteractionrequest.hxx>
#include <osl/mutex.hxx>
+using namespace com::sun::star;
using ::com::sun::star::beans::PropertyValue;
using ::com::sun::star::container::XContainerQuery;
using ::com::sun::star::container::XEnumeration;
@@ -720,7 +722,16 @@ sal_Bool SAL_CALL SfxFrameLoader_Impl::load( const Sequence< PropertyValue >& rA
const OUString sViewName( xDoc->GetFactory().GetViewFactory( nViewNo ).GetAPIViewName() );
// plug the document into the frame
- impl_createDocumentView( xModel, _rTargetFrame, aViewCreationArgs, sViewName );
+ Reference<XController2> xController =
+ impl_createDocumentView( xModel, _rTargetFrame, aViewCreationArgs, sViewName );
+
+ Reference<lang::XInitialization> xInit(xController, UNO_QUERY);
+ if (xInit.is())
+ {
+ uno::Sequence<uno::Any> aArgs; // empty for now.
+ xInit->initialize(aArgs);
+ }
+
bLoadSuccess = true;
}
catch ( Exception& )
diff --git a/sfx2/source/view/sfxbasecontroller.cxx b/sfx2/source/view/sfxbasecontroller.cxx
index bd7d5da..cc4930a 100644
--- a/sfx2/source/view/sfxbasecontroller.cxx
+++ b/sfx2/source/view/sfxbasecontroller.cxx
@@ -1524,4 +1524,10 @@ void SAL_CALL SfxBaseController::removeTitleChangeListener(const Reference< fram
xBroadcaster->removeTitleChangeListener (xListener);
}
+void SfxBaseController::initialize( const ::css::uno::Sequence< ::css::uno::Any >& /*aArguments*/ )
+{
+ if (m_pData->m_pViewShell)
+ m_pData->m_pViewShell->Initialize();
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx
index 7bb2d4c..c8b8eb7 100644
--- a/sfx2/source/view/viewsh.cxx
+++ b/sfx2/source/view/viewsh.cxx
@@ -1269,7 +1269,10 @@ SfxViewShell::~SfxViewShell()
DELETEZ( pIPClientList );
}
-
+void SfxViewShell::Initialize()
+{
+ // overloaded by the application.
+}
bool SfxViewShell::PrepareClose
(
More information about the Libreoffice-commits
mailing list