13334a7e6SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 33334a7e6SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 43334a7e6SAndrew Rist * or more contributor license agreements. See the NOTICE file 53334a7e6SAndrew Rist * distributed with this work for additional information 63334a7e6SAndrew Rist * regarding copyright ownership. The ASF licenses this file 73334a7e6SAndrew Rist * to you under the Apache License, Version 2.0 (the 83334a7e6SAndrew Rist * "License"); you may not use this file except in compliance 93334a7e6SAndrew Rist * with the License. You may obtain a copy of the License at 103334a7e6SAndrew Rist * 113334a7e6SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 123334a7e6SAndrew Rist * 133334a7e6SAndrew Rist * Unless required by applicable law or agreed to in writing, 143334a7e6SAndrew Rist * software distributed under the License is distributed on an 153334a7e6SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 163334a7e6SAndrew Rist * KIND, either express or implied. See the License for the 173334a7e6SAndrew Rist * specific language governing permissions and limitations 183334a7e6SAndrew Rist * under the License. 193334a7e6SAndrew Rist * 203334a7e6SAndrew Rist *************************************************************/ 213334a7e6SAndrew Rist 223334a7e6SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef _SVX_DOCRECOVERY_HXX 25cdf0e10cSrcweir #define _SVX_DOCRECOVERY_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <vcl/tabpage.hxx> 28cdf0e10cSrcweir #ifndef _SV_TABDIALOG_HXX 29cdf0e10cSrcweir #include <vcl/tabdlg.hxx> 30cdf0e10cSrcweir #endif 31cdf0e10cSrcweir #include <vcl/dialog.hxx> 32cdf0e10cSrcweir #ifndef _SV_BUTTON_HXX 33cdf0e10cSrcweir #include <vcl/button.hxx> 34cdf0e10cSrcweir #endif 35cdf0e10cSrcweir #include <vcl/fixed.hxx> 36cdf0e10cSrcweir #include <svtools/svmedit2.hxx> 37cdf0e10cSrcweir #include <svtools/svtreebx.hxx> 38cdf0e10cSrcweir #include <svx/simptabl.hxx> 39cdf0e10cSrcweir 40cdf0e10cSrcweir #include <cppuhelper/implbase1.hxx> 41cdf0e10cSrcweir #include <cppuhelper/implbase2.hxx> 42cdf0e10cSrcweir #include <com/sun/star/task/XStatusIndicatorFactory.hpp> 43cdf0e10cSrcweir #include <com/sun/star/frame/XStatusListener.hpp> 44cdf0e10cSrcweir #include <com/sun/star/frame/XDispatch.hpp> 45cdf0e10cSrcweir #include <com/sun/star/lang/XComponent.hpp> 46cdf0e10cSrcweir 47cdf0e10cSrcweir //=============================================== 48cdf0e10cSrcweir // const 49cdf0e10cSrcweir 50cdf0e10cSrcweir #define RECOVERY_CMDPART_PROTOCOL ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:") 51cdf0e10cSrcweir 52cdf0e10cSrcweir #define RECOVERY_CMDPART_DO_PREPARE_EMERGENCY_SAVE ::rtl::OUString::createFromAscii("/doPrepareEmergencySave" ) 53cdf0e10cSrcweir #define RECOVERY_CMDPART_DO_EMERGENCY_SAVE ::rtl::OUString::createFromAscii("/doEmergencySave" ) 54cdf0e10cSrcweir #define RECOVERY_CMDPART_DO_RECOVERY ::rtl::OUString::createFromAscii("/doAutoRecovery" ) 55cdf0e10cSrcweir #define RECOVERY_CMDPART_DO_CRASHREPORT ::rtl::OUString::createFromAscii("/doCrashReport" ) 56cdf0e10cSrcweir #define RECOVERY_CMDPART_DO_ENTRY_BACKUP ::rtl::OUString::createFromAscii("/doEntryBackup" ) 57cdf0e10cSrcweir #define RECOVERY_CMDPART_DO_ENTRY_CLEANUP ::rtl::OUString::createFromAscii("/doEntryCleanUp" ) 58cdf0e10cSrcweir 59cdf0e10cSrcweir #define RECOVERY_CMD_DO_PREPARE_EMERGENCY_SAVE ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doPrepareEmergencySave") 60cdf0e10cSrcweir #define RECOVERY_CMD_DO_EMERGENCY_SAVE ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doEmergencySave" ) 61cdf0e10cSrcweir #define RECOVERY_CMD_DO_RECOVERY ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doAutoRecovery" ) 62cdf0e10cSrcweir #define RECOVERY_CMD_DO_CRASHREPORT ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doCrashReport" ) 63cdf0e10cSrcweir #define RECOVERY_CMD_DO_ENTRY_BACKUP ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doEntryBackup" ) 64cdf0e10cSrcweir #define RECOVERY_CMD_DO_ENTRY_CLEANUP ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doEntryCleanUp" ) 65cdf0e10cSrcweir 66cdf0e10cSrcweir #define SERVICENAME_PROGRESSFACTORY ::rtl::OUString::createFromAscii("com.sun.star.task.StatusIndicatorFactory") 67cdf0e10cSrcweir #define SERVICENAME_URLTRANSFORMER ::rtl::OUString::createFromAscii("com.sun.star.util.URLTransformer" ) 68cdf0e10cSrcweir #define SERVICENAME_RECOVERYCORE ::rtl::OUString::createFromAscii("com.sun.star.frame.AutoRecovery" ) 69cdf0e10cSrcweir #define SERVICENAME_FOLDERPICKER ::rtl::OUString::createFromAscii("com.sun.star.ui.dialogs.FolderPicker" ) 70cdf0e10cSrcweir #define SERVICENAME_DESKTOP ::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop" ) 71cdf0e10cSrcweir 72cdf0e10cSrcweir #define PROP_PARENTWINDOW ::rtl::OUString::createFromAscii("Window" ) 73cdf0e10cSrcweir #define PROP_STATUSINDICATOR ::rtl::OUString::createFromAscii("StatusIndicator" ) 74cdf0e10cSrcweir #define PROP_DISPATCHASYNCHRON ::rtl::OUString::createFromAscii("DispatchAsynchron") 75cdf0e10cSrcweir #define PROP_SAVEPATH ::rtl::OUString::createFromAscii("SavePath" ) 76cdf0e10cSrcweir #define PROP_ENTRYID ::rtl::OUString::createFromAscii("EntryID" ) 77cdf0e10cSrcweir #define PROP_ALLOWPARENTSHOW ::rtl::OUString::createFromAscii("AllowParentShow" ) 78cdf0e10cSrcweir 79cdf0e10cSrcweir #define STATEPROP_ID ::rtl::OUString::createFromAscii("ID" ) 80cdf0e10cSrcweir #define STATEPROP_STATE ::rtl::OUString::createFromAscii("DocumentState") 81cdf0e10cSrcweir #define STATEPROP_ORGURL ::rtl::OUString::createFromAscii("OriginalURL" ) 82cdf0e10cSrcweir #define STATEPROP_TEMPURL ::rtl::OUString::createFromAscii("TempURL" ) 83cdf0e10cSrcweir #define STATEPROP_FACTORYURL ::rtl::OUString::createFromAscii("FactoryURL" ) 84cdf0e10cSrcweir #define STATEPROP_TEMPLATEURL ::rtl::OUString::createFromAscii("TemplateURL" ) 85cdf0e10cSrcweir #define STATEPROP_TITLE ::rtl::OUString::createFromAscii("Title" ) 86cdf0e10cSrcweir #define STATEPROP_MODULE ::rtl::OUString::createFromAscii("Module" ) 87cdf0e10cSrcweir 88cdf0e10cSrcweir #define RECOVERY_OPERATIONSTATE_START ::rtl::OUString::createFromAscii("start" ) 89cdf0e10cSrcweir #define RECOVERY_OPERATIONSTATE_STOP ::rtl::OUString::createFromAscii("stop" ) 90cdf0e10cSrcweir #define RECOVERY_OPERATIONSTATE_UPDATE ::rtl::OUString::createFromAscii("update") 91cdf0e10cSrcweir 92cdf0e10cSrcweir #define DLG_RET_UNKNOWN -1 93cdf0e10cSrcweir #define DLG_RET_OK 1 94cdf0e10cSrcweir #define DLG_RET_CANCEL 0 95cdf0e10cSrcweir #define DLG_RET_BACK 100 96cdf0e10cSrcweir #define DLG_RET_OK_AUTOLUNCH 101 97cdf0e10cSrcweir 98cdf0e10cSrcweir //=============================================== 99cdf0e10cSrcweir // namespace 100cdf0e10cSrcweir 101cdf0e10cSrcweir namespace svx{ 102cdf0e10cSrcweir namespace DocRecovery{ 103cdf0e10cSrcweir 104cdf0e10cSrcweir #ifdef css 105cdf0e10cSrcweir # error "Who uses css? I need it as temp. namespace alias!" 106cdf0e10cSrcweir #else 107cdf0e10cSrcweir # define css ::com::sun::star 108cdf0e10cSrcweir #endif 109cdf0e10cSrcweir 110cdf0e10cSrcweir //=============================================== 111cdf0e10cSrcweir enum EDocStates 112cdf0e10cSrcweir { 113cdf0e10cSrcweir /* TEMP STATES */ 114cdf0e10cSrcweir 115cdf0e10cSrcweir /// default state, if a document was new created or loaded 116cdf0e10cSrcweir E_UNKNOWN = 0, 117cdf0e10cSrcweir /// modified against the original file 118cdf0e10cSrcweir E_MODIFIED = 1, 119cdf0e10cSrcweir /// an active document can be postponed to be saved later. 120cdf0e10cSrcweir E_POSTPONED = 2, 121cdf0e10cSrcweir /// was already handled during one AutoSave/Recovery session. 122cdf0e10cSrcweir E_HANDLED = 4, 123cdf0e10cSrcweir /** an action was started (saving/loading) ... Can be interesting later if the process may be was interrupted by an exception. */ 124cdf0e10cSrcweir E_TRY_SAVE = 8, 125cdf0e10cSrcweir E_TRY_LOAD_BACKUP = 16, 126cdf0e10cSrcweir E_TRY_LOAD_ORIGINAL = 32, 127cdf0e10cSrcweir 128cdf0e10cSrcweir /* FINAL STATES */ 129cdf0e10cSrcweir 130*86e1cf34SPedro Giffuni /// the Auto/Emergency saved document isn't useable any longer 131cdf0e10cSrcweir E_DAMAGED = 64, 132*86e1cf34SPedro Giffuni /// the Auto/Emergency saved document isn't really up-to-date (some changes can be missing) 133cdf0e10cSrcweir E_INCOMPLETE = 128, 134cdf0e10cSrcweir /// the Auto/Emergency saved document was processed successfully 135cdf0e10cSrcweir E_SUCCEDED = 512 136cdf0e10cSrcweir }; 137cdf0e10cSrcweir 138cdf0e10cSrcweir //=============================================== 139cdf0e10cSrcweir enum ERecoveryState 140cdf0e10cSrcweir { 141cdf0e10cSrcweir E_SUCCESSFULLY_RECOVERED, 142cdf0e10cSrcweir E_ORIGINAL_DOCUMENT_RECOVERED, 143cdf0e10cSrcweir E_RECOVERY_FAILED, 144cdf0e10cSrcweir E_RECOVERY_IS_IN_PROGRESS, 145cdf0e10cSrcweir E_NOT_RECOVERED_YET 146cdf0e10cSrcweir }; 147cdf0e10cSrcweir 148cdf0e10cSrcweir //=============================================== 149cdf0e10cSrcweir struct TURLInfo 150cdf0e10cSrcweir { 151cdf0e10cSrcweir public: 152cdf0e10cSrcweir 153cdf0e10cSrcweir /// unique ID, which is specified by the underlying autorecovery core! 154cdf0e10cSrcweir sal_Int32 ID; 155cdf0e10cSrcweir 156cdf0e10cSrcweir /// the full qualified document URL 157cdf0e10cSrcweir ::rtl::OUString OrgURL; 158cdf0e10cSrcweir 159cdf0e10cSrcweir /// the full qualified URL of the temp. file (if it's exists) 160cdf0e10cSrcweir ::rtl::OUString TempURL; 161cdf0e10cSrcweir 162cdf0e10cSrcweir /// a may be existing factory URL (e.g. for untitled documents) 163cdf0e10cSrcweir ::rtl::OUString FactoryURL; 164cdf0e10cSrcweir 165cdf0e10cSrcweir /// may be the document base on a template file !? 166cdf0e10cSrcweir ::rtl::OUString TemplateURL; 167cdf0e10cSrcweir 168cdf0e10cSrcweir /// the pure file name, without path, disc etcpp. 169cdf0e10cSrcweir ::rtl::OUString DisplayName; 170cdf0e10cSrcweir 171cdf0e10cSrcweir /// the application module, where this document was loaded 172cdf0e10cSrcweir ::rtl::OUString Module; 173cdf0e10cSrcweir 174cdf0e10cSrcweir /// state info as e.g. VALID, CORRUPTED, NON EXISTING ... 175cdf0e10cSrcweir sal_Int32 DocState; 176cdf0e10cSrcweir 177cdf0e10cSrcweir /// ui representation for DocState! 178cdf0e10cSrcweir ERecoveryState RecoveryState; 179cdf0e10cSrcweir 180cdf0e10cSrcweir /// standard icon 181cdf0e10cSrcweir Image StandardImage; 182cdf0e10cSrcweir 183cdf0e10cSrcweir /// high contrast icon 184cdf0e10cSrcweir Image HCImage; 185cdf0e10cSrcweir 186cdf0e10cSrcweir public: 187cdf0e10cSrcweir TURLInfosvx::DocRecovery::TURLInfo188cdf0e10cSrcweir TURLInfo() 189cdf0e10cSrcweir : ID (-1 ) 190cdf0e10cSrcweir , DocState (E_UNKNOWN ) 191cdf0e10cSrcweir , RecoveryState(E_NOT_RECOVERED_YET) 192cdf0e10cSrcweir {} 193cdf0e10cSrcweir }; 194cdf0e10cSrcweir 195cdf0e10cSrcweir //=============================================== 196cdf0e10cSrcweir typedef ::std::vector< TURLInfo > TURLList; 197cdf0e10cSrcweir 198cdf0e10cSrcweir //=============================================== 199cdf0e10cSrcweir class IRecoveryUpdateListener 200cdf0e10cSrcweir { 201cdf0e10cSrcweir public: 202cdf0e10cSrcweir 203cdf0e10cSrcweir // inform listener about changed items, which should be refreshed 204cdf0e10cSrcweir virtual void updateItems() = 0; 205cdf0e10cSrcweir 206cdf0e10cSrcweir // inform listener about starting of the asynchronous recovery operation 207cdf0e10cSrcweir virtual void start() = 0; 208cdf0e10cSrcweir 209cdf0e10cSrcweir // inform listener about ending of the asynchronous recovery operation 210cdf0e10cSrcweir virtual void end() = 0; 211cdf0e10cSrcweir 212cdf0e10cSrcweir // TODO 213cdf0e10cSrcweir virtual void stepNext(TURLInfo* pItem) = 0; 214cdf0e10cSrcweir }; 215cdf0e10cSrcweir 216cdf0e10cSrcweir //=============================================== 217cdf0e10cSrcweir class RecoveryCore : public ::cppu::WeakImplHelper1< css::frame::XStatusListener > 218cdf0e10cSrcweir { 219cdf0e10cSrcweir //------------------------------------------- 220cdf0e10cSrcweir // types, const 221cdf0e10cSrcweir public: 222cdf0e10cSrcweir 223cdf0e10cSrcweir //------------------------------------------- 224cdf0e10cSrcweir // member 225cdf0e10cSrcweir private: 226cdf0e10cSrcweir 227cdf0e10cSrcweir /// TODO 228cdf0e10cSrcweir css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; 229cdf0e10cSrcweir 230cdf0e10cSrcweir /// TODO 231cdf0e10cSrcweir css::uno::Reference< css::frame::XDispatch > m_xRealCore; 232cdf0e10cSrcweir 233cdf0e10cSrcweir /// TODO 234cdf0e10cSrcweir css::uno::Reference< css::task::XStatusIndicator > m_xProgress; 235cdf0e10cSrcweir 236cdf0e10cSrcweir /// TODO 237cdf0e10cSrcweir TURLList m_lURLs; 238cdf0e10cSrcweir 239cdf0e10cSrcweir /// TODO 240cdf0e10cSrcweir IRecoveryUpdateListener* m_pListener; 241cdf0e10cSrcweir 242cdf0e10cSrcweir /** @short knows the reason, why we listen on our internal m_xRealCore 243cdf0e10cSrcweir member. 244cdf0e10cSrcweir 245cdf0e10cSrcweir @descr Because we listen for different operations 246cdf0e10cSrcweir on the core dispatch implementation, we must know, 247cdf0e10cSrcweir which URL we have to use for deregistration! 248cdf0e10cSrcweir */ 249cdf0e10cSrcweir sal_Bool m_bListenForSaving; 250cdf0e10cSrcweir 251cdf0e10cSrcweir //------------------------------------------- 252cdf0e10cSrcweir // native interface 253cdf0e10cSrcweir public: 254cdf0e10cSrcweir 255cdf0e10cSrcweir //--------------------------------------- 256cdf0e10cSrcweir /** @short TODO */ 257cdf0e10cSrcweir RecoveryCore(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , 258cdf0e10cSrcweir sal_Bool bUsedForSaving); 259cdf0e10cSrcweir 260cdf0e10cSrcweir //--------------------------------------- 261cdf0e10cSrcweir /** @short TODO */ 262cdf0e10cSrcweir virtual ~RecoveryCore(); 263cdf0e10cSrcweir 264cdf0e10cSrcweir //--------------------------------------- 265cdf0e10cSrcweir /** @short TODO */ 266cdf0e10cSrcweir virtual css::uno::Reference< css::lang::XMultiServiceFactory > getSMGR(); 267cdf0e10cSrcweir 268cdf0e10cSrcweir //--------------------------------------- 269cdf0e10cSrcweir /** @short TODO */ 270cdf0e10cSrcweir virtual TURLList* getURLListAccess(); 271cdf0e10cSrcweir 272cdf0e10cSrcweir //--------------------------------------- 273cdf0e10cSrcweir /** @short TODO */ 274cdf0e10cSrcweir virtual sal_Bool existsBrokenTempEntries(); 275cdf0e10cSrcweir virtual sal_Bool existsNonRecoveredEntries(); 276cdf0e10cSrcweir static sal_Bool isBrokenTempEntry(const TURLInfo& rInfo); 277cdf0e10cSrcweir virtual void saveBrokenTempEntries(const ::rtl::OUString& sSaveDir); 278cdf0e10cSrcweir virtual void saveAllTempEntries(const ::rtl::OUString& sSaveDir); 279cdf0e10cSrcweir virtual void forgetBrokenTempEntries(); 280cdf0e10cSrcweir virtual void forgetAllRecoveryEntries(); 281cdf0e10cSrcweir void forgetBrokenRecoveryEntries(); 282cdf0e10cSrcweir 283cdf0e10cSrcweir //--------------------------------------- 284cdf0e10cSrcweir /** @short TODO */ 285cdf0e10cSrcweir virtual void setProgressHandler(const css::uno::Reference< css::task::XStatusIndicator >& xProgress); 286cdf0e10cSrcweir 287cdf0e10cSrcweir //--------------------------------------- 288cdf0e10cSrcweir /** @short TODO */ 289cdf0e10cSrcweir virtual void setUpdateListener(IRecoveryUpdateListener* pListener); 290cdf0e10cSrcweir 291cdf0e10cSrcweir //--------------------------------------- 292cdf0e10cSrcweir /** @short TODO */ 293cdf0e10cSrcweir virtual void doEmergencySavePrepare(); 294cdf0e10cSrcweir virtual void doEmergencySave(); 295cdf0e10cSrcweir virtual void doRecovery(); 296cdf0e10cSrcweir 297cdf0e10cSrcweir //--------------------------------------- 298cdf0e10cSrcweir /** @short TODO */ 299cdf0e10cSrcweir static ERecoveryState mapDocState2RecoverState(sal_Int32 eDocState); 300cdf0e10cSrcweir 301cdf0e10cSrcweir //------------------------------------------- 302cdf0e10cSrcweir // uno interface 303cdf0e10cSrcweir public: 304cdf0e10cSrcweir 305cdf0e10cSrcweir // css.frame.XStatusListener 306cdf0e10cSrcweir virtual void SAL_CALL statusChanged(const css::frame::FeatureStateEvent& aEvent) 307cdf0e10cSrcweir throw(css::uno::RuntimeException); 308cdf0e10cSrcweir 309cdf0e10cSrcweir // css.lang.XEventListener 310cdf0e10cSrcweir virtual void SAL_CALL disposing(const css::lang::EventObject& aEvent) 311cdf0e10cSrcweir throw(css::uno::RuntimeException); 312cdf0e10cSrcweir 313cdf0e10cSrcweir //------------------------------------------- 314cdf0e10cSrcweir // helper 315cdf0e10cSrcweir private: 316cdf0e10cSrcweir 317cdf0e10cSrcweir //--------------------------------------- 318cdf0e10cSrcweir /** @short starts listening on the internal EmergencySave/AutoRecovery core. 319cdf0e10cSrcweir */ 320cdf0e10cSrcweir void impl_startListening(); 321cdf0e10cSrcweir 322cdf0e10cSrcweir //--------------------------------------- 323cdf0e10cSrcweir /** @short stop listening on the internal EmergencySave/AutoRecovery core. 324cdf0e10cSrcweir */ 325cdf0e10cSrcweir void impl_stopListening(); 326cdf0e10cSrcweir 327cdf0e10cSrcweir //--------------------------------------- 328cdf0e10cSrcweir /** @short TODO */ 329cdf0e10cSrcweir css::util::URL impl_getParsedURL(const ::rtl::OUString& sURL); 330cdf0e10cSrcweir }; 331cdf0e10cSrcweir 332cdf0e10cSrcweir //=============================================== 333cdf0e10cSrcweir class PluginProgressWindow : public Window 334cdf0e10cSrcweir { 335cdf0e10cSrcweir private: 336cdf0e10cSrcweir 337cdf0e10cSrcweir css::uno::Reference< css::lang::XComponent > m_xProgress; 338cdf0e10cSrcweir 339cdf0e10cSrcweir public: 340cdf0e10cSrcweir 341cdf0e10cSrcweir PluginProgressWindow( Window* pParent , 342cdf0e10cSrcweir const css::uno::Reference< css::lang::XComponent >& xProgress); 343cdf0e10cSrcweir ~PluginProgressWindow(); 344cdf0e10cSrcweir }; 345cdf0e10cSrcweir 346cdf0e10cSrcweir class PluginProgress : public ::cppu::WeakImplHelper2< css::task::XStatusIndicator , 347cdf0e10cSrcweir css::lang::XComponent > 348cdf0e10cSrcweir { 349cdf0e10cSrcweir 350cdf0e10cSrcweir //------------------------------------------- 351cdf0e10cSrcweir // member 352cdf0e10cSrcweir private: 353cdf0e10cSrcweir 354cdf0e10cSrcweir /** @short TODO */ 355cdf0e10cSrcweir css::uno::Reference< css::task::XStatusIndicatorFactory > m_xProgressFactory; 356cdf0e10cSrcweir 357cdf0e10cSrcweir css::uno::Reference< css::task::XStatusIndicator > m_xProgress; 358cdf0e10cSrcweir 359cdf0e10cSrcweir PluginProgressWindow* m_pPlugProgressWindow; 360cdf0e10cSrcweir 361cdf0e10cSrcweir //------------------------------------------- 362cdf0e10cSrcweir // native interface 363cdf0e10cSrcweir public: 364cdf0e10cSrcweir 365cdf0e10cSrcweir //--------------------------------------- 366cdf0e10cSrcweir /** @short TODO */ 367cdf0e10cSrcweir PluginProgress( Window* pParent, 368cdf0e10cSrcweir const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ); 369cdf0e10cSrcweir 370cdf0e10cSrcweir //--------------------------------------- 371cdf0e10cSrcweir /** @short TODO */ 372cdf0e10cSrcweir virtual ~PluginProgress(); 373cdf0e10cSrcweir 374cdf0e10cSrcweir //--------------------------------------- 375cdf0e10cSrcweir /** @short TODO */ 376cdf0e10cSrcweir Window* getPlugWindow(); 377cdf0e10cSrcweir 378cdf0e10cSrcweir //------------------------------------------- 379cdf0e10cSrcweir // uno interface 380cdf0e10cSrcweir public: 381cdf0e10cSrcweir 382cdf0e10cSrcweir //--------------------------------------- 383cdf0e10cSrcweir // XStatusIndicator 384cdf0e10cSrcweir virtual void SAL_CALL start(const ::rtl::OUString& sText , 385cdf0e10cSrcweir sal_Int32 nRange) 386cdf0e10cSrcweir throw(css::uno::RuntimeException); 387cdf0e10cSrcweir 388cdf0e10cSrcweir virtual void SAL_CALL end() 389cdf0e10cSrcweir throw(css::uno::RuntimeException); 390cdf0e10cSrcweir 391cdf0e10cSrcweir virtual void SAL_CALL setText(const ::rtl::OUString& sText) 392cdf0e10cSrcweir throw(css::uno::RuntimeException); 393cdf0e10cSrcweir 394cdf0e10cSrcweir virtual void SAL_CALL setValue(sal_Int32 nValue) 395cdf0e10cSrcweir throw(css::uno::RuntimeException); 396cdf0e10cSrcweir 397cdf0e10cSrcweir virtual void SAL_CALL reset() 398cdf0e10cSrcweir throw(css::uno::RuntimeException); 399cdf0e10cSrcweir 400cdf0e10cSrcweir //--------------------------------------- 401cdf0e10cSrcweir // XComponent 402cdf0e10cSrcweir virtual void SAL_CALL dispose() 403cdf0e10cSrcweir throw(css::uno::RuntimeException); 404cdf0e10cSrcweir 405cdf0e10cSrcweir virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener >& xListener) 406cdf0e10cSrcweir throw(css::uno::RuntimeException); 407cdf0e10cSrcweir 408cdf0e10cSrcweir virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener) 409cdf0e10cSrcweir throw(css::uno::RuntimeException); 410cdf0e10cSrcweir }; 411cdf0e10cSrcweir 412cdf0e10cSrcweir //=============================================== 413cdf0e10cSrcweir class IExtendedTabPage : public TabPage 414cdf0e10cSrcweir { 415cdf0e10cSrcweir //------------------------------------------- 416cdf0e10cSrcweir // member 417cdf0e10cSrcweir protected: 418cdf0e10cSrcweir 419cdf0e10cSrcweir short m_nResult; 420cdf0e10cSrcweir 421cdf0e10cSrcweir //------------------------------------------- 422cdf0e10cSrcweir // interface 423cdf0e10cSrcweir public: 424cdf0e10cSrcweir IExtendedTabPage(Window * pParent,WinBits nStyle=0)425cdf0e10cSrcweir IExtendedTabPage( Window* pParent, WinBits nStyle = 0 ) 426cdf0e10cSrcweir : TabPage( pParent, nStyle ) 427cdf0e10cSrcweir , m_nResult(DLG_RET_UNKNOWN) 428cdf0e10cSrcweir {} 429cdf0e10cSrcweir IExtendedTabPage(Window * pParent,const ResId & rResId)430cdf0e10cSrcweir IExtendedTabPage( Window* pParent, const ResId& rResId ) 431cdf0e10cSrcweir : TabPage( pParent, rResId ) 432cdf0e10cSrcweir , m_nResult(DLG_RET_UNKNOWN) 433cdf0e10cSrcweir {} 434cdf0e10cSrcweir ~IExtendedTabPage()435cdf0e10cSrcweir virtual ~IExtendedTabPage() 436cdf0e10cSrcweir {} 437cdf0e10cSrcweir 438cdf0e10cSrcweir virtual short execute() = 0; 439cdf0e10cSrcweir virtual void setDefButton() = 0; 440cdf0e10cSrcweir }; 441cdf0e10cSrcweir 442cdf0e10cSrcweir typedef ::std::vector< IExtendedTabPage* > TTabPageList; 443cdf0e10cSrcweir 444cdf0e10cSrcweir //=============================================== 445cdf0e10cSrcweir class TabDialog4Recovery : public TabDialog 446cdf0e10cSrcweir { 447cdf0e10cSrcweir //------------------------------------------- 448cdf0e10cSrcweir // member 449cdf0e10cSrcweir private: 450cdf0e10cSrcweir 451cdf0e10cSrcweir TTabPageList m_lTabPages; 452cdf0e10cSrcweir TTabPageList::iterator m_pActualPage; 453cdf0e10cSrcweir 454cdf0e10cSrcweir //------------------------------------------- 455cdf0e10cSrcweir // interface 456cdf0e10cSrcweir public: 457cdf0e10cSrcweir 458cdf0e10cSrcweir TabDialog4Recovery(Window* pParent); 459cdf0e10cSrcweir virtual ~TabDialog4Recovery(); 460cdf0e10cSrcweir 461cdf0e10cSrcweir virtual void addTabPage(IExtendedTabPage* pPage); 462cdf0e10cSrcweir virtual short Execute(); 463cdf0e10cSrcweir }; 464cdf0e10cSrcweir 465cdf0e10cSrcweir //=============================================== 466cdf0e10cSrcweir class SaveDialog : public IExtendedTabPage 467cdf0e10cSrcweir { 468cdf0e10cSrcweir //------------------------------------------- 469cdf0e10cSrcweir // member 470cdf0e10cSrcweir private: 471cdf0e10cSrcweir 472cdf0e10cSrcweir Window m_aTitleWin; 473cdf0e10cSrcweir FixedText m_aTitleFT; 474cdf0e10cSrcweir FixedLine m_aTitleFL; 475cdf0e10cSrcweir FixedText m_aDescrFT; 476cdf0e10cSrcweir FixedText m_aFileListFT; 477cdf0e10cSrcweir ListBox m_aFileListLB; 478cdf0e10cSrcweir FixedLine m_aBottomFL; 479cdf0e10cSrcweir OKButton m_aOkBtn; 480cdf0e10cSrcweir 481cdf0e10cSrcweir RecoveryCore* m_pCore; 482cdf0e10cSrcweir 483cdf0e10cSrcweir //------------------------------------------- 484cdf0e10cSrcweir // interface 485cdf0e10cSrcweir public: 486cdf0e10cSrcweir 487cdf0e10cSrcweir //--------------------------------------- 488cdf0e10cSrcweir /** @short create all child controls of this dialog. 489cdf0e10cSrcweir 490*86e1cf34SPedro Giffuni @descr The dialog isn't shown nor it starts any 491cdf0e10cSrcweir action by itself! 492cdf0e10cSrcweir 493cdf0e10cSrcweir @param pParent 494cdf0e10cSrcweir can point to a parent window. 495cdf0e10cSrcweir If its set to 0, the defmodal-dialog-parent 496*86e1cf34SPedro Giffuni is used automatically. 497cdf0e10cSrcweir 498cdf0e10cSrcweir @param pCore 499cdf0e10cSrcweir provides access to the recovery core service 500cdf0e10cSrcweir and the current list of open documents, 501cdf0e10cSrcweir which should be shown inside this dialog. 502cdf0e10cSrcweir */ 503cdf0e10cSrcweir SaveDialog(Window* pParent, 504cdf0e10cSrcweir RecoveryCore* pCore ); 505cdf0e10cSrcweir 506cdf0e10cSrcweir //--------------------------------------- 507cdf0e10cSrcweir /** @short free all controls and used memory. */ 508cdf0e10cSrcweir virtual ~SaveDialog(); 509cdf0e10cSrcweir 510cdf0e10cSrcweir //--------------------------------------- 511cdf0e10cSrcweir /** @short TODO*/ 512cdf0e10cSrcweir virtual short execute(); 513cdf0e10cSrcweir 514cdf0e10cSrcweir //--------------------------------------- 515cdf0e10cSrcweir /** @short TODO*/ 516cdf0e10cSrcweir virtual void setDefButton(); 517cdf0e10cSrcweir 518cdf0e10cSrcweir DECL_LINK(OKButtonHdl, void*); 519cdf0e10cSrcweir }; 520cdf0e10cSrcweir 521cdf0e10cSrcweir //=============================================== 522cdf0e10cSrcweir class SaveProgressDialog : public ModalDialog 523cdf0e10cSrcweir , public IRecoveryUpdateListener 524cdf0e10cSrcweir { 525cdf0e10cSrcweir //------------------------------------------- 526cdf0e10cSrcweir // member 527cdf0e10cSrcweir private: 528cdf0e10cSrcweir 529cdf0e10cSrcweir FixedText m_aHintFT; 530cdf0e10cSrcweir FixedText m_aProgrFT; 531cdf0e10cSrcweir String m_aProgrBaseTxt; 532cdf0e10cSrcweir Window m_aProgrParent; 533cdf0e10cSrcweir 534cdf0e10cSrcweir // @short TODO 535cdf0e10cSrcweir RecoveryCore* m_pCore; 536cdf0e10cSrcweir 537cdf0e10cSrcweir // @short TODO 538cdf0e10cSrcweir css::uno::Reference< css::task::XStatusIndicator > m_xProgress; 539cdf0e10cSrcweir 540cdf0e10cSrcweir //------------------------------------------- 541cdf0e10cSrcweir // interface 542cdf0e10cSrcweir public: 543cdf0e10cSrcweir 544cdf0e10cSrcweir //--------------------------------------- 545cdf0e10cSrcweir /** @short create all child controls of this dialog. 546cdf0e10cSrcweir 547*86e1cf34SPedro Giffuni @descr The dialog isn't shown nor it starts any 548cdf0e10cSrcweir action by itself! 549cdf0e10cSrcweir 550cdf0e10cSrcweir @param pParent 551cdf0e10cSrcweir can point to a parent window. 552cdf0e10cSrcweir If its set to 0, the defmodal-dialog-parent 553*86e1cf34SPedro Giffuni is used automatically. 554cdf0e10cSrcweir 555cdf0e10cSrcweir @param pCore 556cdf0e10cSrcweir used to start emegrency save. 557cdf0e10cSrcweir */ 558cdf0e10cSrcweir SaveProgressDialog(Window* pParent, 559cdf0e10cSrcweir RecoveryCore* pCore ); 560cdf0e10cSrcweir 561cdf0e10cSrcweir //--------------------------------------- 562cdf0e10cSrcweir /** @short free all controls and used memory. */ 563cdf0e10cSrcweir virtual ~SaveProgressDialog(); 564cdf0e10cSrcweir 565cdf0e10cSrcweir //--------------------------------------- 566cdf0e10cSrcweir /** @short start the emergency save operation. */ 567cdf0e10cSrcweir virtual short Execute(); 568cdf0e10cSrcweir 569cdf0e10cSrcweir // IRecoveryUpdateListener 570cdf0e10cSrcweir virtual void updateItems(); 571cdf0e10cSrcweir virtual void stepNext(TURLInfo* pItem); 572cdf0e10cSrcweir virtual void start(); 573cdf0e10cSrcweir virtual void end(); 574cdf0e10cSrcweir }; 575cdf0e10cSrcweir 576cdf0e10cSrcweir //=============================================== 577cdf0e10cSrcweir class RecovDocListEntry : public SvLBoxString 578cdf0e10cSrcweir { 579cdf0e10cSrcweir //------------------------------------------- 580cdf0e10cSrcweir // interface 581cdf0e10cSrcweir private: 582cdf0e10cSrcweir 583cdf0e10cSrcweir //------------------------------------------- 584cdf0e10cSrcweir // interface 585cdf0e10cSrcweir public: 586cdf0e10cSrcweir 587cdf0e10cSrcweir //--------------------------------------- 588cdf0e10cSrcweir /** @short TODO */ 589cdf0e10cSrcweir RecovDocListEntry( SvLBoxEntry* pEntry, 590cdf0e10cSrcweir sal_uInt16 nFlags, 591cdf0e10cSrcweir const String& sText ); 592cdf0e10cSrcweir 593cdf0e10cSrcweir //--------------------------------------- 594cdf0e10cSrcweir /** @short TODO */ 595cdf0e10cSrcweir virtual void Paint(const Point& aPos , 596cdf0e10cSrcweir SvLBox& aDevice, 597cdf0e10cSrcweir sal_uInt16 nFlags , 598cdf0e10cSrcweir SvLBoxEntry* pEntry ); 599cdf0e10cSrcweir }; 600cdf0e10cSrcweir 601cdf0e10cSrcweir //=============================================== 602cdf0e10cSrcweir class RecovDocList : public SvxSimpleTable 603cdf0e10cSrcweir { 604cdf0e10cSrcweir //------------------------------------------- 605cdf0e10cSrcweir // member 606cdf0e10cSrcweir public: 607cdf0e10cSrcweir 608cdf0e10cSrcweir Image m_aGreenCheckImg; 609cdf0e10cSrcweir Image m_aYellowCheckImg; 610cdf0e10cSrcweir Image m_aRedCrossImg; 611cdf0e10cSrcweir Image m_aGreenCheckImgHC; 612cdf0e10cSrcweir Image m_aYellowCheckImgHC; 613cdf0e10cSrcweir Image m_aRedCrossImgHC; 614cdf0e10cSrcweir 615cdf0e10cSrcweir String m_aSuccessRecovStr; 616cdf0e10cSrcweir String m_aOrigDocRecovStr; 617cdf0e10cSrcweir String m_aRecovFailedStr; 618cdf0e10cSrcweir String m_aRecovInProgrStr; 619cdf0e10cSrcweir String m_aNotRecovYetStr; 620cdf0e10cSrcweir 621cdf0e10cSrcweir //------------------------------------------- 622cdf0e10cSrcweir // interface 623cdf0e10cSrcweir public: 624cdf0e10cSrcweir 625cdf0e10cSrcweir //--------------------------------------- 626cdf0e10cSrcweir /** @short TODO */ 627cdf0e10cSrcweir RecovDocList( Window* pParent, 628cdf0e10cSrcweir const ResId& rResId ); 629cdf0e10cSrcweir 630cdf0e10cSrcweir //--------------------------------------- 631cdf0e10cSrcweir /** @short TODO */ 632cdf0e10cSrcweir virtual ~RecovDocList(); 633cdf0e10cSrcweir 634cdf0e10cSrcweir //--------------------------------------- 635cdf0e10cSrcweir /** @short TODO */ 636cdf0e10cSrcweir virtual void InitEntry( SvLBoxEntry* pEntry , 637cdf0e10cSrcweir const XubString& sText , 638cdf0e10cSrcweir const Image& aImage1, 639cdf0e10cSrcweir const Image& aImage2, 640cdf0e10cSrcweir SvLBoxButtonKind eButtonKind); 641cdf0e10cSrcweir }; 642cdf0e10cSrcweir 643cdf0e10cSrcweir //=============================================== 644cdf0e10cSrcweir class RecoveryDialog : public IExtendedTabPage 645cdf0e10cSrcweir , public IRecoveryUpdateListener 646cdf0e10cSrcweir { 647cdf0e10cSrcweir //------------------------------------------- 648cdf0e10cSrcweir // member 649cdf0e10cSrcweir private: 650cdf0e10cSrcweir Window m_aTitleWin; 651cdf0e10cSrcweir FixedText m_aTitleFT; 652cdf0e10cSrcweir FixedLine m_aTitleFL; 653cdf0e10cSrcweir FixedText m_aDescrFT; 654cdf0e10cSrcweir FixedText m_aProgressFT; 655cdf0e10cSrcweir Window m_aProgrParent; 656cdf0e10cSrcweir FixedText m_aFileListFT; 657cdf0e10cSrcweir RecovDocList m_aFileListLB; 658cdf0e10cSrcweir FixedLine m_aBottomFL; 659cdf0e10cSrcweir PushButton m_aNextBtn; 660cdf0e10cSrcweir CancelButton m_aCancelBtn; 661cdf0e10cSrcweir String m_aNextStr; 662cdf0e10cSrcweir String m_aTitleRecoveryInProgress; 663cdf0e10cSrcweir String m_aTitleRecoveryReport; 664cdf0e10cSrcweir String m_aRecoveryOnlyFinish; 665cdf0e10cSrcweir String m_aRecoveryOnlyFinishDescr; 666cdf0e10cSrcweir 667cdf0e10cSrcweir PushButton* m_pDefButton; 668cdf0e10cSrcweir RecoveryCore* m_pCore; 669cdf0e10cSrcweir css::uno::Reference< css::task::XStatusIndicator > m_xProgress; 670cdf0e10cSrcweir enum EInternalRecoveryState 671cdf0e10cSrcweir { 672cdf0e10cSrcweir E_RECOVERY_PREPARED, // dialog started ... recovery prepared 673cdf0e10cSrcweir E_RECOVERY_IN_PROGRESS, // recovery core still in progress 674cdf0e10cSrcweir E_RECOVERY_CORE_DONE, // recovery core finished it's task 675cdf0e10cSrcweir E_RECOVERY_DONE, // user clicked "next" button 676cdf0e10cSrcweir E_RECOVERY_CANCELED, // user clicked "cancel" button 677cdf0e10cSrcweir E_RECOVERY_CANCELED_BEFORE, // user clicked "cancel" button before recovery was started 678cdf0e10cSrcweir E_RECOVERY_CANCELED_AFTERWARDS, // user clicked "cancel" button after reovery was finished 679cdf0e10cSrcweir E_RECOVERY_HANDLED // the recovery wizard page was shown already ... and will be shown now again ... 680cdf0e10cSrcweir }; 681cdf0e10cSrcweir sal_Int32 m_eRecoveryState; 682cdf0e10cSrcweir sal_Bool m_bWaitForUser; 683cdf0e10cSrcweir sal_Bool m_bWaitForCore; 684cdf0e10cSrcweir sal_Bool m_bUserDecideNext; 685cdf0e10cSrcweir sal_Bool m_bWasRecoveryStarted; 686cdf0e10cSrcweir sal_Bool m_bRecoveryOnly; 687cdf0e10cSrcweir 688cdf0e10cSrcweir //------------------------------------------- 689cdf0e10cSrcweir // member 690cdf0e10cSrcweir public: 691cdf0e10cSrcweir 692cdf0e10cSrcweir //--------------------------------------- 693cdf0e10cSrcweir /** @short TODO */ 694cdf0e10cSrcweir RecoveryDialog(Window* pParent, 695cdf0e10cSrcweir RecoveryCore* pCore ); 696cdf0e10cSrcweir 697cdf0e10cSrcweir //--------------------------------------- 698cdf0e10cSrcweir /** @short TODO */ 699cdf0e10cSrcweir virtual ~RecoveryDialog(); 700cdf0e10cSrcweir 701cdf0e10cSrcweir //--------------------------------------- 702cdf0e10cSrcweir // IRecoveryUpdateListener 703cdf0e10cSrcweir virtual void updateItems(); 704cdf0e10cSrcweir virtual void stepNext(TURLInfo* pItem); 705cdf0e10cSrcweir virtual void start(); 706cdf0e10cSrcweir virtual void end(); 707cdf0e10cSrcweir 708cdf0e10cSrcweir //--------------------------------------- 709cdf0e10cSrcweir /** @short TODO */ 710cdf0e10cSrcweir virtual short execute(); 711cdf0e10cSrcweir 712cdf0e10cSrcweir //--------------------------------------- 713cdf0e10cSrcweir /** @short TODO*/ 714cdf0e10cSrcweir virtual void setDefButton(); 715cdf0e10cSrcweir 716cdf0e10cSrcweir //------------------------------------------- 717cdf0e10cSrcweir // helper 718cdf0e10cSrcweir private: 719cdf0e10cSrcweir 720cdf0e10cSrcweir //--------------------------------------- 721cdf0e10cSrcweir /** @short TODO */ 722cdf0e10cSrcweir DECL_LINK(NextButtonHdl, void*); 723cdf0e10cSrcweir DECL_LINK(CancelButtonHdl, void*); 724cdf0e10cSrcweir 725cdf0e10cSrcweir //--------------------------------------- 726cdf0e10cSrcweir /** @short TODO */ 727cdf0e10cSrcweir void impl_refreshDocList(); 728cdf0e10cSrcweir 729cdf0e10cSrcweir //--------------------------------------- 730cdf0e10cSrcweir /** @short TODO */ 731cdf0e10cSrcweir String impl_getStatusString( const TURLInfo& rInfo ) const; 732cdf0e10cSrcweir }; 733cdf0e10cSrcweir 734cdf0e10cSrcweir //=============================================== 735cdf0e10cSrcweir class BrokenRecoveryDialog : public ModalDialog 736cdf0e10cSrcweir { 737cdf0e10cSrcweir //------------------------------------------- 738cdf0e10cSrcweir // member 739cdf0e10cSrcweir private: 740cdf0e10cSrcweir FixedText m_aDescrFT; 741cdf0e10cSrcweir FixedText m_aFileListFT; 742cdf0e10cSrcweir ListBox m_aFileListLB; 743cdf0e10cSrcweir FixedText m_aSaveDirFT; 744cdf0e10cSrcweir Edit m_aSaveDirED; 745cdf0e10cSrcweir PushButton m_aSaveDirBtn; 746cdf0e10cSrcweir FixedLine m_aBottomFL; 747cdf0e10cSrcweir OKButton m_aOkBtn; 748cdf0e10cSrcweir CancelButton m_aCancelBtn; 749cdf0e10cSrcweir 750cdf0e10cSrcweir ::rtl::OUString m_sSavePath; 751cdf0e10cSrcweir RecoveryCore* m_pCore; 752cdf0e10cSrcweir sal_Bool m_bBeforeRecovery; 753cdf0e10cSrcweir sal_Bool m_bExecutionNeeded; 754cdf0e10cSrcweir 755cdf0e10cSrcweir //------------------------------------------- 756cdf0e10cSrcweir // interface 757cdf0e10cSrcweir public: 758cdf0e10cSrcweir 759cdf0e10cSrcweir //--------------------------------------- 760cdf0e10cSrcweir /** @short TODO */ 761cdf0e10cSrcweir BrokenRecoveryDialog(Window* pParent , 762cdf0e10cSrcweir RecoveryCore* pCore , 763cdf0e10cSrcweir sal_Bool bBeforeRecovery); 764cdf0e10cSrcweir 765cdf0e10cSrcweir //--------------------------------------- 766cdf0e10cSrcweir /** @short TODO */ 767cdf0e10cSrcweir virtual ~BrokenRecoveryDialog(); 768cdf0e10cSrcweir 769cdf0e10cSrcweir //--------------------------------------- 770cdf0e10cSrcweir /** @short TODO */ 771cdf0e10cSrcweir virtual sal_Bool isExecutionNeeded(); 772cdf0e10cSrcweir 773cdf0e10cSrcweir //--------------------------------------- 774cdf0e10cSrcweir /** @short TODO */ 775cdf0e10cSrcweir virtual ::rtl::OUString getSaveDirURL(); 776cdf0e10cSrcweir 777cdf0e10cSrcweir //------------------------------------------- 778cdf0e10cSrcweir // helper 779cdf0e10cSrcweir private: 780cdf0e10cSrcweir 781cdf0e10cSrcweir //--------------------------------------- 782cdf0e10cSrcweir /** @short TODO */ 783cdf0e10cSrcweir void impl_refresh(); 784cdf0e10cSrcweir 785cdf0e10cSrcweir //--------------------------------------- 786cdf0e10cSrcweir /** @short TODO */ 787cdf0e10cSrcweir DECL_LINK(SaveButtonHdl, void*); 788cdf0e10cSrcweir 789cdf0e10cSrcweir //--------------------------------------- 790cdf0e10cSrcweir /** @short TODO */ 791cdf0e10cSrcweir DECL_LINK(OkButtonHdl, void*); 792cdf0e10cSrcweir 793cdf0e10cSrcweir //--------------------------------------- 794cdf0e10cSrcweir /** @short TODO */ 795cdf0e10cSrcweir DECL_LINK(CancelButtonHdl, void*); 796cdf0e10cSrcweir 797cdf0e10cSrcweir //--------------------------------------- 798cdf0e10cSrcweir /** @short TODO */ 799cdf0e10cSrcweir void impl_askForSavePath(); 800cdf0e10cSrcweir }; 801cdf0e10cSrcweir 802cdf0e10cSrcweir 803cdf0e10cSrcweir 804cdf0e10cSrcweir class ErrorRepWelcomeDialog : public IExtendedTabPage 805cdf0e10cSrcweir { 806cdf0e10cSrcweir private: 807cdf0e10cSrcweir Window maTitleWin; 808cdf0e10cSrcweir FixedText maTitleFT; 809cdf0e10cSrcweir FixedLine maTitleFL; 810cdf0e10cSrcweir FixedText maDescrFT; 811cdf0e10cSrcweir 812cdf0e10cSrcweir FixedLine maBottomFL; 813cdf0e10cSrcweir PushButton maPrevBtn; 814cdf0e10cSrcweir OKButton maNextBtn; 815cdf0e10cSrcweir CancelButton maCancelBtn; 816cdf0e10cSrcweir 817cdf0e10cSrcweir DECL_LINK( PrevBtnHdl, void* ); 818cdf0e10cSrcweir DECL_LINK( NextBtnHdl, void* ); 819cdf0e10cSrcweir DECL_LINK( CancelBtnHdl, void* ); 820cdf0e10cSrcweir public: 821cdf0e10cSrcweir ErrorRepWelcomeDialog( Window* _pParent, sal_Bool _bAllowBack = sal_True ); 822cdf0e10cSrcweir virtual ~ErrorRepWelcomeDialog(); 823cdf0e10cSrcweir /** @short TODO*/ 824cdf0e10cSrcweir virtual short execute(); 825cdf0e10cSrcweir 826cdf0e10cSrcweir //--------------------------------------- 827cdf0e10cSrcweir /** @short TODO*/ 828cdf0e10cSrcweir virtual void setDefButton(); 829cdf0e10cSrcweir }; 830cdf0e10cSrcweir 831cdf0e10cSrcweir struct ErrorRepParams 832cdf0e10cSrcweir { ErrorRepParamssvx::DocRecovery::ErrorRepParams833cdf0e10cSrcweir ErrorRepParams() 834cdf0e10cSrcweir #ifdef WNT 835cdf0e10cSrcweir : miHTTPConnectionType( 0 ) 836cdf0e10cSrcweir #else 837cdf0e10cSrcweir : miHTTPConnectionType( 1 ) 838cdf0e10cSrcweir #endif 839cdf0e10cSrcweir , mbAllowContact( false ) 840cdf0e10cSrcweir {} 841cdf0e10cSrcweir 842cdf0e10cSrcweir String maHTTPProxyServer; 843cdf0e10cSrcweir String maHTTPProxyPort; 844cdf0e10cSrcweir int miHTTPConnectionType; 845cdf0e10cSrcweir bool mbAllowContact; 846cdf0e10cSrcweir String maReturnAddress; 847cdf0e10cSrcweir String maSubject; 848cdf0e10cSrcweir String maBody; 849cdf0e10cSrcweir }; 850cdf0e10cSrcweir 851cdf0e10cSrcweir class ErrorDescriptionEdit : public MultiLineEdit 852cdf0e10cSrcweir { 853cdf0e10cSrcweir private: 854cdf0e10cSrcweir DECL_LINK( ModifyHdl, void* ); 855cdf0e10cSrcweir 856cdf0e10cSrcweir public: 857cdf0e10cSrcweir ErrorDescriptionEdit( Window* pParent, const ResId& rResId ); 858cdf0e10cSrcweir virtual ~ErrorDescriptionEdit(); 859cdf0e10cSrcweir }; 860cdf0e10cSrcweir 861cdf0e10cSrcweir class ErrorRepSendDialog : public IExtendedTabPage 862cdf0e10cSrcweir { 863cdf0e10cSrcweir private: 864cdf0e10cSrcweir Window maTitleWin; 865cdf0e10cSrcweir FixedText maTitleFT; 866cdf0e10cSrcweir FixedLine maTitleFL; 867cdf0e10cSrcweir FixedText maDescrFT; 868cdf0e10cSrcweir 869cdf0e10cSrcweir FixedText maDocTypeFT; 870cdf0e10cSrcweir Edit maDocTypeED; 871cdf0e10cSrcweir FixedText maUsingFT; 872cdf0e10cSrcweir ErrorDescriptionEdit maUsingML; 873cdf0e10cSrcweir PushButton maShowRepBtn; 874cdf0e10cSrcweir PushButton maOptBtn; 875cdf0e10cSrcweir CheckBox maContactCB; 876cdf0e10cSrcweir FixedText maEMailAddrFT; 877cdf0e10cSrcweir Edit maEMailAddrED; 878cdf0e10cSrcweir 879cdf0e10cSrcweir FixedLine maBottomFL; 880cdf0e10cSrcweir PushButton maPrevBtn; 881cdf0e10cSrcweir OKButton maNextBtn; 882cdf0e10cSrcweir CancelButton maCancelBtn; 883cdf0e10cSrcweir 884cdf0e10cSrcweir ErrorRepParams maParams; 885cdf0e10cSrcweir 886cdf0e10cSrcweir DECL_LINK( ShowRepBtnHdl, void* ); 887cdf0e10cSrcweir DECL_LINK( OptBtnHdl, void* ); 888cdf0e10cSrcweir DECL_LINK( ContactCBHdl, void* ); 889cdf0e10cSrcweir DECL_LINK( PrevBtnHdl, void* ); 890cdf0e10cSrcweir DECL_LINK( SendBtnHdl, void* ); 891cdf0e10cSrcweir DECL_LINK( CancelBtnHdl, void* ); 892cdf0e10cSrcweir 893cdf0e10cSrcweir void initControls(); 894cdf0e10cSrcweir 895cdf0e10cSrcweir public: 896cdf0e10cSrcweir ErrorRepSendDialog( Window* _pParent ); 897cdf0e10cSrcweir virtual ~ErrorRepSendDialog(); 898cdf0e10cSrcweir 899cdf0e10cSrcweir String GetDocType( void ) const; 900cdf0e10cSrcweir String GetUsing( void ) const; 901cdf0e10cSrcweir bool IsContactAllowed( void ) const; 902cdf0e10cSrcweir String GetEMailAddress( void ) const; 903cdf0e10cSrcweir 904cdf0e10cSrcweir bool ReadParams(); 905cdf0e10cSrcweir bool SaveParams(); 906cdf0e10cSrcweir bool SendReport(); 907cdf0e10cSrcweir 908cdf0e10cSrcweir /** @short TODO*/ 909cdf0e10cSrcweir virtual short execute(); 910cdf0e10cSrcweir 911cdf0e10cSrcweir //--------------------------------------- 912cdf0e10cSrcweir /** @short TODO*/ 913cdf0e10cSrcweir virtual void setDefButton(); 914cdf0e10cSrcweir }; 915cdf0e10cSrcweir 916cdf0e10cSrcweir class ErrorRepOptionsDialog : public ModalDialog 917cdf0e10cSrcweir { 918cdf0e10cSrcweir private: 919cdf0e10cSrcweir FixedLine maProxyFL; 920cdf0e10cSrcweir RadioButton maSystemBtn; 921cdf0e10cSrcweir RadioButton maDirectBtn; 922cdf0e10cSrcweir RadioButton maManualBtn; 923cdf0e10cSrcweir FixedText maProxyServerFT; 924cdf0e10cSrcweir Edit maProxyServerEd; 925cdf0e10cSrcweir FixedText maProxyPortFT; 926cdf0e10cSrcweir Edit maProxyPortEd; 927cdf0e10cSrcweir FixedText maDescriptionFT; 928cdf0e10cSrcweir FixedLine maButtonsFL; 929cdf0e10cSrcweir OKButton maOKBtn; 930cdf0e10cSrcweir CancelButton maCancelBtn; 931cdf0e10cSrcweir 932cdf0e10cSrcweir ErrorRepParams& mrParams; 933cdf0e10cSrcweir 934cdf0e10cSrcweir DECL_LINK( CancelBtnHdl, void* ); 935cdf0e10cSrcweir DECL_LINK( OKBtnHdl, void * ); 936cdf0e10cSrcweir DECL_LINK( ManualBtnHdl, void * ); 937cdf0e10cSrcweir 938cdf0e10cSrcweir public: 939cdf0e10cSrcweir ErrorRepOptionsDialog( Window* _pParent, ErrorRepParams& rParams ); 940cdf0e10cSrcweir virtual ~ErrorRepOptionsDialog(); 941cdf0e10cSrcweir }; 942cdf0e10cSrcweir 943cdf0e10cSrcweir class ErrorRepEdit : public ExtMultiLineEdit 944cdf0e10cSrcweir { 945cdf0e10cSrcweir public: 946cdf0e10cSrcweir ErrorRepEdit( Window* pParent, const ResId& rResId ); 947cdf0e10cSrcweir virtual ~ErrorRepEdit(); 948cdf0e10cSrcweir }; 949cdf0e10cSrcweir 950cdf0e10cSrcweir class ErrorRepPreviewDialog : public ModalDialog 951cdf0e10cSrcweir { 952cdf0e10cSrcweir private: 953cdf0e10cSrcweir ErrorRepEdit maContentML; 954cdf0e10cSrcweir OKButton maOKBtn; 955cdf0e10cSrcweir 956cdf0e10cSrcweir long mnMinHeight; 957cdf0e10cSrcweir 958cdf0e10cSrcweir public: 959cdf0e10cSrcweir ErrorRepPreviewDialog( Window* _pParent ); 960cdf0e10cSrcweir virtual ~ErrorRepPreviewDialog(); 961cdf0e10cSrcweir 962cdf0e10cSrcweir virtual void Resize(); 963cdf0e10cSrcweir }; 964cdf0e10cSrcweir } // namespace DocRecovery 965cdf0e10cSrcweir } // namespace svx 966cdf0e10cSrcweir 967cdf0e10cSrcweir #undef css 968cdf0e10cSrcweir 969cdf0e10cSrcweir #endif 970