1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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"
26 #include <dialmgr.hxx>
27 #include <sal/macros.h>
29 // modus convertion to the positions in the listbox
30 const sal_uInt16 aPosToExportArr
[] =
37 const sal_uInt16 aExportToPosArr
[] =
39 1, //HTML 3.2 (removed, map to Netscape Navigator 4.0)
40 0, //MS Internet Explorer 4.0
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
) )
79 // replace placeholder with UI string from language list
80 String
aText( aNumbersEnglishUSCB
.GetText());
81 String
aPlaceholder( RTL_CONSTASCII_USTRINGPARAM( "%ENGLISHUSLOCALE"));
83 if ((nPos
= aText
.Search( aPlaceholder
)) != STRING_NOTFOUND
)
85 SvtLanguageTable aLangTab
;
86 const String
& rStr
= aLangTab
.GetString( LANGUAGE_ENGLISH_US
);
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() );
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() ];
214 case HTML_CFG_WRITER
:
215 aPrintExtensionCB
.Enable(sal_True
);
217 default: aPrintExtensionCB
.Enable(sal_False
);
223 IMPL_LINK(OfaHtmlTabPage
, CheckBoxHdl_Impl
, CheckBox
*, pBox
)
225 aStarBasicWarningCB
.Enable(!pBox
->IsChecked());
230 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */