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 : VclPtr<vcl::Window> m_pBeamerWin;
55 :
56 : VclPtr<RadioButton> m_pAllRB;
57 : VclPtr<RadioButton> m_pMarkedRB;
58 : VclPtr<RadioButton> m_pFromRB;
59 : VclPtr<NumericField> m_pFromNF;
60 : VclPtr<NumericField> m_pToNF;
61 :
62 : VclPtr<RadioButton> m_pPrinterRB;
63 : VclPtr<RadioButton> m_pMailingRB;
64 : VclPtr<RadioButton> m_pFileRB;
65 :
66 : VclPtr<CheckBox> m_pSingleJobsCB;
67 :
68 : VclPtr<FixedText> m_pSaveMergedDocumentFT;
69 : VclPtr<RadioButton> m_pSaveSingleDocRB;
70 : VclPtr<RadioButton> m_pSaveIndividualRB;
71 :
72 : VclPtr<CheckBox> m_pGenerateFromDataBaseCB;
73 :
74 : VclPtr<FixedText> m_pColumnFT;
75 : VclPtr<ListBox> m_pColumnLB;
76 : VclPtr<FixedText> m_pPathFT;
77 : VclPtr<Edit> m_pPathED;
78 : VclPtr<PushButton> m_pPathPB;
79 : VclPtr<FixedText> m_pFilterFT;
80 : VclPtr<ListBox> m_pFilterLB;
81 :
82 : VclPtr<ListBox> m_pAddressFieldLB;
83 : VclPtr<FixedText> m_pSubjectFT;
84 : VclPtr<Edit> m_pSubjectED;
85 : VclPtr<FixedText> m_pFormatFT;
86 : VclPtr<FixedText> m_pAttachFT;
87 : VclPtr<Edit> m_pAttachED;
88 : VclPtr<PushButton> m_pAttachPB;
89 : VclPtr<CheckBox> m_pFormatHtmlCB;
90 : VclPtr<CheckBox> m_pFormatRtfCB;
91 : VclPtr<CheckBox> m_pFormatSwCB;
92 :
93 : VclPtr<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& rTableName,
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 : virtual void dispose() SAL_OVERRIDE;
126 :
127 0 : inline DBManagerOptions GetMergeType() { return nMergeType; }
128 :
129 0 : bool IsSaveSingleDoc() const { return m_pSaveSingleDocRB->IsChecked(); }
130 0 : bool IsGenerateFromDataBase() const { return m_pGenerateFromDataBaseCB->IsChecked(); }
131 0 : OUString GetColumnName() const { return m_pColumnLB->GetSelectEntry();}
132 0 : OUString GetPath() const { return m_pPathED->GetText();}
133 :
134 0 : const OUString& GetSaveFilter() const {return m_sSaveFilter;}
135 0 : inline const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > GetSelection() const { return m_aSelection; }
136 : ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet> GetResultSet() const;
137 :
138 : };
139 :
140 : class SwMailMergeCreateFromDlg : public ModalDialog
141 : {
142 : VclPtr<RadioButton> m_pThisDocRB;
143 : public:
144 : SwMailMergeCreateFromDlg(vcl::Window* pParent);
145 : virtual ~SwMailMergeCreateFromDlg();
146 : virtual void dispose() SAL_OVERRIDE;
147 0 : bool IsThisDocument() const
148 : {
149 0 : return m_pThisDocRB->IsChecked();
150 : }
151 : };
152 :
153 : class SwMailMergeFieldConnectionsDlg : public ModalDialog
154 : {
155 : VclPtr<RadioButton> m_pUseExistingRB;
156 : public:
157 : SwMailMergeFieldConnectionsDlg(vcl::Window* pParent);
158 : virtual ~SwMailMergeFieldConnectionsDlg();
159 : virtual void dispose() SAL_OVERRIDE;
160 :
161 0 : bool IsUseExistingConnections() const
162 : {
163 0 : return m_pUseExistingRB->IsChecked();
164 : }
165 : };
166 :
167 : #endif
168 :
169 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|