bump product version to 4.1.6.2
[LibreOffice.git] / cui / source / options / opthtml.cxx
blob999303046d8cc60583a73a9c033c97293eb9347f
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 #include <svtools/langtab.hxx>
21 #include <svtools/htmlcfg.hxx>
22 #include "opthtml.hxx"
23 #include "opthtml.hrc"
24 #include <cuires.hrc>
25 #include "helpid.hrc"
26 #include <dialmgr.hxx>
27 #include <sal/macros.h>
29 // modus convertion to the positions in the listbox
30 const sal_uInt16 aPosToExportArr[] =
32 HTML_CFG_MSIE,
33 HTML_CFG_NS40,
34 HTML_CFG_WRITER
37 const sal_uInt16 aExportToPosArr[] =
39 1, //HTML 3.2 (removed, map to Netscape Navigator 4.0)
40 0, //MS Internet Explorer 4.0
41 2, //StarWriter
42 1 //Netscape Navigator 4.0
44 // -----------------------------------------------------------------------
46 OfaHtmlTabPage::OfaHtmlTabPage(Window* pParent, const SfxItemSet& rSet) :
47 SfxTabPage( pParent, CUI_RES( RID_OFAPAGE_HTMLOPT ), rSet ),
48 aFontSizeGB ( this, CUI_RES( GB_FONTSIZE ) ),
49 aSize1FT ( this, CUI_RES( FT_SIZE1 ) ),
50 aSize1NF ( this, CUI_RES( NF_SIZE1 ) ),
51 aSize2FT ( this, CUI_RES( FT_SIZE2 ) ),
52 aSize2NF ( this, CUI_RES( NF_SIZE2 ) ),
53 aSize3FT ( this, CUI_RES( FT_SIZE3 ) ),
54 aSize3NF ( this, CUI_RES( NF_SIZE3 ) ),
55 aSize4FT ( this, CUI_RES( FT_SIZE4 ) ),
56 aSize4NF ( this, CUI_RES( NF_SIZE4 ) ),
57 aSize5FT ( this, CUI_RES( FT_SIZE5 ) ),
58 aSize5NF ( this, CUI_RES( NF_SIZE5 ) ),
59 aSize6FT ( this, CUI_RES( FT_SIZE6 ) ),
60 aSize6NF ( this, CUI_RES( NF_SIZE6 ) ),
61 aSize7FT ( this, CUI_RES( FT_SIZE7 ) ),
62 aSize7NF ( this, CUI_RES( NF_SIZE7 ) ),
63 aImportGB ( this, CUI_RES( GB_IMPORT ) ),
64 aNumbersEnglishUSCB ( this, CUI_RES( CB_NUMBERS_ENGLISH_US ) ),
65 aUnknownTagCB ( this, CUI_RES( CB_UNKNOWN_TAGS ) ),
66 aIgnoreFontNamesCB( this, CUI_RES( CB_IGNORE_FONTNAMES ) ),
67 aExportGB ( this, CUI_RES( GB_EXPORT ) ),
68 aExportLB ( this, CUI_RES( LB_EXPORT ) ),
69 aStarBasicCB ( this, CUI_RES( CB_STARBASIC ) ),
70 aStarBasicWarningCB(this, CUI_RES( CB_STARBASIC_WARNING ) ),
71 aPrintExtensionCB( this,CUI_RES(CB_PRINT_EXTENSION )),
72 aSaveGrfLocalCB ( this, CUI_RES( CB_LOCAL_GRF ) ),
73 aCharSetFT ( this, CUI_RES( FT_CHARSET ) ),
74 aCharSetLB ( this, CUI_RES( LB_CHARSET ) )
77 FreeResource();
79 // replace placeholder with UI string from language list
80 String aText( aNumbersEnglishUSCB.GetText());
81 String aPlaceholder( RTL_CONSTASCII_USTRINGPARAM( "%ENGLISHUSLOCALE"));
82 xub_StrLen nPos;
83 if ((nPos = aText.Search( aPlaceholder)) != STRING_NOTFOUND)
85 SvtLanguageTable aLangTab;
86 const String& rStr = aLangTab.GetString( LANGUAGE_ENGLISH_US);
87 if (rStr.Len())
89 aText.Replace( nPos, aPlaceholder.Len(), rStr);
90 aNumbersEnglishUSCB.SetText( aText);
94 aExportLB.SetSelectHdl(LINK(this, OfaHtmlTabPage, ExportHdl_Impl));
95 aStarBasicCB.SetClickHdl(LINK(this, OfaHtmlTabPage, CheckBoxHdl_Impl));
97 // initialize the characterset listbox
98 aCharSetLB.FillWithMimeAndSelectBest();
101 OfaHtmlTabPage::~OfaHtmlTabPage()
105 SfxTabPage* OfaHtmlTabPage::Create( Window* pParent,
106 const SfxItemSet& rAttrSet )
108 return new OfaHtmlTabPage(pParent, rAttrSet);
111 sal_Bool OfaHtmlTabPage::FillItemSet( SfxItemSet& )
113 SvxHtmlOptions& rHtmlOpt = SvxHtmlOptions::Get();
114 if(aSize1NF.GetSavedValue() != aSize1NF.GetText())
115 rHtmlOpt.SetFontSize(0, (sal_uInt16)aSize1NF.GetValue());
116 if(aSize2NF.GetSavedValue() != aSize2NF.GetText())
117 rHtmlOpt.SetFontSize(1, (sal_uInt16)aSize2NF.GetValue());
118 if(aSize3NF.GetSavedValue() != aSize3NF.GetText())
119 rHtmlOpt.SetFontSize(2, (sal_uInt16)aSize3NF.GetValue());
120 if(aSize4NF.GetSavedValue() != aSize4NF.GetText())
121 rHtmlOpt.SetFontSize(3, (sal_uInt16)aSize4NF.GetValue());
122 if(aSize5NF.GetSavedValue() != aSize5NF.GetText())
123 rHtmlOpt.SetFontSize(4, (sal_uInt16)aSize5NF.GetValue());
124 if(aSize6NF.GetSavedValue() != aSize6NF.GetText())
125 rHtmlOpt.SetFontSize(5, (sal_uInt16)aSize6NF.GetValue());
126 if(aSize7NF.GetSavedValue() != aSize7NF.GetText())
127 rHtmlOpt.SetFontSize(6, (sal_uInt16)aSize7NF.GetValue());
129 if(aNumbersEnglishUSCB.IsChecked() != aNumbersEnglishUSCB.GetSavedValue())
130 rHtmlOpt.SetNumbersEnglishUS(aNumbersEnglishUSCB.IsChecked());
132 if(aUnknownTagCB.IsChecked() != aUnknownTagCB.GetSavedValue())
133 rHtmlOpt.SetImportUnknown(aUnknownTagCB.IsChecked());
135 if(aIgnoreFontNamesCB.IsChecked() != aIgnoreFontNamesCB.GetSavedValue())
136 rHtmlOpt.SetIgnoreFontFamily(aIgnoreFontNamesCB.IsChecked());
138 if(aExportLB.GetSelectEntryPos() != aExportLB.GetSavedValue())
139 rHtmlOpt.SetExportMode(aPosToExportArr[aExportLB.GetSelectEntryPos()]);
141 if(aStarBasicCB.IsChecked() != aStarBasicCB.GetSavedValue())
142 rHtmlOpt.SetStarBasic(aStarBasicCB.IsChecked());
144 if(aStarBasicWarningCB.IsChecked() != aStarBasicWarningCB.GetSavedValue())
145 rHtmlOpt.SetStarBasicWarning(aStarBasicWarningCB.IsChecked());
147 if(aSaveGrfLocalCB.IsChecked() != aSaveGrfLocalCB.GetSavedValue())
148 rHtmlOpt.SetSaveGraphicsLocal(aSaveGrfLocalCB.IsChecked());
150 if(aPrintExtensionCB.IsChecked() != aPrintExtensionCB.GetSavedValue())
151 rHtmlOpt.SetPrintLayoutExtension(aPrintExtensionCB.IsChecked());
153 if( aCharSetLB.GetSelectTextEncoding() != rHtmlOpt.GetTextEncoding() )
154 rHtmlOpt.SetTextEncoding( aCharSetLB.GetSelectTextEncoding() );
156 return sal_False;
159 void OfaHtmlTabPage::Reset( const SfxItemSet& )
161 SvxHtmlOptions& rHtmlOpt = SvxHtmlOptions::Get();
162 aSize1NF.SetValue(rHtmlOpt.GetFontSize(0));
163 aSize2NF.SetValue(rHtmlOpt.GetFontSize(1));
164 aSize3NF.SetValue(rHtmlOpt.GetFontSize(2));
165 aSize4NF.SetValue(rHtmlOpt.GetFontSize(3));
166 aSize5NF.SetValue(rHtmlOpt.GetFontSize(4));
167 aSize6NF.SetValue(rHtmlOpt.GetFontSize(5));
168 aSize7NF.SetValue(rHtmlOpt.GetFontSize(6));
169 aNumbersEnglishUSCB.Check(rHtmlOpt.IsNumbersEnglishUS());
170 aUnknownTagCB.Check(rHtmlOpt.IsImportUnknown());
171 aIgnoreFontNamesCB.Check(rHtmlOpt.IsIgnoreFontFamily());
172 sal_uInt16 nExport = rHtmlOpt.GetExportMode();
173 if( nExport >= SAL_N_ELEMENTS( aExportToPosArr ) )
174 nExport = 3; // default for bad config entry is NS 4.0
175 sal_uInt16 nPosArr = aExportToPosArr[ nExport ];
176 aExportLB.SelectEntryPos( nPosArr );
177 aExportLB.SaveValue();
179 ExportHdl_Impl(&aExportLB);
181 aStarBasicCB .Check(rHtmlOpt.IsStarBasic());
182 aStarBasicWarningCB .Check(rHtmlOpt.IsStarBasicWarning());
183 aStarBasicWarningCB.Enable(!aStarBasicCB.IsChecked());
184 aSaveGrfLocalCB.Check(rHtmlOpt.IsSaveGraphicsLocal());
185 aPrintExtensionCB.Check(rHtmlOpt.IsPrintLayoutExtension());
187 aPrintExtensionCB.SaveValue();
188 aStarBasicCB .SaveValue();
189 aStarBasicWarningCB .SaveValue();
190 aSaveGrfLocalCB.SaveValue();
191 aSize1NF.SaveValue();
192 aSize2NF.SaveValue();
193 aSize3NF.SaveValue();
194 aSize4NF.SaveValue();
195 aSize5NF.SaveValue();
196 aSize6NF.SaveValue();
197 aSize7NF.SaveValue();
198 aNumbersEnglishUSCB.SaveValue();
199 aUnknownTagCB.SaveValue();
200 aIgnoreFontNamesCB.SaveValue();
202 if( !rHtmlOpt.IsDefaultTextEncoding() &&
203 aCharSetLB.GetSelectTextEncoding() != rHtmlOpt.GetTextEncoding() )
204 aCharSetLB.SelectTextEncoding( rHtmlOpt.GetTextEncoding() );
207 IMPL_LINK(OfaHtmlTabPage, ExportHdl_Impl, ListBox*, pBox)
209 sal_uInt16 nExport = aPosToExportArr[ pBox->GetSelectEntryPos() ];
210 switch( nExport )
212 case HTML_CFG_MSIE:
213 case HTML_CFG_NS40 :
214 case HTML_CFG_WRITER :
215 aPrintExtensionCB.Enable(sal_True);
216 break;
217 default: aPrintExtensionCB.Enable(sal_False);
220 return 0;
223 IMPL_LINK(OfaHtmlTabPage, CheckBoxHdl_Impl, CheckBox*, pBox)
225 aStarBasicWarningCB.Enable(!pBox->IsChecked());
226 return 0;
230 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */