android: Update app-specific/MIME type icons
[LibreOffice.git] / sd / source / ui / inc / pubdlg.hxx
blob1f0b7274c668b736deff5916fdb77a12b02f09bc
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #pragma once
22 #include <svtools/valueset.hxx>
23 #include <vcl/weld.hxx>
24 #include <vcl/weldutils.hxx>
25 #include <pres.hxx>
26 #include "assclass.hxx"
28 #include <memory>
29 #include <vector>
31 class ListBox;
32 class Edit;
33 class SdHtmlAttrPreview;
34 class SdPublishingDesign;
35 class ButtonSet;
37 namespace com::sun::star::beans
39 struct PropertyValue;
41 namespace com::sun::star::uno
43 template <class E> class Sequence;
46 // *********************************************************************
47 // Html-Export Autopilot
48 // *********************************************************************
49 // should turn this into a wizard
50 class SdPublishingDlg final : public weld::GenericDialogController
52 private:
53 // page 1 controls
54 std::unique_ptr<weld::Container> m_xPage1;
55 std::unique_ptr<weld::Label> m_xPage1_Title;
56 std::unique_ptr<weld::RadioButton> m_xPage1_NewDesign;
57 std::unique_ptr<weld::RadioButton> m_xPage1_OldDesign;
58 std::unique_ptr<weld::TreeView> m_xPage1_Designs;
59 std::unique_ptr<weld::Button> m_xPage1_DelDesign;
60 std::unique_ptr<weld::Label> m_xPage1_Desc;
62 // page 2 controls
63 std::unique_ptr<weld::Container> m_xPage2;
64 std::unique_ptr<weld::Container> m_xPage2Frame2;
65 std::unique_ptr<weld::Container> m_xPage2Frame3;
66 std::unique_ptr<weld::Container> m_xPage2Frame4;
67 std::unique_ptr<weld::Label> m_xPage2_Title;
68 std::unique_ptr<weld::RadioButton> m_xPage2_Standard;
69 std::unique_ptr<weld::RadioButton> m_xPage2_Frames;
70 std::unique_ptr<weld::RadioButton> m_xPage2_SingleDocument;
71 std::unique_ptr<weld::RadioButton> m_xPage2_Kiosk;
72 std::unique_ptr<weld::RadioButton> m_xPage2_WebCast;
73 std::unique_ptr<weld::Image> m_xPage2_Standard_FB;
74 std::unique_ptr<weld::Image> m_xPage2_Frames_FB;
75 std::unique_ptr<weld::Image> m_xPage2_Kiosk_FB;
76 std::unique_ptr<weld::Image> m_xPage2_WebCast_FB;
78 std::unique_ptr<weld::Label> m_xPage2_Title_Html;
79 std::unique_ptr<weld::CheckButton> m_xPage2_Content;
80 std::unique_ptr<weld::CheckButton> m_xPage2_Notes;
82 std::unique_ptr<weld::Label> m_xPage2_Title_WebCast;
83 std::unique_ptr<weld::RadioButton> m_xPage2_ASP;
84 std::unique_ptr<weld::RadioButton> m_xPage2_PERL;
85 std::unique_ptr<weld::Label> m_xPage2_URL_txt;
86 std::unique_ptr<weld::Entry> m_xPage2_URL;
87 std::unique_ptr<weld::Label> m_xPage2_CGI_txt;
88 std::unique_ptr<weld::Entry> m_xPage2_CGI;
89 std::unique_ptr<weld::Label> m_xPage2_Index_txt;
90 std::unique_ptr<weld::Entry> m_xPage2_Index;
91 std::unique_ptr<weld::Label> m_xPage2_Title_Kiosk;
92 std::unique_ptr<weld::RadioButton> m_xPage2_ChgDefault;
93 std::unique_ptr<weld::RadioButton> m_xPage2_ChgAuto;
94 std::unique_ptr<weld::Label> m_xPage2_Duration_txt;
95 std::unique_ptr<weld::FormattedSpinButton> m_xPage2_Duration;
96 std::unique_ptr<weld::TimeFormatter> m_xFormatter;
97 std::unique_ptr<weld::CheckButton> m_xPage2_Endless;
99 // page 3 controls
100 std::unique_ptr<weld::Container> m_xPage3;
101 std::unique_ptr<weld::Label> m_xPage3_Title1;
102 std::unique_ptr<weld::RadioButton> m_xPage3_Png;
103 std::unique_ptr<weld::RadioButton> m_xPage3_Gif;
104 std::unique_ptr<weld::RadioButton> m_xPage3_Jpg;
105 std::unique_ptr<weld::Label> m_xPage3_Quality_txt;
106 std::unique_ptr<weld::ComboBox> m_xPage3_Quality;
107 std::unique_ptr<weld::Label> m_xPage3_Title2;
108 std::unique_ptr<weld::RadioButton> m_xPage3_Resolution_1;
109 std::unique_ptr<weld::RadioButton> m_xPage3_Resolution_2;
110 std::unique_ptr<weld::RadioButton> m_xPage3_Resolution_3;
111 std::unique_ptr<weld::RadioButton> m_xPage3_Resolution_4;
112 std::unique_ptr<weld::Label> m_xPage3_Title3;
113 std::unique_ptr<weld::CheckButton> m_xPage3_SldSound;
114 std::unique_ptr<weld::CheckButton> m_xPage3_HiddenSlides;
116 // page 4 controls
117 std::unique_ptr<weld::Container> m_xPage4;
118 std::unique_ptr<weld::Label> m_xPage4_Title1;
119 std::unique_ptr<weld::Label> m_xPage4_Author_txt;
120 std::unique_ptr<weld::Entry> m_xPage4_Author;
121 std::unique_ptr<weld::Label> m_xPage4_Email_txt;
122 std::unique_ptr<weld::Entry> m_xPage4_Email;
123 std::unique_ptr<weld::Label> m_xPage4_WWW_txt;
124 std::unique_ptr<weld::Entry> m_xPage4_WWW;
125 std::unique_ptr<weld::Label> m_xPage4_Title2;
126 std::unique_ptr<weld::TextView> m_xPage4_Misc;
127 std::unique_ptr<weld::CheckButton> m_xPage4_Download;
129 // page 5 controls
130 std::unique_ptr<weld::Container> m_xPage5;
131 std::unique_ptr<weld::Label> m_xPage5_Title;
132 std::unique_ptr<weld::CheckButton> m_xPage5_TextOnly;
133 std::unique_ptr<ValueSet> m_xPage5_Buttons;
134 std::unique_ptr<weld::CustomWeld> m_xPage5_ButtonsWnd;
136 // page 6 controls
137 std::unique_ptr<weld::Container> m_xPage6;
138 std::unique_ptr<weld::Label> m_xPage6_Title;
139 std::unique_ptr<weld::RadioButton> m_xPage6_Default;
140 std::unique_ptr<weld::RadioButton> m_xPage6_User;
141 std::unique_ptr<weld::Button> m_xPage6_Back;
142 std::unique_ptr<weld::Button> m_xPage6_Text;
143 std::unique_ptr<weld::Button> m_xPage6_Link;
144 std::unique_ptr<weld::Button> m_xPage6_VLink;
145 std::unique_ptr<weld::Button> m_xPage6_ALink;
146 std::unique_ptr<weld::RadioButton> m_xPage6_DocColors;
147 std::unique_ptr<SdHtmlAttrPreview> m_xPage6_Preview;
148 std::unique_ptr<weld::CustomWeld> m_xPage6_PreviewWnd;
150 std::unique_ptr<ButtonSet> m_xButtonSet;
152 // standard controls
153 std::unique_ptr<weld::Button> m_xLastPageButton;
154 std::unique_ptr<weld::Button> m_xNextPageButton;
155 std::unique_ptr<weld::Button> m_xFinishButton;
157 Assistent aAssistentFunc;
159 bool m_bImpress;
160 bool m_bButtonsDirty;
162 void SetDefaults();
163 void CreatePages();
165 Color m_aBackColor, m_aTextColor, m_aLinkColor;
166 Color m_aVLinkColor, m_aALinkColor;
168 void ChangePage();
169 void UpdatePage();
171 std::vector<SdPublishingDesign> m_aDesignList;
172 bool m_bDesignListDirty;
173 SdPublishingDesign* m_pDesign;
174 void Load();
175 bool Save();
177 void GetDesign(SdPublishingDesign* pDesign);
178 void SetDesign(SdPublishingDesign const* pDesign);
180 void LoadPreviewButtons();
182 DECL_LINK(FinishHdl, weld::Button&, void);
183 DECL_LINK(NextPageHdl, weld::Button&, void);
184 DECL_LINK(LastPageHdl, weld::Button&, void);
186 DECL_LINK(DesignHdl, weld::Toggleable&, void);
187 DECL_LINK(DesignSelectHdl, weld::TreeView&, void);
188 DECL_LINK(DesignDeleteHdl, weld::Button&, void);
189 DECL_LINK(BaseHdl, weld::Toggleable&, void);
190 DECL_LINK(ContentHdl, weld::Toggleable&, void);
191 DECL_LINK(GfxFormatHdl, weld::Toggleable&, void);
192 DECL_LINK(ResolutionHdl, weld::Toggleable&, void);
193 DECL_LINK(ButtonsHdl, ValueSet*, void);
194 DECL_LINK(ColorHdl, weld::Button&, void);
195 DECL_LINK(WebServerHdl, weld::Toggleable&, void);
196 DECL_LINK(SlideChgHdl, weld::Toggleable&, void);
198 public:
199 SdPublishingDlg(weld::Window* pWindow, DocumentType eDocType);
200 virtual ~SdPublishingDlg() override;
202 void GetParameterSequence(css::uno::Sequence<css::beans::PropertyValue>& rParams);
205 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */