summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/inc/sfx2/dispatch.hxx4
-rw-r--r--sfx2/inc/sfx2/dllapi.h2
-rw-r--r--sfx2/inc/sfx2/linkmgr.hxx59
-rw-r--r--sfx2/inc/sfx2/lnkbase.hxx10
-rw-r--r--sfx2/inc/sfx2/module.hxx5
-rw-r--r--sfx2/inc/sfx2/objsh.hxx2
-rw-r--r--sfx2/inc/sfx2/opengrf.hxx73
-rw-r--r--sfx2/inc/sfx2/sfxdlg.hxx7
-rw-r--r--sfx2/inc/sfx2/sfxhtml.hxx5
-rw-r--r--sfx2/inc/sfx2/sfxsids.hrc152
-rw-r--r--sfx2/inc/sfx2/srchdefs.hxx52
-rw-r--r--sfx2/inc/sfx2/srchitem.hxx306
-rw-r--r--sfx2/inc/sfxhelp.hxx1
-rw-r--r--sfx2/prj/d.lst97
-rw-r--r--sfx2/source/appl/app.hrc12
-rw-r--r--sfx2/source/appl/app.src39
-rw-r--r--sfx2/source/appl/appbas.cxx2
-rw-r--r--sfx2/source/appl/appinit.cxx2
-rw-r--r--sfx2/source/appl/fileobj.cxx719
-rw-r--r--sfx2/source/appl/fileobj.hxx99
-rw-r--r--sfx2/source/appl/linkmgr2.cxx400
-rw-r--r--sfx2/source/appl/lnkbase2.cxx15
-rw-r--r--sfx2/source/appl/makefile.mk4
-rw-r--r--sfx2/source/appl/module.cxx27
-rw-r--r--sfx2/source/appl/opengrf.cxx298
-rw-r--r--sfx2/source/appl/sfxhelp.cxx42
-rw-r--r--sfx2/source/bastyp/sfxhtml.cxx34
-rwxr-xr-x[-rw-r--r--]sfx2/source/control/dispatch.cxx11
-rw-r--r--sfx2/source/control/makefile.mk1
-rw-r--r--sfx2/source/control/srchitem.cxx665
-rwxr-xr-x[-rw-r--r--]sfx2/source/dialog/sfxdlg.cxx6
-rw-r--r--sfx2/source/doc/objcont.cxx23
-rw-r--r--sfx2/source/doc/objxtor.cxx1
-rw-r--r--sfx2/source/inc/objshimp.hxx2
-rw-r--r--sfx2/source/inc/speakerdlg.hxx70
-rw-r--r--sfx2/source/menu/virtmenu.cxx30
36 files changed, 1765 insertions, 1512 deletions
diff --git a/sfx2/inc/sfx2/dispatch.hxx b/sfx2/inc/sfx2/dispatch.hxx
index 363c9280fd5a..e0d25fb121d7 100644
--- a/sfx2/inc/sfx2/dispatch.hxx
+++ b/sfx2/inc/sfx2/dispatch.hxx
@@ -51,7 +51,7 @@ class SfxViewFrame;
class SfxBindings;
class SfxItemSet;
class SfxPopupMenuManager;
-
+class SfxModule;
struct SfxDispatcher_Impl;
struct SfxPlugInInfo_Impl;
@@ -202,7 +202,7 @@ public:
SfxShell* GetShell(USHORT nIdx) const;
SfxViewFrame* GetFrame() const;
-
+ SfxModule* GetModule() const;
// caller has to clean up the Manager on his own
static SfxPopupMenuManager* Popup( sal_uInt16 nConfigId,Window *pWin, const Point *pPos );
diff --git a/sfx2/inc/sfx2/dllapi.h b/sfx2/inc/sfx2/dllapi.h
index 3d8cd8621985..966f6b7f29f7 100644
--- a/sfx2/inc/sfx2/dllapi.h
+++ b/sfx2/inc/sfx2/dllapi.h
@@ -40,4 +40,6 @@
#define SFX2_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
#endif
+#define SFX2_DLLPRIVATE SAL_DLLPRIVATE
+
#endif
diff --git a/sfx2/inc/sfx2/linkmgr.hxx b/sfx2/inc/sfx2/linkmgr.hxx
index 960faed33473..4d37dd0a1670 100644
--- a/sfx2/inc/sfx2/linkmgr.hxx
+++ b/sfx2/inc/sfx2/linkmgr.hxx
@@ -37,9 +37,15 @@
#include <svl/svarray.hxx>
class SfxObjectShell;
+class Graphic;
+class Size;
namespace sfx2
{
+ // Damit der Link ueber den Status der zu ladenen Grafik informierten werden
+ // verschickt das FileObject ein SvData, mit der FormatId
+ // "RegisterStatusInfoId" und ein einem String als Datentraeger. Dieser
+ // enthaelt den folgenden enum.
class SvBaseLink;
class SvBaseLinkRef;
@@ -50,7 +56,7 @@ SV_DECL_PTRARR( SvBaseLinks, SvBaseLinkRefPtr, 1, 1 )
typedef SvLinkSource* SvLinkSourcePtr;
SV_DECL_PTRARR( SvLinkSources, SvLinkSourcePtr, 1, 1 )
-class SFX2_DLLPUBLIC SvLinkManager
+class SFX2_DLLPUBLIC LinkManager
{
SvBaseLinks aLinkTbl;
SvLinkSources aServerTbl;
@@ -60,8 +66,17 @@ protected:
BOOL InsertLink( SvBaseLink* pLink, USHORT nObjType, USHORT nUpdateType,
const String* pName = 0 );
public:
- SvLinkManager();
- virtual ~SvLinkManager();
+
+ enum LinkState
+ {
+ STATE_LOAD_OK,
+ STATE_LOAD_ERROR,
+ STATE_LOAD_ABORT
+ };
+
+ LinkManager( SfxObjectShell * pCacheCont );
+ ~LinkManager();
+
SfxObjectShell* GetPersist() const { return pPersist; }
void SetPersist( SfxObjectShell * p ) { pPersist = p; }
@@ -78,14 +93,24 @@ public:
// falls am Link schon alles eingestellt ist !
BOOL InsertDDELink( SvBaseLink* );
+ // den Link mit einem PseudoObject verbinden und in die Liste eintragen
+ BOOL InsertFileLink( sfx2::SvBaseLink&,
+ USHORT nFileType,
+ const String& rTxt,
+ const String* pFilterNm = 0,
+ const String* pRange = 0 );
+
+ // falls am Link schon alles eingestellt ist !
+ BOOL InsertFileLink( sfx2::SvBaseLink& );
+
// erfrage die Strings fuer den Dialog
- virtual BOOL GetDisplayNames( const SvBaseLink *,
+ BOOL GetDisplayNames( const SvBaseLink *,
String* pType,
String* pFile = 0,
String* pLink = 0,
String* pFilter = 0 ) const;
- virtual SvLinkSourceRef CreateObj( SvBaseLink* );
+ SvLinkSourceRef CreateObj( SvBaseLink* );
void UpdateAllLinks( BOOL bAskUpdate = TRUE,
BOOL bCallErrHdl = TRUE,
@@ -105,10 +130,28 @@ public:
void RemoveServer( USHORT nPos, USHORT nCnt = 1 )
{ aServerTbl.Remove( nPos, nCnt ); }
+ // eine Uebertragung wird abgebrochen, also alle DownloadMedien canceln
+ // (ist zur Zeit nur fuer die FileLinks interressant!)
+ void CancelTransfers();
+
+ static void SetTransferPriority( sfx2::SvBaseLink& rLink, USHORT nPrio );
+
+ // um Status Informationen aus dem FileObject an den BaseLink zu
+ // senden, gibt es eine eigene ClipBoardId. Das SvData-Object hat
+ // dann die entsprechenden Informationen als String.
+ // Wird zur Zeit fuer FileObject in Verbindung mit JavaScript benoetigt
+ // - das braucht Informationen ueber Load/Abort/Error
+ static ULONG RegisterStatusInfoId();
+
+ // if the mimetype says graphic/bitmap/gdimetafile then get the
+ // graphic from the Any. Return says no errors
+ static BOOL GetGraphicFromAny( const String& rMimeType,
+ const ::com::sun::star::uno::Any & rValue,
+ Graphic& rGrf );
+
private:
- // diese Methoden gibts nicht!
- SvLinkManager( const SvLinkManager& );
- SvLinkManager& operator=( const SvLinkManager& );
+ LinkManager( const LinkManager& );
+ LinkManager& operator=( const LinkManager& );
};
// Trenner im LinkName fuer die DDE-/File-/Grafik- Links
diff --git a/sfx2/inc/sfx2/lnkbase.hxx b/sfx2/inc/sfx2/lnkbase.hxx
index 1cec933bbcaa..19a6d6c33bc5 100644
--- a/sfx2/inc/sfx2/lnkbase.hxx
+++ b/sfx2/inc/sfx2/lnkbase.hxx
@@ -51,7 +51,7 @@ namespace sfx2
{
struct ImplBaseLinkData;
-class SvLinkManager;
+class LinkManager;
class SvLinkSource;
class FileDialogHelper;
@@ -82,7 +82,7 @@ struct BaseLink_Impl;
class SFX2_DLLPUBLIC SvBaseLink : public SvRefBase
{
private:
- friend class SvLinkManager;
+ friend class LinkManager;
friend class SvLinkSource;
SvLinkSourceRef xObj;
@@ -148,9 +148,9 @@ public:
ULONG GetContentType() const;
BOOL SetContentType( ULONG nType );
- SvLinkManager* GetLinkManager();
- const SvLinkManager* GetLinkManager() const;
- void SetLinkManager( SvLinkManager* _pMgr );
+ LinkManager* GetLinkManager();
+ const LinkManager* GetLinkManager() const;
+ void SetLinkManager( LinkManager* _pMgr );
BOOL Update();
void Disconnect();
diff --git a/sfx2/inc/sfx2/module.hxx b/sfx2/inc/sfx2/module.hxx
index f59832085dc6..cd2028eee0e1 100644
--- a/sfx2/inc/sfx2/module.hxx
+++ b/sfx2/inc/sfx2/module.hxx
@@ -36,9 +36,10 @@
#include <sfx2/shell.hxx>
#include <sfx2/imgdef.hxx>
#include <sal/types.h>
+#include <vcl/fldunit.hxx>
+
class ImageList;
-class SfxAcceleratorManager;
class SfxBindings;
class SfxObjectFactory;
class ModalDialog;
@@ -96,6 +97,8 @@ public:
BOOL IsActive() const;
static SfxModule* GetActiveModule( SfxViewFrame* pFrame=NULL );
+ static FieldUnit GetCurrentFieldUnit();
+ FieldUnit GetFieldUnit() const;
//#if 0 // _SOLAR__PRIVATE
SAL_DLLPRIVATE static SfxModuleArr_Impl& GetModules_Impl();
diff --git a/sfx2/inc/sfx2/objsh.hxx b/sfx2/inc/sfx2/objsh.hxx
index f81be0aa7bba..1dab10abb842 100644
--- a/sfx2/inc/sfx2/objsh.hxx
+++ b/sfx2/inc/sfx2/objsh.hxx
@@ -96,7 +96,6 @@ class Bitmap;
class INetURLObject;
class IndexBitSet;
class SfxTopFrame;
-class SfxAcceleratorManager;
class JobSetup;
class Size;
class Point;
@@ -798,7 +797,6 @@ public:
// configuration items
SAL_DLLPRIVATE SfxEventConfigItem_Impl* GetEventConfig_Impl( sal_Bool bForce=sal_False );
- SAL_DLLPRIVATE SfxAcceleratorManager* GetAccMgr_Impl();
SAL_DLLPRIVATE SfxToolBoxConfig* GetToolBoxConfig_Impl();
SAL_DLLPRIVATE sal_uInt16 ImplGetSignatureState( sal_Bool bScriptingContent = FALSE );
diff --git a/sfx2/inc/sfx2/opengrf.hxx b/sfx2/inc/sfx2/opengrf.hxx
new file mode 100644
index 000000000000..0972859b6680
--- /dev/null
+++ b/sfx2/inc/sfx2/opengrf.hxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: opengrf.hxx,v $
+ * $Revision: 1.9 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _SFX2_OPENGRF_HXX
+#define _SFX2_OPENGRF_HXX
+
+#include <memory> // auto_ptr
+#include <svtools/filter.hxx>
+#include <sfx2/dllapi.h>
+
+struct SvxOpenGrf_Impl;
+
+class SFX2_DLLPUBLIC SvxOpenGraphicDialog
+{
+public:
+ SvxOpenGraphicDialog ( const String& rTitle );
+ ~SvxOpenGraphicDialog ();
+
+ short Execute();
+
+ void SetPath( const String& rPath );
+ void SetPath( const String& rPath, sal_Bool bLinkState );
+ String GetPath() const;
+
+ int GetGraphic(Graphic&) const;
+
+ void EnableLink(sal_Bool);
+ void AsLink(sal_Bool);
+ sal_Bool IsAsLink() const;
+
+ String GetCurrentFilter() const;
+ void SetCurrentFilter(const String&);
+
+ /// Set dialog help id at FileDlgHelper
+ void SetControlHelpIds( const INT16* _pControlId, const INT32* _pHelpId );
+ /// Set control help ids at FileDlgHelper
+ void SetDialogHelpId( const INT32 _nHelpId );
+private:
+ // disable copy and assignment
+ SFX2_DLLPRIVATE SvxOpenGraphicDialog (const SvxOpenGraphicDialog&);
+ SFX2_DLLPRIVATE SvxOpenGraphicDialog& operator = ( const SvxOpenGraphicDialog & );
+
+ const std::auto_ptr< SvxOpenGrf_Impl > mpImpl;
+};
+
+#endif // _SVX_OPENGRF_HXX
+
diff --git a/sfx2/inc/sfx2/sfxdlg.hxx b/sfx2/inc/sfx2/sfxdlg.hxx
index 47ee31c66575..256e4a03ce47 100644
--- a/sfx2/inc/sfx2/sfxdlg.hxx
+++ b/sfx2/inc/sfx2/sfxdlg.hxx
@@ -61,7 +61,7 @@ struct TransferableObjectDescriptor;
namespace sfx2
{
- class SvLinkManager;
+ class LinkManager;
}
namespace com { namespace sun { namespace star { namespace frame {
@@ -115,9 +115,10 @@ public:
namespace com { namespace sun { namespace star { namespace frame { class XFrame; } } } }
-class SFX2_DLLPUBLIC SfxAbstractDialogFactory : public VclAbstractDialogFactory
+class SFX2_DLLPUBLIC SfxAbstractDialogFactory : virtual public VclAbstractDialogFactory
{
public:
+ virtual ~SfxAbstractDialogFactory(); // needed for export of vtable
static SfxAbstractDialogFactory* Create();
virtual VclAbstractDialog* CreateSfxDialog( Window* pParent, const SfxBindings& rBindings, sal_uInt32 nResId ) = 0;
virtual VclAbstractDialog* CreateFrameDialog( Window* pParent, const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& rFrame, sal_uInt32 nResId, const String& rParameter ) = 0;
@@ -141,7 +142,7 @@ public:
virtual VclAbstractDialog* CreateEditObjectDialog( Window* pParent, USHORT nSlotId,
const com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject >& xObj )=0;
virtual SfxAbstractPasteDialog* CreatePasteDialog( Window* pParent )=0;
- virtual SfxAbstractLinksDialog* CreateLinksDialog( Window* pParent, sfx2::SvLinkManager* pMgr, BOOL bHTML=FALSE, sfx2::SvBaseLink* p=0 )=0;
+ virtual SfxAbstractLinksDialog* CreateLinksDialog( Window* pParent, sfx2::LinkManager* pMgr, BOOL bHTML=FALSE, sfx2::SvBaseLink* p=0 )=0;
virtual VclAbstractDialog * CreateSvxScriptOrgDialog( Window* pParent, const String& rLanguage ) = 0;
virtual AbstractScriptSelectorDialog*
diff --git a/sfx2/inc/sfx2/sfxhtml.hxx b/sfx2/inc/sfx2/sfxhtml.hxx
index 270087cf24a9..80804cf72fad 100644
--- a/sfx2/inc/sfx2/sfxhtml.hxx
+++ b/sfx2/inc/sfx2/sfxhtml.hxx
@@ -84,8 +84,6 @@ public:
LanguageType& eNumLang, const String& aValStr,
const String& aNumStr, SvNumberFormatter& rFormatter );
- static rtl_TextEncoding GetEncodingByHttpHeader( SvKeyValueIterator *pHTTPHeader );
-
protected:
// Start eines File-Downloads. Dieser erfolgt synchron oder asynchron.
@@ -124,9 +122,6 @@ protected:
// Default (auch ohne Iterator) ist JavaScript
ScriptType GetScriptType( SvKeyValueIterator* ) const;
const String& GetScriptTypeString( SvKeyValueIterator* ) const;
-
- BOOL SetEncodingByHTTPHeader( SvKeyValueIterator *pHTTPHeader );
-
};
inline BOOL SfxHTMLParser::ParseAreaOptions(ImageMap * pImageMap, const String& rBaseURL,
diff --git a/sfx2/inc/sfx2/sfxsids.hrc b/sfx2/inc/sfx2/sfxsids.hrc
index bcbb39c96638..dcbed691e668 100644
--- a/sfx2/inc/sfx2/sfxsids.hrc
+++ b/sfx2/inc/sfx2/sfxsids.hrc
@@ -32,92 +32,25 @@
// include ---------------------------------------------------------------
-#ifndef _SOLAR_HRC
#include <svl/solar.hrc>
-#endif
-
-#define SID_SFX_START 5000
-#define SID_SFX_END 8999
-
-#ifndef _CNTIDS_HRC
#include <sfx2/cntids.hrc>
-#endif
+#include <svl/memberid.hrc>
// Please be careful:
// Changing just one part here doesn't add new
// docking windows automatically!
//
-#define SID_DOCKWIN_START 9800
-#define SID_DOCKWIN_0 9800
-#define SID_DOCKWIN_1 9801
-#define SID_DOCKWIN_2 9802
-#define SID_DOCKWIN_3 9803
-#define SID_DOCKWIN_4 9804
-#define SID_DOCKWIN_5 9805
-#define SID_DOCKWIN_6 9806
-#define SID_DOCKWIN_7 9807
-#define SID_DOCKWIN_8 9808
-#define SID_DOCKWIN_9 9809
-/*
-#define SID_DOCKWIN_10 9810
-#define SID_DOCKWIN_11 9811
-#define SID_DOCKWIN_12 9812
-#define SID_DOCKWIN_13 9813
-#define SID_DOCKWIN_14 9814
-#define SID_DOCKWIN_15 9815
-#define SID_DOCKWIN_16 9816
-#define SID_DOCKWIN_17 9817
-#define SID_DOCKWIN_18 9818
-#define SID_DOCKWIN_19 9819
-#define SID_DOCKWIN_20 9820
-#define SID_DOCKWIN_21 9821
-#define SID_DOCKWIN_22 9822
-#define SID_DOCKWIN_23 9823
-#define SID_DOCKWIN_24 9824
-#define SID_DOCKWIN_25 9825
-#define SID_DOCKWIN_26 9826
-#define SID_DOCKWIN_27 9827
-#define SID_DOCKWIN_28 9828
-#define SID_DOCKWIN_29 9829
-*/
-#define SID_DOCKWIN_END 9999
-
-#define SID_LIB_START 10000
-#define SID_LIB_END 19999
-
-#define SID_APP_START 20000
-#define SID_APP_END 29999
-
-#define SID_SW_START 20000
-#define SID_SW_END 25999
-
-#define SID_SC_START 26000
-#define SID_SC_END 26999
-
-#define SID_SD_START 27000
-#define SID_SD_END 27999
-
-#define SID_Sa_START 28000
-#define SID_Sa_END 28999
-
-#define SID_Sb_START 29000
-#define SID_Sb_END 29999
-
-#define SID_OBJ_START 30000
-#define SID_OBJ0_START (SID_OBJ_START + 0)
-#define SID_OBJ2_START (SID_OBJ_START + 256)
-#define SID_OBJ1_START (SID_OBJ_START + 512)
-#define SID_OBJ3_START (SID_OBJ_START + 768)
-#define SID_OBJ4_START (SID_OBJ_START + 1024)
-#define SID_OBJ5_START (SID_OBJ_START + 1280)
-#define SID_OBJ6_START (SID_OBJ_START + 1536)
-#define SID_OBJ7_START (SID_OBJ_START + 1792)
-#define SID_OBJ_END(nStart) (nStart+255)
-
-#define SID_SIM_START SID_OBJ0_START
-#define SID_SCH_START SID_OBJ1_START
-#define SID_SMA_START SID_OBJ2_START
-#define SID_BASICIDE_START SID_OBJ3_START
+
+#define SID_DOCKWIN_0 SID_DOCKWIN_START
+#define SID_DOCKWIN_1 SID_DOCKWIN_START+1
+#define SID_DOCKWIN_2 SID_DOCKWIN_START+2
+#define SID_DOCKWIN_3 SID_DOCKWIN_START+3
+#define SID_DOCKWIN_4 SID_DOCKWIN_START+4
+#define SID_DOCKWIN_5 SID_DOCKWIN_START+5
+#define SID_DOCKWIN_6 SID_DOCKWIN_START+6
+#define SID_DOCKWIN_7 SID_DOCKWIN_START+7
+#define SID_DOCKWIN_8 SID_DOCKWIN_START+8
+#define SID_DOCKWIN_9 SID_DOCKWIN_START+9
//=========================================================================
@@ -994,19 +927,6 @@
#define SID_SFXNODES_ATTACHLIST (SID_SFXNODES_START + 41)
#define SID_SFXNODES_END SID_SFXNODES_ATTACHLIST
-#define SID_OPTIONS_START (SID_LIB_START + 2000)
-#define SID_OPTIONS_FIRSTFREE 99
-#define SID_OPTIONS_END (SID_OPTIONS_START + 100)
-
-#define SID_SBA_START (SID_LIB_START + 2101)
-#define SID_SBA_END (SID_SBA_START + 149)
-
-#define SID_DBACCESS_START (SID_LIB_START + 2251)
-#define SID_DBACCESS_END (SID_DBACCESS_START + 200)
-
-#define SID_RPTUI_START (SID_LIB_START + 2452)
-#define SID_RPTUI_END (SID_RPTUI_START + 197)
-
// SaveTabPage
#define SID_ATTR_DOCINFO (SID_OPTIONS_START + 0)
#define SID_ATTR_BACKUP (SID_OPTIONS_START + 1)
@@ -1132,30 +1052,6 @@
// slot IDs from SVX (svxids.hrc) ---------------------------------------------
-#define SID_SVX_START (SID_LIB_START + 0)
-
-#define SID_ATTR_CHAR (SID_SVX_START + 6)
-#define SID_ATTR_CHAR_FONT (SID_SVX_START + 7)
-#define SID_ATTR_CHAR_POSTURE (SID_SVX_START + 8)
-#define SID_ATTR_CHAR_WEIGHT (SID_SVX_START + 9)
-#define SID_ATTR_CHAR_SHADOWED (SID_SVX_START + 10)
-#define SID_ATTR_CHAR_WORDLINEMODE (SID_SVX_START + 11)
-#define SID_ATTR_CHAR_CONTOUR (SID_SVX_START + 12)
-#define SID_ATTR_CHAR_STRIKEOUT (SID_SVX_START + 13)
-#define SID_ATTR_CHAR_UNDERLINE (SID_SVX_START + 14)
-#define SID_ATTR_CHAR_FONTHEIGHT (SID_SVX_START + 15)
-#define SID_ATTR_CHAR_PROPSIZE (SID_SVX_START + 16)
-#define SID_ATTR_CHAR_COLOR (SID_SVX_START + 17)
-#define SID_ATTR_CHAR_KERNING (SID_SVX_START + 18)
-#define SID_ATTR_CHAR_CASEMAP (SID_SVX_START + 19)
-#define SID_ATTR_CHAR_LANGUAGE (SID_SVX_START + 20)
-#define SID_ATTR_CHAR_ESCAPEMENT (SID_SVX_START + 21)
-#define SID_ATTR_CHAR_FONTLIST (SID_SVX_START + 22)
-// Temp-Id f"ur FontMapType
-#define SID_ATTR_CHAR_MAPTYPE (SID_SVX_START + 64)
-// zusaetzlich f"ur die Ext-Zeichen-TabPage
-#define SID_ATTR_CHAR_AUTOKERN (SID_SVX_START + 67)
-#define SID_ATTR_CHAR_OVERLINE (SID_SVX_START + 68)
#define SID_ZOOM_TOOLBOX (SID_SVX_START + 96)
#define SID_ZOOM_OUT (SID_SVX_START + 97)
#define SID_ZOOM_IN (SID_SVX_START + 98)
@@ -1290,30 +1186,6 @@
#define SID_ATTR_CHAR_FILLCOLOR (SID_SFX_START + 1551)
-#define MID_SEARCH_STYLEFAMILY 1
-#define MID_SEARCH_CELLTYPE 2
-#define MID_SEARCH_ROWDIRECTION 3
-#define MID_SEARCH_ALLTABLES 4
-#define MID_SEARCH_BACKWARD 5
-#define MID_SEARCH_PATTERN 6
-#define MID_SEARCH_CONTENT 7
-#define MID_SEARCH_ASIANOPTIONS 8
-#define MID_SEARCH_ALGORITHMTYPE 9
-#define MID_SEARCH_FLAGS 10
-#define MID_SEARCH_SEARCHSTRING 11
-#define MID_SEARCH_REPLACESTRING 12
-#define MID_SEARCH_LOCALE 13
-#define MID_SEARCH_CHANGEDCHARS 14
-#define MID_SEARCH_DELETEDCHARS 15
-#define MID_SEARCH_INSERTEDCHARS 16
-#define MID_SEARCH_TRANSLITERATEFLAGS 17
-#define MID_SEARCH_COMMAND 18
-
-// SvxSizeItem
-#define MID_SIZE_SIZE 0
-#define MID_SIZE_WIDTH 1
-#define MID_SIZE_HEIGHT 2
-
// SfxScriptOrganizerItem
#define MID_SCRIPT_ORGANIZER_LANGUAGE 1 // Don't use zero for MID's. It's forbidden to do it!
diff --git a/sfx2/inc/sfx2/srchdefs.hxx b/sfx2/inc/sfx2/srchdefs.hxx
deleted file mode 100644
index 385ad1c87582..000000000000
--- a/sfx2/inc/sfx2/srchdefs.hxx
+++ /dev/null
@@ -1,52 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: srchdefs.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFX_SRCHDEFS_HXX_
-#define _SFX_SRCHDEFS_HXX_
-
-
-#define SEARCH_OPTIONS_SEARCH ((sal_uInt16)0x0001)
-#define SEARCH_OPTIONS_SEARCH_ALL ((sal_uInt16)0x0002)
-#define SEARCH_OPTIONS_REPLACE ((sal_uInt16)0x0004)
-#define SEARCH_OPTIONS_REPLACE_ALL ((sal_uInt16)0x0008)
-#define SEARCH_OPTIONS_WHOLE_WORDS ((sal_uInt16)0x0010)
-#define SEARCH_OPTIONS_BACKWARDS ((sal_uInt16)0x0020)
-#define SEARCH_OPTIONS_REG_EXP ((sal_uInt16)0x0040)
-#define SEARCH_OPTIONS_EXACT ((sal_uInt16)0x0080)
-#define SEARCH_OPTIONS_SELECTION ((sal_uInt16)0x0100)
-#define SEARCH_OPTIONS_FAMILIES ((sal_uInt16)0x0200)
-#define SEARCH_OPTIONS_FORMAT ((sal_uInt16)0x0400)
-#define SEARCH_OPTIONS_MORE ((sal_uInt16)0x0800)
-#define SEARCH_OPTIONS_SIMILARITY ((sal_uInt16)0x1000)
-#define SEARCH_OPTIONS_CONTENT ((sal_uInt16)0x2000)
-
-
-#endif
-
diff --git a/sfx2/inc/sfx2/srchitem.hxx b/sfx2/inc/sfx2/srchitem.hxx
deleted file mode 100644
index 594d12cf05b5..000000000000
--- a/sfx2/inc/sfx2/srchitem.hxx
+++ /dev/null
@@ -1,306 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: srchitem.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFX_SRCHITEM_HXX
-#define _SFX_SRCHITEM_HXX
-
-#include "sal/config.h"
-#include "sfx2/dllapi.h"
-#include <com/sun/star/util/XSearchDescriptor.hpp>
-#include <com/sun/star/util/SearchOptions.hpp>
-#include <com/sun/star/util/SearchFlags.hpp>
-#include <com/sun/star/i18n/TransliterationModules.hpp>
-#include <unotools/configitem.hxx>
-#include <rsc/rscsfx.hxx>
-#include <tools/string.hxx>
-#include <svl/poolitem.hxx>
-#include <sfx2/msg.hxx>
-#include <sfx2/srchdefs.hxx>
-
-// defines ---------------------------------------------------------------
-
-// Kommandos
-#define SVX_SEARCHCMD_FIND ((sal_uInt16)0)
-#define SVX_SEARCHCMD_FIND_ALL ((sal_uInt16)1)
-#define SVX_SEARCHCMD_REPLACE ((sal_uInt16)2)
-#define SVX_SEARCHCMD_REPLACE_ALL ((sal_uInt16)3)
-
-// Suche in (fuer Calc)
-#define SVX_SEARCHIN_FORMULA ((sal_uInt16)0)
-#define SVX_SEARCHIN_VALUE ((sal_uInt16)1)
-#define SVX_SEARCHIN_NOTE ((sal_uInt16)2)
-
-// Applicationsflag
-#define SVX_SEARCHAPP_WRITER ((sal_uInt16)0)
-#define SVX_SEARCHAPP_CALC ((sal_uInt16)1)
-#define SVX_SEARCHAPP_DRAW ((sal_uInt16)2)
-#define SVX_SEARCHAPP_BASE ((sal_uInt16)3)
-
-// class SvxSearchItem ---------------------------------------------------
-
-//#ifdef ITEMID_SEARCH
-
-/* [Beschreibung]
-
- In diesem Item werden alle Such-Attribute gespeichert.
-*/
-class SFX2_DLLPUBLIC SvxSearchItem :
- public SfxPoolItem,
- public utl::ConfigItem
-{
- com::sun::star::util::SearchOptions aSearchOpt;
-
- SfxStyleFamily eFamily; // Vorlagen-Familie
-
- sal_uInt16 nCommand; // Kommando (Suchen, Alle Suchen, Ersetzen, Alle Ersetzen)
-
- // Calc-Spezifische Daten
- sal_uInt16 nCellType; // Suche in Formeln/Werten/Notizen
- sal_uInt16 nAppFlag; // Fuer welche Applikation ist der Dialog ueberhaupt
- sal_Bool bRowDirection; // Suchrichtung Zeilenweise/Spaltenweise
- sal_Bool bAllTables; // in alle Tabellen suchen
-
- // Writer-spezifisch
- sal_Bool bNotes;
-
- sal_Bool bBackward; // Suche Rueckwaerts
- sal_Bool bPattern; // Suche nach Vorlagen
- sal_Bool bContent; // Suche im Inhalt
- sal_Bool bAsianOptions; // use asian options?
-
-public:
- TYPEINFO();
-
- SvxSearchItem( const sal_uInt16 nId /*= ITEMID_SEARCH*/ );
- SvxSearchItem( const SvxSearchItem& rItem );
- virtual ~SvxSearchItem();
-
- virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
- virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
- virtual int operator == ( const SfxPoolItem& ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- String &rText, const IntlWrapper * = 0 ) const;
-
- // ConfigItem
- virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString > &rPropertyNames );
- virtual void Commit();
-
- sal_uInt16 GetCommand() const { return nCommand; }
- void SetCommand(sal_uInt16 nNewCommand) { nCommand = nNewCommand; }
-
- inline const String GetSearchString() const;
- inline void SetSearchString(const String& rNewString);
-
- inline const String GetReplaceString() const;
- inline void SetReplaceString(const String& rNewString);
-
- inline sal_Bool GetWordOnly() const;
- void SetWordOnly(sal_Bool bNewWordOnly);
-
- inline sal_Bool GetExact() const;
- void SetExact(sal_Bool bNewExact);
-
- sal_Bool GetBackward() const { return bBackward; }
- void SetBackward(sal_Bool bNewBackward) { bBackward = bNewBackward; }
-
- inline sal_Bool GetSelection() const;
- void SetSelection(sal_Bool bNewSelection);
-
- inline sal_Bool GetRegExp() const;
- void SetRegExp( sal_Bool bVal );
-
- sal_Bool GetPattern() const { return bPattern; }
- void SetPattern(sal_Bool bNewPattern) { bPattern = bNewPattern; }
-
- sal_Bool IsContent() const { return bContent; }
- void SetContent( sal_Bool bNew ) { bContent = bNew; }
-
- SfxStyleFamily GetFamily() const { return eFamily; }
- void SetFamily( SfxStyleFamily eNewFamily )
- { eFamily = eNewFamily; }
-
- sal_Bool GetRowDirection() const { return bRowDirection; }
- void SetRowDirection(sal_Bool bNewRowDirection) { bRowDirection = bNewRowDirection; }
-
- sal_Bool IsAllTables() const { return bAllTables; }
- void SetAllTables(sal_Bool bNew) { bAllTables = bNew; }
-
- sal_uInt16 GetCellType() const { return nCellType; }
- void SetCellType(sal_uInt16 nNewCellType) { nCellType = nNewCellType; }
-
- sal_Bool GetNotes() const { return bNotes; }
- void SetNotes(sal_Bool bNew) { bNotes = bNew; }
-
- sal_uInt16 GetAppFlag() const { return nAppFlag; }
- void SetAppFlag(sal_uInt16 nNewAppFlag) { nAppFlag = nNewAppFlag; }
-
- inline sal_Bool IsLevenshtein() const;
- void SetLevenshtein( sal_Bool bVal );
-
- inline sal_Bool IsLEVRelaxed() const;
- void SetLEVRelaxed(sal_Bool bSet);
-
- inline sal_uInt16 GetLEVOther() const;
- inline void SetLEVOther(sal_uInt16 nSet);
-
- inline sal_uInt16 GetLEVShorter() const;
- inline void SetLEVShorter(sal_uInt16 nSet);
-
- inline sal_uInt16 GetLEVLonger() const;
- inline void SetLEVLonger(sal_uInt16 nSet);
-
- void GetFromDescriptor( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor > & rDescr );
- void SetToDescriptor( ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor > & rDescr );
-
- inline const com::sun::star::util::SearchOptions &
- GetSearchOptions() const;
- inline void SetSearchOptions( const com::sun::star::util::SearchOptions &rOpt );
-
- inline sal_Int32 GetTransliterationFlags() const;
- void SetTransliterationFlags( sal_Int32 nFlags );
-
- inline sal_Bool IsMatchFullHalfWidthForms() const;
- void SetMatchFullHalfWidthForms( sal_Bool bVal );
-
- inline sal_Bool IsUseAsianOptions() const { return bAsianOptions; }
- inline void SetUseAsianOptions( sal_Bool bVal ) { bAsianOptions = bVal; }
-};
-
-const String SvxSearchItem::GetSearchString() const
-{
- return aSearchOpt.searchString;
-}
-
-void SvxSearchItem::SetSearchString(const String& rNewString)
-{
- aSearchOpt.searchString = rNewString;
-}
-
-const String SvxSearchItem::GetReplaceString() const
-{
- return aSearchOpt.replaceString;
-}
-
-void SvxSearchItem::SetReplaceString(const String& rNewString)
-{
- aSearchOpt.replaceString = rNewString;
-}
-
-sal_Bool SvxSearchItem::GetWordOnly() const
-{
- return 0 != (aSearchOpt.searchFlag &
- com::sun::star::util::SearchFlags::NORM_WORD_ONLY);
-}
-
-sal_Bool SvxSearchItem::GetExact() const
-{
- return 0 == (aSearchOpt.transliterateFlags &
- com::sun::star::i18n::TransliterationModules_IGNORE_CASE);
-}
-
-sal_Bool SvxSearchItem::GetSelection() const
-{
- return 0 != (aSearchOpt.searchFlag &
- com::sun::star::util::SearchFlags::REG_NOT_BEGINOFLINE);
-}
-
-sal_Bool SvxSearchItem::GetRegExp() const
-{
- return aSearchOpt.algorithmType == com::sun::star::util::SearchAlgorithms_REGEXP ;
-}
-
-sal_Bool SvxSearchItem::IsLEVRelaxed() const
-{
- return 0 != (aSearchOpt.searchFlag &
- com::sun::star::util::SearchFlags::LEV_RELAXED);
-}
-
-sal_uInt16 SvxSearchItem::GetLEVOther() const
-{
- return (INT16) aSearchOpt.changedChars;
-}
-
-void SvxSearchItem::SetLEVOther( sal_uInt16 nVal )
-{
- aSearchOpt.changedChars = nVal;
-}
-
-sal_uInt16 SvxSearchItem::GetLEVShorter() const
-{
- return (INT16) aSearchOpt.insertedChars;
-}
-
-void SvxSearchItem::SetLEVShorter( sal_uInt16 nVal )
-{
- aSearchOpt.insertedChars = nVal;
-}
-
-sal_uInt16 SvxSearchItem::GetLEVLonger() const
-{
- return (INT16) aSearchOpt.deletedChars;
-}
-
-void SvxSearchItem::SetLEVLonger( sal_uInt16 nVal )
-{
- aSearchOpt.deletedChars = nVal;
-}
-
-sal_Bool SvxSearchItem::IsLevenshtein() const
-{
- return aSearchOpt.algorithmType == com::sun::star::util::SearchAlgorithms_APPROXIMATE;
-}
-
-const com::sun::star::util::SearchOptions & SvxSearchItem::GetSearchOptions() const
-{
- return aSearchOpt;
-}
-
-void SvxSearchItem::SetSearchOptions( const com::sun::star::util::SearchOptions &rOpt )
-{
- aSearchOpt = rOpt;
-}
-
-sal_Int32 SvxSearchItem::GetTransliterationFlags() const
-{
- return aSearchOpt.transliterateFlags;
-}
-
-sal_Bool SvxSearchItem::IsMatchFullHalfWidthForms() const
-{
- return 0 != (aSearchOpt.transliterateFlags &
- com::sun::star::i18n::TransliterationModules_IGNORE_WIDTH);
-}
-
-#endif
-
-//#endif
-
diff --git a/sfx2/inc/sfxhelp.hxx b/sfx2/inc/sfxhelp.hxx
index ce0921c23a23..c86ac6d61e6a 100644
--- a/sfx2/inc/sfxhelp.hxx
+++ b/sfx2/inc/sfxhelp.hxx
@@ -50,6 +50,7 @@ class SFX2_DLLPUBLIC SfxHelp : public Help
private:
SAL_DLLPRIVATE virtual BOOL Start( ULONG nHelpId, const Window* pWindow );
SAL_DLLPRIVATE virtual BOOL Start( const String& rURL, const Window* pWindow );
+ SAL_DLLPRIVATE virtual void OpenHelpAgent( ULONG nHelpId );
SAL_DLLPRIVATE String GetHelpModuleName_Impl();
SAL_DLLPRIVATE String CreateHelpURL_Impl( ULONG nHelpId, const String& rModuleName );
diff --git a/sfx2/prj/d.lst b/sfx2/prj/d.lst
index fe71b1715769..0748aa19cd65 100644
--- a/sfx2/prj/d.lst
+++ b/sfx2/prj/d.lst
@@ -22,112 +22,25 @@ mkdir: %_DEST%\inc%_EXT%\sfx2
..\%COMMON_OUTDIR%\srs\sfxslots_srs.hid %COMMON_DEST%\res%_EXT%\sfxslots_srs.hid
..\util\sfx.xml %_DEST%\xml%_EXT%\sfx.xml
..\%__SRC%\misc\sfx2.csv %_DEST%\inc%_EXT%\sfx2.csv
-..\inc\sfx2\dllapi.h %_DEST%\inc%_EXT%\sfx2\dllapi.h
+
+..\inc\sfx2\*.h %_DEST%\inc%_EXT%\sfx2\*.h
+..\inc\sfx2\*.hxx %_DEST%\inc%_EXT%\sfx2\*.hxx
+..\inc\sfx2\*.hrc %_DEST%\inc%_EXT%\sfx2\*.hrc
..\sdi\sfx.sdi %_DEST%\inc%_EXT%\sfx2\sfx.sdi
..\sdi\sfxitems.sdi %_DEST%\inc%_EXT%\sfx2\sfxitems.sdi
-..\inc\sfx2\app.hxx %_DEST%\inc%_EXT%\sfx2\app.hxx
-..\inc\sfx2\basedlgs.hxx %_DEST%\inc%_EXT%\sfx2\basedlgs.hxx
-..\inc\sfx2\bindings.hxx %_DEST%\inc%_EXT%\sfx2\bindings.hxx
..\inc\brokenpackageint.hxx %_DEST%\inc%_EXT%\sfx2\brokenpackageint.hxx
-..\inc\sfx2\chalign.hxx %_DEST%\inc%_EXT%\sfx2\chalign.hxx
-..\inc\sfx2\childwin.hxx %_DEST%\inc%_EXT%\sfx2\childwin.hxx
-..\inc\sfx2\ctrlitem.hxx %_DEST%\inc%_EXT%\sfx2\ctrlitem.hxx
-..\inc\sfx2\dispatch.hxx %_DEST%\inc%_EXT%\sfx2\dispatch.hxx
-..\inc\sfx2\dinfdlg.hxx %_DEST%\inc%_EXT%\sfx2\dinfdlg.hxx
..\inc\dinfedt.hxx %_DEST%\inc%_EXT%\sfx2\dinfedt.hxx
-..\inc\sfx2\docinf.hxx %_DEST%\inc%_EXT%\sfx2\docinf.hxx
-..\inc\sfx2\docfac.hxx %_DEST%\inc%_EXT%\sfx2\docfac.hxx
-..\inc\sfx2\docfile.hxx %_DEST%\inc%_EXT%\sfx2\docfile.hxx
-..\inc\sfx2\docfilt.hxx %_DEST%\inc%_EXT%\sfx2\docfilt.hxx
-..\inc\sfx2\dockwin.hxx %_DEST%\inc%_EXT%\sfx2\dockwin.hxx
-..\inc\sfx2\doctempl.hxx %_DEST%\inc%_EXT%\sfx2\doctempl.hxx
-..\inc\sfx2\doctdlg.hxx %_DEST%\inc%_EXT%\sfx2\doctdlg.hxx
-..\inc\sfx2\event.hxx %_DEST%\inc%_EXT%\sfx2\event.hxx
-..\inc\sfx2\evntconf.hxx %_DEST%\inc%_EXT%\sfx2\evntconf.hxx
-..\inc\sfx2\filedlghelper.hxx %_DEST%\inc%_EXT%\sfx2\filedlghelper.hxx
-..\inc\sfx2\fcontnr.hxx %_DEST%\inc%_EXT%\sfx2\fcontnr.hxx
-..\inc\sfx2\frame.hxx %_DEST%\inc%_EXT%\sfx2\frame.hxx
-..\inc\sfx2\frmdescr.hxx %_DEST%\inc%_EXT%\sfx2\frmdescr.hxx
-..\inc\sfx2\frmhtml.hxx %_DEST%\inc%_EXT%\sfx2\frmhtml.hxx
-..\inc\sfx2\frmhtmlw.hxx %_DEST%\inc%_EXT%\sfx2\frmhtmlw.hxx
-..\inc\sfx2\genlink.hxx %_DEST%\inc%_EXT%\sfx2\genlink.hxx
-..\inc\sfx2\hintpost.hxx %_DEST%\inc%_EXT%\sfx2\hintpost.hxx
..\inc\imgmgr.hxx %_DEST%\inc%_EXT%\sfx2\imgmgr.hxx
-..\inc\sfx2\imgdef.hxx %_DEST%\inc%_EXT%\sfx2\imgdef.hxx
-..\inc\sfx2\ipclient.hxx %_DEST%\inc%_EXT%\sfx2\ipclient.hxx
-..\inc\sfx2\macrconf.hxx %_DEST%\inc%_EXT%\sfx2\macrconf.hxx
-..\inc\sfx2\topfrm.hxx %_DEST%\inc%_EXT%\sfx2\topfrm.hxx
-..\inc\sfx2\mgetempl.hxx %_DEST%\inc%_EXT%\sfx2\mgetempl.hxx
..\inc\mieclip.hxx %_DEST%\inc%_EXT%\sfx2\mieclip.hxx
-..\inc\sfx2\minarray.hxx %_DEST%\inc%_EXT%\sfx2\minarray.hxx
..\inc\minfitem.hxx %_DEST%\inc%_EXT%\sfx2\minfitem.hxx
-..\inc\sfx2\minstack.hxx %_DEST%\inc%_EXT%\sfx2\minstack.hxx
-..\inc\sfx2\mnuitem.hxx %_DEST%\inc%_EXT%\sfx2\mnuitem.hxx
-..\inc\sfx2\module.hxx %_DEST%\inc%_EXT%\sfx2\module.hxx
-..\inc\sfx2\msg.hxx %_DEST%\inc%_EXT%\sfx2\msg.hxx
-..\inc\sfx2\mnumgr.hxx %_DEST%\inc%_EXT%\sfx2\mnumgr.hxx
-..\inc\sfx2\newstyle.hxx %_DEST%\inc%_EXT%\sfx2\newstyle.hxx
-..\inc\sfx2\new.hxx %_DEST%\inc%_EXT%\sfx2\new.hxx
-..\inc\sfx2\navigat.hxx %_DEST%\inc%_EXT%\sfx2\navigat.hxx
-..\inc\sfx2\msgpool.hxx %_DEST%\inc%_EXT%\sfx2\msgpool.hxx
-..\inc\sfx2\passwd.hxx %_DEST%\inc%_EXT%\sfx2\passwd.hxx
-..\inc\sfx2\prnmon.hxx %_DEST%\inc%_EXT%\sfx2\prnmon.hxx
-..\inc\sfx2\objface.hxx %_DEST%\inc%_EXT%\sfx2\objface.hxx
-..\inc\sfx2\objitem.hxx %_DEST%\inc%_EXT%\sfx2\objitem.hxx
-..\inc\sfx2\signaturestate.hxx %_DEST%\inc%_EXT%\sfx2\signaturestate.hxx
-..\inc\sfx2\docmacromode.hxx %_DEST%\inc%_EXT%\sfx2\docmacromode.hxx
-..\inc\sfx2\userinputinterception.hxx %_DEST%\inc%_EXT%\sfx2\userinputinterception.hxx
-..\inc\sfx2\docstoragemodifylistener.hxx %_DEST%\inc%_EXT%\sfx2\docstoragemodifylistener.hxx
-..\inc\sfx2\sfxmodelfactory.hxx %_DEST%\inc%_EXT%\sfx2\sfxmodelfactory.hxx
-..\inc\sfx2\objsh.hxx %_DEST%\inc%_EXT%\sfx2\objsh.hxx
-..\inc\sfx2\printer.hxx %_DEST%\inc%_EXT%\sfx2\printer.hxx
-..\inc\sfx2\printopt.hxx %_DEST%\inc%_EXT%\sfx2\printopt.hxx
-..\inc\sfx2\progress.hxx %_DEST%\inc%_EXT%\sfx2\progress.hxx
-..\inc\sfx2\request.hxx %_DEST%\inc%_EXT%\sfx2\request.hxx
-..\inc\sfx2\sfx.hrc %_DEST%\inc%_EXT%\sfx2\sfx.hrc
-..\inc\sfx2\sfxdefs.hxx %_DEST%\inc%_EXT%\sfx2\sfxdefs.hxx
..\inc\sfxhelp.hxx %_DEST%\inc%_EXT%\sfx2\sfxhelp.hxx
-..\inc\sfx2\sfxhtml.hxx %_DEST%\inc%_EXT%\sfx2\sfxhtml.hxx
-..\inc\sfx2\sfxsids.hrc %_DEST%\inc%_EXT%\sfx2\sfxsids.hrc
-..\inc\sfx2\shell.hxx %_DEST%\inc%_EXT%\sfx2\shell.hxx
..\inc\stbitem.hxx %_DEST%\inc%_EXT%\sfx2\stbitem.hxx
-..\inc\sfx2\styfitem.hxx %_DEST%\inc%_EXT%\sfx2\styfitem.hxx
-..\inc\sfx2\styledlg.hxx %_DEST%\inc%_EXT%\sfx2\styledlg.hxx
-..\inc\sfx2\tabdlg.hxx %_DEST%\inc%_EXT%\sfx2\tabdlg.hxx
-..\inc\sfx2\tbxctrl.hxx %_DEST%\inc%_EXT%\sfx2\tbxctrl.hxx
-..\inc\sfx2\templdlg.hxx %_DEST%\inc%_EXT%\sfx2\templdlg.hxx
..\inc\tplpitem.hxx %_DEST%\inc%_EXT%\sfx2\tplpitem.hxx
-..\inc\sfx2\viewfrm.hxx %_DEST%\inc%_EXT%\sfx2\viewfrm.hxx
-..\inc\sfx2\viewsh.hxx %_DEST%\inc%_EXT%\sfx2\viewsh.hxx
..\inc\viewfac.hxx %_DEST%\inc%_EXT%\sfx2\viewfac.hxx
-..\inc\sfx2\appuno.hxx %_DEST%\inc%_EXT%\sfx2\appuno.hxx
-..\inc\sfx2\sfxuno.hxx %_DEST%\inc%_EXT%\sfx2\sfxuno.hxx
-..\inc\sfx2\sfxbasemodel.hxx %_DEST%\inc%_EXT%\sfx2\sfxbasemodel.hxx
-..\inc\sfx2\sfxbasecontroller.hxx %_DEST%\inc%_EXT%\sfx2\sfxbasecontroller.hxx
-..\inc\sfx2\unoctitm.hxx %_DEST%\inc%_EXT%\sfx2\unoctitm.hxx
-..\inc\sfx2\srchitem.hxx %_DEST%\inc%_EXT%\sfx2\srchitem.hxx
-..\inc\sfx2\srchdefs.hxx %_DEST%\inc%_EXT%\sfx2\srchdefs.hxx
-..\inc\sfx2\cntids.hrc %_DEST%\inc%_EXT%\sfx2\cntids.hrc
..\inc\basmgr.hxx %_DEST%\inc%_EXT%\sfx2\basmgr.hxx
..\inc\imagemgr.hxx %_DEST%\inc%_EXT%\sfx2\imagemgr.hxx
-..\inc\sfx2\sfxdlg.hxx %_DEST%\inc%_EXT%\sfx2\sfxdlg.hxx
-..\inc\sfx2\dialogs.hrc %_DEST%\inc%_EXT%\sfx2\dialogs.hrc
-..\inc\sfx2\itemwrapper.hxx %_DEST%\inc%_EXT%\sfx2\itemwrapper.hxx
-..\inc\sfx2\controlwrapper.hxx %_DEST%\inc%_EXT%\sfx2\controlwrapper.hxx
-..\inc\sfx2\itemconnect.hxx %_DEST%\inc%_EXT%\sfx2\itemconnect.hxx
-..\inc\sfx2\lnkbase.hxx %_DEST%\inc%_EXT%\sfx2\lnkbase.hxx
-..\inc\sfx2\linkmgr.hxx %_DEST%\inc%_EXT%\sfx2\linkmgr.hxx
-..\inc\sfx2\linksrc.hxx %_DEST%\inc%_EXT%\sfx2\linksrc.hxx
-..\inc\sfx2\querystatus.hxx %_DEST%\inc%_EXT%\sfx2\querystatus.hxx
-..\inc\sfx2\sfxstatuslistener.hxx %_DEST%\inc%_EXT%\sfx2\sfxstatuslistener.hxx
..\inc\QuerySaveDocument.hxx %_DEST%\inc%_EXT%\sfx2\QuerySaveDocument.hxx
..\inc\mailmodelapi.hxx %_DEST%\inc%_EXT%\sfx2\mailmodelapi.hxx
..\inc\docinsert.hxx %_DEST%\inc%_EXT%\sfx2\docinsert.hxx
-..\inc\sfx2\layout.hxx %_DEST%\inc%_EXT%\sfx2\layout.hxx
-..\inc\sfx2\layout-tabdlg.hxx %_DEST%\inc%_EXT%\sfx2\layout-tabdlg.hxx
-..\inc\sfx2\layout-post.hxx %_DEST%\inc%_EXT%\sfx2\layout-post.hxx
-..\inc\sfx2\layout-pre.hxx %_DEST%\inc%_EXT%\sfx2\layout-pre.hxx
-..\inc\sfx2\XmlIdRegistry.hxx %_DEST%\inc%_EXT%\sfx2\XmlIdRegistry.hxx
-..\inc\sfx2\DocumentMetadataAccess.hxx %_DEST%\inc%_EXT%\sfx2\DocumentMetadataAccess.hxx
-..\inc\sfx2\Metadatable.hxx %_DEST%\inc%_EXT%\sfx2\Metadatable.hxx
+
diff --git a/sfx2/source/appl/app.hrc b/sfx2/source/appl/app.hrc
index c08f46effc81..70dca1cf1d6b 100644
--- a/sfx2/source/appl/app.hrc
+++ b/sfx2/source/appl/app.hrc
@@ -258,6 +258,18 @@
#define STR_DDE_ERROR (RID_SFX_APP_START + 193)
#define RID_SECURITY_WARNING_NO_HYPERLINKS (RID_SFX_APP_START + 194)
+#define RID_SVXSTR_FILELINK (RID_SFX_APP_START + 195)
+#define RID_SVXSTR_GRAFIKLINK (RID_SFX_APP_START + 196)
+#define RID_SVXSTR_EDITGRFLINK (RID_SFX_APP_START + 197)
+
+// strings for error messsages of OpenGraphics dialog
+#define RID_SVXSTR_GRFILTER_OPENERROR (RID_SFX_APP_START + 198)
+#define RID_SVXSTR_GRFILTER_IOERROR (RID_SFX_APP_START + 199)
+#define RID_SVXSTR_GRFILTER_FORMATERROR (RID_SFX_APP_START + 200)
+#define RID_SVXSTR_GRFILTER_VERSIONERROR (RID_SFX_APP_START + 201)
+#define RID_SVXSTR_GRFILTER_FILTERERROR (RID_SFX_APP_START + 202)
+#define RID_SVXSTR_GRFILTER_TOOBIG (RID_SFX_APP_START + 203)
+
#define MD_DDE_LINKEDIT (RID_SFX_APP_START + 1)
#endif // #ifndef _SFX_APP_HRC
diff --git a/sfx2/source/appl/app.src b/sfx2/source/appl/app.src
index 463788d2d6d0..0530b5aeb9db 100644
--- a/sfx2/source/appl/app.src
+++ b/sfx2/source/appl/app.src
@@ -1061,3 +1061,42 @@ Image IMG_MISSING_4
{
ImageBitmap = Bitmap { File = "sn064.bmp" ; };
};
+
+String RID_SVXSTR_FILELINK
+{
+ Text [ en-US ] = "Document" ;
+};
+String RID_SVXSTR_GRAFIKLINK
+{
+ Text [ en-US ] = "Graphic" ;
+};
+String RID_SVXSTR_EDITGRFLINK
+{
+ Text [ en-US ] = "Link graphics" ;
+};
+
+String RID_SVXSTR_GRFILTER_OPENERROR
+{
+ Text [ en-US ] = "Graphics file cannot be opened" ;
+};
+String RID_SVXSTR_GRFILTER_IOERROR
+{
+ Text [ en-US ] = "Graphics file cannot be read" ;
+};
+String RID_SVXSTR_GRFILTER_FORMATERROR
+{
+ Text [ en-US ] = "Unknown graphics format" ;
+};
+String RID_SVXSTR_GRFILTER_VERSIONERROR
+{
+ Text [ en-US ] = "This version of the graphics file is not supported" ;
+};
+String RID_SVXSTR_GRFILTER_FILTERERROR
+{
+ Text [ en-US ] = "Graphics filter not found" ;
+};
+String RID_SVXSTR_GRFILTER_TOOBIG
+{
+ Text [ en-US ] = "Not enough memory to insert graphic" ;
+};
+
diff --git a/sfx2/source/appl/appbas.cxx b/sfx2/source/appl/appbas.cxx
index 4fe352c3c4bc..f2687fcb34ec 100644
--- a/sfx2/source/appl/appbas.cxx
+++ b/sfx2/source/appl/appbas.cxx
@@ -89,7 +89,7 @@
#define ITEMID_SEARCH SID_SEARCH_ITEM
-#include <sfx2/srchitem.hxx>
+#include <svl/srchitem.hxx>
#include <vos/socket.hxx>
#define SFX_TYPEMAP
diff --git a/sfx2/source/appl/appinit.cxx b/sfx2/source/appl/appinit.cxx
index 837ccc461586..f9e8273c47e4 100644
--- a/sfx2/source/appl/appinit.cxx
+++ b/sfx2/source/appl/appinit.cxx
@@ -276,8 +276,6 @@ FASTBOOL SfxApplication::Initialize_Impl()
new SfxErrorHandler(
RID_SO_ERROR_HANDLER, ERRCODE_AREA_SO, ERRCODE_AREA_SO_END);
new SfxErrorHandler(
- (RID_SJ_START +1), ERRCODE_AREA_JAVA, ERRCODE_AREA_JAVA_END);
- new SfxErrorHandler(
RID_BASIC_START, ERRCODE_AREA_SBX, ERRCODE_AREA_SBX_END );
// diverse Pointer
diff --git a/sfx2/source/appl/fileobj.cxx b/sfx2/source/appl/fileobj.cxx
new file mode 100644
index 000000000000..a414ccc8b07c
--- /dev/null
+++ b/sfx2/source/appl/fileobj.cxx
@@ -0,0 +1,719 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: fileobj.cxx,v $
+ * $Revision: 1.24 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sfx2.hxx"
+
+#include <vcl/wrkwin.hxx>
+#include <vcl/msgbox.hxx>
+#include <tools/urlobj.hxx>
+#include <tools/stream.hxx>
+#include <sot/formats.hxx>
+#include <svtools/filter.hxx>
+#include <sfx2/lnkbase.hxx>
+#include <sfx2/app.hxx>
+#include <sfx2/progress.hxx>
+#include <sfx2/docfilt.hxx>
+#include <sfx2/filedlghelper.hxx>
+#include <sot/exchange.hxx>
+#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <sfx2/docfac.hxx>
+#include <com/sun/star/document/XTypeDetection.hpp>
+#include <comphelper/mediadescriptor.hxx>
+#include <comphelper/processfactory.hxx>
+#include <sfx2/linkmgr.hxx>
+#include <sfx2/opengrf.hxx>
+#include "sfxresid.hxx"
+#include "fileobj.hxx"
+#include "app.hrc"
+
+namespace css = ::com::sun::star;
+
+#define FILETYPE_TEXT 1
+#define FILETYPE_GRF 2
+#define FILETYPE_OBJECT 3
+
+struct Impl_DownLoadData
+{
+ Graphic aGrf;
+ Timer aTimer;
+
+ Impl_DownLoadData( const Link& rLink )
+ {
+ aTimer.SetTimeout( 100 );
+ aTimer.SetTimeoutHdl( rLink );
+ aGrf.SetDefaultType();
+ }
+ ~Impl_DownLoadData()
+ {
+ aTimer.Stop();
+ }
+};
+
+// --------------------------------------------------------------------------
+
+
+SvFileObject::SvFileObject() :
+ pDownLoadData( NULL ), pOldParent( NULL ), nType( FILETYPE_TEXT )
+{
+ bLoadAgain = TRUE;
+ bSynchron = bLoadError = bWaitForData = bDataReady = bNativFormat =
+ bClearMedium = bStateChangeCalled = bInCallDownLoad = FALSE;
+}
+
+
+SvFileObject::~SvFileObject()
+{
+ if ( xMed.Is() )
+ {
+ xMed->SetDataAvailableLink( Link() );
+ xMed->SetDoneLink( Link() );
+ xMed.Clear();
+ }
+ delete pDownLoadData;
+}
+
+
+BOOL SvFileObject::GetData( ::com::sun::star::uno::Any & rData,
+ const String & rMimeType,
+ BOOL bGetSynchron )
+{
+ ULONG nFmt = SotExchange::GetFormatStringId( rMimeType );
+ switch( nType )
+ {
+ case FILETYPE_TEXT:
+ if( FORMAT_FILE == nFmt )
+ {
+ // das Medium muss in der Applikation geoffnet werden, um die
+ // relativen Datei Links aufzuloesen!!!! Wird ueber den
+ // LinkManager und damit von dessen Storage erledigt.
+ rData <<= rtl::OUString( sFileNm );
+ }
+ break;
+
+ case FILETYPE_GRF:
+ if( !bLoadError )
+ {
+ SfxMediumRef xTmpMed;
+
+ if( FORMAT_GDIMETAFILE == nFmt || FORMAT_BITMAP == nFmt ||
+ SOT_FORMATSTR_ID_SVXB == nFmt )
+ {
+ Graphic aGrf;
+
+ //JP 15.07.98: Bug 52959
+ // falls das Nativformat doch erwuenscht ist, muss am
+ // Ende das Flag zurueckgesetzt werden.
+// wird einzig und allein im sw/ndgrf.cxx benutzt, wenn der Link vom
+// GraphicNode entfernt wird.
+ BOOL bOldNativFormat = bNativFormat;
+//!!?? bNativFormat = 0 != (ASPECT_ICON & pSvData->GetAspect());
+
+ // falls gedruckt werden soll, warten wir bis die
+ // Daten vorhanden sind
+ if( bGetSynchron )
+ {
+ // testhalber mal ein LoadFile rufen um das nach-
+ // laden ueberahaupt anzustossen
+ if( !xMed.Is() )
+ LoadFile_Impl();
+
+ if( !bInCallDownLoad )
+ {
+ xTmpMed = xMed;
+ while( bWaitForData )
+ Application::Reschedule();
+
+ xMed = xTmpMed;
+ bClearMedium = TRUE;
+ }
+ }
+
+ if( pDownLoadData ||
+ ( !bWaitForData && ( xMed.Is() || // wurde als URL geladen
+ ( bSynchron && LoadFile_Impl() && xMed.Is() ) )) )
+ {
+ // falls
+
+ // falls es uebers Internet gesogen wurde, nicht
+ // wieder versuchen
+ if( !bGetSynchron )
+ bLoadAgain = !xMed->IsRemote();
+ bLoadError = !GetGraphic_Impl( aGrf, xMed->GetInStream() );
+ }
+ else if( !LoadFile_Impl() ||
+ !GetGraphic_Impl( aGrf, xMed.Is() ? xMed->GetInStream() : 0 ))
+ {
+ if( !xMed.Is() )
+ break;
+ aGrf.SetDefaultType();
+ }
+
+ if( SOT_FORMATSTR_ID_SVXB != nFmt )
+ nFmt = (bLoadError || GRAPHIC_BITMAP == aGrf.GetType())
+ ? FORMAT_BITMAP
+ : FORMAT_GDIMETAFILE;
+
+ SvMemoryStream aMemStm( 0, 65535 );
+ switch ( nFmt )
+ {
+ case SOT_FORMATSTR_ID_SVXB:
+ if( GRAPHIC_NONE != aGrf.GetType() )
+ {
+ aMemStm.SetVersion( SOFFICE_FILEFORMAT_50 );
+ aMemStm << aGrf;
+ }
+ break;
+
+ case FORMAT_BITMAP:
+ if( !aGrf.GetBitmap().IsEmpty())
+ aMemStm << aGrf.GetBitmap();
+ break;
+
+ default:
+ if( aGrf.GetGDIMetaFile().GetActionCount() )
+ {
+ GDIMetaFile aMeta( aGrf.GetGDIMetaFile() );
+ aMeta.Write( aMemStm );
+ }
+ }
+ rData <<= css::uno::Sequence< sal_Int8 >( (sal_Int8*) aMemStm.GetData(),
+ aMemStm.Seek( STREAM_SEEK_TO_END ) );
+
+ bNativFormat = bOldNativFormat;
+
+ // alles fertig?
+ if( xMed.Is() && !bSynchron && bClearMedium )
+ {
+ xMed.Clear();
+ bClearMedium = FALSE;
+ }
+ }
+ }
+ break;
+ case FILETYPE_OBJECT:
+ // TODO/LATER: possibility to insert a new object
+ rData <<= rtl::OUString( sFileNm );
+ break;
+ }
+ return sal_True/*0 != aTypeList.Count()*/;
+}
+
+
+
+
+BOOL SvFileObject::Connect( sfx2::SvBaseLink* pLink )
+{
+ if( !pLink || !pLink->GetLinkManager() )
+ return FALSE;
+
+ // teste doch mal, ob nicht ein anderer Link mit der gleichen
+ // Verbindung schon existiert
+ pLink->GetLinkManager()->GetDisplayNames( pLink, 0, &sFileNm, 0, &sFilter );
+
+ if( OBJECT_CLIENT_GRF == pLink->GetObjType() )
+ {
+ SfxObjectShellRef pShell = pLink->GetLinkManager()->GetPersist();
+ if( pShell.Is() )
+ {
+ if( pShell->IsAbortingImport() )
+ return FALSE;
+
+ if( pShell->GetMedium() )
+ sReferer = pShell->GetMedium()->GetName();
+ }
+ }
+
+ switch( pLink->GetObjType() )
+ {
+ case OBJECT_CLIENT_GRF:
+ nType = FILETYPE_GRF;
+ bSynchron = pLink->IsSynchron();
+ break;
+
+ case OBJECT_CLIENT_FILE:
+ nType = FILETYPE_TEXT;
+ break;
+
+ case OBJECT_CLIENT_OLE:
+ nType = FILETYPE_OBJECT;
+ // TODO/LATER: introduce own type to be used for exchanging
+ break;
+
+ default:
+ return FALSE;
+ }
+
+ SetUpdateTimeout( 0 );
+
+ // und jetzt bei diesem oder gefundenem Pseudo-Object anmelden
+ AddDataAdvise( pLink, SotExchange::GetFormatMimeType( pLink->GetContentType()), 0 );
+ return TRUE;
+}
+
+
+BOOL SvFileObject::LoadFile_Impl()
+{
+ // wir sind noch im Laden!!
+ if( bWaitForData || !bLoadAgain || xMed.Is() || pDownLoadData )
+ return FALSE;
+
+ // z.Z. nur auf die aktuelle DocShell
+ xMed = new SfxMedium( sFileNm, STREAM_STD_READ, TRUE );
+ SvLinkSource::StreamToLoadFrom aStreamToLoadFrom =
+ getStreamToLoadFrom();
+ xMed->setStreamToLoadFrom(
+ aStreamToLoadFrom.m_xInputStreamToLoadFrom,
+ aStreamToLoadFrom.m_bIsReadOnly);
+ // setStreamToLoadFrom(0,0);
+ // Keinen Eintrag im Roter Button Menu
+ xMed->SetDontCreateCancellable();
+ if( sReferer.Len() )
+ xMed->SetReferer( sReferer );
+
+ if( !bSynchron )
+ {
+ bLoadAgain = bDataReady = bInNewData = FALSE;
+ bWaitForData = TRUE;
+
+ SfxMediumRef xTmpMed = xMed;
+ xMed->SetDataAvailableLink( STATIC_LINK( this, SvFileObject, LoadGrfNewData_Impl ) );
+ bInCallDownLoad = TRUE;
+ xMed->DownLoad( STATIC_LINK( this, SvFileObject, LoadGrfReady_Impl ) );
+ bInCallDownLoad = FALSE;
+
+ bClearMedium = !xMed.Is();
+ if( bClearMedium )
+ xMed = xTmpMed; // falls gleich im DownLoad schon schluss ist
+ return bDataReady;
+ }
+
+ bWaitForData = TRUE;
+ bDataReady = bInNewData = FALSE;
+ xMed->DownLoad();
+ bLoadAgain = !xMed->IsRemote();
+ bWaitForData = FALSE;
+
+ // Grafik ist fertig, also DataChanged von der Statusaederung schicken:
+ SendStateChg_Impl( xMed->GetInStream() && xMed->GetInStream()->GetError()
+ ? sfx2::LinkManager::STATE_LOAD_ERROR : sfx2::LinkManager::STATE_LOAD_OK );
+ return TRUE;
+}
+
+
+BOOL SvFileObject::GetGraphic_Impl( Graphic& rGrf, SvStream* pStream )
+{
+ GraphicFilter* pGF = GraphicFilter::GetGraphicFilter();
+
+ const USHORT nFilter = sFilter.Len() && pGF->GetImportFormatCount()
+ ? pGF->GetImportFormatNumber( sFilter )
+ : GRFILTER_FORMAT_DONTKNOW;
+
+ String aEmptyStr;
+ int nRes;
+
+ // vermeiden, dass ein native Link angelegt wird
+ if( ( !pStream || !pDownLoadData ) && !rGrf.IsLink() &&
+ !rGrf.GetContext() && !bNativFormat )
+ rGrf.SetLink( GfxLink() );
+
+ if( !pStream )
+ nRes = xMed.Is() ? GRFILTER_OPENERROR
+ : pGF->ImportGraphic( rGrf, INetURLObject(sFileNm),
+ nFilter );
+ else if( !pDownLoadData )
+ {
+ pStream->Seek( STREAM_SEEK_TO_BEGIN );
+ nRes = pGF->ImportGraphic( rGrf, aEmptyStr, *pStream, nFilter );
+ }
+ else
+ {
+ nRes = pGF->ImportGraphic( pDownLoadData->aGrf, aEmptyStr,
+ *pStream, nFilter );
+
+ if( pDownLoadData )
+ {
+ rGrf = pDownLoadData->aGrf;
+ if( GRAPHIC_NONE == rGrf.GetType() )
+ rGrf.SetDefaultType();
+
+
+ if( !pDownLoadData->aGrf.GetContext() )
+ {
+ xMed->SetDataAvailableLink( Link() );
+// xMed->SetDoneLink( Link() );
+ delete pDownLoadData, pDownLoadData = 0;
+ bDataReady = TRUE;
+ bWaitForData = FALSE;
+ }
+ else if( FALSE )
+ {
+ // Timer aufsetzen, um zurueck zukehren
+ pDownLoadData->aTimer.Start();
+ }
+ }
+ }
+
+ if( pStream && ERRCODE_IO_PENDING == pStream->GetError() )
+ pStream->ResetError();
+
+#ifdef DBG_UTIL
+ if( nRes )
+ {
+ if( xMed.Is() && !pStream )
+ {
+ DBG_WARNING3( "GrafikFehler [%d] - [%s] URL[%s]",
+ nRes,
+ xMed->GetPhysicalName().GetBuffer(),
+ sFileNm.GetBuffer() );
+ }
+ else
+ {
+ DBG_WARNING2( "GrafikFehler [%d] - [%s]",
+ nRes, sFileNm.GetBuffer() );
+ }
+ }
+#endif
+
+ return GRFILTER_OK == nRes;
+}
+
+/** detect the filter of the given file
+
+ @param _rURL
+ specifies the URL of the file which filter is to detected.<br/>
+ If the URL doesn't denote a valid (existent and accessible) file, the
+ request is silently dropped.
+*/
+String impl_getFilter( const String& _rURL )
+{
+ String sFilter;
+ if ( _rURL.Len() == 0 )
+ return sFilter;
+
+ try
+ {
+ css::uno::Reference< ::com::sun::star::document::XTypeDetection > xTypeDetection(
+ ::comphelper::getProcessServiceFactory()->createInstance(
+ ::rtl::OUString::createFromAscii("com.sun.star.document.TypeDetection") ),
+ css::uno::UNO_QUERY );
+ if ( xTypeDetection.is() )
+ {
+ ::comphelper::MediaDescriptor aDescr;
+ aDescr[ ::comphelper::MediaDescriptor::PROP_URL() ] <<= ::rtl::OUString( _rURL );
+ css::uno::Sequence< css::beans::PropertyValue > aDescrList =
+ aDescr.getAsConstPropertyValueList();
+ ::rtl::OUString sType = xTypeDetection->queryTypeByDescriptor( aDescrList, sal_True );
+ if ( sType.getLength() )
+ {
+ css::uno::Reference< css::container::XNameAccess > xTypeCont( xTypeDetection,
+ css::uno::UNO_QUERY );
+ if ( xTypeCont.is() )
+ {
+ ::comphelper::SequenceAsHashMap lTypeProps( xTypeCont->getByName( sType ) );
+ sFilter = lTypeProps.getUnpackedValueOrDefault(
+ ::rtl::OUString::createFromAscii("PreferredFilter"), ::rtl::OUString() );
+ }
+ }
+ }
+ }
+ catch( const css::uno::Exception& )
+ {
+ }
+
+ return sFilter;
+}
+
+void SvFileObject::Edit( Window* pParent, sfx2::SvBaseLink* pLink, const Link& rEndEditHdl )
+{
+ aEndEditLink = rEndEditHdl;
+ String sFile, sRange, sTmpFilter;
+ if( pLink && pLink->GetLinkManager() )
+ {
+ pLink->GetLinkManager()->GetDisplayNames( pLink, 0, &sFile, &sRange, &sTmpFilter );
+
+ switch( pLink->GetObjType() )
+ {
+ case OBJECT_CLIENT_GRF:
+ {
+ nType = FILETYPE_GRF; // falls noch nicht gesetzt
+
+ SvxOpenGraphicDialog aDlg(SfxResId(RID_SVXSTR_EDITGRFLINK));
+ aDlg.EnableLink(sal_False);
+ aDlg.SetPath( sFile, sal_True );
+ aDlg.SetCurrentFilter( sTmpFilter );
+
+ if( !aDlg.Execute() )
+ {
+ sFile = aDlg.GetPath();
+ sFile += ::sfx2::cTokenSeperator;
+ sFile += ::sfx2::cTokenSeperator;
+ sFile += aDlg.GetCurrentFilter();
+
+ if ( aEndEditLink.IsSet() )
+ aEndEditLink.Call( &sFile );
+ }
+ else
+ sFile.Erase();
+ }
+ break;
+
+ case OBJECT_CLIENT_OLE:
+ {
+ nType = FILETYPE_OBJECT; // if not set already
+ pOldParent = Application::GetDefDialogParent();
+ Application::SetDefDialogParent( pParent );
+
+ ::sfx2::FileDialogHelper* pFileDlg =
+ pLink->GetFileDialog( (SFXWB_INSERT | WB_3DLOOK), String() );
+ pFileDlg->StartExecuteModal( LINK( this, SvFileObject, DialogClosedHdl ) );
+ }
+ break;
+
+ case OBJECT_CLIENT_FILE:
+ {
+ nType = FILETYPE_TEXT; // if not set already
+ pOldParent = Application::GetDefDialogParent();
+ Application::SetDefDialogParent( pParent );
+
+ String sFactory;
+ SfxObjectShell* pShell = pLink->GetLinkManager()->GetPersist();
+ if ( pShell )
+ sFactory = pShell->GetFactory().GetFactoryName();
+
+ ::sfx2::FileDialogHelper* pFileDlg =
+ pLink->GetFileDialog( (SFXWB_INSERT | WB_3DLOOK), sFactory );
+ pFileDlg->StartExecuteModal( LINK( this, SvFileObject, DialogClosedHdl ) );
+ }
+ break;
+
+ default:
+ sFile.Erase();
+ }
+ }
+}
+
+IMPL_STATIC_LINK( SvFileObject, LoadGrfReady_Impl, void*, EMPTYARG )
+{
+ // wenn wir von hier kommen, kann es kein Fehler mehr sein
+ pThis->bLoadError = FALSE;
+ pThis->bWaitForData = FALSE;
+ pThis->bInCallDownLoad = FALSE;
+
+ if( !pThis->bInNewData && !pThis->bDataReady )
+ {
+ // Grafik ist fertig, also DataChanged von der Status-
+ // aederung schicken:
+ pThis->bDataReady = TRUE;
+ pThis->SendStateChg_Impl( sfx2::LinkManager::STATE_LOAD_OK );
+
+ // und dann nochmal die Daten senden
+ pThis->NotifyDataChanged();
+ }
+
+ if( pThis->bDataReady )
+ {
+ pThis->bLoadAgain = TRUE;
+ if( pThis->xMed.Is() )
+ {
+ pThis->xMed->SetDataAvailableLink( Link() );
+ pThis->xMed->SetDoneLink( Link() );
+
+ Application::PostUserEvent(
+ STATIC_LINK( pThis, SvFileObject, DelMedium_Impl ),
+ new SfxMediumRef( pThis->xMed ));
+ pThis->xMed.Clear();
+ }
+ if( pThis->pDownLoadData )
+ delete pThis->pDownLoadData, pThis->pDownLoadData = 0;
+ }
+
+ return 0;
+}
+
+IMPL_STATIC_LINK( SvFileObject, DelMedium_Impl, SfxMediumRef*, pDelMed )
+{
+ (void)pThis;
+ delete pDelMed;
+ return 0;
+}
+
+IMPL_STATIC_LINK( SvFileObject, LoadGrfNewData_Impl, void*, EMPTYARG )
+{
+ // wenn wir von hier kommen, kann es kein Fehler mehr sein
+ if( pThis->bInNewData )
+ return 0;
+
+ pThis->bInNewData = TRUE;
+ pThis->bLoadError = FALSE;
+
+ if( !pThis->pDownLoadData )
+ {
+ pThis->pDownLoadData = new Impl_DownLoadData(
+ STATIC_LINK( pThis, SvFileObject, LoadGrfNewData_Impl ) );
+
+ // Null-Link setzen, damit keine temporaeren Grafiken
+ // rausgeswapt werden; der Filter prueft, ob schon
+ // ein Link gesetzt ist => falls dies zutrifft, wird
+ // _kein_ neuer Link gesetzt; der Link muss hier gesetzt werden,
+ // (bevor das erste Mal gefiltert wird), um zu verhindern,
+ // dass der Kontext zurueckgesetzt wird (aynchrones Laden)
+ if( !pThis->bNativFormat )
+ {
+ static GfxLink aDummyLink;
+ pThis->pDownLoadData->aGrf.SetLink( aDummyLink );
+ }
+ }
+
+ pThis->NotifyDataChanged();
+
+ SvStream* pStrm = pThis->xMed.Is() ? pThis->xMed->GetInStream() : 0;
+ if( pStrm && pStrm->GetError() )
+ {
+ if( ERRCODE_IO_PENDING == pStrm->GetError() )
+ pStrm->ResetError();
+
+ // im DataChanged ein DataReady?
+ else if( pThis->bWaitForData && pThis->pDownLoadData )
+ {
+ pThis->bLoadError = TRUE;
+ }
+ }
+
+ if( pThis->bDataReady )
+ {
+ // Grafik ist fertig, also DataChanged von der Status-
+ // aederung schicken:
+ pThis->SendStateChg_Impl( pStrm->GetError() ? sfx2::LinkManager::STATE_LOAD_ERROR : sfx2::LinkManager::STATE_LOAD_OK );
+ }
+
+ pThis->bInNewData = FALSE;
+ return 0;
+}
+
+IMPL_LINK( SvFileObject, DialogClosedHdl, sfx2::FileDialogHelper*, _pFileDlg )
+{
+ String sFile;
+ Application::SetDefDialogParent( pOldParent );
+
+ if ( FILETYPE_TEXT == nType || FILETYPE_OBJECT == nType )
+ {
+ if ( _pFileDlg && _pFileDlg->GetError() == ERRCODE_NONE )
+ {
+ String sURL( _pFileDlg->GetPath() );
+ sFile = sURL;
+ sFile += ::sfx2::cTokenSeperator;
+ sFile += ::sfx2::cTokenSeperator;
+ sFile += impl_getFilter( sURL );
+ }
+ }
+ else
+ {
+ DBG_ERRORFILE( "SvFileObject::DialogClosedHdl(): wrong file type" );
+ }
+
+ if ( aEndEditLink.IsSet() )
+ aEndEditLink.Call( &sFile );
+ return 0;
+}
+
+/* [Beschreibung]
+
+ Die Methode stellt fest, ob aus einem DDE-Object die Daten gelesen
+ werden kann.
+ Zurueckgegeben wird:
+ ERRCODE_NONE wenn sie komplett gelesen wurde
+ ERRCODE_SO_PENDING wenn sie noch nicht komplett gelesen wurde
+ ERRCODE_SO_FALSE sonst
+*/
+BOOL SvFileObject::IsPending() const
+{
+ return FILETYPE_GRF == nType && !bLoadError &&
+ ( pDownLoadData || bWaitForData );
+}
+BOOL SvFileObject::IsDataComplete() const
+{
+ BOOL bRet = FALSE;
+ if( FILETYPE_GRF != nType )
+ bRet = TRUE;
+ else if( !bLoadError && ( !bWaitForData && !pDownLoadData ))
+ {
+ SvFileObject* pThis = (SvFileObject*)this;
+ if( bDataReady ||
+ ( bSynchron && pThis->LoadFile_Impl() && xMed.Is() ) )
+ bRet = TRUE;
+ else
+ {
+ INetURLObject aUrl( sFileNm );
+ if( aUrl.HasError() ||
+ INET_PROT_NOT_VALID == aUrl.GetProtocol() )
+ bRet = TRUE;
+ }
+ }
+ return bRet;
+}
+
+
+
+void SvFileObject::CancelTransfers()
+{
+ if( xMed.Is() )
+ xMed->CancelTransfers();
+
+ // und aus dem Cache austragen, wenn man mitten im Laden ist
+ if( !bDataReady )
+ {
+ // nicht noch mal aufsetzen
+ bLoadAgain = FALSE;
+ bDataReady = bLoadError = bWaitForData = TRUE;
+ SendStateChg_Impl( sfx2::LinkManager::STATE_LOAD_ABORT );
+ }
+}
+
+
+void SvFileObject::SetTransferPriority( USHORT )
+{
+}
+
+
+void SvFileObject::SendStateChg_Impl( sfx2::LinkManager::LinkState nState )
+{
+ if( !bStateChangeCalled && HasDataLinks() )
+ {
+ css::uno::Any aAny;
+ aAny <<= rtl::OUString::valueOf( (sal_Int32)nState );
+ DataChanged( SotExchange::GetFormatName(
+ sfx2::LinkManager::RegisterStatusInfoId()), aAny );
+ bStateChangeCalled = TRUE;
+ }
+}
+
+
diff --git a/sfx2/source/appl/fileobj.hxx b/sfx2/source/appl/fileobj.hxx
new file mode 100644
index 000000000000..a769ed9e2843
--- /dev/null
+++ b/sfx2/source/appl/fileobj.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: fileobj.hxx,v $
+ * $Revision: 1.9 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _FILEOBJ_HXX
+#define _FILEOBJ_HXX
+
+#include <tools/string.hxx>
+#include <sfx2/linksrc.hxx>
+#include <sfx2/docfile.hxx>
+#include <sfx2/linkmgr.hxx>
+
+class Graphic;
+struct Impl_DownLoadData;
+namespace sfx2 { class FileDialogHelper; }
+
+class SvFileObject : public sfx2::SvLinkSource
+{
+ String sFileNm;
+ String sFilter;
+ String sReferer;
+ Link aEndEditLink;
+ SfxMediumRef xMed;
+ Impl_DownLoadData* pDownLoadData;
+ Window* pOldParent;
+
+ BYTE nType;
+
+ BOOL bLoadAgain : 1;
+ BOOL bSynchron : 1;
+ BOOL bLoadError : 1;
+ BOOL bWaitForData : 1;
+ BOOL bInNewData : 1;
+ BOOL bDataReady : 1;
+ BOOL bMedUseCache : 1;
+ BOOL bNativFormat : 1;
+ BOOL bClearMedium : 1;
+ BOOL bStateChangeCalled : 1;
+ BOOL bInCallDownLoad : 1;
+
+ BOOL GetGraphic_Impl( Graphic&, SvStream* pStream = 0 );
+ BOOL LoadFile_Impl();
+ void SendStateChg_Impl( sfx2::LinkManager::LinkState nState );
+
+ DECL_STATIC_LINK( SvFileObject, DelMedium_Impl, SfxMediumRef* );
+ DECL_STATIC_LINK( SvFileObject, LoadGrfReady_Impl, void* );
+ DECL_STATIC_LINK( SvFileObject, LoadGrfNewData_Impl, void* );
+ DECL_LINK( DialogClosedHdl, sfx2::FileDialogHelper* );
+
+protected:
+ virtual ~SvFileObject();
+
+public:
+ SvFileObject();
+
+ virtual BOOL GetData( ::com::sun::star::uno::Any & rData /*out param*/,
+ const String & rMimeType,
+ BOOL bSynchron = FALSE );
+
+ virtual BOOL Connect( sfx2::SvBaseLink* );
+ virtual void Edit( Window *, sfx2::SvBaseLink *, const Link& rEndEditHdl );
+
+ // erfrage ob das man direkt auf die Daten zugreifen kann oder ob das
+ // erst angestossen werden muss
+ virtual BOOL IsPending() const;
+ virtual BOOL IsDataComplete() const;
+
+ void CancelTransfers();
+ void SetTransferPriority( USHORT nPrio );
+};
+
+
+#endif
+
diff --git a/sfx2/source/appl/linkmgr2.cxx b/sfx2/source/appl/linkmgr2.cxx
index 3533fb8a428f..681cf7742664 100644
--- a/sfx2/source/appl/linkmgr2.cxx
+++ b/sfx2/source/appl/linkmgr2.cxx
@@ -31,37 +31,54 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sfx2.hxx"
-
-#include <tools/debug.hxx>
#include <sfx2/linkmgr.hxx>
-
+#include <com/sun/star/document/UpdateDocMode.hpp>
+#include <sfx2/objsh.hxx>
+#include <svl/urihelper.hxx>
+#include <sot/formats.hxx>
+#include <tools/urlobj.hxx>
+#include <sot/exchange.hxx>
+#include <tools/debug.hxx>
#include <vcl/msgbox.hxx>
#include <sfx2/lnkbase.hxx>
-//#include <sfx2/linksrc.hxx>
+#include <sfx2/app.hxx>
+#include <vcl/graph.hxx>
+#include <svl/stritem.hxx>
+#include <svl/eitem.hxx>
+#include <svl/intitem.hxx>
+#include <unotools/localfilehelper.hxx>
+#include <i18npool/mslangid.hxx>
+#include <sfx2/request.hxx>
+
+#include "fileobj.hxx"
#include "impldde.hxx"
-//#include "svuidlg.hrc"
-//#include "iface.hxx"
-
#include "app.hrc"
#include "sfxresid.hxx"
#define _SVSTDARR_STRINGSDTOR
-
#include <svl/svstdarr.hxx>
-
namespace sfx2
{
+class SvxInternalLink : public sfx2::SvLinkSource
+{
+public:
+ SvxInternalLink() {}
+
+ virtual BOOL Connect( sfx2::SvBaseLink* );
+};
+
+
SV_IMPL_PTRARR( SvBaseLinks, SvBaseLinkRefPtr )
-SvLinkManager::SvLinkManager()
- : pPersist( 0 )
+LinkManager::LinkManager(SfxObjectShell* p)
+ : pPersist( p )
{
}
-SvLinkManager::~SvLinkManager()
+LinkManager::~LinkManager()
{
SvBaseLinkRef** ppRef = (SvBaseLinkRef**)aLinkTbl.GetData();
for( USHORT n = aLinkTbl.Count(); n; --n, ++ppRef )
@@ -77,12 +94,12 @@ SvLinkManager::~SvLinkManager()
/************************************************************************
-|* SvLinkManager::Remove()
+|* LinkManager::Remove()
|*
|* Beschreibung
*************************************************************************/
-void SvLinkManager::Remove( SvBaseLink *pLink )
+void LinkManager::Remove( SvBaseLink *pLink )
{
// keine Links doppelt einfuegen
int bFound = FALSE;
@@ -110,7 +127,7 @@ void SvLinkManager::Remove( SvBaseLink *pLink )
}
-void SvLinkManager::Remove( USHORT nPos, USHORT nCnt )
+void LinkManager::Remove( USHORT nPos, USHORT nCnt )
{
if( nCnt && nPos < aLinkTbl.Count() )
{
@@ -132,7 +149,7 @@ void SvLinkManager::Remove( USHORT nPos, USHORT nCnt )
}
-BOOL SvLinkManager::Insert( SvBaseLink* pLink )
+BOOL LinkManager::Insert( SvBaseLink* pLink )
{
// keine Links doppelt einfuegen
for( USHORT n = 0; n < aLinkTbl.Count(); ++n )
@@ -152,7 +169,7 @@ BOOL SvLinkManager::Insert( SvBaseLink* pLink )
}
-BOOL SvLinkManager::InsertLink( SvBaseLink * pLink,
+BOOL LinkManager::InsertLink( SvBaseLink * pLink,
USHORT nObjType,
USHORT nUpdateMode,
const String* pName )
@@ -166,7 +183,7 @@ BOOL SvLinkManager::InsertLink( SvBaseLink * pLink,
}
-BOOL SvLinkManager::InsertDDELink( SvBaseLink * pLink,
+BOOL LinkManager::InsertDDELink( SvBaseLink * pLink,
const String& rServer,
const String& rTopic,
const String& rItem )
@@ -183,7 +200,7 @@ BOOL SvLinkManager::InsertDDELink( SvBaseLink * pLink,
}
-BOOL SvLinkManager::InsertDDELink( SvBaseLink * pLink )
+BOOL LinkManager::InsertDDELink( SvBaseLink * pLink )
{
DBG_ASSERT( OBJECT_CLIENT_SO & pLink->GetObjType(), "no OBJECT_CLIENT_SO" );
if( !( OBJECT_CLIENT_SO & pLink->GetObjType() ) )
@@ -197,34 +214,70 @@ BOOL SvLinkManager::InsertDDELink( SvBaseLink * pLink )
// erfrage die Strings fuer den Dialog
-BOOL SvLinkManager::GetDisplayNames( const SvBaseLink * pLink,
+BOOL LinkManager::GetDisplayNames( const SvBaseLink * pLink,
String* pType,
String* pFile,
String* pLinkStr,
- String* /*pFilter*/ ) const
+ String* pFilter ) const
{
BOOL bRet = FALSE;
- String aLN = pLink->GetLinkSourceName();
- if( aLN.Len() != 0 && pLink->GetObjType() == OBJECT_CLIENT_DDE )
+ const String sLNm( pLink->GetLinkSourceName() );
+ if( sLNm.Len() )
{
- USHORT nTmp = 0;
- String sCmd( aLN );
- String sServer( sCmd.GetToken( 0, cTokenSeperator, nTmp ) );
- String sTopic( sCmd.GetToken( 0, cTokenSeperator, nTmp ) );
-
- if( pType )
- *pType = sServer;
- if( pFile )
- *pFile = sTopic;
- if( pLinkStr )
- *pLinkStr = sCmd.Copy( nTmp );
- bRet = TRUE;
+ switch( pLink->GetObjType() )
+ {
+ case OBJECT_CLIENT_FILE:
+ case OBJECT_CLIENT_GRF:
+ case OBJECT_CLIENT_OLE:
+ {
+ USHORT nPos = 0;
+ String sFile( sLNm.GetToken( 0, ::sfx2::cTokenSeperator, nPos ) );
+ String sRange( sLNm.GetToken( 0, ::sfx2::cTokenSeperator, nPos ) );
+
+ if( pFile )
+ *pFile = sFile;
+ if( pLinkStr )
+ *pLinkStr = sRange;
+ if( pFilter )
+ *pFilter = sLNm.Copy( nPos );
+
+ if( pType )
+ {
+ sal_uInt16 nObjType = pLink->GetObjType();
+ *pType = String( SfxResId(
+ ( OBJECT_CLIENT_FILE == nObjType || OBJECT_CLIENT_OLE == nObjType )
+ ? RID_SVXSTR_FILELINK
+ : RID_SVXSTR_GRAFIKLINK ));
+ }
+ bRet = TRUE;
+ }
+ break;
+ case OBJECT_CLIENT_DDE:
+ {
+ USHORT nTmp = 0;
+ String sCmd( sLNm );
+ String sServer( sCmd.GetToken( 0, cTokenSeperator, nTmp ) );
+ String sTopic( sCmd.GetToken( 0, cTokenSeperator, nTmp ) );
+
+ if( pType )
+ *pType = sServer;
+ if( pFile )
+ *pFile = sTopic;
+ if( pLinkStr )
+ *pLinkStr = sCmd.Copy( nTmp );
+ bRet = TRUE;
+ }
+ break;
+ default:
+ break;
+ }
}
+
return bRet;
}
-void SvLinkManager::UpdateAllLinks(
+void LinkManager::UpdateAllLinks(
BOOL bAskUpdate,
BOOL /*bCallErrHdl*/,
BOOL bUpdateGrfLinks,
@@ -287,14 +340,24 @@ void SvLinkManager::UpdateAllLinks(
|* Beschreibung
*************************************************************************/
-SvLinkSourceRef SvLinkManager::CreateObj( SvBaseLink * pLink )
+SvLinkSourceRef LinkManager::CreateObj( SvBaseLink * pLink )
{
- if( OBJECT_CLIENT_DDE == pLink->GetObjType() )
- return new SvDDEObject();
- return SvLinkSourceRef();
+ switch( pLink->GetObjType() )
+ {
+ case OBJECT_CLIENT_FILE:
+ case OBJECT_CLIENT_GRF:
+ case OBJECT_CLIENT_OLE:
+ return new SvFileObject;
+ case OBJECT_INTERN:
+ return new SvxInternalLink;
+ case OBJECT_CLIENT_DDE:
+ return new SvDDEObject;
+ default:
+ return SvLinkSourceRef();
+ }
}
-BOOL SvLinkManager::InsertServer( SvLinkSource* pObj )
+BOOL LinkManager::InsertServer( SvLinkSource* pObj )
{
// keine doppelt einfuegen
if( !pObj || USHRT_MAX != aServerTbl.GetPos( pObj ) )
@@ -305,7 +368,7 @@ BOOL SvLinkManager::InsertServer( SvLinkSource* pObj )
}
-void SvLinkManager::RemoveServer( SvLinkSource* pObj )
+void LinkManager::RemoveServer( SvLinkSource* pObj )
{
USHORT nPos = aServerTbl.GetPos( pObj );
if( USHRT_MAX != nPos )
@@ -327,6 +390,259 @@ void MakeLnkName( String& rName, const String* pType, const String& rFile,
((rName += cTokenSeperator ) += *pFilter).EraseLeadingChars().EraseTrailingChars();
}
+BOOL LinkManager::InsertFileLink( sfx2::SvBaseLink& rLink,
+ USHORT nFileType,
+ const String& rFileNm,
+ const String* pFilterNm,
+ const String* pRange )
+{
+ if( !( OBJECT_CLIENT_SO & rLink.GetObjType() ))
+ return FALSE;
+
+ String sCmd( rFileNm );
+ sCmd += ::sfx2::cTokenSeperator;
+ if( pRange )
+ sCmd += *pRange;
+ if( pFilterNm )
+ ( sCmd += ::sfx2::cTokenSeperator ) += *pFilterNm;
+
+ return InsertLink( &rLink, nFileType, sfx2::LINKUPDATE_ONCALL, &sCmd );
+}
+
+BOOL LinkManager::InsertFileLink( sfx2::SvBaseLink& rLink )
+{
+ if( OBJECT_CLIENT_FILE == ( OBJECT_CLIENT_FILE & rLink.GetObjType() ))
+ return InsertLink( &rLink, rLink.GetObjType(), sfx2::LINKUPDATE_ONCALL );
+ return FALSE;
+}
+
+// eine Uebertragung wird abgebrochen, also alle DownloadMedien canceln
+// (ist zur Zeit nur fuer die FileLinks interressant!)
+void LinkManager::CancelTransfers()
+{
+ SvFileObject* pFileObj;
+ sfx2::SvBaseLink* pLnk;
+
+ const sfx2::SvBaseLinks& rLnks = GetLinks();
+ for( USHORT n = rLnks.Count(); n; )
+ if( 0 != ( pLnk = &(*rLnks[ --n ])) &&
+ OBJECT_CLIENT_FILE == (OBJECT_CLIENT_FILE & pLnk->GetObjType()) &&
+ 0 != ( pFileObj = (SvFileObject*)pLnk->GetObj() ) )
+// 0 != ( pFileObj = (SvFileObject*)SvFileObject::ClassFactory()->
+// CastAndAddRef( pLnk->GetObj() )) )
+ pFileObj->CancelTransfers();
+}
+
+void LinkManager::SetTransferPriority( sfx2::SvBaseLink& /*rLink*/, USHORT /*nPrio*/ )
+{
+// SvFileObject* pFileObj =
+// (SvFileObject*)SvFileObject::ClassFactory()->
+// CastAndAddRef( rLink.GetObj() );
+// OBJECT_CLIENT_FILE == (OBJECT_CLIENT_FILE & rLink.GetObjType()) ?
+// (SvFileObject*)rLink.GetObj() : 0;
+}
+
+
+ // um Status Informationen aus dem FileObject an den BaseLink zu
+ // senden, gibt es eine eigene ClipBoardId. Das SvData-Object hat
+ // dann die entsprechenden Informationen als String.
+ // Wird zur Zeit fuer FileObject in Verbindung mit JavaScript benoetigt
+ // - das braucht Informationen ueber Load/Abort/Error
+ULONG LinkManager::RegisterStatusInfoId()
+{
+ static ULONG nFormat = 0;
+
+ if( !nFormat )
+ {
+// wie sieht die neue Schnittstelle aus?
+// nFormat = Exchange::RegisterFormatName( "StatusInfo vom SvxInternalLink" );
+ nFormat = SotExchange::RegisterFormatName(
+ String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM(
+ "StatusInfo vom SvxInternalLink" )));
+ }
+ return nFormat;
+}
+
+// ----------------------------------------------------------------------
+
+BOOL LinkManager::GetGraphicFromAny( const String& rMimeType,
+ const ::com::sun::star::uno::Any & rValue,
+ Graphic& rGrf )
+{
+ BOOL bRet = FALSE;
+ ::com::sun::star::uno::Sequence< sal_Int8 > aSeq;
+ if( rValue.hasValue() && ( rValue >>= aSeq ) )
+ {
+ SvMemoryStream aMemStm( (void*)aSeq.getConstArray(), aSeq.getLength(),
+ STREAM_READ );
+ aMemStm.Seek( 0 );
+
+ switch( SotExchange::GetFormatIdFromMimeType( rMimeType ) )
+ {
+ case SOT_FORMATSTR_ID_SVXB:
+ {
+ aMemStm >> rGrf;
+ bRet = TRUE;
+ }
+ break;
+ case FORMAT_GDIMETAFILE:
+ {
+ GDIMetaFile aMtf;
+ aMtf.Read( aMemStm );
+ rGrf = aMtf;
+ bRet = TRUE;
+ }
+ break;
+ case FORMAT_BITMAP:
+ {
+ Bitmap aBmp;
+ aMemStm >> aBmp;
+ rGrf = aBmp;
+ bRet = TRUE;
+ }
+ break;
+ }
+ }
+ return bRet;
+}
+
+
+// ----------------------------------------------------------------------
+String lcl_DDE_RelToAbs( const String& rTopic, const String& rBaseURL )
+{
+ String sRet;
+ INetURLObject aURL( rTopic );
+ if( INET_PROT_NOT_VALID == aURL.GetProtocol() )
+ utl::LocalFileHelper::ConvertSystemPathToURL( rTopic, rBaseURL, sRet );
+ if( !sRet.Len() )
+ sRet = URIHelper::SmartRel2Abs( INetURLObject(rBaseURL), rTopic, URIHelper::GetMaybeFileHdl(), true );
+ return sRet;
+}
+
+BOOL SvxInternalLink::Connect( sfx2::SvBaseLink* pLink )
+{
+ SfxObjectShell* pFndShell = 0;
+ USHORT nUpdateMode = com::sun::star::document::UpdateDocMode::NO_UPDATE;
+ String sTopic, sItem, sReferer;
+ if( pLink->GetLinkManager() &&
+ pLink->GetLinkManager()->GetDisplayNames( pLink, 0, &sTopic, &sItem )
+ && sTopic.Len() )
+ {
+ // erstmal nur ueber die DocumentShells laufen und die mit dem
+ // Namen heraussuchen:
+
+ com::sun::star::lang::Locale aLocale;
+ MsLangId::convertLanguageToLocale( LANGUAGE_SYSTEM, aLocale );
+ CharClass aCC( aLocale );
+
+ String sNm( sTopic ), sTmp;
+ aCC.toLower( sNm );
+
+ TypeId aType( TYPE(SfxObjectShell) );
+
+ BOOL bFirst = TRUE;
+ SfxObjectShell* pShell = pLink->GetLinkManager()->GetPersist();
+ if( pShell && pShell->GetMedium() )
+ {
+ sReferer = pShell->GetMedium()->GetBaseURL();
+ SFX_ITEMSET_ARG( pShell->GetMedium()->GetItemSet(), pItem, SfxUInt16Item, SID_UPDATEDOCMODE, sal_False );
+ if ( pItem )
+ nUpdateMode = pItem->GetValue();
+ }
+
+ String sNmURL( lcl_DDE_RelToAbs( sTopic, sReferer ) );
+ aCC.toLower( sNmURL );
+
+ if ( !pShell )
+ {
+ bFirst = FALSE;
+ pShell = SfxObjectShell::GetFirst( &aType, sal_False );
+ }
+
+ while( pShell )
+ {
+ if( !sTmp.Len() )
+ {
+ sTmp = pShell->GetTitle( SFX_TITLE_FULLNAME );
+ sTmp = lcl_DDE_RelToAbs(sTmp, sReferer );
+ }
+
+
+ aCC.toLower( sTmp );
+ if( sTmp == sNmURL ) // die wollen wir haben
+ {
+ pFndShell = pShell;
+ break;
+ }
+
+ if( bFirst )
+ {
+ bFirst = FALSE;
+ pShell = SfxObjectShell::GetFirst( &aType, sal_False );
+ }
+ else
+ pShell = SfxObjectShell::GetNext( *pShell, &aType, sal_False );
+
+ sTmp.Erase();
+ }
+ }
+
+ // empty topics are not allowed - which document is it
+ if( !sTopic.Len() )
+ return FALSE;
+
+ if( !pFndShell )
+ {
+ // dann versuche die Datei zu laden:
+ INetURLObject aURL( sTopic );
+ INetProtocol eOld = aURL.GetProtocol();
+ aURL.SetURL( sTopic = lcl_DDE_RelToAbs( sTopic, sReferer ) );
+ if( INET_PROT_NOT_VALID != eOld ||
+ INET_PROT_HTTP != aURL.GetProtocol() )
+ {
+ SfxStringItem aName( SID_FILE_NAME, sTopic );
+ SfxBoolItem aMinimized(SID_MINIMIZED, TRUE);
+ SfxBoolItem aHidden(SID_HIDDEN, TRUE);
+ SfxStringItem aTarget( SID_TARGETNAME, String::CreateFromAscii("_blank") );
+ SfxStringItem aReferer( SID_REFERER, sReferer );
+ SfxUInt16Item aUpdate( SID_UPDATEDOCMODE, nUpdateMode );
+ SfxBoolItem aReadOnly(SID_DOC_READONLY, TRUE);
+
+ // #i14200# (DDE-link crashes wordprocessor)
+ SfxAllItemSet aArgs( SFX_APP()->GetPool() );
+ aArgs.Put(aReferer);
+ aArgs.Put(aTarget);
+ aArgs.Put(aHidden);
+ aArgs.Put(aMinimized);
+ aArgs.Put(aName);
+ aArgs.Put(aUpdate);
+ aArgs.Put(aReadOnly);
+ pFndShell = SfxObjectShell::CreateAndLoadObject( aArgs );
+ }
+ }
+
+ BOOL bRet = FALSE;
+ if( pFndShell )
+ {
+ sfx2::SvLinkSource* pNewSrc = pFndShell->DdeCreateLinkSource( sItem );
+ if( pNewSrc )
+ {
+ bRet = TRUE;
+
+ ::com::sun::star::datatransfer::DataFlavor aFl;
+ SotExchange::GetFormatDataFlavor( pLink->GetContentType(), aFl );
+
+ pLink->SetObj( pNewSrc );
+ pNewSrc->AddDataAdvise( pLink, aFl.MimeType,
+ sfx2::LINKUPDATE_ONCALL == pLink->GetUpdateMode()
+ ? ADVISEMODE_ONLYONCE
+ : 0 );
+ }
+ }
+ return bRet;
+}
+
+
}
diff --git a/sfx2/source/appl/lnkbase2.cxx b/sfx2/source/appl/lnkbase2.cxx
index 8a852b44b6f7..516e7eccf400 100644
--- a/sfx2/source/appl/lnkbase2.cxx
+++ b/sfx2/source/appl/lnkbase2.cxx
@@ -37,19 +37,12 @@
#include <com/sun/star/uno/Any.hxx>
#include <com/sun/star/uno/Sequence.hxx>
#include <vcl/msgbox.hxx>
-
#include <sfx2/linkmgr.hxx>
-//#include "svuidlg.hrc"
-//#include "iface.hxx"
#include <vcl/svapp.hxx>
-//#include <soerr.hxx>
-
#include "app.hrc"
#include "sfxresid.hxx"
#include <sfx2/filedlghelper.hxx>
-
#include <tools/debug.hxx>
-
#include <svl/svdde.hxx>
using namespace ::com::sun::star::uno;
@@ -66,7 +59,7 @@ class ImplDdeItem;
struct BaseLink_Impl
{
Link m_aEndEditLink;
- SvLinkManager* m_pLinkMgr;
+ LinkManager* m_pLinkMgr;
Window* m_pParentWin;
FileDialogHelper* m_pFileDlg;
bool m_bIsConnect;
@@ -472,17 +465,17 @@ BOOL SvBaseLink::SetContentType( ULONG nType )
return FALSE;
}
-SvLinkManager* SvBaseLink::GetLinkManager()
+LinkManager* SvBaseLink::GetLinkManager()
{
return pImpl->m_pLinkMgr;
}
-const SvLinkManager* SvBaseLink::GetLinkManager() const
+const LinkManager* SvBaseLink::GetLinkManager() const
{
return pImpl->m_pLinkMgr;
}
-void SvBaseLink::SetLinkManager( SvLinkManager* _pMgr )
+void SvBaseLink::SetLinkManager( LinkManager* _pMgr )
{
pImpl->m_pLinkMgr = _pMgr;
}
diff --git a/sfx2/source/appl/makefile.mk b/sfx2/source/appl/makefile.mk
index 48d1258e2838..1673a4953a97 100644
--- a/sfx2/source/appl/makefile.mk
+++ b/sfx2/source/appl/makefile.mk
@@ -93,6 +93,7 @@ SFX_OBJECTS = \
$(SLO)$/appuno.obj \
$(SLO)$/appbaslib.obj \
$(SLO)$/childwin.obj \
+ $(SLO)$/fileobj.obj \
$(SLO)$/helpdispatch.obj \
$(SLO)$/helpinterceptor.obj \
$(SLO)$/imagemgr.obj\
@@ -103,6 +104,7 @@ SFX_OBJECTS = \
$(SLO)$/lnkbase2.obj \
$(SLO)$/module.obj \
$(SLO)$/newhelp.obj \
+ $(SLO)$/opengrf.obj \
$(SLO)$/sfxdll.obj \
$(SLO)$/sfxhelp.obj \
$(SLO)$/sfxpicklist.obj \
@@ -143,8 +145,10 @@ EXCEPTIONSFILES=\
$(SLO)$/appmisc.obj \
$(SLO)$/appinit.obj \
$(SLO)$/appcfg.obj \
+ $(SLO)$/fileobj.obj \
$(SLO)$/helpinterceptor.obj \
$(SLO)$/newhelp.obj \
+ $(SLO)$/opengrf.obj \
$(SLO)$/sfxhelp.obj \
$(SLO)$/shutdownicon.obj \
$(SLO)$/shutdowniconw32.obj \
diff --git a/sfx2/source/appl/module.cxx b/sfx2/source/appl/module.cxx
index 566d1af69242..1bba58ba0318 100644
--- a/sfx2/source/appl/module.cxx
+++ b/sfx2/source/appl/module.cxx
@@ -51,6 +51,7 @@
#include <sfx2/docfac.hxx>
#include <sfx2/objface.hxx>
#include <sfx2/viewfrm.hxx>
+#include <svl/intitem.hxx>
#define SfxModule
#include "sfxslots.hxx"
@@ -411,3 +412,29 @@ SfxModule* SfxModule::GetActiveModule( SfxViewFrame* pFrame )
pSh = pFrame->GetObjectShell();
return pSh ? pSh->GetModule() : 0;
}
+
+FieldUnit SfxModule::GetCurrentFieldUnit()
+{
+ FieldUnit eUnit = FUNIT_INCH;
+ SfxModule* pModule = GetActiveModule();
+ if ( pModule )
+ {
+ const SfxPoolItem* pItem = pModule->GetItem( SID_ATTR_METRIC );
+ DBG_ASSERT( pItem, "GetFieldUnit(): no item" );
+ if ( pItem )
+ eUnit = (FieldUnit)( (SfxUInt16Item*)pItem )->GetValue();
+ }
+ else
+ DBG_ERRORFILE( "GetModuleFieldUnit(): no module found" );
+ return eUnit;
+}
+
+FieldUnit SfxModule::GetFieldUnit() const
+{
+ FieldUnit eUnit = FUNIT_INCH;
+ const SfxPoolItem* pItem = GetItem( SID_ATTR_METRIC );
+ DBG_ASSERT( pItem, "GetFieldUnit(): no item" );
+ if ( pItem )
+ eUnit = (FieldUnit)( (SfxUInt16Item*)pItem )->GetValue();
+ return eUnit;
+}
diff --git a/sfx2/source/appl/opengrf.cxx b/sfx2/source/appl/opengrf.cxx
new file mode 100644
index 000000000000..e10fa3899d39
--- /dev/null
+++ b/sfx2/source/appl/opengrf.cxx
@@ -0,0 +1,298 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: opengrf.cxx,v $
+ * $Revision: 1.22 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sfx2.hxx"
+
+#include <tools/urlobj.hxx>
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/uno/Reference.h>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
+#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
+#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
+#include <com/sun/star/ui/dialogs/FilePreviewImageFormats.hpp>
+#include <com/sun/star/ui/dialogs/ListboxControlActions.hpp>
+#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
+#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
+#include <com/sun/star/ui/dialogs/XFilePicker.hpp>
+#include <com/sun/star/ui/dialogs/XFilePickerListener.hpp>
+#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp>
+#include <com/sun/star/ui/dialogs/XFilePreview.hpp>
+#include <com/sun/star/ui/dialogs/XFilterManager.hpp>
+#include <svl/urihelper.hxx>
+#include <unotools/ucbstreamhelper.hxx>
+#include <svtools/transfer.hxx>
+#include <sot/formats.hxx>
+#include <vcl/msgbox.hxx>
+#include <sfx2/filedlghelper.hxx>
+#include <sfx2/docfile.hxx>
+#include <unotools/pathoptions.hxx>
+#include <sfx2/opengrf.hxx>
+#include "app.hrc"
+#include "sfxresid.hxx"
+
+//-----------------------------------------------------------------------------
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::ui::dialogs;
+using namespace ::com::sun::star::uno;
+using namespace ::rtl;
+using namespace ::cppu;
+
+
+//-----------------------------------------------------------------------------
+
+USHORT SvxOpenGrfErr2ResId( short err )
+{
+ switch( err )
+ {
+ case GRFILTER_OPENERROR:
+ return RID_SVXSTR_GRFILTER_OPENERROR;
+ case GRFILTER_IOERROR:
+ return RID_SVXSTR_GRFILTER_IOERROR;
+ case GRFILTER_VERSIONERROR:
+ return RID_SVXSTR_GRFILTER_VERSIONERROR;
+ case GRFILTER_FILTERERROR:
+ return RID_SVXSTR_GRFILTER_FILTERERROR;
+ case GRFILTER_FORMATERROR:
+ default:
+ return RID_SVXSTR_GRFILTER_FORMATERROR;
+ }
+}
+
+
+struct SvxOpenGrf_Impl
+{
+ SvxOpenGrf_Impl ();
+
+ sfx2::FileDialogHelper aFileDlg;
+ uno::Reference < XFilePickerControlAccess > xCtrlAcc;
+};
+
+
+SvxOpenGrf_Impl::SvxOpenGrf_Impl() :
+ aFileDlg(SFXWB_GRAPHIC)
+{
+ uno::Reference < XFilePicker > xFP = aFileDlg.GetFilePicker();
+ xCtrlAcc = uno::Reference < XFilePickerControlAccess >(xFP, UNO_QUERY);
+}
+
+
+SvxOpenGraphicDialog::SvxOpenGraphicDialog( const String& rTitle ) :
+ mpImpl( new SvxOpenGrf_Impl )
+{
+ mpImpl->aFileDlg.SetTitle(rTitle);
+}
+
+
+SvxOpenGraphicDialog::~SvxOpenGraphicDialog()
+{
+}
+
+
+short SvxOpenGraphicDialog::Execute()
+{
+ USHORT nImpRet;
+ BOOL bQuitLoop(FALSE);
+
+ while( bQuitLoop == FALSE &&
+ mpImpl->aFileDlg.Execute() == ERRCODE_NONE )
+ {
+ if( GetPath().Len() )
+ {
+ GraphicFilter* pFilter = GraphicFilter::GetGraphicFilter();
+ INetURLObject aObj( GetPath() );
+
+ // check whether we can load the graphic
+ String aCurFilter( GetCurrentFilter() );
+ USHORT nFormatNum = pFilter->GetImportFormatNumber( aCurFilter );
+ USHORT nRetFormat = 0;
+ USHORT nFound = USHRT_MAX;
+
+ // non-local?
+ if ( INET_PROT_FILE != aObj.GetProtocol() )
+ {
+ SfxMedium aMed( aObj.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READ, TRUE );
+ aMed.DownLoad();
+ SvStream* pStream = aMed.GetInStream();
+
+ if( pStream )
+ nImpRet = pFilter->CanImportGraphic( aObj.GetMainURL( INetURLObject::NO_DECODE ), *pStream, nFormatNum, &nRetFormat );
+ else
+ nImpRet = pFilter->CanImportGraphic( aObj, nFormatNum, &nRetFormat );
+
+ if ( GRFILTER_OK != nImpRet )
+ {
+ if ( !pStream )
+ nImpRet = pFilter->CanImportGraphic( aObj, GRFILTER_FORMAT_DONTKNOW, &nRetFormat );
+ else
+ nImpRet = pFilter->CanImportGraphic( aObj.GetMainURL( INetURLObject::NO_DECODE ), *pStream,
+ GRFILTER_FORMAT_DONTKNOW, &nRetFormat );
+ }
+ }
+ else
+ {
+ if( (nImpRet=pFilter->CanImportGraphic( aObj, nFormatNum, &nRetFormat )) != GRFILTER_OK )
+ nImpRet = pFilter->CanImportGraphic( aObj, GRFILTER_FORMAT_DONTKNOW, &nRetFormat );
+ }
+
+ if ( GRFILTER_OK == nImpRet )
+ nFound = nRetFormat;
+
+ // could not load?
+ if ( nFound == USHRT_MAX )
+ {
+ WarningBox aWarningBox( NULL, WB_3DLOOK | WB_RETRY_CANCEL, String( SfxResId( SvxOpenGrfErr2ResId(nImpRet) ) ) );
+ bQuitLoop = aWarningBox.Execute()==RET_RETRY ? FALSE : TRUE;
+ }
+ else
+ {
+ // setup appropriate filter (so next time, it will work)
+ if( pFilter->GetImportFormatCount() )
+ {
+ String aFormatName(pFilter->GetImportFormatName(nFound));
+ SetCurrentFilter(aFormatName);
+ }
+
+ return nImpRet;
+ }
+ }
+ }
+
+ // cancel
+ return -1;
+}
+
+
+void SvxOpenGraphicDialog::SetPath( const String& rPath )
+{
+ mpImpl->aFileDlg.SetDisplayDirectory(rPath);
+}
+
+void SvxOpenGraphicDialog::SetPath( const String& rPath, sal_Bool bLinkState )
+{
+ SetPath(rPath);
+ AsLink(bLinkState);
+}
+
+
+void SvxOpenGraphicDialog::EnableLink( sal_Bool state )
+{
+ if( mpImpl->xCtrlAcc.is() )
+ {
+ try
+ {
+ mpImpl->xCtrlAcc->enableControl( ExtendedFilePickerElementIds::CHECKBOX_LINK, state );
+ }
+ catch(IllegalArgumentException)
+ {
+#ifdef DBG_UTIL
+ DBG_ERROR( "Cannot enable \"link\" checkbox" );
+#endif
+ }
+ }
+}
+
+
+void SvxOpenGraphicDialog::AsLink(sal_Bool bState)
+{
+ if( mpImpl->xCtrlAcc.is() )
+ {
+ try
+ {
+ Any aAny; aAny <<= bState;
+ mpImpl->xCtrlAcc->setValue( ExtendedFilePickerElementIds::CHECKBOX_LINK, 0, aAny );
+ }
+ catch(IllegalArgumentException)
+ {
+#ifdef DBG_UTIL
+ DBG_ERROR( "Cannot check \"link\" checkbox" );
+#endif
+ }
+ }
+}
+
+
+sal_Bool SvxOpenGraphicDialog::IsAsLink() const
+{
+ try
+ {
+ if( mpImpl->xCtrlAcc.is() )
+ {
+ Any aVal = mpImpl->xCtrlAcc->getValue( ExtendedFilePickerElementIds::CHECKBOX_LINK, 0 );
+ DBG_ASSERT(aVal.hasValue(), "Value CBX_INSERT_AS_LINK not found");
+ return aVal.hasValue() ? *(sal_Bool*) aVal.getValue() : sal_False;
+ }
+ }
+ catch(IllegalArgumentException)
+ {
+#ifdef DBG_UTIL
+ DBG_ERROR( "Cannot access \"link\" checkbox" );
+#endif
+ }
+
+ return sal_False;
+}
+
+
+int SvxOpenGraphicDialog::GetGraphic(Graphic& rGraphic) const
+{
+ return mpImpl->aFileDlg.GetGraphic(rGraphic);
+}
+
+
+String SvxOpenGraphicDialog::GetPath() const
+{
+ return mpImpl->aFileDlg.GetPath();
+}
+
+
+String SvxOpenGraphicDialog::GetCurrentFilter() const
+{
+ return mpImpl->aFileDlg.GetCurrentFilter();
+}
+
+
+void SvxOpenGraphicDialog::SetCurrentFilter(const String& rStr)
+{
+ mpImpl->aFileDlg.SetCurrentFilter(rStr);
+}
+
+void SvxOpenGraphicDialog::SetControlHelpIds( const INT16* _pControlId, const INT32* _pHelpId )
+{
+ mpImpl->aFileDlg.SetControlHelpIds( _pControlId, _pHelpId );
+}
+
+void SvxOpenGraphicDialog::SetDialogHelpId( const INT32 _nHelpId )
+{
+ mpImpl->aFileDlg.SetDialogHelpId( _nHelpId );
+}
diff --git a/sfx2/source/appl/sfxhelp.cxx b/sfx2/source/appl/sfxhelp.cxx
index 491de2138917..e6f04749be84 100644
--- a/sfx2/source/appl/sfxhelp.cxx
+++ b/sfx2/source/appl/sfxhelp.cxx
@@ -38,9 +38,7 @@
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/lang/XComponent.hpp>
-#ifndef _UNOTOOLS_PROCESSFACTORY_HXX
#include <comphelper/processfactory.hxx>
-#endif
#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/awt/XTopWindow.hpp>
#include <com/sun/star/awt/PosSize.hpp>
@@ -60,13 +58,11 @@
#include <tools/urlobj.hxx>
#include <unotools/configmgr.hxx>
#include <ucbhelper/content.hxx>
-
#include <unotools/pathoptions.hxx>
#include <rtl/ustring.hxx>
#include <osl/process.h>
#include <osl/file.hxx>
#include <unotools/bootstrap.hxx>
-
#include <rtl/uri.hxx>
#include <vcl/msgbox.hxx>
#include <svtools/ehdl.hxx>
@@ -76,16 +72,13 @@
#define _SVSTDARR_ULONGSSORT
#include <svl/svstdarr.hxx>
-#include <sfx2/sfxsids.hrc>
-#include <sfx2/app.hxx>
-#include <sfx2/viewfrm.hxx>
-#include <sfx2/msgpool.hxx>
#include "newhelp.hxx"
-#include <sfx2/objsh.hxx>
-#include <sfx2/docfac.hxx>
#include "sfxresid.hxx"
#include "helper.hxx"
#include "app.hrc"
+#include <sfx2/sfxuno.hxx>
+#include <vcl/svapp.hxx>
+#include <sfx2/frame.hxx>
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::frame;
@@ -967,26 +960,39 @@ String SfxHelp::CreateHelpURL( const String& aCommandURL, const String& rModuleN
return aURL;
}
-void SfxHelp::OpenHelpAgent( SfxFrame *pFrame, ULONG nHelpId )
+void SfxHelp::OpenHelpAgent( SfxFrame*, ULONG nHelpId )
{
- if ( SvtHelpOptions().IsHelpAgentAutoStartMode() )
- {
SfxHelp* pHelp = SAL_STATIC_CAST( SfxHelp*, Application::GetHelp() );
if ( pHelp )
- {
- SfxHelpOptions_Impl *pOpt = pHelp->pImp->GetOptions();
+ pHelp->OpenHelpAgent( nHelpId );
+}
+
+void SfxHelp::OpenHelpAgent( ULONG nHelpId )
+{
+ if ( SvtHelpOptions().IsHelpAgentAutoStartMode() )
+ {
+// SfxHelp* pHelp = SAL_STATIC_CAST( SfxHelp*, Application::GetHelp() );
+// if ( pHelp )
+// {
+ SfxHelpOptions_Impl *pOpt = pImp->GetOptions();
if ( !pOpt->HasId( nHelpId ) )
return;
try
{
URL aURL;
- aURL.Complete = pHelp->CreateHelpURL_Impl( nHelpId, pHelp->GetHelpModuleName_Impl() );
+ aURL.Complete = CreateHelpURL_Impl( nHelpId, GetHelpModuleName_Impl() );
Reference < XURLTransformer > xTrans( ::comphelper::getProcessServiceFactory()->createInstance(
::rtl::OUString::createFromAscii("com.sun.star.util.URLTransformer" ) ), UNO_QUERY );
xTrans->parseStrict(aURL);
- Reference< XDispatchProvider > xDispProv( pFrame->GetTopFrame()->GetFrameInterface(), UNO_QUERY );
+ Reference < XFrame > xCurrentFrame;
+ Reference < XDesktop > xDesktop( ::comphelper::getProcessServiceFactory()->createInstance(
+ DEFINE_CONST_UNICODE("com.sun.star.frame.Desktop") ), UNO_QUERY );
+ if ( xDesktop.is() )
+ xCurrentFrame = xDesktop->getCurrentFrame();
+
+ Reference< XDispatchProvider > xDispProv( xCurrentFrame, UNO_QUERY );
Reference< XDispatch > xHelpDispatch;
if ( xDispProv.is() )
xHelpDispatch = xDispProv->queryDispatch(
@@ -1001,7 +1007,7 @@ void SfxHelp::OpenHelpAgent( SfxFrame *pFrame, ULONG nHelpId )
{
DBG_ERRORFILE( "OpenHelpAgent: caught an exception while executing the dispatch!" );
}
- }
+// }
}
}
diff --git a/sfx2/source/bastyp/sfxhtml.cxx b/sfx2/source/bastyp/sfxhtml.cxx
index 794ee142708c..ee3dd4519337 100644
--- a/sfx2/source/bastyp/sfxhtml.cxx
+++ b/sfx2/source/bastyp/sfxhtml.cxx
@@ -357,40 +357,6 @@ IMPL_STATIC_LINK( SfxHTMLParser, FileDownloadDone, void*, EMPTYARG )
return 0;
}
-rtl_TextEncoding SfxHTMLParser::GetEncodingByHttpHeader( SvKeyValueIterator *pHTTPHeader )
-{
- rtl_TextEncoding eRet = RTL_TEXTENCODING_DONTKNOW;
- if( pHTTPHeader )
- {
- SvKeyValue aKV;
- for( BOOL bCont = pHTTPHeader->GetFirst( aKV ); bCont;
- bCont = pHTTPHeader->GetNext( aKV ) )
- {
- if( aKV.GetKey().EqualsIgnoreCaseAscii( OOO_STRING_SVTOOLS_HTML_META_content_type ) )
- {
- if( aKV.GetValue().Len() )
- {
- eRet = SfxHTMLParser::GetEncodingByMIME( aKV.GetValue() );
- }
- }
- }
- }
- return eRet;
-}
-
-BOOL SfxHTMLParser::SetEncodingByHTTPHeader(
- SvKeyValueIterator *pHTTPHeader )
-{
- BOOL bRet = FALSE;
- rtl_TextEncoding eEnc = SfxHTMLParser::GetEncodingByHttpHeader( pHTTPHeader );
- if(RTL_TEXTENCODING_DONTKNOW != eEnc)
- {
- SetSrcEncoding( eEnc );
- bRet = TRUE;
- }
- return bRet;
-}
-
void SfxHTMLParser::GetScriptType_Impl( SvKeyValueIterator *pHTTPHeader )
{
aScriptType = DEFINE_CONST_UNICODE(SVX_MACRO_LANGUAGE_JAVASCRIPT);
diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx
index fa3330059859..c3b85348f35d 100644..100755
--- a/sfx2/source/control/dispatch.cxx
+++ b/sfx2/source/control/dispatch.cxx
@@ -3215,3 +3215,14 @@ sal_uInt32 SfxDispatcher::GetDisableFlags() const
return pImp->nDisableFlags;
}
+SfxModule* SfxDispatcher::GetModule() const
+{
+ for ( sal_uInt16 nShell = 0;; ++nShell )
+ {
+ SfxShell *pSh = GetShell(nShell);
+ if ( pSh == NULL )
+ return 0;
+ if ( pSh->ISA(SfxModule) )
+ return (SfxModule*) pSh;
+ }
+}
diff --git a/sfx2/source/control/makefile.mk b/sfx2/source/control/makefile.mk
index 9d936549b5b3..a64cd08cd3ed 100644
--- a/sfx2/source/control/makefile.mk
+++ b/sfx2/source/control/makefile.mk
@@ -68,7 +68,6 @@ SLOFILES = \
$(SLO)$/sfxstatuslistener.obj \
$(SLO)$/shell.obj \
$(SLO)$/sorgitm.obj \
- $(SLO)$/srchitem.obj \
$(SLO)$/statcach.obj \
$(SLO)$/unoctitm.obj
diff --git a/sfx2/source/control/srchitem.cxx b/sfx2/source/control/srchitem.cxx
deleted file mode 100644
index 5702103e3398..000000000000
--- a/sfx2/source/control/srchitem.cxx
+++ /dev/null
@@ -1,665 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: srchitem.cxx,v $
- * $Revision: 1.24 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sfx2.hxx"
-
-// include ---------------------------------------------------------------
-
-#ifndef __SBX_SBXVARIABLE_HXX
-#include <basic/sbxvar.hxx>
-#endif
-#include <unotools/searchopt.hxx>
-#include <com/sun/star/util/XReplaceable.hpp>
-#include <com/sun/star/util/XSearchable.hpp>
-#include <com/sun/star/util/XSearchDescriptor.hpp>
-#include <com/sun/star/util/XPropertyReplace.hpp>
-#include <com/sun/star/util/XReplaceDescriptor.hpp>
-#include <com/sun/star/lang/Locale.hpp>
-
-#include <svl/memberid.hrc>
-#include <i18npool/mslangid.hxx>
-
-#ifndef GCC
-#endif
-
-#define _SVX_SRCHITEM_CXX
-
-#include <sfx2/sfxsids.hrc>
-#define ITEMID_SEARCH SID_SEARCH_ITEM
-#include <sfx2/srchitem.hxx>
-
-#include <sfx2/sfxuno.hxx>
-
-using namespace utl;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::i18n;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::util;
-
-#define CFG_ROOT_NODE "Office.Common/SearchOptions"
-
-#define SRCH_PARAMS 11
-#define SRCH_PARA_OPTIONS "Options"
-#define SRCH_PARA_FAMILY "Family"
-#define SRCH_PARA_COMMAND "Command"
-#define SRCH_PARA_CELLTYPE "CellType"
-#define SRCH_PARA_APPFLAG "AppFlag"
-#define SRCH_PARA_ROWDIR "RowDirection"
-#define SRCH_PARA_ALLTABLES "AllTables"
-#define SRCH_PARA_BACKWARD "Backward"
-#define SRCH_PARA_PATTERN "Pattern"
-#define SRCH_PARA_CONTENT "Content"
-#define SRCH_PARA_ASIANOPT "AsianOptions"
-
-// STATIC DATA -----------------------------------------------------------
-
-TYPEINIT1_FACTORY(SvxSearchItem, SfxPoolItem, new SvxSearchItem(0));
-
-// -----------------------------------------------------------------------
-
-static Sequence< ::rtl::OUString > lcl_GetNotifyNames()
-{
- // names of transliteration relevant properties
- static const char* aTranslitNames[] =
- {
- "IsMatchCase", // 0
- "Japanese/IsMatchFullHalfWidthForms", // 1
- "Japanese/IsMatchHiraganaKatakana", // 2
- "Japanese/IsMatchContractions", // 3
- "Japanese/IsMatchMinusDashCho-on", // 4
- "Japanese/IsMatchRepeatCharMarks", // 5
- "Japanese/IsMatchVariantFormKanji", // 6
- "Japanese/IsMatchOldKanaForms", // 7
- "Japanese/IsMatch_DiZi_DuZu", // 8
- "Japanese/IsMatch_BaVa_HaFa", // 9
- "Japanese/IsMatch_TsiThiChi_DhiZi", // 10
- "Japanese/IsMatch_HyuIyu_ByuVyu", // 11
- "Japanese/IsMatch_SeShe_ZeJe", // 12
- "Japanese/IsMatch_IaIya", // 13
- "Japanese/IsMatch_KiKu", // 14
- "Japanese/IsIgnorePunctuation", // 15
- "Japanese/IsIgnoreWhitespace", // 16
- "Japanese/IsIgnoreProlongedSoundMark", // 17
- "Japanese/IsIgnoreMiddleDot" // 18
- };
-
- const int nCount = sizeof( aTranslitNames ) / sizeof( aTranslitNames[0] );
- Sequence< ::rtl::OUString > aNames( nCount );
- ::rtl::OUString* pNames = aNames.getArray();
- for (INT32 i = 0; i < nCount; ++i)
- pNames[i] = ::rtl::OUString::createFromAscii( aTranslitNames[i] );
-
- return aNames;
-}
-
-// -----------------------------------------------------------------------
-SvxSearchItem::SvxSearchItem( const sal_uInt16 nId ) :
-
- SfxPoolItem( nId ),
- ConfigItem( ::rtl::OUString::createFromAscii( CFG_ROOT_NODE ) ),
-
- aSearchOpt ( SearchAlgorithms_ABSOLUTE,
- SearchFlags::LEV_RELAXED,
- ::rtl::OUString(),
- ::rtl::OUString(),
- Locale(),
- 2, 2, 2,
- TransliterationModules_IGNORE_CASE ),
- eFamily ( SFX_STYLE_FAMILY_PARA ),
- nCommand ( 0 ),
- nCellType ( SVX_SEARCHIN_FORMULA ),
- nAppFlag ( SVX_SEARCHAPP_WRITER ),
- bRowDirection ( sal_True ),
- bAllTables ( sal_False ),
- bNotes ( sal_False),
- bBackward ( sal_False ),
- bPattern ( sal_False ),
- bContent ( sal_False ),
- bAsianOptions ( FALSE )
-{
- EnableNotification( lcl_GetNotifyNames() );
-
- SvtSearchOptions aOpt;
-
- bBackward = aOpt.IsBackwards();
- bAsianOptions = aOpt.IsUseAsianOptions();
- bNotes = aOpt.IsNotes();
-
- if (aOpt.IsUseRegularExpression())
- aSearchOpt.algorithmType = SearchAlgorithms_REGEXP;
- if (aOpt.IsSimilaritySearch())
- aSearchOpt.algorithmType = SearchAlgorithms_APPROXIMATE;
- if (aOpt.IsWholeWordsOnly())
- aSearchOpt.searchFlag |= SearchFlags::NORM_WORD_ONLY;
-
- INT32 &rFlags = aSearchOpt.transliterateFlags;
-
- if (!aOpt.IsMatchCase())
- rFlags |= TransliterationModules_IGNORE_CASE;
- if ( aOpt.IsMatchFullHalfWidthForms())
- rFlags |= TransliterationModules_IGNORE_WIDTH;
- if ( aOpt.IsMatchHiraganaKatakana())
- rFlags |= TransliterationModules_IGNORE_KANA;
- if ( aOpt.IsMatchContractions())
- rFlags |= TransliterationModules_ignoreSize_ja_JP;
- if ( aOpt.IsMatchMinusDashChoon())
- rFlags |= TransliterationModules_ignoreMinusSign_ja_JP;
- if ( aOpt.IsMatchRepeatCharMarks())
- rFlags |= TransliterationModules_ignoreIterationMark_ja_JP;
- if ( aOpt.IsMatchVariantFormKanji())
- rFlags |= TransliterationModules_ignoreTraditionalKanji_ja_JP;
- if ( aOpt.IsMatchOldKanaForms())
- rFlags |= TransliterationModules_ignoreTraditionalKana_ja_JP;
- if ( aOpt.IsMatchDiziDuzu())
- rFlags |= TransliterationModules_ignoreZiZu_ja_JP;
- if ( aOpt.IsMatchBavaHafa())
- rFlags |= TransliterationModules_ignoreBaFa_ja_JP;
- if ( aOpt.IsMatchTsithichiDhizi())
- rFlags |= TransliterationModules_ignoreTiJi_ja_JP;
- if ( aOpt.IsMatchHyuiyuByuvyu())
- rFlags |= TransliterationModules_ignoreHyuByu_ja_JP;
- if ( aOpt.IsMatchSesheZeje())
- rFlags |= TransliterationModules_ignoreSeZe_ja_JP;
- if ( aOpt.IsMatchIaiya())
- rFlags |= TransliterationModules_ignoreIandEfollowedByYa_ja_JP;
- if ( aOpt.IsMatchKiku())
- rFlags |= TransliterationModules_ignoreKiKuFollowedBySa_ja_JP;
- if ( aOpt.IsIgnorePunctuation())
- rFlags |= TransliterationModules_ignoreSeparator_ja_JP;
- if ( aOpt.IsIgnoreWhitespace())
- rFlags |= TransliterationModules_ignoreSpace_ja_JP;
- if ( aOpt.IsIgnoreProlongedSoundMark())
- rFlags |= TransliterationModules_ignoreProlongedSoundMark_ja_JP;
- if ( aOpt.IsIgnoreMiddleDot())
- rFlags |= TransliterationModules_ignoreMiddleDot_ja_JP;
-}
-
-// -----------------------------------------------------------------------
-
-SvxSearchItem::SvxSearchItem( const SvxSearchItem& rItem ) :
-
- SfxPoolItem ( rItem ),
- ConfigItem( ::rtl::OUString::createFromAscii( CFG_ROOT_NODE ) ),
-
- aSearchOpt ( rItem.aSearchOpt ),
- eFamily ( rItem.eFamily ),
- nCommand ( rItem.nCommand ),
- nCellType ( rItem.nCellType ),
- nAppFlag ( rItem.nAppFlag ),
- bRowDirection ( rItem.bRowDirection ),
- bAllTables ( rItem.bAllTables ),
- bNotes ( rItem.bNotes),
- bBackward ( rItem.bBackward ),
- bPattern ( rItem.bPattern ),
- bContent ( rItem.bContent ),
- bAsianOptions ( rItem.bAsianOptions )
-{
- EnableNotification( lcl_GetNotifyNames() );
-}
-
-// -----------------------------------------------------------------------
-
-SvxSearchItem::~SvxSearchItem()
-{
-}
-
-// -----------------------------------------------------------------------
-SfxPoolItem* SvxSearchItem::Clone( SfxItemPool *) const
-{
- return new SvxSearchItem(*this);
-}
-
-// -----------------------------------------------------------------------
-
-//! used below
-static BOOL operator == ( const SearchOptions& rItem1, const SearchOptions& rItem2 )
-{
- return rItem1.algorithmType == rItem2.algorithmType &&
- rItem1.searchFlag == rItem2.searchFlag &&
- rItem1.searchString == rItem2.searchString &&
- rItem1.replaceString == rItem2.replaceString &&
- //rItem1.Locale == rItem2.Locale &&
- rItem1.changedChars == rItem2.changedChars &&
- rItem1.deletedChars == rItem2.deletedChars &&
- rItem1.insertedChars == rItem2.insertedChars &&
- rItem1.transliterateFlags == rItem2.transliterateFlags;
-}
-
-
-int SvxSearchItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal which or type" );
- const SvxSearchItem &rSItem = (SvxSearchItem &) rItem;
- return ( nCommand == rSItem.nCommand ) &&
- ( bBackward == rSItem.bBackward ) &&
- ( bPattern == rSItem.bPattern ) &&
- ( bContent == rSItem.bContent ) &&
- ( eFamily == rSItem.eFamily ) &&
- ( bRowDirection == rSItem.bRowDirection ) &&
- ( bAllTables == rSItem.bAllTables ) &&
- ( nCellType == rSItem.nCellType ) &&
- ( nAppFlag == rSItem.nAppFlag ) &&
- ( bAsianOptions == rSItem.bAsianOptions ) &&
- ( aSearchOpt == rSItem.aSearchOpt ) &&
- ( bNotes == rSItem.bNotes );
-}
-
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SvxSearchItem::GetPresentation
-(
- SfxItemPresentation ,
- SfxMapUnit ,
- SfxMapUnit ,
- XubString& ,
- const IntlWrapper *
-) const
-{
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-void SvxSearchItem::GetFromDescriptor( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& rDescr )
-{
- SetSearchString( rDescr->getSearchString() );
- ::com::sun::star::uno::Any aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchWords") );
- sal_Bool bTemp = false;
- aAny >>= bTemp ;
- SetWordOnly( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchCaseSensitive") );
- aAny >>= bTemp ;
- SetExact( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchBackwards") );
- aAny >>= bTemp ;
- SetBackward( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchInSelection") );
- aAny >>= bTemp ;
- SetSelection( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchRegularExpression") );
- aAny >>= bTemp ;
- SetRegExp( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarity") );
- aAny >>= bTemp ;
- SetLevenshtein( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityRelax") );
- aAny >>= bTemp ;
- SetLEVRelaxed( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityExchange") );
- sal_Int16 nTemp = 0;
- aAny >>= nTemp ;
- SetLEVOther( nTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityRemove") );
- aAny >>= nTemp ;
- SetLEVShorter( nTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityAdd") );
- aAny >>= nTemp ;
- SetLEVLonger( nTemp );
-}
-
-void SvxSearchItem::SetToDescriptor( ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor > & rDescr )
-{
- rDescr->setSearchString( GetSearchString() );
- ::com::sun::star::uno::Any aAny;
- aAny <<= GetWordOnly() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchWords"), aAny );
- aAny <<= GetExact() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchCaseSensitive"), aAny );
- aAny <<= GetBackward() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchBackwards"), aAny );
- aAny <<= GetSelection() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchInSelection"), aAny );
- aAny <<= GetRegExp() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchRegularExpression"), aAny );
- aAny <<= IsLevenshtein() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarity"), aAny );
- aAny <<= IsLEVRelaxed() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityRelax"), aAny );
- aAny <<= GetLEVOther() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityExchange"), aAny );
- aAny <<= GetLEVShorter() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityRemove"), aAny );
- aAny <<= GetLEVLonger() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityAdd"), aAny );
-}
-
-
-void SvxSearchItem::Notify( const Sequence< ::rtl::OUString > & )
-{
- // applies transliteration changes in the configuration database
- // to the current SvxSearchItem
- SetTransliterationFlags( SvtSearchOptions().GetTransliterationFlags() );
-}
-
-void SvxSearchItem::Commit()
-{
-}
-
-void SvxSearchItem::SetMatchFullHalfWidthForms( sal_Bool bVal )
-{
- if (bVal)
- aSearchOpt.transliterateFlags |= TransliterationModules_IGNORE_WIDTH;
- else
- aSearchOpt.transliterateFlags &= ~TransliterationModules_IGNORE_WIDTH;
-}
-
-
-void SvxSearchItem::SetWordOnly( sal_Bool bVal )
-{
- if (bVal)
- aSearchOpt.searchFlag |= SearchFlags::NORM_WORD_ONLY;
- else
- aSearchOpt.searchFlag &= ~SearchFlags::NORM_WORD_ONLY;
-}
-
-
-void SvxSearchItem::SetExact( sal_Bool bVal )
-{
- if (!bVal)
- aSearchOpt.transliterateFlags |= TransliterationModules_IGNORE_CASE;
- else
- aSearchOpt.transliterateFlags &= ~TransliterationModules_IGNORE_CASE;
-}
-
-
-void SvxSearchItem::SetSelection( sal_Bool bVal )
-{
- if (bVal)
- {
- aSearchOpt.searchFlag |= (SearchFlags::REG_NOT_BEGINOFLINE |
- SearchFlags::REG_NOT_ENDOFLINE);
- }
- else
- {
- aSearchOpt.searchFlag &= ~(SearchFlags::REG_NOT_BEGINOFLINE |
- SearchFlags::REG_NOT_ENDOFLINE);
- }
-}
-
-
-void SvxSearchItem::SetRegExp( sal_Bool bVal )
-{
- if ( bVal )
- aSearchOpt.algorithmType = SearchAlgorithms_REGEXP;
- else if ( SearchAlgorithms_REGEXP == aSearchOpt.algorithmType )
- aSearchOpt.algorithmType = SearchAlgorithms_ABSOLUTE;
-}
-
-
-void SvxSearchItem::SetLEVRelaxed( sal_Bool bVal )
-{
- if (bVal)
- aSearchOpt.searchFlag |= SearchFlags::LEV_RELAXED;
- else
- aSearchOpt.searchFlag &= ~SearchFlags::LEV_RELAXED;
-}
-
-
-void SvxSearchItem::SetLevenshtein( sal_Bool bVal )
-{
- if ( bVal )
- aSearchOpt.algorithmType = SearchAlgorithms_APPROXIMATE;
- else if ( SearchAlgorithms_APPROXIMATE == aSearchOpt.algorithmType )
- aSearchOpt.algorithmType = SearchAlgorithms_ABSOLUTE;
-}
-
-
-void SvxSearchItem::SetTransliterationFlags( sal_Int32 nFlags )
-{
- aSearchOpt.transliterateFlags = nFlags;
-}
-
-sal_Bool SvxSearchItem::QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId ) const
-{
- nMemberId &= ~CONVERT_TWIPS;
- switch ( nMemberId )
- {
- case 0 :
- {
- Sequence< PropertyValue > aSeq( SRCH_PARAMS );
- aSeq[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_OPTIONS ) );
- aSeq[0].Value <<= aSearchOpt;
- aSeq[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_FAMILY ));
- aSeq[1].Value <<= sal_Int16( eFamily );
- aSeq[2].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_COMMAND ));
- aSeq[2].Value <<= nCommand;
- aSeq[3].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_CELLTYPE ));
- aSeq[3].Value <<= nCellType;
- aSeq[4].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_APPFLAG ));
- aSeq[4].Value <<= nAppFlag;
- aSeq[5].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_ROWDIR ));
- aSeq[5].Value <<= bRowDirection;
- aSeq[6].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_ALLTABLES ));
- aSeq[6].Value <<= bAllTables;
- aSeq[7].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_BACKWARD ));
- aSeq[7].Value <<= bBackward;
- aSeq[8].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_PATTERN ));
- aSeq[8].Value <<= bPattern;
- aSeq[9].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_CONTENT ));
- aSeq[9].Value <<= bContent;
- aSeq[10].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_ASIANOPT ));
- aSeq[10].Value <<= bAsianOptions;
- rVal <<= aSeq;
- }
- break;
- case MID_SEARCH_COMMAND:
- rVal <<= (sal_Int16) nCommand; break;
- case MID_SEARCH_STYLEFAMILY:
- rVal <<= (sal_Int16) eFamily; break;
- case MID_SEARCH_CELLTYPE:
- rVal <<= (sal_Int32) nCellType; break;
- case MID_SEARCH_ROWDIRECTION:
- rVal <<= (sal_Bool) bRowDirection; break;
- case MID_SEARCH_ALLTABLES:
- rVal <<= (sal_Bool) bAllTables; break;
- case MID_SEARCH_BACKWARD:
- rVal <<= (sal_Bool) bBackward; break;
- case MID_SEARCH_PATTERN:
- rVal <<= (sal_Bool) bPattern; break;
- case MID_SEARCH_CONTENT:
- rVal <<= (sal_Bool) bContent; break;
- case MID_SEARCH_ASIANOPTIONS:
- rVal <<= (sal_Bool) bAsianOptions; break;
- case MID_SEARCH_ALGORITHMTYPE:
- rVal <<= (sal_Int16) aSearchOpt.algorithmType; break;
- case MID_SEARCH_FLAGS:
- rVal <<= aSearchOpt.searchFlag; break;
- case MID_SEARCH_SEARCHSTRING:
- rVal <<= aSearchOpt.searchString; break;
- case MID_SEARCH_REPLACESTRING:
- rVal <<= aSearchOpt.replaceString; break;
- case MID_SEARCH_CHANGEDCHARS:
- rVal <<= aSearchOpt.changedChars; break;
- case MID_SEARCH_DELETEDCHARS:
- rVal <<= aSearchOpt.deletedChars; break;
- case MID_SEARCH_INSERTEDCHARS:
- rVal <<= aSearchOpt.insertedChars; break;
- case MID_SEARCH_TRANSLITERATEFLAGS:
- rVal <<= aSearchOpt.transliterateFlags; break;
- case MID_SEARCH_LOCALE:
- {
- sal_Int16 nLocale;
- if (aSearchOpt.Locale.Language.getLength() || aSearchOpt.Locale.Country.getLength() )
- nLocale = MsLangId::convertLocaleToLanguage( aSearchOpt.Locale );
- else
- nLocale = LANGUAGE_NONE;
- rVal <<= nLocale;
- break;
- }
-
- default:
- DBG_ERRORFILE( "SvxSearchItem::QueryValue(): Unknown MemberId" );
- return sal_False;
- }
-
- return sal_True;
-}
-
-// -----------------------------------------------------------------------
-
-sal_Bool SvxSearchItem::PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId )
-{
- nMemberId &= ~CONVERT_TWIPS;
- sal_Bool bRet = sal_False;
- sal_Int32 nInt = 0;
- switch ( nMemberId )
- {
- case 0 :
- {
- Sequence< PropertyValue > aSeq;
- if ( ( rVal >>= aSeq ) && ( aSeq.getLength() == SRCH_PARAMS ) )
- {
- sal_Int16 nConvertedCount( 0 );
- for ( sal_Int32 i = 0; i < aSeq.getLength(); ++i )
- {
- if ( aSeq[i].Name.equalsAscii( SRCH_PARA_OPTIONS ) )
- {
- if ( ( aSeq[i].Value >>= aSearchOpt ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_FAMILY ) )
- {
- sal_uInt16 nTemp( 0 );
- if ( ( aSeq[i].Value >>= nTemp ) == sal_True )
- {
- eFamily = SfxStyleFamily( nTemp );
- ++nConvertedCount;
- }
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_COMMAND ) )
- {
- if ( ( aSeq[i].Value >>= nCommand ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_CELLTYPE ) )
- {
- if ( ( aSeq[i].Value >>= nCellType ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_APPFLAG ) )
- {
- if ( ( aSeq[i].Value >>= nAppFlag ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_ROWDIR ) )
- {
- if ( ( aSeq[i].Value >>= bRowDirection ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_ALLTABLES ) )
- {
- if ( ( aSeq[i].Value >>= bAllTables ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_BACKWARD ) )
- {
- if ( ( aSeq[i].Value >>= bBackward ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_PATTERN ) )
- {
- if ( ( aSeq[i].Value >>= bPattern ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_CONTENT ) )
- {
- if ( ( aSeq[i].Value >>= bContent ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_ASIANOPT ) )
- {
- if ( ( aSeq[i].Value >>= bAsianOptions ) == sal_True )
- ++nConvertedCount;
- }
- }
-
- bRet = ( nConvertedCount == SRCH_PARAMS );
- }
- break;
- }
- case MID_SEARCH_COMMAND:
- bRet = (rVal >>= nInt); nCommand = (sal_uInt16) nInt; break;
- case MID_SEARCH_STYLEFAMILY:
- bRet = (rVal >>= nInt); eFamily = (SfxStyleFamily) (sal_Int16) nInt; break;
- case MID_SEARCH_CELLTYPE:
- bRet = (rVal >>= nInt); nCellType = (sal_uInt16) nInt; break;
- case MID_SEARCH_ROWDIRECTION:
- bRet = (rVal >>= bRowDirection); break;
- case MID_SEARCH_ALLTABLES:
- bRet = (rVal >>= bAllTables); break;
- case MID_SEARCH_BACKWARD:
- bRet = (rVal >>= bBackward); break;
- case MID_SEARCH_PATTERN:
- bRet = (rVal >>= bPattern); break;
- case MID_SEARCH_CONTENT:
- bRet = (rVal >>= bContent); break;
- case MID_SEARCH_ASIANOPTIONS:
- bRet = (rVal >>= bAsianOptions); break;
- case MID_SEARCH_ALGORITHMTYPE:
- bRet = (rVal >>= nInt); aSearchOpt.algorithmType = (SearchAlgorithms)(sal_Int16)nInt; break;
- case MID_SEARCH_FLAGS:
- bRet = (rVal >>= aSearchOpt.searchFlag); break;
- case MID_SEARCH_SEARCHSTRING:
- bRet = (rVal >>= aSearchOpt.searchString); break;
- case MID_SEARCH_REPLACESTRING:
- bRet = (rVal >>= aSearchOpt.replaceString); break;
- case MID_SEARCH_CHANGEDCHARS:
- bRet = (rVal >>= aSearchOpt.changedChars); break;
- case MID_SEARCH_DELETEDCHARS:
- bRet = (rVal >>= aSearchOpt.deletedChars); break;
- case MID_SEARCH_INSERTEDCHARS:
- bRet = (rVal >>= aSearchOpt.insertedChars); break;
- case MID_SEARCH_TRANSLITERATEFLAGS:
- bRet = (rVal >>= aSearchOpt.transliterateFlags); break;
- case MID_SEARCH_LOCALE:
- {
- bRet = (rVal >>= nInt);
- if ( bRet )
- {
- if ( nInt == LANGUAGE_NONE )
- {
- aSearchOpt.Locale = ::com::sun::star::lang::Locale();
- }
- else
- {
- MsLangId::convertLanguageToLocale( (sal_Int16) nInt, aSearchOpt.Locale );
- }
- }
- break;
- }
- default:
- DBG_ERROR( "Unknown MemberId" );
- }
-
- return bRet;
-}
-
-
diff --git a/sfx2/source/dialog/sfxdlg.cxx b/sfx2/source/dialog/sfxdlg.cxx
index 0e5f91ccea34..b67f8fc73860 100644..100755
--- a/sfx2/source/dialog/sfxdlg.cxx
+++ b/sfx2/source/dialog/sfxdlg.cxx
@@ -39,5 +39,9 @@
SfxAbstractDialogFactory* SfxAbstractDialogFactory::Create()
{
- return (SfxAbstractDialogFactory*) VclAbstractDialogFactory::Create();
+ return dynamic_cast <SfxAbstractDialogFactory*>( VclAbstractDialogFactory::Create() );
+}
+
+SfxAbstractDialogFactory::~SfxAbstractDialogFactory()
+{
}
diff --git a/sfx2/source/doc/objcont.cxx b/sfx2/source/doc/objcont.cxx
index 8514ca9a917a..9f4f489c836c 100644
--- a/sfx2/source/doc/objcont.cxx
+++ b/sfx2/source/doc/objcont.cxx
@@ -962,11 +962,8 @@ BOOL SfxObjectShell::Remove
String aName(pMySheet->GetName());
String aEmpty;
SfxStyleFamily eFamily = pMySheet->GetFamily();
- if (pMySheet)
- {
- pMyPool->Remove(pMySheet);
- bRet = TRUE;
- }
+ pMyPool->Remove(pMySheet);
+ bRet = TRUE;
SfxStyleSheetBase* pTestSheet = pMyPool->First();
while (pTestSheet)
@@ -987,20 +984,10 @@ BOOL SfxObjectShell::Remove
pTestSheet = pMyPool->Next();
}
- if(bRet)
- SetModified( TRUE );
- }
-/*
- else if (nIdx1 == CONTENT_CONFIG)
- {
- if (GetConfigManager()->RemoveItem(nIdx2))
- {
- SetModified(TRUE);
- bRet = TRUE;
- SFX_APP()->GetDispatcher_Impl()->Update_Impl(TRUE);
- }
+
+ SetModified( TRUE );
}
-*/
+
return bRet;
}
diff --git a/sfx2/source/doc/objxtor.cxx b/sfx2/source/doc/objxtor.cxx
index 91c0f605e453..bfcf8d9c20b8 100644
--- a/sfx2/source/doc/objxtor.cxx
+++ b/sfx2/source/doc/objxtor.cxx
@@ -190,7 +190,6 @@ TYPEINIT1(SfxObjectShell, SfxShell);
//--------------------------------------------------------------------
SfxObjectShell_Impl::SfxObjectShell_Impl( SfxObjectShell& _rDocShell )
:mpObjectContainer(0)
- ,pAccMgr(0)
,pCfgMgr( 0)
,pBasicManager( new SfxBasicManagerHolder )
,rDocShell( _rDocShell )
diff --git a/sfx2/source/inc/objshimp.hxx b/sfx2/source/inc/objshimp.hxx
index fed465c69986..bb35941d989e 100644
--- a/sfx2/source/inc/objshimp.hxx
+++ b/sfx2/source/inc/objshimp.hxx
@@ -59,13 +59,11 @@ struct MarkData_Impl
class SfxFrame;
class SfxToolBoxConfig;
-class SfxAcceleratorManager;
class SfxBasicManagerHolder;
struct SfxObjectShell_Impl : public ::sfx2::IMacroDocumentAccess
{
::comphelper::EmbeddedObjectContainer* mpObjectContainer;
- SfxAcceleratorManager* pAccMgr;
SfxConfigManager* pCfgMgr;
SfxBasicManagerHolder*
pBasicManager;
diff --git a/sfx2/source/inc/speakerdlg.hxx b/sfx2/source/inc/speakerdlg.hxx
deleted file mode 100644
index b3d16cd578cf..000000000000
--- a/sfx2/source/inc/speakerdlg.hxx
+++ /dev/null
@@ -1,70 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: speakerdlg.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SPEAKERDLG_HXX
-#define _SPEAKERDLG_HXX
-
-#ifndef _GOODIES_RECOGNIZER_HXX_
-#include <goodies/recognizer.hxx>
-#endif
-
-#ifndef _DIALOG_HXX
-#include <vcl/dialog.hxx>
-#endif
-#ifndef _BUTTON_HXX
-#include <vcl/button.hxx>
-#endif
-#ifndef _LSTBOX_HXX
-#include <vcl/lstbox.hxx>
-#endif
-
-// ---------------
-// - SfxSpeakerDlg -
-// ---------------
-
-class SfxSpeakerDlg: public ModalDialog
-{
- OKButton aBtnOK;
- CancelButton aBtnCancel;
- ListBox aListBox;
- CharSet aCharSet;
-
- OSpeakerManagerRef m_aSpeakerMgr;
-
-public:
-
- SfxSpeakerDlg(Window *pParent, OSpeakerManagerRef& aSpeakerMgr);
- ~SfxSpeakerDlg();
-
- virtual short Execute();
-};
-
-
-#endif // _SPEAKER_HXX
diff --git a/sfx2/source/menu/virtmenu.cxx b/sfx2/source/menu/virtmenu.cxx
index 87f35805d1e7..b94b61e80326 100644
--- a/sfx2/source/menu/virtmenu.cxx
+++ b/sfx2/source/menu/virtmenu.cxx
@@ -1256,36 +1256,6 @@ String SfxVirtualMenu::GetItemHelpText( USHORT nSlotId ) const
}
//--------------------------------------------------------------------
-/*
-void SfxVirtualMenu::InvalidateKeyCodes()
-{
- DBG_ASSERT( pSVMenu, "invalidating key of incomplete menu" );
-
- SfxApplication* pSfxApp = SFX_APP();
- SfxViewFrame *pViewFrame = pBindings->GetDispatcher()->GetFrame();
- SfxAcceleratorManager* pAccMgr = pViewFrame->GetViewShell()->GetAccMgr_Impl();
- SfxAcceleratorManager* pAppAccel = pSfxApp->GetAppAccel_Impl();
- if ( !pAccMgr )
- pAccMgr = pAppAccel;
-
- for ( USHORT nPos = 0; nPos < pSVMenu->GetItemCount(); ++nPos )
- {
- USHORT nId = pSVMenu->GetItemId(nPos);
- SfxVirtualMenu *pPopup = GetPopupMenu(nId);
-// if ( pPopup )
-// pPopup->InvalidateKeyCodes();
-// else if ( nId )
- if ( nId && !pSVMenu->GetPopupMenu( nId ) )
- {
- KeyCode aCode = pAccMgr->GetKeyCode( nId );
- if ( !aCode.GetCode() && pAccMgr != pAppAccel )
- aCode = pAppAccel->GetKeyCode( nId );
- pSVMenu->SetAccelKey( nId, aCode );
- }
- }
-} */
-
-//--------------------------------------------------------------------
// set the checkmark of the specified item