1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* 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 _MAILMERGEOUTPUTPAGE_HXX
#define _MAILMERGEOUTPUTPAGE_HXX
#include <svtools/wizardmachine.hxx>
#include <vcl/button.hxx>
#include <svtools/stdctrl.hxx>
#include <vcl/combobox.hxx>
#include <vcl/field.hxx>
#include <vcl/lstbox.hxx>
#include <sfx2/objsh.hxx>
#include <sfx2/basedlgs.hxx>
#include <svtools/svtabbx.hxx>
#include <svtools/headbar.hxx>
#include <svtools/prgsbar.hxx>
#include "swdllapi.h"
#include "mailmergehelper.hxx"
class SwMailMergeWizard;
class SfxPrinter;
class SwSendMailDialog;
namespace com{ namespace sun{ namespace star{
namespace mail{
class XMailMessage;
}
}}}
class SwMailMergeOutputPage : public svt::OWizardPage
{
SwBoldFixedInfo m_aHeaderFI;
FixedInfo m_aOptionsFI;
RadioButton m_aSaveStartDocRB;
RadioButton m_aSaveMergedDocRB;
RadioButton m_aPrintRB;
RadioButton m_aSendMailRB;
FixedLine m_aSeparatorFL;
PushButton m_aSaveStartDocPB;
RadioButton m_aSaveAsOneRB;
RadioButton m_aSaveIndividualRB;
RadioButton m_aPrintAllRB; //has to be here for tab control reasons
RadioButton m_aSendAllRB; //has to be here for tab control reasons
//this group is used in save and print
RadioButton m_aFromRB;
NumericField m_aFromNF;
FixedText m_aToFT;
NumericField m_aToNF;
PushButton m_aSaveNowPB;
FixedText m_aPrinterFT;
ListBox m_aPrinterLB;
PushButton m_aPrinterSettingsPB;
PushButton m_aPrintNowPB;
FixedText m_aMailToFT;
ListBox m_aMailToLB;
PushButton m_aCopyToPB;
FixedText m_aSubjectFT;
Edit m_aSubjectED;
FixedText m_aSendAsFT;
ListBox m_aSendAsLB;
FixedText m_aAttachmentFT;
Edit m_aAttachmentED;
PushButton m_aSendAsPB;
PushButton m_aSendDocumentsPB;
//some FixedLine labels
String m_sSaveStartST;
String m_sSaveMergedST;
String m_sPrintST;
String m_sSendMailST;
//misc strings
String m_sDefaultAttachmentST;
String m_sNoSubjectQueryST;
String m_sNoSubjectST;
String m_sNoAttachmentNameST;
String m_sConfigureMail;
String m_sBody;
long m_nFromToRBPos;
long m_nFromToFTPos;
long m_nFromToNFPos;
long m_nRBOffset;
bool m_bCancelSaving;
SwMailMergeWizard* m_pWizard;
//some dialog data
Printer* m_pTempPrinter;
SfxPrinter* m_pDocumentPrinterCopy;
String m_sCC;
String m_sBCC;
DECL_LINK(OutputTypeHdl_Impl, RadioButton*);
DECL_LINK(CopyToHdl_Impl, PushButton*);
DECL_LINK(SaveStartHdl_Impl, PushButton* );
DECL_LINK(SaveOutputHdl_Impl, PushButton* );
DECL_LINK(PrinterChangeHdl_Impl, ListBox* );
DECL_LINK(PrintHdl_Impl, PushButton* );
DECL_LINK(PrinterSetupHdl_Impl, PushButton* );
DECL_LINK(SendTypeHdl_Impl, ListBox*);
DECL_LINK(SendAsHdl_Impl, PushButton*);
DECL_LINK(SendDocumentsHdl_Impl, PushButton*);
DECL_LINK(DocumentSelectionHdl_Impl, RadioButton*);
DECL_LINK(SaveCancelHdl_Impl, Button*);
protected:
virtual bool canAdvance() const;
virtual void ActivatePage();
public:
SwMailMergeOutputPage( SwMailMergeWizard* _pParent);
~SwMailMergeOutputPage();
};
struct SwMailDescriptor
{
::rtl::OUString sEMail;
::rtl::OUString sAttachmentURL;
::rtl::OUString sAttachmentName;
::rtl::OUString sMimeType;
::rtl::OUString sSubject;
::rtl::OUString sBodyMimeType;
::rtl::OUString sBodyContent;
::rtl::OUString sCC;
::rtl::OUString sBCC;
};
struct SwSendMailDialog_Impl;
class SwMailMergeConfigItem;
class SW_DLLPUBLIC SwSendMailDialog : public ModelessDialog //SfxModalDialog
{
FixedLine m_aStatusFL;
FixedText m_aStatusFT;
FixedLine m_aTransferStatusFL;
FixedText m_aTransferStatusFT;
FixedInfo m_PausedFI;
ProgressBar m_aProgressBar;
FixedText m_aErrorStatusFT;
PushButton m_aDetailsPB;
HeaderBar m_aStatusHB;
SvTabListBox m_aStatusLB;
FixedLine m_aSeparatorFL;
PushButton m_aStopPB;
PushButton m_aClosePB;
String m_sMore;
String m_sLess;
String m_sContinue;
String m_sStop;
String m_sSend;
String m_sTransferStatus;
String m_sErrorStatus;
String m_sSendingTo;
String m_sCompleted;
String m_sFailed;
String m_sTerminateQuery;
bool m_bCancel;
bool m_bDesctructionEnabled;
ImageList m_aImageList;
SwSendMailDialog_Impl* m_pImpl;
SwMailMergeConfigItem* m_pConfigItem;
sal_Int32 m_nStatusHeight;
sal_Int32 m_nSendCount;
sal_Int32 m_nErrorCount;
SW_DLLPRIVATE DECL_LINK( DetailsHdl_Impl, PushButton* );
SW_DLLPRIVATE DECL_LINK( StopHdl_Impl, PushButton* );
SW_DLLPRIVATE DECL_LINK( CloseHdl_Impl, PushButton* );
SW_DLLPRIVATE DECL_STATIC_LINK( SwSendMailDialog, StartSendMails, SwSendMailDialog* );
SW_DLLPRIVATE DECL_STATIC_LINK( SwSendMailDialog, StopSendMails, SwSendMailDialog* );
SW_DLLPRIVATE DECL_STATIC_LINK( SwSendMailDialog, RemoveThis, Timer* );
SW_DLLPRIVATE void IterateMails();
SW_DLLPRIVATE void SendMails();
SW_DLLPRIVATE void UpdateTransferStatus();
virtual void StateChanged( StateChangedType nStateChange );
public:
SwSendMailDialog( Window* pParent, SwMailMergeConfigItem& );
~SwSendMailDialog();
void AddDocument( SwMailDescriptor& rDesc );
void SetDocumentCount( sal_Int32 nAllDocuments );
void EnableDesctruction() {m_bDesctructionEnabled = true;}
void ShowDialog();
void DocumentSent( ::com::sun::star::uno::Reference< ::com::sun::star::mail::XMailMessage>,
bool bResult,
const ::rtl::OUString* pError );
void AllMailsSent();
};
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|