| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // ============================================================================ |
| |
| #ifndef SC_ASCIIOPT_HXX |
| #define SC_ASCIIOPT_HXX |
| |
| #include <tools/string.hxx> |
| #ifndef _DIALOG_HXX //autogen |
| #include <vcl/dialog.hxx> |
| #endif |
| #ifndef _BUTTON_HXX //autogen |
| #include <vcl/button.hxx> |
| #endif |
| #ifndef _FIXED_HXX //autogen |
| #include <vcl/fixed.hxx> |
| #endif |
| #ifndef _LSTBOX_HXX //autogen |
| #include <vcl/lstbox.hxx> |
| #endif |
| #ifndef _COMBOBOX_HXX //autogen |
| #include <vcl/combobox.hxx> |
| #endif |
| #ifndef _FIELD_HXX //autogen |
| #include <vcl/field.hxx> |
| #endif |
| #include <tools/stream.hxx> |
| #include <svx/txencbox.hxx> |
| #include "csvtablebox.hxx" |
| #include "i18npool/lang.h" |
| |
| // ============================================================================ |
| |
| class ScAsciiOptions |
| { |
| private: |
| sal_Bool bFixedLen; |
| String aFieldSeps; |
| sal_Bool bMergeFieldSeps; |
| bool bQuotedFieldAsText; |
| bool bDetectSpecialNumber; |
| sal_Unicode cTextSep; |
| CharSet eCharSet; |
| LanguageType eLang; |
| sal_Bool bCharSetSystem; |
| long nStartRow; |
| sal_uInt16 nInfoCount; |
| xub_StrLen* pColStart; //! TODO replace with vector |
| sal_uInt8* pColFormat; //! TODO replace with vector |
| |
| public: |
| ScAsciiOptions(); |
| ScAsciiOptions(const ScAsciiOptions& rOpt); |
| ~ScAsciiOptions(); |
| |
| static const sal_Unicode cDefaultTextSep = '"'; |
| |
| ScAsciiOptions& operator=( const ScAsciiOptions& rCpy ); |
| |
| sal_Bool operator==( const ScAsciiOptions& rCmp ) const; |
| |
| void ReadFromString( const String& rString ); |
| String WriteToString() const; |
| |
| void InterpretColumnList( const String& rString ); |
| |
| CharSet GetCharSet() const { return eCharSet; } |
| sal_Bool GetCharSetSystem() const { return bCharSetSystem; } |
| const String& GetFieldSeps() const { return aFieldSeps; } |
| sal_Bool IsMergeSeps() const { return bMergeFieldSeps; } |
| bool IsQuotedAsText() const { return bQuotedFieldAsText; } |
| bool IsDetectSpecialNumber() const { return bDetectSpecialNumber; } |
| sal_Unicode GetTextSep() const { return cTextSep; } |
| sal_Bool IsFixedLen() const { return bFixedLen; } |
| sal_uInt16 GetInfoCount() const { return nInfoCount; } |
| const xub_StrLen* GetColStart() const { return pColStart; } |
| const sal_uInt8* GetColFormat() const { return pColFormat; } |
| long GetStartRow() const { return nStartRow; } |
| LanguageType GetLanguage() const { return eLang; } |
| |
| void SetCharSet( CharSet eNew ) { eCharSet = eNew; } |
| void SetCharSetSystem( sal_Bool bSet ) { bCharSetSystem = bSet; } |
| void SetFixedLen( sal_Bool bSet ) { bFixedLen = bSet; } |
| void SetFieldSeps( const String& rStr ) { aFieldSeps = rStr; } |
| void SetMergeSeps( sal_Bool bSet ) { bMergeFieldSeps = bSet; } |
| void SetQuotedAsText(bool bSet) { bQuotedFieldAsText = bSet; } |
| void SetDetectSpecialNumber(bool bSet) { bDetectSpecialNumber = bSet; } |
| void SetTextSep( sal_Unicode c ) { cTextSep = c; } |
| void SetStartRow( long nRow) { nStartRow= nRow; } |
| void SetLanguage(LanguageType e) { eLang = e; } |
| |
| void SetColInfo( sal_uInt16 nCount, const xub_StrLen* pStart, const sal_uInt8* pFormat ); |
| void SetColumnInfo( const ScCsvExpDataVec& rDataVec ); |
| }; |
| |
| |
| //CHINA001 // ============================================================================ |
| //CHINA001 |
| //CHINA001 class ScImportAsciiDlg : public ModalDialog |
| //CHINA001 { |
| //CHINA001 SvStream* pDatStream; |
| //CHINA001 sal_uLong* pRowPosArray; |
| //CHINA001 sal_uLong* pRowPosArrayUnicode; |
| //CHINA001 sal_uInt16 nArrayEndPos; |
| //CHINA001 sal_uInt16 nArrayEndPosUnicode; |
| //CHINA001 sal_uLong nStreamPos; |
| //CHINA001 sal_uLong nStreamPosUnicode; |
| //CHINA001 sal_Bool bVFlag; |
| //CHINA001 |
| //CHINA001 FixedLine aFlFieldOpt; |
| //CHINA001 FixedText aFtCharSet; |
| //CHINA001 SvxTextEncodingBox aLbCharSet; |
| //CHINA001 |
| //CHINA001 FixedText aFtRow; |
| //CHINA001 NumericField aNfRow; |
| //CHINA001 |
| //CHINA001 FixedLine aFlSepOpt; |
| //CHINA001 RadioButton aRbFixed; |
| //CHINA001 RadioButton aRbSeparated; |
| //CHINA001 |
| //CHINA001 CheckBox aCkbTab; |
| //CHINA001 CheckBox aCkbSemicolon; |
| //CHINA001 CheckBox aCkbComma; |
| //CHINA001 CheckBox aCkbSpace; |
| //CHINA001 CheckBox aCkbOther; |
| //CHINA001 Edit aEdOther; |
| //CHINA001 CheckBox aCkbAsOnce; |
| //CHINA001 FixedText aFtTextSep; |
| //CHINA001 ComboBox aCbTextSep; |
| //CHINA001 |
| //CHINA001 FixedLine aFlWidth; |
| //CHINA001 FixedText aFtType; |
| //CHINA001 ListBox aLbType; |
| //CHINA001 |
| //CHINA001 ScCsvTableBox maTableBox; |
| //CHINA001 |
| //CHINA001 OKButton aBtnOk; |
| //CHINA001 CancelButton aBtnCancel; |
| //CHINA001 HelpButton aBtnHelp; |
| //CHINA001 |
| //CHINA001 String aCharSetUser; |
| //CHINA001 String aColumnUser; |
| //CHINA001 String aFldSepList; |
| //CHINA001 String aTextSepList; |
| //CHINA001 |
| //CHINA001 // aPreviewLine contains the byte string as read from the file |
| //CHINA001 ByteString aPreviewLine[ CSV_PREVIEW_LINES ]; |
| //CHINA001 // same for Unicode |
| //CHINA001 String aPreviewLineUnicode[ CSV_PREVIEW_LINES ]; |
| //CHINA001 |
| //CHINA001 CharSet meCharSet; /// Selected char set. |
| //CHINA001 bool mbCharSetSystem; /// Is System char set selected? |
| //CHINA001 |
| //CHINA001 public: |
| //CHINA001 ScImportAsciiDlg( |
| //CHINA001 Window* pParent, String aDatName, |
| //CHINA001 SvStream* pInStream, sal_Unicode cSep = '\t' ); |
| //CHINA001 ~ScImportAsciiDlg(); |
| //CHINA001 |
| //CHINA001 void GetOptions( ScAsciiOptions& rOpt ); |
| //CHINA001 |
| //CHINA001 private: |
| //CHINA001 /** Sets the selected char set data to meCharSet and mbCharSetSystem. */ |
| //CHINA001 void SetSelectedCharSet(); |
| //CHINA001 /** Returns all separator characters in a string. */ |
| //CHINA001 String GetSeparators() const; |
| //CHINA001 |
| //CHINA001 /** Enables or disables all separator checkboxes and edit fields. */ |
| //CHINA001 void SetupSeparatorCtrls(); |
| //CHINA001 |
| //CHINA001 void UpdateVertical( bool bSwitchToFromUnicode = false ); |
| //CHINA001 |
| //CHINA001 DECL_LINK( CharSetHdl, SvxTextEncodingBox* ); |
| //CHINA001 DECL_LINK( FirstRowHdl, NumericField* ); |
| //CHINA001 DECL_LINK( RbSepFixHdl, RadioButton* ); |
| //CHINA001 DECL_LINK( SeparatorHdl, Control* ); |
| //CHINA001 DECL_LINK( LbColTypeHdl, ListBox* ); |
| //CHINA001 DECL_LINK( UpdateTextHdl, ScCsvTableBox* ); |
| //CHINA001 DECL_LINK( ColTypeHdl, ScCsvTableBox* ); |
| //CHINA001 }; |
| //CHINA001 |
| //CHINA001 |
| // ============================================================================ |
| |
| #endif |
| |