1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_cui.hxx" 26 27 // include --------------------------------------------------------------- 28 29 #include <svtools/langtab.hxx> 30 #include <svtools/htmlcfg.hxx> 31 #include "opthtml.hxx" 32 #include "opthtml.hrc" 33 #include <cuires.hrc> 34 #include "helpid.hrc" 35 #include <dialmgr.hxx> 36 37 // Umwandlung der Modi zu den Positionen in der Listbox 38 const sal_uInt16 aPosToExportArr[] = 39 { 40 HTML_CFG_HTML32, 41 HTML_CFG_MSIE_40, 42 HTML_CFG_NS40, 43 HTML_CFG_WRITER 44 }; 45 46 //#define DEPRECATED_ENTRY 0xFFFF 47 48 const sal_uInt16 aExportToPosArr[] = 49 { 50 0, //HTML 3.2 51 1, //MS Internet Explorer 4.0 52 3, //StarWriter 53 2 //Netscape Navigator 4.0 54 }; 55 // ----------------------------------------------------------------------- 56 57 OfaHtmlTabPage::OfaHtmlTabPage(Window* pParent, const SfxItemSet& rSet) : 58 SfxTabPage( pParent, CUI_RES( RID_OFAPAGE_HTMLOPT ), rSet ), 59 aFontSizeGB ( this, CUI_RES( GB_FONTSIZE ) ), 60 aSize1FT ( this, CUI_RES( FT_SIZE1 ) ), 61 aSize1NF ( this, CUI_RES( NF_SIZE1 ) ), 62 aSize2FT ( this, CUI_RES( FT_SIZE2 ) ), 63 aSize2NF ( this, CUI_RES( NF_SIZE2 ) ), 64 aSize3FT ( this, CUI_RES( FT_SIZE3 ) ), 65 aSize3NF ( this, CUI_RES( NF_SIZE3 ) ), 66 aSize4FT ( this, CUI_RES( FT_SIZE4 ) ), 67 aSize4NF ( this, CUI_RES( NF_SIZE4 ) ), 68 aSize5FT ( this, CUI_RES( FT_SIZE5 ) ), 69 aSize5NF ( this, CUI_RES( NF_SIZE5 ) ), 70 aSize6FT ( this, CUI_RES( FT_SIZE6 ) ), 71 aSize6NF ( this, CUI_RES( NF_SIZE6 ) ), 72 aSize7FT ( this, CUI_RES( FT_SIZE7 ) ), 73 aSize7NF ( this, CUI_RES( NF_SIZE7 ) ), 74 aImportGB ( this, CUI_RES( GB_IMPORT ) ), 75 aNumbersEnglishUSCB ( this, CUI_RES( CB_NUMBERS_ENGLISH_US ) ), 76 aUnknownTagCB ( this, CUI_RES( CB_UNKNOWN_TAGS ) ), 77 aIgnoreFontNamesCB( this, CUI_RES( CB_IGNORE_FONTNAMES ) ), 78 aExportGB ( this, CUI_RES( GB_EXPORT ) ), 79 aExportLB ( this, CUI_RES( LB_EXPORT ) ), 80 aStarBasicCB ( this, CUI_RES( CB_STARBASIC ) ), 81 aStarBasicWarningCB(this, CUI_RES( CB_STARBASIC_WARNING ) ), 82 aPrintExtensionCB( this,CUI_RES(CB_PRINT_EXTENSION )), 83 aSaveGrfLocalCB ( this, CUI_RES( CB_LOCAL_GRF ) ), 84 aCharSetFT ( this, CUI_RES( FT_CHARSET ) ), 85 aCharSetLB ( this, CUI_RES( LB_CHARSET ) ) 86 87 { 88 FreeResource(); 89 90 // replace placeholder with UI string from language list 91 String aText( aNumbersEnglishUSCB.GetText()); 92 String aPlaceholder( RTL_CONSTASCII_USTRINGPARAM( "%ENGLISHUSLOCALE")); 93 xub_StrLen nPos; 94 if ((nPos = aText.Search( aPlaceholder)) != STRING_NOTFOUND) 95 { 96 SvtLanguageTable aLangTab; 97 const String& rStr = aLangTab.GetString( LANGUAGE_ENGLISH_US); 98 if (rStr.Len()) 99 { 100 aText.Replace( nPos, aPlaceholder.Len(), rStr); 101 aNumbersEnglishUSCB.SetText( aText); 102 } 103 } 104 105 aExportLB.SetSelectHdl(LINK(this, OfaHtmlTabPage, ExportHdl_Impl)); 106 aStarBasicCB.SetClickHdl(LINK(this, OfaHtmlTabPage, CheckBoxHdl_Impl)); 107 108 // initialize the characterset listbox 109 aCharSetLB.FillWithMimeAndSelectBest(); 110 } 111 112 /*-----------------02.09.96 13.47------------------- 113 114 --------------------------------------------------*/ 115 116 OfaHtmlTabPage::~OfaHtmlTabPage() 117 { 118 } 119 120 /*-----------------02.09.96 13.47------------------- 121 122 --------------------------------------------------*/ 123 124 SfxTabPage* OfaHtmlTabPage::Create( Window* pParent, 125 const SfxItemSet& rAttrSet ) 126 { 127 return new OfaHtmlTabPage(pParent, rAttrSet); 128 } 129 130 /*-----------------02.09.96 13.47------------------- 131 132 --------------------------------------------------*/ 133 134 sal_Bool OfaHtmlTabPage::FillItemSet( SfxItemSet& ) 135 { 136 SvxHtmlOptions* pHtmlOpt = SvxHtmlOptions::Get(); 137 if(aSize1NF.GetSavedValue() != aSize1NF.GetText()) 138 pHtmlOpt->SetFontSize(0, (sal_uInt16)aSize1NF.GetValue()); 139 if(aSize2NF.GetSavedValue() != aSize2NF.GetText()) 140 pHtmlOpt->SetFontSize(1, (sal_uInt16)aSize2NF.GetValue()); 141 if(aSize3NF.GetSavedValue() != aSize3NF.GetText()) 142 pHtmlOpt->SetFontSize(2, (sal_uInt16)aSize3NF.GetValue()); 143 if(aSize4NF.GetSavedValue() != aSize4NF.GetText()) 144 pHtmlOpt->SetFontSize(3, (sal_uInt16)aSize4NF.GetValue()); 145 if(aSize5NF.GetSavedValue() != aSize5NF.GetText()) 146 pHtmlOpt->SetFontSize(4, (sal_uInt16)aSize5NF.GetValue()); 147 if(aSize6NF.GetSavedValue() != aSize6NF.GetText()) 148 pHtmlOpt->SetFontSize(5, (sal_uInt16)aSize6NF.GetValue()); 149 if(aSize7NF.GetSavedValue() != aSize7NF.GetText()) 150 pHtmlOpt->SetFontSize(6, (sal_uInt16)aSize7NF.GetValue()); 151 152 if(aNumbersEnglishUSCB.IsChecked() != aNumbersEnglishUSCB.GetSavedValue()) 153 pHtmlOpt->SetNumbersEnglishUS(aNumbersEnglishUSCB.IsChecked()); 154 155 if(aUnknownTagCB.IsChecked() != aUnknownTagCB.GetSavedValue()) 156 pHtmlOpt->SetImportUnknown(aUnknownTagCB.IsChecked()); 157 158 if(aIgnoreFontNamesCB.IsChecked() != aIgnoreFontNamesCB.GetSavedValue()) 159 pHtmlOpt->SetIgnoreFontFamily(aIgnoreFontNamesCB.IsChecked()); 160 161 if(aExportLB.GetSelectEntryPos() != aExportLB.GetSavedValue()) 162 pHtmlOpt->SetExportMode(aPosToExportArr[aExportLB.GetSelectEntryPos()]); 163 164 if(aStarBasicCB.IsChecked() != aStarBasicCB.GetSavedValue()) 165 pHtmlOpt->SetStarBasic(aStarBasicCB.IsChecked()); 166 167 if(aStarBasicWarningCB.IsChecked() != aStarBasicWarningCB.GetSavedValue()) 168 pHtmlOpt->SetStarBasicWarning(aStarBasicWarningCB.IsChecked()); 169 170 if(aSaveGrfLocalCB.IsChecked() != aSaveGrfLocalCB.GetSavedValue()) 171 pHtmlOpt->SetSaveGraphicsLocal(aSaveGrfLocalCB.IsChecked()); 172 173 if(aPrintExtensionCB.IsChecked() != aPrintExtensionCB.GetSavedValue()) 174 pHtmlOpt->SetPrintLayoutExtension(aPrintExtensionCB.IsChecked()); 175 176 if( aCharSetLB.GetSelectTextEncoding() != pHtmlOpt->GetTextEncoding() ) 177 pHtmlOpt->SetTextEncoding( aCharSetLB.GetSelectTextEncoding() ); 178 179 return sal_False; 180 } 181 182 /*-----------------02.09.96 13.47------------------- 183 184 --------------------------------------------------*/ 185 186 void OfaHtmlTabPage::Reset( const SfxItemSet& ) 187 { 188 SvxHtmlOptions* pHtmlOpt = SvxHtmlOptions::Get(); 189 aSize1NF.SetValue(pHtmlOpt->GetFontSize(0)); 190 aSize2NF.SetValue(pHtmlOpt->GetFontSize(1)); 191 aSize3NF.SetValue(pHtmlOpt->GetFontSize(2)); 192 aSize4NF.SetValue(pHtmlOpt->GetFontSize(3)); 193 aSize5NF.SetValue(pHtmlOpt->GetFontSize(4)); 194 aSize6NF.SetValue(pHtmlOpt->GetFontSize(5)); 195 aSize7NF.SetValue(pHtmlOpt->GetFontSize(6)); 196 aNumbersEnglishUSCB.Check(pHtmlOpt->IsNumbersEnglishUS()); 197 aUnknownTagCB.Check(pHtmlOpt->IsImportUnknown()); 198 aIgnoreFontNamesCB.Check(pHtmlOpt->IsIgnoreFontFamily()); 199 sal_uInt16 nExport = pHtmlOpt->GetExportMode(); 200 if( nExport >= ( sizeof( aExportToPosArr ) / sizeof( sal_uInt16 ) ) ) 201 nExport = 4; // default for bad config entry is NS 4.0 202 sal_uInt16 nPosArr = aExportToPosArr[ nExport ]; 203 // if( nPosArr == DEPRECATED_ENTRY ) 204 // nPosArr = aExportToPosArr[ 4 ]; // again: NS 4.0 is default 205 aExportLB.SelectEntryPos( nPosArr ); 206 aExportLB.SaveValue(); 207 208 ExportHdl_Impl(&aExportLB); 209 210 aStarBasicCB .Check(pHtmlOpt->IsStarBasic()); 211 aStarBasicWarningCB .Check(pHtmlOpt->IsStarBasicWarning()); 212 aStarBasicWarningCB.Enable(!aStarBasicCB.IsChecked()); 213 aSaveGrfLocalCB.Check(pHtmlOpt->IsSaveGraphicsLocal()); 214 aPrintExtensionCB.Check(pHtmlOpt->IsPrintLayoutExtension()); 215 216 aPrintExtensionCB.SaveValue(); 217 aStarBasicCB .SaveValue(); 218 aStarBasicWarningCB .SaveValue(); 219 aSaveGrfLocalCB.SaveValue(); 220 aSize1NF.SaveValue(); 221 aSize2NF.SaveValue(); 222 aSize3NF.SaveValue(); 223 aSize4NF.SaveValue(); 224 aSize5NF.SaveValue(); 225 aSize6NF.SaveValue(); 226 aSize7NF.SaveValue(); 227 aNumbersEnglishUSCB.SaveValue(); 228 aUnknownTagCB.SaveValue(); 229 aIgnoreFontNamesCB.SaveValue(); 230 231 if( !pHtmlOpt->IsDefaultTextEncoding() && 232 aCharSetLB.GetSelectTextEncoding() != pHtmlOpt->GetTextEncoding() ) 233 aCharSetLB.SelectTextEncoding( pHtmlOpt->GetTextEncoding() ); 234 } 235 236 /*-----------------16.04.98 16:03------------------- 237 238 --------------------------------------------------*/ 239 IMPL_LINK(OfaHtmlTabPage, ExportHdl_Impl, ListBox*, pBox) 240 { 241 sal_uInt16 nExport = aPosToExportArr[ pBox->GetSelectEntryPos() ]; 242 switch( nExport ) 243 { 244 case HTML_CFG_MSIE_40: 245 case HTML_CFG_NS40 : 246 case HTML_CFG_WRITER : 247 aPrintExtensionCB.Enable(sal_True); 248 break; 249 default: aPrintExtensionCB.Enable(sal_False); 250 } 251 252 return 0; 253 } 254 /* -----------------05.02.99 09:17------------------- 255 * 256 * --------------------------------------------------*/ 257 IMPL_LINK(OfaHtmlTabPage, CheckBoxHdl_Impl, CheckBox*, pBox) 258 { 259 aStarBasicWarningCB.Enable(!pBox->IsChecked()); 260 return 0; 261 } 262 263 264