LibreOffice Module svx (master) 1
galmisc.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#include <sal/config.h>
21
22#include <sot/storage.hxx>
25#include <comphelper/string.hxx>
26#include <ucbhelper/content.hxx>
27#include <com/sun/star/ucb/ContentCreationException.hpp>
28#include <tools/urlobj.hxx>
29#include <vcl/graphicfilter.hxx>
30#include <svl/itempool.hxx>
31#include <sfx2/docfile.hxx>
32#include <vcl/svapp.hxx>
33#include <vcl/window.hxx>
34#include <svx/svdpage.hxx>
35#include <svx/dialmgr.hxx>
36#include <svx/svdograf.hxx>
37#include <svx/fmmodel.hxx>
38#include <svx/unomodel.hxx>
39#include "codec.hxx"
40#include <svx/strings.hrc>
41#include <svx/galtheme.hxx>
42#include <svx/galmisc.hxx>
43#include <osl/diagnose.h>
44#include <com/sun/star/awt/XProgressMonitor.hpp>
45#include <com/sun/star/ucb/TransferInfo.hpp>
46#include <com/sun/star/ucb/NameClash.hpp>
47#include <memory>
48
49using namespace ::com::sun::star;
50
52 OUString& rFilterName )
53{
55 SfxMedium aMedium( rURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ );
56
57 aMedium.Download();
58
59 SvStream* pIStm = aMedium.GetInStream();
60
61 if( pIStm )
62 {
64 sal_uInt16 nFormat;
65
66 if( !rGraphicFilter.ImportGraphic( rGraphic, rURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), *pIStm, GRFILTER_FORMAT_DONTKNOW, &nFormat ) )
67 {
68 rFilterName = rGraphicFilter.GetImportFormatName( nFormat );
70 }
71 }
72
73 return nRet;
74}
75
76bool GallerySvDrawImport( SvStream& rIStm, SdrModel& rModel )
77{
78 sal_uInt32 nVersion;
79 bool bRet = false;
80
81 if( GalleryCodec::IsCoded( rIStm, nVersion ) )
82 {
83 SvMemoryStream aMemStm( 65535, 65535 );
84 GalleryCodec aCodec( rIStm );
85
86 aCodec.Read( aMemStm );
87 aMemStm.Seek( 0 );
88
89 if( 1 == nVersion )
90 {
91 OSL_FAIL( "staroffice binary file formats are no longer supported inside the gallery!" );
92 bRet = false;
93 }
94 else if( 2 == nVersion )
95 {
96 // recall to read as XML
97 bRet = GallerySvDrawImport( aMemStm, rModel );
98 }
99 }
100 else
101 {
102 // read as XML
103 uno::Reference< io::XInputStream > xInputStream( new utl::OInputStreamWrapper( rIStm ) );
104
105 rModel.GetItemPool().SetDefaultMetric( MapUnit::Map100thMM );
106 uno::Reference< lang::XComponent > xComponent;
107
108 bRet = SvxDrawingLayerImport( &rModel, xInputStream, xComponent, "com.sun.star.comp.Draw.XMLOasisImporter" );
109 if( !bRet || (rModel.GetPageCount() == 0) )
110 {
111 rIStm.Seek(0);
112 bRet = SvxDrawingLayerImport( &rModel, xInputStream, xComponent, "com.sun.star.comp.Draw.XMLImporter" );
113 }
114
115 }
116
117 return bRet;
118}
119
120bool CreateIMapGraphic( const FmFormModel& rModel, Graphic& rGraphic, ImageMap& rImageMap )
121{
122 if (! rModel.GetPageCount() )
123 return false;
124
125 const SdrPage* pPage = rModel.GetPage( 0 );
126 const SdrObject* pObj = pPage->GetObj( 0 );
127
128 if ( pPage->GetObjCount() != 1 )
129 return false;
130 auto pGrafObj = dynamic_cast<const SdrGrafObj*>( pObj);
131 if (!pGrafObj)
132 return false;
133
134 bool bRet = false;
135 const sal_uInt16 nCount = pObj->GetUserDataCount();
136
137 // Exist in the user data an IMap information?
138 for ( sal_uInt16 i = 0; i < nCount; i++ )
139 {
140 const SdrObjUserData* pUserData = pObj->GetUserData( i );
141
142 if ( ( pUserData->GetInventor() == SdrInventor::SgaImap ) && ( pUserData->GetId() == ID_IMAPINFO ) )
143 {
144 rGraphic = pGrafObj->GetGraphic();
145 rImageMap = static_cast<const SgaIMapInfo*>( pUserData )->GetImageMap();
146 bRet = true;
147 break;
148 }
149 }
150
151 return bRet;
152}
153
154OUString GetReducedString( const INetURLObject& rURL, sal_Int32 nMaxLen )
155{
156 OUString aReduced( rURL.GetMainURL( INetURLObject::DecodeMechanism::Unambiguous ) );
157
158 aReduced = aReduced.copy(aReduced.lastIndexOf('/')+1);
159
160 if( INetProtocol::PrivSoffice != rURL.GetProtocol() )
161 {
162 sal_Unicode aDelimiter;
163 const OUString aPath( rURL.getFSysPath( FSysStyle::Detect, &aDelimiter ) );
164 const OUString aName( aReduced );
165
166 if( aPath.getLength() > nMaxLen )
167 {
168 sal_Int32 nPathPrefixLen = nMaxLen - aName.getLength() - 4;
169
170 if (nPathPrefixLen >= 0)
171 {
172 aReduced = OUString::Concat(aPath.subView(0, nPathPrefixLen)) + "..."
173 + OUStringChar(aDelimiter) + aName;
174 }
175 else
176 {
177 aReduced += "..." + OUStringChar(aDelimiter) + "..."
178 + aName.subView( aName.getLength() - (nMaxLen - 7) );
179 }
180 }
181 else
182 aReduced = aPath;
183 }
184
185 return aReduced;
186}
187
188OUString GetSvDrawStreamNameFromURL( const INetURLObject& rSvDrawObjURL )
189{
190 OUString aRet;
191
192 if( rSvDrawObjURL.GetProtocol() == INetProtocol::PrivSoffice &&
194 {
195 aRet = rSvDrawObjURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ).getToken( 2, '/' );
196 }
197
198 return aRet;
199}
200
201bool FileExists( const INetURLObject& rURL )
202{
203 bool bRet = false;
204
205 if( rURL.GetProtocol() != INetProtocol::NotValid )
206 {
207 try
208 {
209 ::ucbhelper::Content aCnt( rURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), uno::Reference< ucb::XCommandEnvironment >(), comphelper::getProcessComponentContext() );
210 OUString aTitle;
211
212 aCnt.getPropertyValue("Title") >>= aTitle;
213 bRet = ( !aTitle.isEmpty() );
214 }
215 catch( const ucb::ContentCreationException& )
216 {
217 }
218 catch( const uno::RuntimeException& )
219 {
220 }
221 catch( const uno::Exception& )
222 {
223 }
224 }
225
226 return bRet;
227}
228
229bool CreateDir( const INetURLObject& rURL )
230{
231 bool bRet = FileExists( rURL );
232
233 if( !bRet )
234 {
235 try
236 {
237 uno::Reference< ucb::XCommandEnvironment > aCmdEnv;
238 INetURLObject aParentURL( rURL );
239 aParentURL.removeSegment();
241 uno::Sequence< OUString > aProps{ "Title" };
242 uno::Sequence< uno::Any > aValues{ uno::Any(rURL.GetLastName()) };
243
245 bRet = aParent.insertNewContent( "application/vnd.sun.staroffice.fsys-folder", aProps, aValues, aContent );
246 }
247 catch( const ucb::ContentCreationException& )
248 {
249 }
250 catch( const uno::RuntimeException& )
251 {
252 }
253 catch( const uno::Exception& )
254 {
255 }
256 }
257
258 return bRet;
259}
260
261bool CopyFile( const INetURLObject& rSrcURL, const INetURLObject& rDstURL )
262{
263 bool bRet = false;
264
265 try
266 {
267 ::ucbhelper::Content aDestPath( rDstURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), uno::Reference< ucb::XCommandEnvironment >(), comphelper::getProcessComponentContext() );
268
269 aDestPath.executeCommand( "transfer",
270 uno::Any( ucb::TransferInfo( false, rSrcURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ),
271 rDstURL.GetLastName(), ucb::NameClash::OVERWRITE ) ) );
272 bRet = true;
273 }
274 catch( const ucb::ContentCreationException& )
275 {
276 }
277 catch( const uno::RuntimeException& )
278 {
279 }
280 catch( const uno::Exception& )
281 {
282 }
283
284 return bRet;
285}
286
287bool KillFile( const INetURLObject& rURL )
288{
289 bool bRet = FileExists( rURL );
290
291 if( bRet )
292 {
293 try
294 {
295 ::ucbhelper::Content aCnt( rURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), uno::Reference< ucb::XCommandEnvironment >(), comphelper::getProcessComponentContext() );
296 aCnt.executeCommand( "delete", uno::Any( true ) );
297 }
298 catch( const ucb::ContentCreationException& )
299 {
300 bRet = false;
301 }
302 catch( const uno::RuntimeException& )
303 {
304 bRet = false;
305 }
306 catch( const uno::Exception& )
307 {
308 bRet = false;
309 }
310 }
311
312 return bRet;
313}
314
315
317{
318
319 uno::Reference< lang::XMultiServiceFactory > xMgr( ::comphelper::getProcessServiceFactory() );
320
321 uno::Reference< awt::XProgressMonitor > xMonitor( xMgr->createInstance( "com.sun.star.awt.XProgressMonitor" ),
322 uno::UNO_QUERY );
323
324 if ( !xMonitor.is() )
325 return;
326
327 mxProgressBar = xMonitor;
328
329 OUString aProgressText;
330
331 if( pFilter )
332 {
333 aProgressText = SvxResId(RID_SVXSTR_GALLERY_FILTER);
334// pFilter->SetUpdatePercentHdl( LINK( this, GalleryProgress, Update ) ); // sj: progress wasn't working up from SO7 at all
335// // so I am removing this. The gallery progress should
336// // be changed to use the XStatusIndicator instead of XProgressMonitor
337 }
338 else
339 aProgressText = "Gallery";
340
341 xMonitor->addText( "Gallery", aProgressText, false ) ;
343}
344
346{
347}
348
349void GalleryProgress::Update( sal_Int32 nVal, sal_Int32 nMaxVal )
350{
351 if( mxProgressBar.is() && nMaxVal )
352 mxProgressBar->setValue( std::min<sal_Int32>( static_cast<double>(nVal) / nMaxVal * GALLERY_PROGRESS_RANGE,
354}
355
356
357GalleryTransferable::GalleryTransferable( GalleryTheme* pTheme, sal_uInt32 nObjectPos, bool bLazy ) :
358 mpTheme( pTheme ),
359 meObjectKind( pTheme ? mpTheme->GetObjectKind(nObjectPos) : SgaObjKind::NONE),
360 mnObjectPos( nObjectPos )
361{
362
363 InitData( bLazy );
364}
365
366void GalleryTransferable::SelectObject(sal_uInt32 nObjectPos)
367{
368 if (nObjectPos == mnObjectPos)
369 return;
370 ClearFormats();
371 mnObjectPos = nObjectPos;
374 InitData(true);
375}
376
378{
379}
380
382{
383 switch( meObjectKind )
384 {
386 {
387 if( !bLazy )
388 {
389 if( !mpGraphicObject )
390 {
391 Graphic aGraphic;
392
393 if (mpTheme && mpTheme->GetGraphic(mnObjectPos, aGraphic))
394 mpGraphicObject.reset(new GraphicObject( std::move(aGraphic) ));
395 }
396
397 if( !mxModelStream.is() )
398 {
399 mxModelStream = new SotTempStream( "" );
400 mxModelStream->SetBufferSize( 16348 );
401
404 else
405 mxModelStream->Seek( 0 );
406 }
407 }
408 }
409 break;
410
413 case SgaObjKind::Inet:
415 {
416 if( !mpURL )
417 {
418 mpURL.reset(new INetURLObject);
419
421 {
422 mpURL.reset();
423 }
424 }
425
427 {
428 Graphic aGraphic;
429
430 if (mpTheme && mpTheme->GetGraphic(mnObjectPos, aGraphic))
431 mpGraphicObject.reset(new GraphicObject( std::move(aGraphic) ));
432 }
433 }
434 break;
435
436 default:
437 OSL_FAIL( "GalleryTransferable::GalleryTransferable: invalid object type" );
438 break;
439 }
440}
441
443{
445 {
446 AddFormat( SotClipboardFormatId::DRAWING );
447 AddFormat( SotClipboardFormatId::SVXB );
448 AddFormat( SotClipboardFormatId::GDIMETAFILE );
449 AddFormat( SotClipboardFormatId::BITMAP );
450 }
451 else
452 {
453 if( mpURL )
454 AddFormat( SotClipboardFormatId::SIMPLE_FILE );
455
456 if( mpGraphicObject )
457 {
458 AddFormat( SotClipboardFormatId::SVXB );
459
460 if( mpGraphicObject->GetType() == GraphicType::GdiMetafile )
461 {
462 AddFormat( SotClipboardFormatId::GDIMETAFILE );
463 AddFormat( SotClipboardFormatId::BITMAP );
464 }
465 else
466 {
467 AddFormat( SotClipboardFormatId::BITMAP );
468 AddFormat( SotClipboardFormatId::GDIMETAFILE );
469 }
470 }
471 }
472}
473
474bool GalleryTransferable::GetData( const datatransfer::DataFlavor& rFlavor, const OUString& /*rDestDoc*/ )
475{
476 SotClipboardFormatId nFormat = SotExchange::GetFormat( rFlavor );
477 bool bRet = false;
478
479 InitData( false );
480
481 if( ( SotClipboardFormatId::DRAWING == nFormat ) && ( SgaObjKind::SvDraw == meObjectKind ) )
482 {
483 bRet = ( mxModelStream.is() && SetObject( mxModelStream.get(), 0, rFlavor ) );
484 }
485 else if( ( SotClipboardFormatId::SIMPLE_FILE == nFormat ) && mpURL )
486 {
488 }
489 else if( ( SotClipboardFormatId::SVXB == nFormat ) && mpGraphicObject )
490 {
491 bRet = SetGraphic( mpGraphicObject->GetGraphic() );
492 }
493 else if( ( SotClipboardFormatId::GDIMETAFILE == nFormat ) && mpGraphicObject )
494 {
495 bRet = SetGDIMetaFile( mpGraphicObject->GetGraphic().GetGDIMetaFile() );
496 }
497 else if( ( SotClipboardFormatId::BITMAP == nFormat ) && mpGraphicObject )
498 {
499 bRet = SetBitmapEx( mpGraphicObject->GetGraphic().GetBitmapEx(), rFlavor );
500 }
501
502 return bRet;
503}
504
506 sal_uInt32, const datatransfer::DataFlavor& )
507{
508 bool bRet = false;
509
510 if( pUserObject )
511 {
512 rxOStm->WriteStream( *static_cast< SotStorageStream* >( pUserObject ) );
513 bRet = ( rxOStm->GetError() == ERRCODE_NONE );
514 }
515
516 return bRet;
517}
518
520{
521 if (mpTheme)
522 {
523 mpTheme->SetDragging( false );
524 mpTheme->SetDragPos( 0 );
525 }
526 if ( nDropAction )
527 {
529 if ( pFocusWindow )
530 pFocusWindow->GrabFocusToDocument();
531 }
532}
533
535{
537 mpGraphicObject.reset();
538 mpURL.reset();
539}
540
542{
544 if (mpTheme && mpTheme->GetURL(mnObjectPos, aURL) && aURL.GetProtocol() != INetProtocol::NotValid)
545 {
546 mpTheme->SetDragging( true );
548 return false;
549 }
550 return true;
551}
552
554{
556
557 if (pObject)
558 aURL = pObject->getURL();
559
560 return aURL;
561}
562
563/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
static vcl::Window * GetFocusWindow()
void Read(SvStream &rStmToRead)
Definition: codec.cxx:80
static bool IsCoded(SvStream &rStm, sal_uInt32 &rVersion)
Definition: codec.cxx:32
css::uno::Reference< css::awt::XProgressBar > mxProgressBar
Definition: galmisc.hxx:122
GalleryProgress(const GraphicFilter *pFilter=nullptr)
Definition: galmisc.cxx:316
void Update(sal_Int32 nVal, sal_Int32 nMaxVal)
Definition: galmisc.cxx:349
bool GetGraphic(sal_uInt32 nPos, Graphic &rGraphic)
Definition: galtheme.cxx:311
SAL_DLLPRIVATE void SetDragging(bool bSet)
Definition: galtheme.hxx:98
SAL_DLLPRIVATE bool GetModelStream(sal_uInt32 nPos, tools::SvRef< SotTempStream > const &rModelStreamRef)
Definition: galtheme.cxx:459
SAL_DLLPRIVATE void SetDragPos(sal_uInt32 nPos)
Definition: galtheme.hxx:108
SAL_DLLPRIVATE SgaObjKind GetObjectKind(sal_uInt32 nPos) const
Definition: galtheme.hxx:121
SAL_DLLPRIVATE bool GetURL(sal_uInt32 nPos, INetURLObject &rURL)
Definition: galtheme.cxx:483
virtual void ObjectReleased() override
Definition: galmisc.cxx:534
tools::SvRef< SotTempStream > mxModelStream
Definition: galmisc.hxx:143
std::unique_ptr< GraphicObject > mpGraphicObject
Definition: galmisc.hxx:144
virtual bool GetData(const css::datatransfer::DataFlavor &rFlavor, const OUString &rDestDoc) override
Definition: galmisc.cxx:474
GalleryTheme * mpTheme
Definition: galmisc.hxx:140
void InitData(bool bLazy)
Definition: galmisc.cxx:381
SgaObjKind meObjectKind
Definition: galmisc.hxx:141
virtual void AddSupportedFormats() override
Definition: galmisc.cxx:442
std::unique_ptr< INetURLObject > mpURL
Definition: galmisc.hxx:145
sal_uInt32 mnObjectPos
Definition: galmisc.hxx:142
virtual void DragFinished(sal_Int8 nDropAction) override
Definition: galmisc.cxx:519
GalleryTransferable(GalleryTheme *pTheme, sal_uInt32 nObjectPos, bool bLazy)
Definition: galmisc.cxx:357
void SelectObject(sal_uInt32 nObjectPos)
Definition: galmisc.cxx:366
virtual bool WriteObject(tools::SvRef< SotTempStream > &rxOStm, void *pUserObject, sal_uInt32 nUserObjectId, const css::datatransfer::DataFlavor &rFlavor) override
Definition: galmisc.cxx:505
virtual ~GalleryTransferable() override
Definition: galmisc.cxx:377
static GraphicFilter & GetGraphicFilter()
OUString GetImportFormatName(sal_uInt16 nFormat)
ErrCode ImportGraphic(Graphic &rGraphic, const INetURLObject &rPath, sal_uInt16 nFormat=GRFILTER_FORMAT_DONTKNOW, sal_uInt16 *pDeterminedFormat=nullptr, GraphicFilterImportFlags nImportFlags=GraphicFilterImportFlags::NONE)
OUString GetMainURL(DecodeMechanism eMechanism, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
bool removeSegment(sal_Int32 nIndex=LAST_SEGMENT, bool bIgnoreFinalSlash=true)
OUString GetLastName(DecodeMechanism eMechanism=DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
INetProtocol GetProtocol() const
OUString getFSysPath(FSysStyle eStyle, sal_Unicode *pDelimiter=nullptr) const
This class represents an embedded or linked bitmap graphic object.
Definition: svdograf.hxx:68
const SfxItemPool & GetItemPool() const
Definition: svdmodel.hxx:318
const SdrPage * GetPage(sal_uInt16 nPgNum) const
Definition: svdmodel.cxx:1790
sal_uInt16 GetPageCount() const
Definition: svdmodel.cxx:1800
SdrObject * GetObj(size_t nNum) const
Definition: svdpage.cxx:822
size_t GetObjCount() const
Definition: svdpage.cxx:816
User data of a drawing object, e.g.
Definition: svdobj.hxx:153
SdrInventor GetInventor() const
Definition: svdobj.hxx:167
sal_uInt16 GetId() const
Definition: svdobj.hxx:168
Abstract DrawObject.
Definition: svdobj.hxx:261
sal_uInt16 GetUserDataCount() const
Definition: svdobj.cxx:2720
SdrObjUserData * GetUserData(sal_uInt16 nNum) const
Definition: svdobj.cxx:2726
A SdrPage contains exactly one SdrObjList and a description of the physical page dimensions (size / m...
Definition: svdpage.hxx:377
void SetDefaultMetric(MapUnit eNewMetric)
void Download(const Link< void *, void > &aLink=Link< void *, void >())
SvStream * GetInStream()
static SotClipboardFormatId GetFormat(const css::datatransfer::DataFlavor &rFlavor)
sal_uInt64 Seek(sal_uInt64 nPos)
bool SetGraphic(const Graphic &rGraphic)
bool SetObject(void *pUserObject, sal_uInt32 nUserObjectId, const css::datatransfer::DataFlavor &rFlavor)
bool SetString(const OUString &rString)
bool SetBitmapEx(const BitmapEx &rBitmap, const css::datatransfer::DataFlavor &rFlavor)
void AddFormat(SotClipboardFormatId nFormat)
bool SetGDIMetaFile(const GDIMetaFile &rMtf)
T * get() const
bool is() const
css::uno::Any getPropertyValue(const OUString &rPropertyName)
css::uno::Any executeCommand(const OUString &rCommandName, const css::uno::Any &rCommandArgument)
bool insertNewContent(const OUString &rContentType, const css::uno::Sequence< OUString > &rPropertyNames, const css::uno::Sequence< css::uno::Any > &rPropertyValues, Content &rNewContent)
void GrabFocusToDocument()
int nCount
OUString SvxResId(TranslateId aId)
Definition: dialmgr.cxx:24
URL aURL
EmbeddedObjectRef * pObject
#define ERRCODE_NONE
sal_Int16 nVersion
SotClipboardFormatId
bool CreateIMapGraphic(const FmFormModel &rModel, Graphic &rGraphic, ImageMap &rImageMap)
Definition: galmisc.cxx:120
bool GallerySvDrawImport(SvStream &rIStm, SdrModel &rModel)
Definition: galmisc.cxx:76
bool CreateDir(const INetURLObject &rURL)
Definition: galmisc.cxx:229
INetURLObject ImplGetURL(const GalleryObject *pObject)
Definition: galmisc.cxx:553
OUString GetSvDrawStreamNameFromURL(const INetURLObject &rSvDrawObjURL)
Definition: galmisc.cxx:188
bool KillFile(const INetURLObject &rURL)
Definition: galmisc.cxx:287
bool CopyFile(const INetURLObject &rSrcURL, const INetURLObject &rDstURL)
Definition: galmisc.cxx:261
OUString GetReducedString(const INetURLObject &rURL, sal_Int32 nMaxLen)
Definition: galmisc.cxx:154
bool FileExists(const INetURLObject &rURL)
Definition: galmisc.cxx:201
GalleryGraphicImportRet GalleryGraphicImport(const INetURLObject &rURL, Graphic &rGraphic, OUString &rFilterName)
Definition: galmisc.cxx:51
#define ID_IMAPINFO
Definition: galmisc.hxx:66
#define GALLERY_PROGRESS_RANGE
Definition: galmisc.hxx:75
GalleryGraphicImportRet
Definition: galmisc.hxx:71
SgaObjKind
Definition: galmisc.hxx:57
#define GRFILTER_FORMAT_DONTKNOW
OUString aName
NONE
sal_Int32 getTokenCount(std::string_view rIn, char cTok)
Reference< XComponentContext > getProcessComponentContext()
int i
sal_uInt16 sal_Unicode
signed char sal_Int8
bool SvxDrawingLayerImport(SdrModel *pModel, const uno::Reference< io::XInputStream > &xInputStream, const Reference< lang::XComponent > &xComponent)
Definition: xmlexport.cxx:137