Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 : #ifndef INCLUDED_SW_SOURCE_UIBASE_INC_MAILMRGE_HXX
20 : #define INCLUDED_SW_SOURCE_UIBASE_INC_MAILMRGE_HXX
21 :
22 : #include <svx/stddlg.hxx>
23 :
24 : #include <vcl/button.hxx>
25 :
26 : #include <vcl/field.hxx>
27 :
28 : #include <vcl/fixed.hxx>
29 : #include <vcl/edit.hxx>
30 : #include <svtools/stdctrl.hxx>
31 :
32 : #include <vcl/lstbox.hxx>
33 : #include <com/sun/star/uno/Sequence.h>
34 : #include <com/sun/star/uno/Reference.h>
35 :
36 : class SwWrtShell;
37 : class SwModuleOptions;
38 : class SwXSelChgLstnr_Impl;
39 : struct SwMailMergeDlg_Impl;
40 : namespace com{namespace sun{namespace star{
41 : namespace frame{
42 : class XFrame2;
43 : }
44 : namespace sdbc{
45 : class XResultSet;
46 : class XConnection;
47 : }
48 : }}}
49 :
50 : class SwMailMergeDlg : public SvxStandardDialog
51 : {
52 : friend class SwXSelChgLstnr_Impl;
53 :
54 : vcl::Window* m_pBeamerWin;
55 :
56 : RadioButton* m_pAllRB;
57 : RadioButton* m_pMarkedRB;
58 : RadioButton* m_pFromRB;
59 : NumericField* m_pFromNF;
60 : NumericField* m_pToNF;
61 :
62 : RadioButton* m_pPrinterRB;
63 : RadioButton* m_pMailingRB;
64 : RadioButton* m_pFileRB;
65 :
66 : CheckBox* m_pSingleJobsCB;
67 :
68 : FixedText* m_pSaveMergedDocumentFT;
69 : RadioButton* m_pSaveSingleDocRB;
70 : RadioButton* m_pSaveIndividualRB;
71 :
72 : CheckBox* m_pGenerateFromDataBaseCB;
73 :
74 : FixedText* m_pColumnFT;
75 : ListBox* m_pColumnLB;
76 : FixedText* m_pPathFT;
77 : Edit* m_pPathED;
78 : PushButton* m_pPathPB;
79 : FixedText* m_pFilterFT;
80 : ListBox* m_pFilterLB;
81 :
82 : ListBox* m_pAddressFldLB;
83 : FixedText* m_pSubjectFT;
84 : Edit* m_pSubjectED;
85 : FixedText* m_pFormatFT;
86 : FixedText* m_pAttachFT;
87 : Edit* m_pAttachED;
88 : PushButton* m_pAttachPB;
89 : CheckBox* m_pFormatHtmlCB;
90 : CheckBox* m_pFormatRtfCB;
91 : CheckBox* m_pFormatSwCB;
92 :
93 : OKButton* m_pOkBTN;
94 :
95 : SwMailMergeDlg_Impl* pImpl;
96 :
97 : SwWrtShell& rSh;
98 : SwModuleOptions* pModOpt;
99 :
100 : DBManagerOptions nMergeType;
101 : ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > m_aSelection;
102 : ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame2 > m_xFrame;
103 :
104 : Size m_aDialogSize;
105 : OUString m_sSaveFilter;
106 :
107 : DECL_LINK( ButtonHdl, Button* pBtn );
108 : DECL_LINK(InsertPathHdl, void *);
109 : DECL_LINK( OutputTypeHdl, RadioButton* pBtn );
110 : DECL_LINK( FilenameHdl, CheckBox* pBtn );
111 : DECL_LINK(ModifyHdl, void *);
112 : DECL_LINK( SaveTypeHdl, RadioButton* pBtn );
113 :
114 : virtual void Apply() SAL_OVERRIDE;
115 : bool ExecQryShell();
116 :
117 : public:
118 : SwMailMergeDlg(vcl::Window* pParent, SwWrtShell& rSh,
119 : const OUString& rSourceName,
120 : const OUString& rTblName,
121 : sal_Int32 nCommandType,
122 : const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& xConnection,
123 : ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >* pSelection = 0);
124 : virtual ~SwMailMergeDlg();
125 :
126 0 : inline DBManagerOptions GetMergeType() { return nMergeType; }
127 :
128 0 : bool IsSaveSingleDoc() const { return m_pSaveSingleDocRB->IsChecked(); }
129 0 : bool IsGenerateFromDataBase() const { return m_pGenerateFromDataBaseCB->IsChecked(); }
130 0 : OUString GetColumnName() const { return m_pColumnLB->GetSelectEntry();}
131 0 : OUString GetPath() const { return m_pPathED->GetText();}
132 :
133 0 : const OUString& GetSaveFilter() const {return m_sSaveFilter;}
134 0 : inline const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > GetSelection() const { return m_aSelection; }
135 : ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet> GetResultSet() const;
136 :
137 : };
138 :
139 0 : class SwMailMergeCreateFromDlg : public ModalDialog
140 : {
141 : RadioButton* m_pThisDocRB;
142 : public:
143 : SwMailMergeCreateFromDlg(vcl::Window* pParent);
144 0 : bool IsThisDocument() const
145 : {
146 0 : return m_pThisDocRB->IsChecked();
147 : }
148 : };
149 :
150 0 : class SwMailMergeFieldConnectionsDlg : public ModalDialog
151 : {
152 : RadioButton* m_pUseExistingRB;
153 : public:
154 : SwMailMergeFieldConnectionsDlg(vcl::Window* pParent);
155 0 : bool IsUseExistingConnections() const
156 : {
157 0 : return m_pUseExistingRB->IsChecked();
158 : }
159 : };
160 :
161 : #endif
162 :
163 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|