Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
2aef59dc
Kaydet (Commit)
2aef59dc
authored
Tem 10, 2014
tarafından
Kohei Yoshida
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Move the embedded object to the impl class.
Change-Id: I15af9a74fdcc40d65b3f8b394fc69037c017fe76
üst
cef8eb1f
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
147 additions
and
127 deletions
+147
-127
svdoole2.hxx
include/svx/svdoole2.hxx
+11
-6
viewcontactofsdrole2obj.cxx
svx/source/sdr/contact/viewcontactofsdrole2obj.cxx
+1
-1
viewobjectcontactofsdrole2obj.cxx
svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx
+1
-1
svdoole2.cxx
svx/source/svdraw/svdoole2.cxx
+133
-118
unoshap4.cxx
svx/source/unodraw/unoshap4.cxx
+1
-1
No files found.
include/svx/svdoole2.hxx
Dosyayı görüntüle @
2aef59dc
...
...
@@ -20,7 +20,6 @@
#ifndef INCLUDED_SVX_SVDOOLE2_HXX
#define INCLUDED_SVX_SVDOOLE2_HXX
#include <svtools/embedhlp.hxx>
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/frame/XModel.hpp>
#include <com/sun/star/datatransfer/XTransferable.hpp>
...
...
@@ -31,9 +30,17 @@
#include <sot/storage.hxx>
#include <svx/svxdllapi.h>
namespace
com
{
namespace
sun
{
namespace
star
{
namespace
embed
{
// SdrOle2Obj
class
XEmbeddedObject
;
}}}}
namespace
svt
{
class
EmbeddedObjectRef
;
}
class
SvxUnoShapeModifyListener
;
class
SdrOle2ObjImpl
;
...
...
@@ -61,7 +68,6 @@ protected:
private
:
SdrOle2ObjImpl
*
mpImpl
;
svt
::
EmbeddedObjectRef
xObjRef
;
Graphic
*
pGraphic
;
OUString
aProgName
;
...
...
@@ -87,10 +93,9 @@ public:
SdrOle2Obj
(
const
svt
::
EmbeddedObjectRef
&
rNewObjRef
,
const
OUString
&
rNewObjName
,
const
Rectangle
&
rNewRect
,
bool
bFrame_
=
false
);
virtual
~
SdrOle2Obj
();
// access to svt::EmbeddedObjectRef
const
svt
::
EmbeddedObjectRef
&
getEmbeddedObjectRef
()
const
{
return
xObjRef
;
}
const
svt
::
EmbeddedObjectRef
&
getEmbeddedObjectRef
()
const
;
sal_Int64
GetAspect
()
const
{
return
xObjRef
.
GetViewAspect
();
}
sal_Int64
GetAspect
()
const
;
bool
isInplaceActive
()
const
;
bool
isUiActive
()
const
;
void
SetAspect
(
sal_Int64
nAspect
);
...
...
svx/source/sdr/contact/viewcontactofsdrole2obj.cxx
Dosyayı görüntüle @
2aef59dc
...
...
@@ -33,7 +33,7 @@
#include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <drawinglayer/primitive2d/transformprimitive2d.hxx>
#include <svx/charthelper.hxx>
#include <svtools/embedhlp.hxx>
namespace
sdr
...
...
svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx
Dosyayı görüntüle @
2aef59dc
...
...
@@ -30,7 +30,7 @@
#include <com/sun/star/embed/XEmbeddedObject.hpp>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <svtools/embedhlp.hxx>
using
namespace
com
::
sun
::
star
;
...
...
svx/source/svdraw/svdoole2.cxx
Dosyayı görüntüle @
2aef59dc
...
...
@@ -668,6 +668,8 @@ void SdrEmbedObjectLink::Closed()
class
SdrOle2ObjImpl
{
public
:
svt
::
EmbeddedObjectRef
mxObjRef
;
// TODO/LATER: do we really need this pointer?
GraphicObject
*
pGraphicObject
;
OUString
aPersistName
;
// name of object in persist
...
...
@@ -680,14 +682,25 @@ public:
SdrEmbedObjectLink
*
mpObjectLink
;
OUString
maLinkURL
;
SdrOle2ObjImpl
()
:
pGraphicObject
(
NULL
)
,
pLightClient
(
NULL
)
// init to start situation, loading did not fail
,
mbLoadingOLEObjectFailed
(
false
)
,
mbConnected
(
false
)
,
mpObjectLink
(
NULL
)
SdrOle2ObjImpl
()
:
pGraphicObject
(
NULL
),
pLightClient
(
NULL
),
mbLoadingOLEObjectFailed
(
false
),
mbConnected
(
false
),
mpObjectLink
(
NULL
)
{
mxObjRef
.
Lock
(
true
);
}
SdrOle2ObjImpl
(
const
svt
::
EmbeddedObjectRef
&
rObjRef
)
:
mxObjRef
(
rObjRef
),
pGraphicObject
(
NULL
),
pLightClient
(
NULL
),
mbLoadingOLEObjectFailed
(
false
),
mbConnected
(
false
),
mpObjectLink
(
NULL
)
{
mxObjRef
.
Lock
(
true
);
}
};
...
...
@@ -745,13 +758,11 @@ SdrOle2Obj::SdrOle2Obj( bool bFrame_ ) :
m_bChart
(
false
),
pModifyListener
(
NULL
)
{
xObjRef
.
Lock
(
true
);
}
SdrOle2Obj
::
SdrOle2Obj
(
const
svt
::
EmbeddedObjectRef
&
rNewObjRef
,
const
OUString
&
rNewObjName
,
const
Rectangle
&
rNewRect
,
bool
bFrame_
)
:
SdrRectObj
(
rNewRect
),
mpImpl
(
new
SdrOle2ObjImpl
),
xObjRef
(
rNewObjRef
),
mpImpl
(
new
SdrOle2ObjImpl
(
rNewObjRef
)),
pGraphic
(
NULL
),
bFrame
(
bFrame_
),
bInDestruction
(
false
),
...
...
@@ -760,23 +771,21 @@ SdrOle2Obj::SdrOle2Obj( const svt::EmbeddedObjectRef& rNewObjRef, const OUStrin
m_bChart
(
false
),
pModifyListener
(
NULL
)
{
xObjRef
.
Lock
(
true
);
mpImpl
->
aPersistName
=
rNewObjName
;
if
(
xObjRef
.
is
()
&&
(
xObjRef
->
getStatus
(
GetAspect
()
)
&
embed
::
EmbedMisc
::
EMBED_NEVERRESIZE
)
)
if
(
mpImpl
->
mxObjRef
.
is
()
&&
(
mpImpl
->
m
xObjRef
->
getStatus
(
GetAspect
()
)
&
embed
::
EmbedMisc
::
EMBED_NEVERRESIZE
)
)
SetResizeProtect
(
true
);
// For math objects, set closed state to transparent
SetClosedObj
(
!
ImplIsMathObj
(
xObjRef
.
GetObject
()
));
SetClosedObj
(
!
ImplIsMathObj
(
mpImpl
->
m
xObjRef
.
GetObject
()
));
}
OUString
SdrOle2Obj
::
GetStyleString
()
{
OUString
strStyle
;
if
(
xObjRef
.
is
()
&&
xObjRef
.
IsChart
()
)
if
(
mpImpl
->
mxObjRef
.
is
()
&&
mpImpl
->
mxObjRef
.
IsChart
()
)
{
strStyle
=
xObjRef
.
GetChartType
();
strStyle
=
mpImpl
->
m
xObjRef
.
GetChartType
();
}
return
strStyle
;
}
...
...
@@ -814,23 +823,29 @@ SdrOle2Obj::~SdrOle2Obj()
void
SdrOle2Obj
::
SetAspect
(
sal_Int64
nAspect
)
{
xObjRef
.
SetViewAspect
(
nAspect
);
mpImpl
->
mxObjRef
.
SetViewAspect
(
nAspect
);
}
const
svt
::
EmbeddedObjectRef
&
SdrOle2Obj
::
getEmbeddedObjectRef
()
const
{
return
mpImpl
->
mxObjRef
;
}
sal_Int64
SdrOle2Obj
::
GetAspect
()
const
{
return
mpImpl
->
mxObjRef
.
GetViewAspect
();
}
bool
SdrOle2Obj
::
isInplaceActive
()
const
{
return
xObjRef
.
is
()
&&
embed
::
EmbedStates
::
INPLACE_ACTIVE
==
xObjRef
->
getCurrentState
();
return
mpImpl
->
mxObjRef
.
is
()
&&
embed
::
EmbedStates
::
INPLACE_ACTIVE
==
mpImpl
->
m
xObjRef
->
getCurrentState
();
}
bool
SdrOle2Obj
::
isUiActive
()
const
{
return
xObjRef
.
is
()
&&
embed
::
EmbedStates
::
UI_ACTIVE
==
xObjRef
->
getCurrentState
();
return
mpImpl
->
mxObjRef
.
is
()
&&
embed
::
EmbedStates
::
UI_ACTIVE
==
mpImpl
->
m
xObjRef
->
getCurrentState
();
}
void
SdrOle2Obj
::
SetGraphic_Impl
(
const
Graphic
*
pGrf
)
{
if
(
pGraphic
)
...
...
@@ -861,7 +876,7 @@ void SdrOle2Obj::SetGraphic(const Graphic* pGrf)
bool
SdrOle2Obj
::
IsEmpty
()
const
{
return
!
(
xObjRef
.
is
()
);
return
!
mpImpl
->
mxObjRef
.
is
(
);
}
...
...
@@ -899,15 +914,15 @@ bool SdrOle2Obj::UpdateLinkURL_Impl()
if
(
!
aNewLinkURL
.
equalsIgnoreAsciiCase
(
mpImpl
->
maLinkURL
)
)
{
const_cast
<
SdrOle2Obj
*>
(
this
)
->
GetObjRef_Impl
();
uno
::
Reference
<
embed
::
XCommonEmbedPersist
>
xPersObj
(
xObjRef
.
GetObject
(),
uno
::
UNO_QUERY
);
uno
::
Reference
<
embed
::
XCommonEmbedPersist
>
xPersObj
(
mpImpl
->
m
xObjRef
.
GetObject
(),
uno
::
UNO_QUERY
);
OSL_ENSURE
(
xPersObj
.
is
(),
"The object must exist!
\n
"
);
if
(
xPersObj
.
is
()
)
{
try
{
sal_Int32
nCurState
=
xObjRef
->
getCurrentState
();
sal_Int32
nCurState
=
mpImpl
->
m
xObjRef
->
getCurrentState
();
if
(
nCurState
!=
embed
::
EmbedStates
::
LOADED
)
xObjRef
->
changeState
(
embed
::
EmbedStates
::
LOADED
);
mpImpl
->
mxObjRef
->
changeState
(
embed
::
EmbedStates
::
LOADED
);
// TODO/LATER: there should be possible to get current mediadescriptor settings from the object
uno
::
Sequence
<
beans
::
PropertyValue
>
aArgs
(
1
);
...
...
@@ -919,7 +934,7 @@ bool SdrOle2Obj::UpdateLinkURL_Impl()
bResult
=
true
;
if
(
nCurState
!=
embed
::
EmbedStates
::
LOADED
)
xObjRef
->
changeState
(
nCurState
);
mpImpl
->
mxObjRef
->
changeState
(
nCurState
);
}
catch
(
::
com
::
sun
::
star
::
uno
::
Exception
&
)
{
...
...
@@ -958,7 +973,7 @@ void SdrOle2Obj::BreakFileLink_Impl()
{
try
{
uno
::
Reference
<
embed
::
XLinkageSupport
>
xLinkSupport
(
xObjRef
.
GetObject
(),
uno
::
UNO_QUERY_THROW
);
uno
::
Reference
<
embed
::
XLinkageSupport
>
xLinkSupport
(
mpImpl
->
m
xObjRef
.
GetObject
(),
uno
::
UNO_QUERY_THROW
);
xLinkSupport
->
breakLink
(
xStorage
,
mpImpl
->
aPersistName
);
DisconnectFileLink_Impl
();
mpImpl
->
maLinkURL
=
""
;
...
...
@@ -992,11 +1007,11 @@ void SdrOle2Obj::DisconnectFileLink_Impl()
void
SdrOle2Obj
::
CheckFileLink_Impl
()
{
if
(
pModel
&&
xObjRef
.
GetObject
().
is
()
&&
!
mpImpl
->
mpObjectLink
)
if
(
pModel
&&
mpImpl
->
mxObjRef
.
GetObject
().
is
()
&&
!
mpImpl
->
mpObjectLink
)
{
try
{
uno
::
Reference
<
embed
::
XLinkageSupport
>
xLinkSupport
(
xObjRef
.
GetObject
(),
uno
::
UNO_QUERY
);
uno
::
Reference
<
embed
::
XLinkageSupport
>
xLinkSupport
(
mpImpl
->
m
xObjRef
.
GetObject
(),
uno
::
UNO_QUERY
);
if
(
xLinkSupport
.
is
()
&&
xLinkSupport
->
isLink
()
)
{
OUString
aLinkURL
=
xLinkSupport
->
getLinkURL
();
...
...
@@ -1045,34 +1060,34 @@ void SdrOle2Obj::Connect_Impl()
{
comphelper
::
EmbeddedObjectContainer
&
rContainer
=
pPers
->
getEmbeddedObjectContainer
();
if
(
!
rContainer
.
HasEmbeddedObject
(
mpImpl
->
aPersistName
)
||
(
xObjRef
.
is
()
&&
!
rContainer
.
HasEmbeddedObject
(
xObjRef
.
GetObject
()
)
)
)
||
(
mpImpl
->
mxObjRef
.
is
()
&&
!
rContainer
.
HasEmbeddedObject
(
mpImpl
->
m
xObjRef
.
GetObject
()
)
)
)
{
// object not known to container document
// No object -> disaster!
DBG_ASSERT
(
xObjRef
.
is
(),
"No object in connect!"
);
if
(
xObjRef
.
is
()
)
DBG_ASSERT
(
mpImpl
->
m
xObjRef
.
is
(),
"No object in connect!"
);
if
(
mpImpl
->
m
xObjRef
.
is
()
)
{
// object came from the outside, now add it to the container
OUString
aTmp
;
rContainer
.
InsertEmbeddedObject
(
xObjRef
.
GetObject
(),
aTmp
);
rContainer
.
InsertEmbeddedObject
(
mpImpl
->
m
xObjRef
.
GetObject
(),
aTmp
);
mpImpl
->
aPersistName
=
aTmp
;
}
}
else
if
(
!
xObjRef
.
is
()
)
else
if
(
!
mpImpl
->
m
xObjRef
.
is
()
)
{
xObjRef
.
Assign
(
rContainer
.
GetEmbeddedObject
(
mpImpl
->
aPersistName
),
xObjRef
.
GetViewAspect
()
);
mpImpl
->
mxObjRef
.
Assign
(
rContainer
.
GetEmbeddedObject
(
mpImpl
->
aPersistName
),
mpImpl
->
m
xObjRef
.
GetViewAspect
()
);
m_bTypeAsked
=
false
;
}
if
(
xObjRef
.
GetObject
().
is
()
)
if
(
mpImpl
->
m
xObjRef
.
GetObject
().
is
()
)
{
xObjRef
.
AssignToContainer
(
&
rContainer
,
mpImpl
->
aPersistName
);
mpImpl
->
m
xObjRef
.
AssignToContainer
(
&
rContainer
,
mpImpl
->
aPersistName
);
mpImpl
->
mbConnected
=
true
;
xObjRef
.
Lock
(
true
);
mpImpl
->
m
xObjRef
.
Lock
(
true
);
}
}
if
(
xObjRef
.
is
()
)
if
(
mpImpl
->
m
xObjRef
.
is
()
)
{
if
(
!
mpImpl
->
pLightClient
)
{
...
...
@@ -1080,15 +1095,15 @@ void SdrOle2Obj::Connect_Impl()
mpImpl
->
pLightClient
->
acquire
();
}
xObjRef
->
addStateChangeListener
(
mpImpl
->
pLightClient
);
xObjRef
->
addEventListener
(
uno
::
Reference
<
document
::
XEventListener
>
(
mpImpl
->
pLightClient
)
);
mpImpl
->
m
xObjRef
->
addStateChangeListener
(
mpImpl
->
pLightClient
);
mpImpl
->
m
xObjRef
->
addEventListener
(
uno
::
Reference
<
document
::
XEventListener
>
(
mpImpl
->
pLightClient
)
);
if
(
xObjRef
->
getCurrentState
()
!=
embed
::
EmbedStates
::
LOADED
)
if
(
mpImpl
->
m
xObjRef
->
getCurrentState
()
!=
embed
::
EmbedStates
::
LOADED
)
GetSdrGlobalData
().
GetOLEObjCache
().
InsertObj
(
this
);
CheckFileLink_Impl
();
uno
::
Reference
<
container
::
XChild
>
xChild
(
xObjRef
.
GetObject
(),
uno
::
UNO_QUERY
);
uno
::
Reference
<
container
::
XChild
>
xChild
(
mpImpl
->
m
xObjRef
.
GetObject
(),
uno
::
UNO_QUERY
);
if
(
xChild
.
is
()
)
{
uno
::
Reference
<
uno
::
XInterface
>
xParent
(
pModel
->
getUnoModel
());
...
...
@@ -1133,7 +1148,7 @@ void SdrOle2Obj::ObjectLoaded()
void
SdrOle2Obj
::
AddListeners_Impl
()
{
if
(
xObjRef
.
is
()
&&
xObjRef
->
getCurrentState
()
!=
embed
::
EmbedStates
::
LOADED
)
if
(
mpImpl
->
mxObjRef
.
is
()
&&
mpImpl
->
m
xObjRef
->
getCurrentState
()
!=
embed
::
EmbedStates
::
LOADED
)
{
// register modify listener
if
(
!
pModifyListener
)
...
...
@@ -1170,11 +1185,11 @@ void SdrOle2Obj::Disconnect()
void
SdrOle2Obj
::
RemoveListeners_Impl
()
{
if
(
xObjRef
.
is
()
&&
!
mpImpl
->
aPersistName
.
isEmpty
()
)
if
(
mpImpl
->
m
xObjRef
.
is
()
&&
!
mpImpl
->
aPersistName
.
isEmpty
()
)
{
try
{
sal_Int32
nState
=
xObjRef
->
getCurrentState
();
sal_Int32
nState
=
mpImpl
->
m
xObjRef
->
getCurrentState
();
if
(
nState
!=
embed
::
EmbedStates
::
LOADED
)
{
uno
::
Reference
<
util
::
XModifyBroadcaster
>
xBC
(
getXModel
(),
uno
::
UNO_QUERY
);
...
...
@@ -1211,11 +1226,11 @@ void SdrOle2Obj::Disconnect_Impl()
// in case the model has correct persistence, but in case of problems such a removing
// would make the behavior of the office more stable
comphelper
::
EmbeddedObjectContainer
*
pContainer
=
xObjRef
.
GetContainer
();
comphelper
::
EmbeddedObjectContainer
*
pContainer
=
mpImpl
->
m
xObjRef
.
GetContainer
();
if
(
pContainer
)
{
pContainer
->
CloseEmbeddedObject
(
xObjRef
.
GetObject
()
);
xObjRef
.
AssignToContainer
(
NULL
,
mpImpl
->
aPersistName
);
pContainer
->
CloseEmbeddedObject
(
mpImpl
->
m
xObjRef
.
GetObject
()
);
mpImpl
->
m
xObjRef
.
AssignToContainer
(
NULL
,
mpImpl
->
aPersistName
);
}
// happens later than the destruction of the model, so we can't assert that).
...
...
@@ -1237,20 +1252,20 @@ void SdrOle2Obj::Disconnect_Impl()
xObjRef = NULL;*/
}
else
if
(
xObjRef
.
is
()
)
else
if
(
mpImpl
->
m
xObjRef
.
is
()
)
{
if
(
pModel
->
getUnoModel
().
is
()
)
{
// remove object, but don't close it (that's up to someone else)
comphelper
::
EmbeddedObjectContainer
*
pContainer
=
xObjRef
.
GetContainer
();
comphelper
::
EmbeddedObjectContainer
*
pContainer
=
mpImpl
->
m
xObjRef
.
GetContainer
();
if
(
pContainer
)
{
pContainer
->
RemoveEmbeddedObject
(
xObjRef
.
GetObject
(),
false
);
pContainer
->
RemoveEmbeddedObject
(
mpImpl
->
m
xObjRef
.
GetObject
(),
false
);
// TODO/LATER: mpImpl->aPersistName contains outdated information, to keep it updated
// it should be returned from RemoveEmbeddedObject call. Currently it is no problem,
// since no container is adjusted, actually the empty string could be provided as a name here
xObjRef
.
AssignToContainer
(
NULL
,
mpImpl
->
aPersistName
);
mpImpl
->
m
xObjRef
.
AssignToContainer
(
NULL
,
mpImpl
->
aPersistName
);
}
DisconnectFileLink_Impl
();
...
...
@@ -1258,11 +1273,11 @@ void SdrOle2Obj::Disconnect_Impl()
}
}
if
(
xObjRef
.
is
()
&&
mpImpl
->
pLightClient
)
if
(
mpImpl
->
m
xObjRef
.
is
()
&&
mpImpl
->
pLightClient
)
{
xObjRef
->
removeStateChangeListener
(
mpImpl
->
pLightClient
);
xObjRef
->
removeEventListener
(
uno
::
Reference
<
document
::
XEventListener
>
(
mpImpl
->
pLightClient
)
);
xObjRef
->
setClientSite
(
NULL
);
mpImpl
->
m
xObjRef
->
removeStateChangeListener
(
mpImpl
->
pLightClient
);
mpImpl
->
m
xObjRef
->
removeEventListener
(
uno
::
Reference
<
document
::
XEventListener
>
(
mpImpl
->
pLightClient
)
);
mpImpl
->
m
xObjRef
->
setClientSite
(
NULL
);
GetSdrGlobalData
().
GetOLEObjCache
().
RemoveObj
(
this
);
}
...
...
@@ -1393,12 +1408,12 @@ void SdrOle2Obj::SetModel(SdrModel* pNewModel)
OUString
aTmp
;
comphelper
::
EmbeddedObjectContainer
&
rContainer
=
pSrcPers
->
getEmbeddedObjectContainer
();
uno
::
Reference
<
embed
::
XEmbeddedObject
>
xObj
=
rContainer
.
GetEmbeddedObject
(
mpImpl
->
aPersistName
);
DBG_ASSERT
(
!
xObjRef
.
is
()
||
xObjRef
.
GetObject
()
==
xObj
,
"Wrong object identity!"
);
DBG_ASSERT
(
!
mpImpl
->
mxObjRef
.
is
()
||
mpImpl
->
m
xObjRef
.
GetObject
()
==
xObj
,
"Wrong object identity!"
);
if
(
xObj
.
is
()
)
{
pDestPers
->
getEmbeddedObjectContainer
().
MoveEmbeddedObject
(
rContainer
,
xObj
,
aTmp
);
mpImpl
->
aPersistName
=
aTmp
;
xObjRef
.
AssignToContainer
(
&
pDestPers
->
getEmbeddedObjectContainer
(),
aTmp
);
mpImpl
->
m
xObjRef
.
AssignToContainer
(
&
pDestPers
->
getEmbeddedObjectContainer
(),
aTmp
);
}
DBG_ASSERT
(
!
aTmp
.
isEmpty
(),
"Copying embedded object failed!"
);
}
...
...
@@ -1474,30 +1489,30 @@ void SdrOle2Obj::SetPage(SdrPage* pNewPage)
void
SdrOle2Obj
::
SetObjRef
(
const
com
::
sun
::
star
::
uno
::
Reference
<
com
::
sun
::
star
::
embed
::
XEmbeddedObject
>&
rNewObjRef
)
{
DBG_ASSERT
(
!
rNewObjRef
.
is
()
||
!
xObjRef
.
GetObject
().
is
(),
"SetObjRef called on already initialized object!"
);
if
(
rNewObjRef
==
xObjRef
.
GetObject
()
)
DBG_ASSERT
(
!
rNewObjRef
.
is
()
||
!
mpImpl
->
m
xObjRef
.
GetObject
().
is
(),
"SetObjRef called on already initialized object!"
);
if
(
rNewObjRef
==
mpImpl
->
m
xObjRef
.
GetObject
()
)
return
;
// the caller of the method is responsible to control the old object, it will not be closed here
// Otherwise WW8 import crashes because it transfers control to OLENode by this method
if
(
xObjRef
.
GetObject
().
is
()
)
xObjRef
.
Lock
(
false
);
if
(
mpImpl
->
m
xObjRef
.
GetObject
().
is
()
)
mpImpl
->
m
xObjRef
.
Lock
(
false
);
// avoid removal of object in Disconnect! It is definitely a HACK to call SetObjRef(0)!
// This call will try to close the objects; so if anybody else wants to keep it, it must be locked by a CloseListener
xObjRef
.
Clear
();
mpImpl
->
m
xObjRef
.
Clear
();
if
(
mpImpl
->
mbConnected
)
Disconnect
();
xObjRef
.
Assign
(
rNewObjRef
,
GetAspect
()
);
mpImpl
->
m
xObjRef
.
Assign
(
rNewObjRef
,
GetAspect
()
);
m_bTypeAsked
=
false
;
if
(
xObjRef
.
is
()
)
if
(
mpImpl
->
m
xObjRef
.
is
()
)
{
DELETEZ
(
pGraphic
);
if
(
(
xObjRef
->
getStatus
(
GetAspect
()
)
&
embed
::
EmbedMisc
::
EMBED_NEVERRESIZE
)
)
if
(
(
mpImpl
->
m
xObjRef
->
getStatus
(
GetAspect
()
)
&
embed
::
EmbedMisc
::
EMBED_NEVERRESIZE
)
)
SetResizeProtect
(
true
);
// For math objects, set closed state to transparent
...
...
@@ -1637,7 +1652,7 @@ SdrOle2Obj& SdrOle2Obj::assignFrom(
// ImpAssign( rObj );
const
SdrOle2Obj
&
rOle2Obj
=
static_cast
<
const
SdrOle2Obj
&
>
(
rObj
);
uno
::
Reference
<
util
::
XCloseable
>
xClose
(
xObjRef
.
GetObject
(),
uno
::
UNO_QUERY
);
uno
::
Reference
<
util
::
XCloseable
>
xClose
(
mpImpl
->
mxObjRef
.
GetObject
(),
uno
::
UNO_QUERY
);
if
(
pModel
&&
mpImpl
->
mbConnected
)
Disconnect
();
...
...
@@ -1669,13 +1684,13 @@ SdrOle2Obj& SdrOle2Obj::assignFrom(
::
comphelper
::
IEmbeddedHelper
*
pSrcPers
=
rObj
.
GetModel
()
->
GetPersist
();
if
(
pDestPers
&&
pSrcPers
)
{
DBG_ASSERT
(
!
xObjRef
.
is
(),
"Object already existing!"
);
DBG_ASSERT
(
!
mpImpl
->
m
xObjRef
.
is
(),
"Object already existing!"
);
comphelper
::
EmbeddedObjectContainer
&
rContainer
=
pSrcPers
->
getEmbeddedObjectContainer
();
uno
::
Reference
<
embed
::
XEmbeddedObject
>
xObj
=
rContainer
.
GetEmbeddedObject
(
mpImpl
->
aPersistName
);
if
(
xObj
.
is
()
)
{
OUString
aTmp
;
xObjRef
.
Assign
(
pDestPers
->
getEmbeddedObjectContainer
().
CopyAndGetEmbeddedObject
(
mpImpl
->
m
xObjRef
.
Assign
(
pDestPers
->
getEmbeddedObjectContainer
().
CopyAndGetEmbeddedObject
(
rContainer
,
xObj
,
aTmp
,
rSrcShellID
,
rDestShellID
),
rOle2Obj
.
GetAspect
());
m_bTypeAsked
=
false
;
mpImpl
->
aPersistName
=
aTmp
;
...
...
@@ -1707,23 +1722,23 @@ void SdrOle2Obj::ImpSetVisAreaSize()
// the object area of an embedded object was changed, e.g. by user interaction an a selected object
GetObjRef
();
if
(
xObjRef
.
is
()
)
if
(
mpImpl
->
mxObjRef
.
is
()
)
{
OSL_ASSERT
(
pModel
);
sal_Int64
nMiscStatus
=
xObjRef
->
getStatus
(
GetAspect
()
);
sal_Int64
nMiscStatus
=
mpImpl
->
m
xObjRef
->
getStatus
(
GetAspect
()
);
// the client is required to get access to scaling
SfxInPlaceClient
*
pClient
=
SfxInPlaceClient
::
GetClient
(
dynamic_cast
<
SfxObjectShell
*>
(
pModel
->
GetPersist
()),
xObjRef
.
GetObject
()
);
SfxInPlaceClient
*
pClient
=
SfxInPlaceClient
::
GetClient
(
dynamic_cast
<
SfxObjectShell
*>
(
pModel
->
GetPersist
()),
mpImpl
->
m
xObjRef
.
GetObject
()
);
bool
bHasOwnClient
=
(
mpImpl
->
pLightClient
&&
xObjRef
->
getClientSite
()
==
uno
::
Reference
<
embed
::
XEmbeddedClient
>
(
mpImpl
->
pLightClient
)
);
&&
mpImpl
->
m
xObjRef
->
getClientSite
()
==
uno
::
Reference
<
embed
::
XEmbeddedClient
>
(
mpImpl
->
pLightClient
)
);
if
(
pClient
||
bHasOwnClient
)
{
// TODO: IMHO we need to do similar things when object is UIActive or OutplaceActive?!
if
(
((
nMiscStatus
&
embed
::
EmbedMisc
::
MS_EMBED_RECOMPOSEONRESIZE
)
&&
svt
::
EmbeddedObjectRef
::
TryRunningState
(
xObjRef
.
GetObject
()
))
||
xObjRef
->
getCurrentState
()
==
embed
::
EmbedStates
::
INPLACE_ACTIVE
svt
::
EmbeddedObjectRef
::
TryRunningState
(
mpImpl
->
m
xObjRef
.
GetObject
()
))
||
mpImpl
->
m
xObjRef
->
getCurrentState
()
==
embed
::
EmbedStates
::
INPLACE_ACTIVE
)
{
Fraction
aScaleWidth
;
...
...
@@ -1744,7 +1759,7 @@ void SdrOle2Obj::ImpSetVisAreaSize()
// In these cases the change in the object area size will be reflected in a change of the
// objects' visual area. The scaling will not change, but it might exist already and must
// be used in calculations
MapUnit
aMapUnit
=
VCLUnoHelper
::
UnoEmbed2VCLMapUnit
(
xObjRef
->
getMapUnit
(
GetAspect
()
)
);
MapUnit
aMapUnit
=
VCLUnoHelper
::
UnoEmbed2VCLMapUnit
(
mpImpl
->
m
xObjRef
->
getMapUnit
(
GetAspect
()
)
);
Size
aVisSize
(
(
long
)(
Fraction
(
aRect
.
GetWidth
()
)
/
aScaleWidth
),
(
long
)(
Fraction
(
aRect
.
GetHeight
()
)
/
aScaleHeight
)
);
...
...
@@ -1752,11 +1767,11 @@ void SdrOle2Obj::ImpSetVisAreaSize()
awt
::
Size
aSz
;
aSz
.
Width
=
aVisSize
.
Width
();
aSz
.
Height
=
aVisSize
.
Height
();
xObjRef
->
setVisualAreaSize
(
GetAspect
(),
aSz
);
mpImpl
->
m
xObjRef
->
setVisualAreaSize
(
GetAspect
(),
aSz
);
try
{
aSz
=
xObjRef
->
getVisualAreaSize
(
GetAspect
()
);
aSz
=
mpImpl
->
m
xObjRef
->
getVisualAreaSize
(
GetAspect
()
);
}
catch
(
embed
::
NoVisualAreaSizeException
&
)
{}
...
...
@@ -1768,7 +1783,7 @@ void SdrOle2Obj::ImpSetVisAreaSize()
{
// server changed VisArea to its liking and the VisArea is different than the suggested one
// store the new value as given by the object
MapUnit
aNewMapUnit
=
VCLUnoHelper
::
UnoEmbed2VCLMapUnit
(
xObjRef
->
getMapUnit
(
GetAspect
()
)
);
MapUnit
aNewMapUnit
=
VCLUnoHelper
::
UnoEmbed2VCLMapUnit
(
mpImpl
->
m
xObjRef
->
getMapUnit
(
GetAspect
()
)
);
aRect
.
SetSize
(
OutputDevice
::
LogicToLogic
(
aAcceptedVisArea
.
GetSize
(),
aNewMapUnit
,
pModel
->
GetScaleUnit
()));
}
...
...
@@ -1784,7 +1799,7 @@ void SdrOle2Obj::ImpSetVisAreaSize()
//a chart sends a modified call to the framework if it was changed
//thus the replacement update is already handled there
if
(
!
IsChart
()
)
xObjRef
.
UpdateReplacement
();
mpImpl
->
m
xObjRef
.
UpdateReplacement
();
}
else
{
...
...
@@ -1808,14 +1823,14 @@ void SdrOle2Obj::ImpSetVisAreaSize()
}
}
else
if
(
(
nMiscStatus
&
embed
::
EmbedMisc
::
MS_EMBED_RECOMPOSEONRESIZE
)
&&
svt
::
EmbeddedObjectRef
::
TryRunningState
(
xObjRef
.
GetObject
()
)
)
svt
::
EmbeddedObjectRef
::
TryRunningState
(
mpImpl
->
m
xObjRef
.
GetObject
()
)
)
{
//also handle not sfx based ole objects e.g. charts
//#i83860# resizing charts in impress distorts fonts
uno
::
Reference
<
embed
::
XVisualObject
>
xVisualObject
(
this
->
getXModel
(),
uno
::
UNO_QUERY
);
if
(
xVisualObject
.
is
()
)
{
MapUnit
aMapUnit
=
VCLUnoHelper
::
UnoEmbed2VCLMapUnit
(
xObjRef
->
getMapUnit
(
GetAspect
()
)
);
MapUnit
aMapUnit
=
VCLUnoHelper
::
UnoEmbed2VCLMapUnit
(
mpImpl
->
m
xObjRef
->
getMapUnit
(
GetAspect
()
)
);
Point
aTL
(
aRect
.
TopLeft
()
);
Point
aBR
(
aRect
.
BottomRight
()
);
Point
aTL2
(
OutputDevice
::
LogicToLogic
(
aTL
,
pModel
->
GetScaleUnit
(),
aMapUnit
)
);
...
...
@@ -1834,7 +1849,7 @@ void SdrOle2Obj::NbcResize(const Point& rRef, const Fraction& xFact, const Fract
if
(
pModel
&&
!
pModel
->
isLocked
()
)
{
GetObjRef
();
if
(
xObjRef
.
is
()
&&
(
xObjRef
->
getStatus
(
GetAspect
()
)
&
embed
::
EmbedMisc
::
MS_EMBED_RECOMPOSEONRESIZE
)
)
if
(
mpImpl
->
mxObjRef
.
is
()
&&
(
mpImpl
->
m
xObjRef
->
getStatus
(
GetAspect
()
)
&
embed
::
EmbedMisc
::
MS_EMBED_RECOMPOSEONRESIZE
)
)
{
// if the object needs recompose on resize
// the client site should be created before the resize will take place
...
...
@@ -1867,12 +1882,12 @@ void SdrOle2Obj::NbcSetSnapRect(const Rectangle& rRect)
if
(
pModel
&&
!
pModel
->
isLocked
()
)
ImpSetVisAreaSize
();
if
(
xObjRef
.
is
()
&&
IsChart
()
)
if
(
mpImpl
->
m
xObjRef
.
is
()
&&
IsChart
()
)
{
//#i103460# charts do not necessarily have an own size within ODF files,
//for this case they need to use the size settings from the surrounding frame,
//which is made available with this method as there is no other way
xObjRef
.
SetDefaultSizeForChart
(
Size
(
rRect
.
GetWidth
(),
rRect
.
GetHeight
()
)
);
mpImpl
->
m
xObjRef
.
SetDefaultSizeForChart
(
Size
(
rRect
.
GetWidth
(),
rRect
.
GetHeight
()
)
);
}
}
...
...
@@ -1888,22 +1903,22 @@ void SdrOle2Obj::NbcSetLogicRect(const Rectangle& rRect)
const
Graphic
*
SdrOle2Obj
::
GetGraphic
()
const
{
if
(
xObjRef
.
is
()
)
return
xObjRef
.
GetGraphic
();
if
(
mpImpl
->
m
xObjRef
.
is
()
)
return
mpImpl
->
m
xObjRef
.
GetGraphic
();
return
pGraphic
;
}
void
SdrOle2Obj
::
GetNewReplacement
()
{
if
(
xObjRef
.
is
()
)
xObjRef
.
UpdateReplacement
();
if
(
mpImpl
->
m
xObjRef
.
is
()
)
mpImpl
->
m
xObjRef
.
UpdateReplacement
();
}
Size
SdrOle2Obj
::
GetOrigObjSize
(
MapMode
*
pTargetMapMode
)
const
{
return
xObjRef
.
GetSize
(
pTargetMapMode
);
return
mpImpl
->
m
xObjRef
.
GetSize
(
pTargetMapMode
);
}
...
...
@@ -1981,14 +1996,14 @@ bool SdrOle2Obj::Unload( const uno::Reference< embed::XEmbeddedObject >& xObj, s
bool
SdrOle2Obj
::
Unload
()
{
if
(
!
xObjRef
.
is
())
if
(
!
mpImpl
->
m
xObjRef
.
is
())
// Already unloaded.
return
true
;
bool
bUnloaded
=
false
;
if
(
pModel
&&
xObjRef
.
is
()
)
if
(
pModel
&&
mpImpl
->
m
xObjRef
.
is
()
)
{
bUnloaded
=
Unload
(
xObjRef
.
GetObject
(),
GetAspect
()
);
bUnloaded
=
Unload
(
mpImpl
->
m
xObjRef
.
GetObject
(),
GetAspect
()
);
}
return
bUnloaded
;
...
...
@@ -1998,27 +2013,27 @@ bool SdrOle2Obj::Unload()
void
SdrOle2Obj
::
GetObjRef_Impl
()
{
if
(
!
xObjRef
.
is
()
&&
!
mpImpl
->
aPersistName
.
isEmpty
()
&&
pModel
&&
pModel
->
GetPersist
()
)
if
(
!
mpImpl
->
m
xObjRef
.
is
()
&&
!
mpImpl
->
aPersistName
.
isEmpty
()
&&
pModel
&&
pModel
->
GetPersist
()
)
{
// Only try loading if it did not went wrong up to now
if
(
!
mpImpl
->
mbLoadingOLEObjectFailed
)
{
xObjRef
.
Assign
(
pModel
->
GetPersist
()
->
getEmbeddedObjectContainer
().
GetEmbeddedObject
(
mpImpl
->
aPersistName
),
GetAspect
()
);
mpImpl
->
m
xObjRef
.
Assign
(
pModel
->
GetPersist
()
->
getEmbeddedObjectContainer
().
GetEmbeddedObject
(
mpImpl
->
aPersistName
),
GetAspect
()
);
m_bTypeAsked
=
false
;
CheckFileLink_Impl
();
// If loading of OLE object failed, remember that to not invoke a endless
// loop trying to load it again and again.
if
(
xObjRef
.
is
()
)
if
(
mpImpl
->
m
xObjRef
.
is
()
)
{
mpImpl
->
mbLoadingOLEObjectFailed
=
true
;
}
// For math objects, set closed state to transparent
SetClosedObj
(
!
ImplIsMathObj
(
xObjRef
.
GetObject
()
));
SetClosedObj
(
!
ImplIsMathObj
(
mpImpl
->
m
xObjRef
.
GetObject
()
));
}
if
(
xObjRef
.
is
()
)
if
(
mpImpl
->
m
xObjRef
.
is
()
)
{
if
(
!
IsEmptyPresObj
()
)
{
...
...
@@ -2038,7 +2053,7 @@ void SdrOle2Obj::GetObjRef_Impl()
}
}
sal_Int64
nMiscStatus
=
xObjRef
->
getStatus
(
GetAspect
()
);
sal_Int64
nMiscStatus
=
mpImpl
->
m
xObjRef
->
getStatus
(
GetAspect
()
);
(
void
)
nMiscStatus
;
//TODO/LATER: wait until ResizeOnPrinterChange is defined
//if ( nMiscStatus & SVOBJ_MISCSTATUS_RESIZEONPRINTERCHANGE )
...
...
@@ -2066,7 +2081,7 @@ void SdrOle2Obj::GetObjRef_Impl()
}
}
if
(
xObjRef
.
is
()
)
if
(
mpImpl
->
m
xObjRef
.
is
()
)
Connect
();
}
...
...
@@ -2078,12 +2093,12 @@ void SdrOle2Obj::GetObjRef_Impl()
uno
::
Reference
<
embed
::
XEmbeddedObject
>
SdrOle2Obj
::
GetObjRef
()
const
{
const_cast
<
SdrOle2Obj
*>
(
this
)
->
GetObjRef_Impl
();
return
xObjRef
.
GetObject
();
return
mpImpl
->
m
xObjRef
.
GetObject
();
}
uno
::
Reference
<
embed
::
XEmbeddedObject
>
SdrOle2Obj
::
GetObjRef_NoInit
()
const
{
return
xObjRef
.
GetObject
();
return
mpImpl
->
m
xObjRef
.
GetObject
();
}
...
...
@@ -2091,8 +2106,8 @@ uno::Reference < embed::XEmbeddedObject > SdrOle2Obj::GetObjRef_NoInit() const
uno
::
Reference
<
frame
::
XModel
>
SdrOle2Obj
::
getXModel
()
const
{
GetObjRef
();
if
(
svt
::
EmbeddedObjectRef
::
TryRunningState
(
xObjRef
.
GetObject
())
)
return
uno
::
Reference
<
frame
::
XModel
>
(
xObjRef
->
getComponent
(),
uno
::
UNO_QUERY
);
if
(
svt
::
EmbeddedObjectRef
::
TryRunningState
(
mpImpl
->
m
xObjRef
.
GetObject
())
)
return
uno
::
Reference
<
frame
::
XModel
>
(
mpImpl
->
m
xObjRef
->
getComponent
(),
uno
::
UNO_QUERY
);
else
return
uno
::
Reference
<
frame
::
XModel
>
();
}
...
...
@@ -2103,7 +2118,7 @@ bool SdrOle2Obj::IsChart() const
{
if
(
!
m_bTypeAsked
)
{
m_bChart
=
ChartHelper
::
IsChart
(
xObjRef
);
m_bChart
=
ChartHelper
::
IsChart
(
mpImpl
->
m
xObjRef
);
m_bTypeAsked
=
true
;
}
return
m_bChart
;
...
...
@@ -2112,22 +2127,22 @@ bool SdrOle2Obj::IsChart() const
void
SdrOle2Obj
::
SetGraphicToObj
(
const
Graphic
&
aGraphic
,
const
OUString
&
aMediaType
)
{
xObjRef
.
SetGraphic
(
aGraphic
,
aMediaType
);
mpImpl
->
m
xObjRef
.
SetGraphic
(
aGraphic
,
aMediaType
);
}
void
SdrOle2Obj
::
SetGraphicToObj
(
const
uno
::
Reference
<
io
::
XInputStream
>&
xGrStream
,
const
OUString
&
aMediaType
)
{
xObjRef
.
SetGraphicStream
(
xGrStream
,
aMediaType
);
mpImpl
->
m
xObjRef
.
SetGraphicStream
(
xGrStream
,
aMediaType
);
}
bool
SdrOle2Obj
::
IsCalc
()
const
{
if
(
!
xObjRef
.
is
()
)
if
(
!
mpImpl
->
m
xObjRef
.
is
()
)
return
false
;
SvGlobalName
aObjClsId
(
xObjRef
->
getClassID
()
);
SvGlobalName
aObjClsId
(
mpImpl
->
m
xObjRef
->
getClassID
()
);
if
(
SvGlobalName
(
SO3_SC_CLASSID_30
)
==
aObjClsId
||
SvGlobalName
(
SO3_SC_CLASSID_40
)
==
aObjClsId
||
SvGlobalName
(
SO3_SC_CLASSID_50
)
==
aObjClsId
...
...
@@ -2162,11 +2177,11 @@ bool SdrOle2Obj::CalculateNewScaling( Fraction& aScaleWidth, Fraction& aScaleHei
{
// TODO/LEAN: to avoid rounding errors scaling always uses the VisArea.
// If we don't cache it for own objects also we must load the object here
if
(
!
xObjRef
.
is
()
||
!
pModel
)
if
(
!
mpImpl
->
m
xObjRef
.
is
()
||
!
pModel
)
return
false
;
MapMode
aMapMode
(
pModel
->
GetScaleUnit
()
);
aObjAreaSize
=
xObjRef
.
GetSize
(
&
aMapMode
);
aObjAreaSize
=
mpImpl
->
m
xObjRef
.
GetSize
(
&
aMapMode
);
Size
aSize
=
aRect
.
GetSize
();
aScaleWidth
=
Fraction
(
aSize
.
Width
(),
aObjAreaSize
.
Width
()
);
...
...
@@ -2183,12 +2198,12 @@ bool SdrOle2Obj::CalculateNewScaling( Fraction& aScaleWidth, Fraction& aScaleHei
bool
SdrOle2Obj
::
AddOwnLightClient
()
{
// The Own Light Client must be registered in object only using this method!
if
(
!
SfxInPlaceClient
::
GetClient
(
dynamic_cast
<
SfxObjectShell
*>
(
pModel
->
GetPersist
()),
xObjRef
.
GetObject
()
)
&&
!
(
mpImpl
->
pLightClient
&&
xObjRef
->
getClientSite
()
==
uno
::
Reference
<
embed
::
XEmbeddedClient
>
(
mpImpl
->
pLightClient
)
)
)
if
(
!
SfxInPlaceClient
::
GetClient
(
dynamic_cast
<
SfxObjectShell
*>
(
pModel
->
GetPersist
()),
mpImpl
->
m
xObjRef
.
GetObject
()
)
&&
!
(
mpImpl
->
pLightClient
&&
mpImpl
->
m
xObjRef
->
getClientSite
()
==
uno
::
Reference
<
embed
::
XEmbeddedClient
>
(
mpImpl
->
pLightClient
)
)
)
{
Connect
();
if
(
xObjRef
.
is
()
&&
mpImpl
->
pLightClient
)
if
(
mpImpl
->
m
xObjRef
.
is
()
&&
mpImpl
->
pLightClient
)
{
Fraction
aScaleWidth
;
Fraction
aScaleHeight
;
...
...
@@ -2197,7 +2212,7 @@ bool SdrOle2Obj::AddOwnLightClient()
{
mpImpl
->
pLightClient
->
SetSizeScale
(
aScaleWidth
,
aScaleHeight
);
try
{
xObjRef
->
setClientSite
(
mpImpl
->
pLightClient
);
mpImpl
->
m
xObjRef
->
setClientSite
(
mpImpl
->
pLightClient
);
return
true
;
}
catch
(
uno
::
Exception
&
)
{}
...
...
@@ -2222,7 +2237,7 @@ Graphic SdrOle2Obj::GetEmptyOLEReplacementGraphic()
void
SdrOle2Obj
::
SetWindow
(
const
com
::
sun
::
star
::
uno
::
Reference
<
com
::
sun
::
star
::
awt
::
XWindow
>&
_xWindow
)
{
if
(
xObjRef
.
is
()
&&
mpImpl
->
pLightClient
)
if
(
mpImpl
->
m
xObjRef
.
is
()
&&
mpImpl
->
pLightClient
)
{
mpImpl
->
pLightClient
->
setWindow
(
_xWindow
);
}
...
...
svx/source/unodraw/unoshap4.cxx
Dosyayı görüntüle @
2aef59dc
...
...
@@ -52,7 +52,7 @@
#include "svx/svdstr.hrc"
#include <svdoopengl.hxx>
#include <vcl/wmf.hxx>
#include <svtools/embedhlp.hxx>
using
namespace
::
osl
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment