summaryrefslogtreecommitdiff
path: root/sw/source/ui/dialog/ascfldlg.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/ui/dialog/ascfldlg.cxx')
-rw-r--r--sw/source/ui/dialog/ascfldlg.cxx682
1 files changed, 682 insertions, 0 deletions
diff --git a/sw/source/ui/dialog/ascfldlg.cxx b/sw/source/ui/dialog/ascfldlg.cxx
new file mode 100644
index 000000000000..38b03b23b10a
--- /dev/null
+++ b/sw/source/ui/dialog/ascfldlg.cxx
@@ -0,0 +1,682 @@
+/*************************************************************************
+ *
+ * $RCSfile: ascfldlg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 17:14:34 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifdef PRECOMPILED
+#include "ui_pch.hxx"
+#endif
+
+#pragma hdrstop
+
+#ifndef _HINTIDS_HXX
+#include <hintids.hxx>
+#endif
+
+
+#ifndef _RTL_TEXTENC_H //autogen wg. rtl_TextEncoding
+#include <rtl/textenc.h>
+#endif
+
+
+#ifndef _UNO_LINGU_HXX
+#include <svx/unolingu.hxx>
+#endif
+
+#ifndef _SFX_PRINTER_HXX
+#include <sfx2/printer.hxx>
+#endif
+#ifndef _SVX_FLSTITEM_HXX //autogen wg. SvxFontListItem
+#include <svx/flstitem.hxx>
+#endif
+#ifndef _SVX_DLGUTIL_HXX //autogen wg. GetLanguageString
+#include <svx/dlgutil.hxx>
+#endif
+#ifndef _SVX_FONTITEM_HXX //autogen wg. SvxFontItem
+#include <svx/fontitem.hxx>
+#endif
+#ifndef _SVX_LANGITEM_HXX //autogen wg. SvxLanguageItem
+#include <svx/langitem.hxx>
+#endif
+
+#ifndef _SWTYPES_HXX
+#include <swtypes.hxx>
+#endif
+#ifndef _ASCFLDLG_HXX
+#include <ascfldlg.hxx>
+#endif
+#ifndef _SHELLIO_HXX
+#include <shellio.hxx>
+#endif
+#ifndef _SWDOCSH_HXX
+#include <docsh.hxx>
+#endif
+#ifndef _DOC_HXX
+#include <doc.hxx>
+#endif
+#ifndef _ERRHDL_HXX
+#include <errhdl.hxx>
+#endif
+
+#ifndef _DIALOG_HRC
+#include <dialog.hrc>
+#endif
+#ifndef _ASCFLDLG_HRC
+#include <ascfldlg.hrc>
+#endif
+
+using namespace ::com::sun::star;
+
+const sal_Unicode cDialogExtraDataClose = '}';
+const char __FAR_DATA sDialogImpExtraData[] = "EncImpDlg:{";
+const char __FAR_DATA sDialogExpExtraData[] = "EncExpDlg:{";
+const USHORT nDialogExtraDataLen = 11; // 12345678901
+
+// in the resource exist an equal list - only with the names!
+static rtl_TextEncoding aCharSetArr[] = {
+ RTL_TEXTENCODING_MS_1252, // Western (Window-1252/WinLatin 1)
+ RTL_TEXTENCODING_APPLE_ROMAN, // Western (Apple Macintosh)
+ RTL_TEXTENCODING_IBM_850, // Western (DOS/OS2-850/International)
+ RTL_TEXTENCODING_IBM_437, // Western (DOS/OS2-437/US)
+ RTL_TEXTENCODING_IBM_860, // Western (DOS/OS2-860/Portugese)
+ RTL_TEXTENCODING_IBM_861, // Western (DOS/OS2-861/Icelandic)
+ RTL_TEXTENCODING_IBM_863, // Western (DOS/OS2-863/Canadian-French)
+ RTL_TEXTENCODING_IBM_865, // Western (DOS/OS2-865/Nordic)
+ RTL_TEXTENCODING_ASCII_US, // Western (ASCII/US)
+ RTL_TEXTENCODING_ISO_8859_1, // Western (ISO-8859-1)
+ RTL_TEXTENCODING_ISO_8859_2, // Central European (ISO-8859-2)
+ RTL_TEXTENCODING_ISO_8859_3, // Latin 3 (ISO-8859-3)
+ RTL_TEXTENCODING_ISO_8859_4, // Baltic (ISO-8859-4)
+ RTL_TEXTENCODING_ISO_8859_5, // Cyrillic (ISO-8859-5)
+// RTL_TEXTENCODING_ISO_8859_6, // Arabic (ISO-8859-6)
+ RTL_TEXTENCODING_ISO_8859_7, // Greek (ISO-8859-7)
+// RTL_TEXTENCODING_ISO_8859_8, // Hebrew (ISO-8859-8)
+ RTL_TEXTENCODING_ISO_8859_9, // Turkish (ISO-8859-9)
+ RTL_TEXTENCODING_ISO_8859_14, // Western (ISO-8859-14)
+ RTL_TEXTENCODING_ISO_8859_15, // Western (ISO-8859-15/EURO)
+ RTL_TEXTENCODING_IBM_737, // Greek (DOS/OS2-737)
+ RTL_TEXTENCODING_IBM_775, // Baltic (DOS/OS2-775)
+ RTL_TEXTENCODING_IBM_852, // Central European (DOS/OS2-852)
+ RTL_TEXTENCODING_IBM_855, // Cyrillic (DOS/OS2-855)
+ RTL_TEXTENCODING_IBM_857, // Turkish (DOS/OS2-857)
+// RTL_TEXTENCODING_IBM_862, // Hebrew (DOS/OS2-862)
+// RTL_TEXTENCODING_IBM_864, // Arabic (DOS/OS2-864)
+ RTL_TEXTENCODING_IBM_866, // Cyrillic (DOS/OS2-866/Russian)
+ RTL_TEXTENCODING_IBM_869, // Greek (DOS/OS2-869/Modern)
+// RTL_TEXTENCODING_MS_874, // Thai (Dos/Windows-874)
+ RTL_TEXTENCODING_MS_1250, // Central European (Windows-1250/WinLatin 2)
+ RTL_TEXTENCODING_MS_1251, // Cyrillic (Windows-1251)
+ RTL_TEXTENCODING_MS_1253, // Greek (Windows-1253)
+ RTL_TEXTENCODING_MS_1254, // Turkish (Windows-1254)
+// RTL_TEXTENCODING_MS_1255, // Hebrew (Windows-1255)
+// RTL_TEXTENCODING_MS_1256, // Arabic (Windows-1256)
+ RTL_TEXTENCODING_MS_1257, // Baltic (Windows-1257)
+// RTL_TEXTENCODING_MS_1258, // Vietnamese (Windows-1258)
+// RTL_TEXTENCODING_APPLE_ARABIC, // Arabic (Apple Macintosh)
+ RTL_TEXTENCODING_APPLE_CENTEURO, // Central European (Apple Macintosh)
+ RTL_TEXTENCODING_APPLE_CROATIAN, // Central European (Apple Macintosh/Croatian)
+ RTL_TEXTENCODING_APPLE_CYRILLIC, // Cyrillic (Apple Macintosh)
+// RTL_TEXTENCODING_APPLE_DEVANAGARI, // APPLE DEVANAGARI
+// RTL_TEXTENCODING_APPLE_FARSI, // APPLE FARSI
+ RTL_TEXTENCODING_APPLE_GREEK, // Greek (Apple Macintosh)
+// RTL_TEXTENCODING_APPLE_GUJARATI, // APPLE GUJARATI
+// RTL_TEXTENCODING_APPLE_GURMUKHI, // APPLE GURMUKHI
+// RTL_TEXTENCODING_APPLE_HEBREW, // Hebrew (Apple Macintosh)
+ RTL_TEXTENCODING_APPLE_ICELAND, // Western (Apple Macintosh/Icelandic)
+ RTL_TEXTENCODING_APPLE_ROMANIAN, // Central European (Apple Macintosh/Romanian)
+// RTL_TEXTENCODING_APPLE_THAI, // Thai (Apple Macintosh)
+ RTL_TEXTENCODING_APPLE_TURKISH, // Turkish (Apple Macintosh)
+ RTL_TEXTENCODING_APPLE_UKRAINIAN, // Cyrillic (Apple Macintosh/Ukrainian)
+ RTL_TEXTENCODING_APPLE_CHINSIMP, // Chinese Simplified (Apple Macintosh)
+ RTL_TEXTENCODING_APPLE_CHINTRAD, // Chinese Traditional (Apple Macintosh)
+ RTL_TEXTENCODING_APPLE_JAPANESE, // Japanese (Apple Macintosh)
+ RTL_TEXTENCODING_APPLE_KOREAN, // Korean (Apple Macintosh)
+ RTL_TEXTENCODING_MS_932, // Japanese (Windows-932)
+ RTL_TEXTENCODING_MS_936, // Chinese Simplified (Windows-936)
+ RTL_TEXTENCODING_MS_949, // Korean (Windows-949)
+ RTL_TEXTENCODING_MS_950, // Chinese Traditional (Windows-950)
+ RTL_TEXTENCODING_SHIFT_JIS, // Japanese (Shift-JIS)
+ RTL_TEXTENCODING_GB_2312, // Chinese Simplified (GB-2312)
+ RTL_TEXTENCODING_GBT_12345, // Chinese Traditional (GBT-12345)
+ RTL_TEXTENCODING_GBK, // Chinese Simplified (GBK/GB-2312-80)
+ RTL_TEXTENCODING_BIG5, // Chinese Traditional (BIG5)
+// RTL_TEXTENCODING_EUC_JP, // Japanese (EUC-JP)
+ RTL_TEXTENCODING_EUC_CN, // Chinese Simplified (EUC-CN)
+// RTL_TEXTENCODING_EUC_TW, // Chinese Traditional (EUC-TW)
+// RTL_TEXTENCODING_ISO_2022_JP, // Japanese (ISO-2022-JP)
+// RTL_TEXTENCODING_ISO_2022_CN, // Chinese Simplified (ISO-2022-CN)
+ RTL_TEXTENCODING_KOI8_R, // Cyrillic (KOI8-R)
+ RTL_TEXTENCODING_UTF7, // Unicode (UTF-7)
+ RTL_TEXTENCODING_UTF8, // Unicode (UTF-8)
+ RTL_TEXTENCODING_ISO_8859_10, // Central European (ISO-8859-10)
+ RTL_TEXTENCODING_ISO_8859_13, // Central European (ISO-8859-13)
+ RTL_TEXTENCODING_EUC_KR, // Korean (EUC-KR)
+// RTL_TEXTENCODING_ISO_2022_KR, // Korean (ISO-2022-KR)
+ RTL_TEXTENCODING_UCS2 // Unicode (2 byte)
+ };
+
+
+SwAsciiFilterDlg::SwAsciiFilterDlg( Window* pParent, SwDocShell& rDocSh,
+ SvStream* pStream )
+ : SfxModalDialog( pParent, SW_RES( DLG_ASCII_FILTER )),
+ aGB( this, ResId( GB_1 )),
+ aCharSetFT( this, ResId( FT_CHARSET )),
+ aCharSetLB( this, ResId( LB_CHARSET )),
+ aFontFT( this, ResId( FT_FONT )),
+ aFontLB( this, ResId( LB_FONT )),
+ aLanguageFT( this, ResId( FT_LANGUAGE )),
+ aLanguageLB( this, ResId( LB_LANGUAGE )),
+ aCRLF_FT( this, ResId( FT_CRLF )),
+ aCRLF_RB( this, ResId( RB_CRLF )),
+ aCR_RB( this, ResId( RB_CR )),
+ aLF_RB( this, ResId( RB_LF )),
+ aOkPB( this, ResId( PB_OK )),
+ aCancelPB( this, ResId( PB_CANCEL )),
+ aHelpPB( this, ResId( PB_HELP )),
+ sCharSet( ResId( STR_CHARSET )),
+ sSystemCharSet( ResId( STR_SYS_CHARSET )),
+ bSaveLineStatus( TRUE )
+{
+ FreeResource();
+
+ SwAsciiOptions aOpt;
+ {
+ const String& rFindNm = String::CreateFromAscii(
+ pStream ? sDialogImpExtraData
+ : sDialogExpExtraData);
+ USHORT nEnd, nStt = GetExtraData().Search( rFindNm );
+ if( STRING_NOTFOUND != nStt )
+ {
+ nStt += nDialogExtraDataLen;
+ nEnd = GetExtraData().Search( cDialogExtraDataClose, nStt );
+ if( STRING_NOTFOUND != nEnd )
+ {
+ aOpt.ReadUserData( GetExtraData().Copy( nStt, nEnd - nStt ));
+ nStt -= nDialogExtraDataLen;
+ GetExtraData().Erase( nStt, nEnd - nStt + 1 );
+ }
+ }
+ }
+
+ // read the first chars and check the charset, (language - with L&H)
+ if( pStream )
+ {
+ char aBuffer[ 4098 ];
+ ULONG nOldPos = pStream->Tell();
+ ULONG nBytesRead = pStream->Read( aBuffer, 4096 );
+ pStream->Seek( nOldPos );
+
+ if( nBytesRead <= 4096 )
+ {
+ aBuffer[ nBytesRead ] = '0';
+ aBuffer[ nBytesRead+1 ] = '0';
+ if( 0 != ( nBytesRead & 0x00000001 ) )
+ aBuffer[ nBytesRead + 2 ] = '0';
+ }
+
+ BOOL bCR = FALSE, bLF = FALSE, bNoNormalChar = FALSE,
+ bNullChar = FALSE;
+ for( USHORT nCnt = 0; nCnt < nBytesRead; ++nCnt )
+ switch( aBuffer[ nCnt ] )
+ {
+ case 0x0: bNullChar = TRUE; break;
+ case 0xA: bLF = TRUE; break;
+ case 0xD: bCR = TRUE; break;
+ case 0xC:
+ case 0x1A:
+ case 0x9: break;
+ default:
+ if( 0x20 > aBuffer[ nCnt ] )
+ bNoNormalChar = TRUE;
+ }
+
+ if( !bNullChar )
+ {
+ if( bCR )
+ {
+ if( bLF )
+ {
+ aOpt.SetParaFlags( LINEEND_CRLF );
+// have to check if of CharSet is type of ANSI
+// aOpt.SetCharSet( CHARSET_ANSI );
+ }
+ else
+ {
+ aOpt.SetParaFlags( LINEEND_CR );
+// have to check if CharSet is type of MAC
+// aOpt.SetCharSet( CHARSET_MAC );
+ }
+ }
+ else if( bLF )
+ {
+ aOpt.SetParaFlags( LINEEND_LF );
+// have to check if of CharSet is type of ANSI
+// aOpt.SetCharSet( CHARSET_ANSI );
+ }
+ }
+
+ {
+ BOOL bDelPrinter = FALSE;
+ SfxPrinter* pPrt = rDocSh.GetDoc()->GetPrt();
+ if( !pPrt )
+ {
+ SfxItemSet* pSet = new SfxItemSet( rDocSh.GetPool(),
+ SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN,
+ SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC,
+ 0 );
+ pPrt = new SfxPrinter( pSet );
+ bDelPrinter = TRUE;
+ }
+
+ const USHORT nCount = pPrt->GetFontCount();
+ for (USHORT i = 0; i < nCount; ++i)
+ {
+ const String &rStr = pPrt->GetFont(i)->GetName();
+ aFontLB.InsertEntry( rStr );
+ }
+
+ if( !aOpt.GetFontName().Len() )
+ aOpt.SetFontName( ((SvxFontItem&)rDocSh.GetDoc()->GetDefault(
+ RES_CHRATR_FONT )).GetFamilyName() );
+ aFontLB.SelectEntry( aOpt.GetFontName() );
+
+ if( bDelPrinter )
+ delete pPrt;
+ }
+
+ // initialisiere Sprache
+ {
+ if( !aOpt.GetLanguage() )
+ aOpt.SetLanguage( ((SvxLanguageItem&)rDocSh.GetDoc()->
+ GetDefault( RES_CHRATR_LANGUAGE )).GetLanguage());
+
+ const USHORT nLanguageCount = (USHORT) SvxGetSelectableLanguages().getLength();
+ const util::Language *pLang = SvxGetSelectableLanguages().getConstArray();
+ for( USHORT i = 0; i < nLanguageCount; ++i )
+ {
+ LanguageType eType = pLang[ i ];
+ USHORT nPos = aLanguageLB.InsertEntry( ::GetLanguageString( eType ) );
+
+ aLanguageLB.SetEntryData( nPos, (void*)(ULONG)eType );
+ if( eType == aOpt.GetLanguage() )
+ aLanguageLB.SelectEntryPos( nPos );
+ }
+ }
+ }
+ else
+ {
+ // hide the used Control for the Export and move the
+ // other behind the charset controls
+ aFontFT.Hide();
+ aFontLB.Hide();
+ aLanguageFT.Hide();
+ aLanguageLB.Hide();
+
+ long nY = aFontFT.GetPosPixel().Y();
+ Point aPos( aCRLF_FT.GetPosPixel() ); aPos.Y() = nY;
+ aCRLF_FT.SetPosPixel( aPos );
+
+ aPos = aCRLF_RB.GetPosPixel(); aPos.Y() = nY;
+ aCRLF_RB.SetPosPixel( aPos );
+
+ aPos = aCR_RB.GetPosPixel(); aPos.Y() = nY;
+ aCR_RB.SetPosPixel( aPos );
+
+ aPos = aLF_RB.GetPosPixel(); aPos.Y() = nY;
+ aLF_RB.SetPosPixel( aPos );
+ }
+
+ // initialisiere Zeichensatz
+ {
+ rtl_TextEncoding eSystem = gsl_getSystemTextEncoding();
+ USHORT nToken = 0, nPos, nCnt = 0;
+ String sToken;
+ do {
+ if( 0 != (sToken = sCharSet.GetToken( 0, ';', nToken )).Len() )
+ {
+ rtl_TextEncoding eCode = aCharSetArr[ nCnt ];
+ if( eCode == eSystem )
+ sToken = sSystemCharSet;
+ nPos = aCharSetLB.InsertEntry( sToken );
+ aCharSetLB.SetEntryData( nPos, (void*)(ULONG)eCode );
+ if( eCode == aOpt.GetCharSet() )
+ aCharSetLB.SelectEntryPos( nPos );
+ }
+ ++nCnt;
+ } while( STRING_NOTFOUND != nToken );
+ }
+
+ aCharSetLB.SetSelectHdl( LINK( this, SwAsciiFilterDlg, CharSetSelHdl ));
+ aCRLF_RB.SetToggleHdl( LINK( this, SwAsciiFilterDlg, LineEndHdl ));
+ aLF_RB.SetToggleHdl( LINK( this, SwAsciiFilterDlg, LineEndHdl ));
+ aCR_RB.SetToggleHdl( LINK( this, SwAsciiFilterDlg, LineEndHdl ));
+
+ SetCRLF( aOpt.GetParaFlags() );
+
+ aCRLF_RB.SaveValue();
+ aLF_RB.SaveValue();
+ aCR_RB.SaveValue();
+}
+
+
+SwAsciiFilterDlg::~SwAsciiFilterDlg()
+{
+}
+
+
+void SwAsciiFilterDlg::FillOptions( SwAsciiOptions& rOptions )
+{
+ ULONG nCCode = (ULONG)aCharSetLB.GetEntryData(
+ aCharSetLB.GetSelectEntryPos() );
+
+ String sFont;
+ ULONG nLng = 0;
+ if( aFontLB.IsVisible() )
+ {
+ sFont = aFontLB.GetSelectEntry();
+ nLng = (ULONG)aLanguageLB.GetEntryData(
+ aLanguageLB.GetSelectEntryPos() );
+ }
+
+ rOptions.SetFontName( sFont );
+ rOptions.SetCharSet( rtl_TextEncoding( nCCode ) );
+ rOptions.SetLanguage( USHORT( nLng ) );
+ rOptions.SetParaFlags( GetCRLF() );
+
+ // JP: Task #71802# save the user settings
+ String sData;
+ rOptions.WriteUserData( sData );
+ if( sData.Len() )
+ {
+ const String& rFindNm = String::CreateFromAscii(
+ aFontLB.IsVisible() ? sDialogImpExtraData
+ : sDialogExpExtraData);
+ USHORT nEnd, nStt = GetExtraData().Search( rFindNm );
+ if( STRING_NOTFOUND != nStt )
+ {
+ // called twice, so remove "old" settings
+ nEnd = GetExtraData().Search( cDialogExtraDataClose,
+ nStt + nDialogExtraDataLen );
+ if( STRING_NOTFOUND != nEnd )
+ GetExtraData().Erase( nStt, nEnd - nStt + 1 );
+ }
+ String sTmp(GetExtraData());
+ sTmp += rFindNm;
+ sTmp += sData;
+ sTmp += cDialogExtraDataClose;
+ GetExtraData() = sTmp;
+ }
+}
+
+void SwAsciiFilterDlg::SetCRLF( LineEnd eEnd )
+{
+ switch( eEnd )
+ {
+ case LINEEND_CR: aCR_RB.Check(); break;
+ case LINEEND_CRLF: aCRLF_RB.Check(); break;
+ case LINEEND_LF: aLF_RB.Check(); break;
+ }
+}
+
+LineEnd SwAsciiFilterDlg::GetCRLF() const
+{
+ LineEnd eEnd;
+ if( aCR_RB.IsChecked() )
+ eEnd = LINEEND_CR;
+ else if( aLF_RB.IsChecked() )
+ eEnd = LINEEND_LF;
+ else
+ eEnd = LINEEND_CRLF;
+ return eEnd;
+}
+
+IMPL_LINK( SwAsciiFilterDlg, CharSetSelHdl, ListBox*, pBox )
+{
+ LineEnd eOldEnd = GetCRLF(), eEnd = (LineEnd)-1;
+ ULONG nLng = aFontLB.IsVisible()
+ ? (ULONG)aLanguageLB.GetEntryData(
+ aLanguageLB.GetSelectEntryPos() )
+ : 0,
+ nOldLng = nLng;
+
+ ULONG nChrSet = (ULONG)pBox->GetEntryData( pBox->GetSelectEntryPos() );
+ if( nChrSet == gsl_getSystemTextEncoding() )
+ eEnd = GetSystemLineEnd();
+ else
+ {
+ switch( nChrSet )
+ {
+ case RTL_TEXTENCODING_MS_1252:
+#ifdef UNX
+ eEnd = LINEEND_LF;
+#else
+ eEnd = LINEEND_CRLF; // ANSI
+#endif
+ break;
+
+ case RTL_TEXTENCODING_APPLE_ROMAN: // MAC
+ eEnd = LINEEND_CR;
+ break;
+
+ case RTL_TEXTENCODING_IBM_850: // DOS
+ eEnd = LINEEND_CRLF;
+ break;
+
+ case RTL_TEXTENCODING_APPLE_ARABIC:
+ case RTL_TEXTENCODING_APPLE_CENTEURO:
+ case RTL_TEXTENCODING_APPLE_CROATIAN:
+ case RTL_TEXTENCODING_APPLE_CYRILLIC:
+ case RTL_TEXTENCODING_APPLE_DEVANAGARI:
+ case RTL_TEXTENCODING_APPLE_FARSI:
+ case RTL_TEXTENCODING_APPLE_GREEK:
+ case RTL_TEXTENCODING_APPLE_GUJARATI:
+ case RTL_TEXTENCODING_APPLE_GURMUKHI:
+ case RTL_TEXTENCODING_APPLE_HEBREW:
+ case RTL_TEXTENCODING_APPLE_ICELAND:
+ case RTL_TEXTENCODING_APPLE_ROMANIAN:
+ case RTL_TEXTENCODING_APPLE_THAI:
+ case RTL_TEXTENCODING_APPLE_TURKISH:
+ case RTL_TEXTENCODING_APPLE_UKRAINIAN:
+ case RTL_TEXTENCODING_APPLE_CHINSIMP:
+ case RTL_TEXTENCODING_APPLE_CHINTRAD:
+ case RTL_TEXTENCODING_APPLE_JAPANESE:
+ case RTL_TEXTENCODING_APPLE_KOREAN:
+ eEnd = LINEEND_CR;
+ break;
+
+#if 0
+which charset and language?
+ case RTL_TEXTENCODING_IBM_437:
+ case RTL_TEXTENCODING_IBM_860:
+ case RTL_TEXTENCODING_IBM_861:
+ case RTL_TEXTENCODING_IBM_863:
+ case RTL_TEXTENCODING_IBM_865:
+ case RTL_TEXTENCODING_ASCII_US:
+ case RTL_TEXTENCODING_ISO_8859_1:
+ case RTL_TEXTENCODING_ISO_8859_2:
+ case RTL_TEXTENCODING_ISO_8859_3:
+ case RTL_TEXTENCODING_ISO_8859_4:
+ case RTL_TEXTENCODING_ISO_8859_5:
+ case RTL_TEXTENCODING_ISO_8859_6:
+ case RTL_TEXTENCODING_ISO_8859_7:
+ case RTL_TEXTENCODING_ISO_8859_8:
+ case RTL_TEXTENCODING_ISO_8859_9:
+ case RTL_TEXTENCODING_ISO_8859_14:
+ case RTL_TEXTENCODING_ISO_8859_15:
+ case RTL_TEXTENCODING_IBM_737:
+ case RTL_TEXTENCODING_IBM_775:
+ case RTL_TEXTENCODING_IBM_852:
+ case RTL_TEXTENCODING_IBM_855:
+ case RTL_TEXTENCODING_IBM_857:
+ case RTL_TEXTENCODING_IBM_862:
+ case RTL_TEXTENCODING_IBM_864:
+ case RTL_TEXTENCODING_IBM_866:
+ case RTL_TEXTENCODING_IBM_869:
+ case RTL_TEXTENCODING_MS_874:
+ case RTL_TEXTENCODING_MS_1250:
+ case RTL_TEXTENCODING_MS_1251:
+ case RTL_TEXTENCODING_MS_1253:
+ case RTL_TEXTENCODING_MS_1254:
+ case RTL_TEXTENCODING_MS_1255:
+ case RTL_TEXTENCODING_MS_1256:
+ case RTL_TEXTENCODING_MS_1257:
+ case RTL_TEXTENCODING_MS_1258:
+ case RTL_TEXTENCODING_MS_932:
+ case RTL_TEXTENCODING_MS_936:
+ case RTL_TEXTENCODING_MS_949:
+ case RTL_TEXTENCODING_MS_950:
+ case RTL_TEXTENCODING_SHIFT_JIS:
+ case RTL_TEXTENCODING_GB_2312:
+ case RTL_TEXTENCODING_GBT_12345:
+ case RTL_TEXTENCODING_GBK:
+ case RTL_TEXTENCODING_BIG5:
+ case RTL_TEXTENCODING_EUC_JP:
+ case RTL_TEXTENCODING_EUC_CN:
+ case RTL_TEXTENCODING_EUC_TW:
+ case RTL_TEXTENCODING_ISO_2022_JP:
+ case RTL_TEXTENCODING_ISO_2022_CN:
+ case RTL_TEXTENCODING_KOI8_R:
+#endif
+ }
+ }
+
+ bSaveLineStatus = FALSE;
+ if( eEnd != (LineEnd)-1 ) // changed?
+ {
+ if( eOldEnd != eEnd )
+ SetCRLF( eEnd );
+ }
+ else
+ {
+ // restore old user choise (not the automatic!)
+ aCRLF_RB.Check( aCRLF_RB.GetSavedValue() );
+ aCR_RB.Check( aCR_RB.GetSavedValue() );
+ aLF_RB.Check( aLF_RB.GetSavedValue() );
+ }
+ bSaveLineStatus = TRUE;
+
+ if( nOldLng != nLng && aFontLB.IsVisible() )
+ {
+ for( USHORT n = 0, nCnt = aLanguageLB.GetEntryCount(); n < nCnt; ++n )
+ if( nLng == (ULONG)aLanguageLB.GetEntryData( n ))
+ {
+ aLanguageLB.SelectEntryPos( n );
+ break;
+ }
+ }
+ return 0;
+}
+
+IMPL_LINK( SwAsciiFilterDlg, LineEndHdl, RadioButton*, pBtn )
+{
+ if( bSaveLineStatus )
+ pBtn->SaveValue();
+ return 0;
+}
+
+/*************************************************************************
+
+ $Log: not supported by cvs2svn $
+ Revision 1.13 2000/09/18 16:05:20 willem.vandorp
+ OpenOffice header added.
+
+ Revision 1.12 2000/08/04 16:24:47 jp
+ read/write unicode ascii files
+
+ Revision 1.11 2000/08/01 07:40:17 jp
+ new CJK filters
+
+ Revision 1.10 2000/04/13 08:01:20 os
+ UNICODE
+
+ Revision 1.9 2000/03/30 10:59:20 os
+ UNO III
+
+ Revision 1.8 2000/03/16 16:38:36 kz
+ chg. include sfx2/printer.hxx
+
+ Revision 1.7 2000/02/07 16:01:51 jp
+ Task #72603#: new textencodings
+
+ Revision 1.6 2000/01/14 16:28:47 jp
+ Task #71802#: one user settings for export and one for import
+
+ Revision 1.5 2000/01/13 23:13:19 jp
+ Task #71802#: save/restore user settings
+
+ Revision 1.4 1999/11/15 14:21:12 jp
+ remove not supportet charsets from the list
+
+ Revision 1.3 1999/10/25 19:10:51 tl
+ ongoing ONE_LINGU implementation
+
+ Revision 1.2 1999/08/26 18:35:26 JP
+ load and save Text with more options (charset/language/lineend/font)
+
+
+ Rev 1.1 26 Aug 1999 20:35:26 JP
+ load and save Text with more options (charset/language/lineend/font)
+
+ Rev 1.0 25 Aug 1999 19:45:40 JP
+ Dialog for ASCII filter options
+
+
+*************************************************************************/
+
+
+