View | Details | Raw Unified | Return to issue 125400
Collapse All | Expand All

(-)writerfilter/source/dmapper/ConversionHelper.cxx (-3 / +10 lines)
Lines 561-566 Link Here
561
        case 2: 
561
        case 2: 
562
            nRet = style::NumberingType::ROMAN_LOWER;
562
            nRet = style::NumberingType::ROMAN_LOWER;
563
            break;
563
            break;
564
        case NS_ooxml::LN_Value_ST_NumberFormat_ordinal:
564
        case 3: 
565
        case 3: 
565
            nRet = style::NumberingType::CHARS_UPPER_LETTER_N; 
566
            nRet = style::NumberingType::CHARS_UPPER_LETTER_N; 
566
            break;
567
            break;
Lines 580-589 Link Here
580
            nRet = style::NumberingType::NUMBER_NONE;
581
            nRet = style::NumberingType::NUMBER_NONE;
581
            break;
582
            break;
582
        case NS_ooxml::LN_Value_ST_NumberFormat_upperLetter:
583
        case NS_ooxml::LN_Value_ST_NumberFormat_upperLetter:
583
            nRet = style::NumberingType::CHARS_UPPER_LETTER;
584
            nRet = style::NumberingType::CHARS_UPPER_LETTER_N;
584
            break;
585
            break;
585
        case  NS_ooxml::LN_Value_ST_NumberFormat_lowerLetter:
586
        case  NS_ooxml::LN_Value_ST_NumberFormat_lowerLetter:
586
            nRet = style::NumberingType::CHARS_LOWER_LETTER;
587
            nRet = style::NumberingType::CHARS_LOWER_LETTER_N;
587
            break;
588
            break;
588
        case NS_ooxml::LN_Value_ST_NumberFormat_iroha:
589
        case NS_ooxml::LN_Value_ST_NumberFormat_iroha:
589
            nRet = style::NumberingType::IROHA_HALFWIDTH_JA;
590
            nRet = style::NumberingType::IROHA_HALFWIDTH_JA;
Lines 625-633 Link Here
625
        case NS_ooxml::LN_Value_ST_NumberFormat_chosung:
626
        case NS_ooxml::LN_Value_ST_NumberFormat_chosung:
626
            nRet = style::NumberingType::HANGUL_JAMO_KO;
627
            nRet = style::NumberingType::HANGUL_JAMO_KO;
627
            break;
628
            break;
629
        case NS_ooxml::LN_Value_ST_NumberFormat_koreanLegal:
628
        case NS_ooxml::LN_Value_ST_NumberFormat_koreanDigital:
630
        case NS_ooxml::LN_Value_ST_NumberFormat_koreanDigital:
629
        case NS_ooxml::LN_Value_ST_NumberFormat_koreanCounting:
631
        case NS_ooxml::LN_Value_ST_NumberFormat_koreanCounting:
630
        case NS_ooxml::LN_Value_ST_NumberFormat_koreanDigital2:
631
            nRet = style::NumberingType::NUMBER_HANGUL_KO;
632
            nRet = style::NumberingType::NUMBER_HANGUL_KO;
632
            break;
633
            break;
633
        case NS_ooxml::LN_Value_ST_NumberFormat_ideographLegalTraditional:
634
        case NS_ooxml::LN_Value_ST_NumberFormat_ideographLegalTraditional:
Lines 645-657 Link Here
645
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseCounting:
646
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseCounting:
646
        case NS_ooxml::LN_Value_ST_NumberFormat_japaneseCounting:
647
        case NS_ooxml::LN_Value_ST_NumberFormat_japaneseCounting:
647
        case NS_ooxml::LN_Value_ST_NumberFormat_taiwaneseCounting:
648
        case NS_ooxml::LN_Value_ST_NumberFormat_taiwaneseCounting:
649
        case NS_ooxml::LN_Value_ST_NumberFormat_taiwaneseCountingThousand:
648
        case NS_ooxml::LN_Value_ST_NumberFormat_ideographDigital:
650
        case NS_ooxml::LN_Value_ST_NumberFormat_ideographDigital:
649
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseCountingThousand:
651
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseCountingThousand:
652
        case NS_ooxml::LN_Value_ST_NumberFormat_koreanDigital2:
650
            nRet = style::NumberingType::NUMBER_LOWER_ZH;
653
            nRet = style::NumberingType::NUMBER_LOWER_ZH;
651
            break;
654
            break;
652
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseLegalSimplified:
655
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseLegalSimplified:
653
            nRet = style::NumberingType::NUMBER_UPPER_ZH;
656
            nRet = style::NumberingType::NUMBER_UPPER_ZH;
654
            break;
657
            break;
658
        case NS_ooxml::LN_Value_ST_NumberFormat_decimalFullWidth:
659
        case NS_ooxml::LN_Value_ST_NumberFormat_decimalFullWidth2:
660
            nRet = style::NumberingType::FULLWIDTH_ARABIC;
661
            break;
655
        default: nRet = style::NumberingType::ARABIC;
662
        default: nRet = style::NumberingType::ARABIC;
656
    }
663
    }
657
/*  TODO: Lots of additional values are available - some are supported in the I18 framework
664
/*  TODO: Lots of additional values are available - some are supported in the I18 framework
(-)sw/source/filter/ww8/ww8par2.cxx (-4 / +33 lines)
Lines 648-658 Link Here
648
648
649
    static SvxAdjust eAdjA[4] =
649
    static SvxAdjust eAdjA[4] =
650
    { SVX_ADJUST_LEFT, SVX_ADJUST_RIGHT, SVX_ADJUST_LEFT, SVX_ADJUST_LEFT };
650
    { SVX_ADJUST_LEFT, SVX_ADJUST_RIGHT, SVX_ADJUST_LEFT, SVX_ADJUST_LEFT };
651
    
652
    if (SVBT8ToByte( rAV.nfc ) < 8) {
653
        rNum.SetNumberingType(static_cast< sal_Int16 >(eNumA[SVBT8ToByte( rAV.nfc ) ]));
654
    } else {
655
        sal_Int16 nType = style::NumberingType::ARABIC; // Fallback to ARABIC instead of NONE
656
        switch(SVBT8ToByte( rAV.nfc )) 
657
        {
658
        case 14:
659
        case 19:nType = style::NumberingType::FULLWIDTH_ARABIC ;	break;
660
        case 30:nType = style::NumberingType::TIAN_GAN_ZH ;	break;
661
        case 31:nType = style::NumberingType::DI_ZI_ZH ;	break;
662
        case 35:
663
        case 36:
664
        case 37:
665
        case 39: 		
666
            nType = style::NumberingType::NUMBER_LOWER_ZH ;	break;
667
        case 34:nType = style::NumberingType::NUMBER_UPPER_ZH_TW ;	break;
668
        case 38:nType = style::NumberingType::NUMBER_UPPER_ZH ;	break;
669
        case 10: 		
670
        case 11:
671
            nType = style::NumberingType::NUMBER_TRADITIONAL_JA ;	break;
672
        case 20: 	nType = style::NumberingType::AIU_FULLWIDTH_JA ;	break;
673
        case 12: 	nType = style::NumberingType::AIU_HALFWIDTH_JA ;	break;
674
        case 21: 	nType = style::NumberingType::IROHA_FULLWIDTH_JA ;	break;
675
        case 13: 	nType = style::NumberingType::IROHA_HALFWIDTH_JA ;	break;
676
        case 24: 	nType = style::NumberingType::HANGUL_SYLLABLE_KO;break;
677
        case 25:	nType = style::NumberingType::HANGUL_JAMO_KO;break;
678
        case 41:	nType = style::NumberingType::NUMBER_HANGUL_KO; break;
679
        case 44:	nType = style::NumberingType::NUMBER_UPPER_KO; break;
680
        default:    nType = style::NumberingType::ARABIC; break;
681
        }
651
682
652
    rNum.SetNumberingType(
683
    	rNum.SetNumberingType( nType ) ; 
653
        static_cast< sal_Int16 >(( SVBT8ToByte( rAV.nfc ) < 8 )
684
    }
654
            ? eNumA[SVBT8ToByte( rAV.nfc ) ]
655
            : SVX_NUM_NUMBER_NONE) );
656
685
657
    if ((SVBT8ToByte(rAV.aBits1 ) & 0x4) >> 2)
686
    if ((SVBT8ToByte(rAV.aBits1 ) & 0x4) >> 2)
658
    {
687
    {
(-)sw/source/filter/ww8/ww8par3.cxx (-22 / +43 lines)
Lines 541-547 Link Here
541
{
541
{
542
    sal_uInt8       aBits1;
542
    sal_uInt8       aBits1;
543
    sal_uInt16      nStartNo    = 0;    // Start-Nr. fuer den Writer
543
    sal_uInt16      nStartNo    = 0;    // Start-Nr. fuer den Writer
544
    SvxExtNumType   eType;              // Writer-Num-Typ
544
    sal_Int16       nType(style::NumberingType::ARABIC);
545
    SvxAdjust       eAdj;               // Ausrichtung (Links/rechts/zent.)
545
    SvxAdjust       eAdj;               // Ausrichtung (Links/rechts/zent.)
546
    sal_Unicode     cBullet(0x2190);    // default safe bullet
546
    sal_Unicode     cBullet(0x2190);    // default safe bullet
547
547
Lines 749-803 Link Here
749
    // 4. den Nummerierungsstring einlesen: ergibt Prefix und Postfix
749
    // 4. den Nummerierungsstring einlesen: ergibt Prefix und Postfix
750
    //
750
    //
751
    String sNumString(WW8Read_xstz(rSt, 0, false));
751
    String sNumString(WW8Read_xstz(rSt, 0, false));
752
753
    //
752
    //
754
    // 5. gelesene Werte in Writer Syntax umwandeln
753
    // 5. gelesene Werte in Writer Syntax umwandeln
755
    //
754
    //
756
    if( 0 <= aLVL.nStartAt )
755
    if( 0 <= aLVL.nStartAt )
757
        nStartNo = (sal_uInt16)aLVL.nStartAt;
756
        nStartNo = (sal_uInt16)aLVL.nStartAt;
758
759
    switch( aLVL.nNFC )
757
    switch( aLVL.nNFC )
760
    {
758
    {
761
        case 0:
759
        case 0:
762
            eType = SVX_NUM_ARABIC;
760
            nType = style::NumberingType::ARABIC;
763
            break;
761
            break;
764
        case 1:
762
        case 1:
765
            eType = SVX_NUM_ROMAN_UPPER;
763
            nType = style::NumberingType::ROMAN_UPPER;
766
            break;
764
            break;
767
        case 2:
765
        case 2:
768
            eType = SVX_NUM_ROMAN_LOWER;
766
            nType = style::NumberingType::ROMAN_LOWER;
769
            break;
767
            break;
770
        case 3:
768
        case 3:
771
            eType = SVX_NUM_CHARS_UPPER_LETTER_N;
769
            nType = style::NumberingType::CHARS_UPPER_LETTER_N;
772
            break;
770
            break;
773
        case 4:
771
        case 4:
774
            eType = SVX_NUM_CHARS_LOWER_LETTER_N;
772
            nType = style::NumberingType::CHARS_LOWER_LETTER_N;
775
            break;
773
            break;
776
        case 5:
774
        case 5:
777
            // eigentlich: ORDINAL
775
            // eigentlich: ORDINAL
778
            eType = SVX_NUM_ARABIC;
776
            nType = style::NumberingType::ARABIC;
779
            break;
777
            break;
780
        case 23:
778
        case 23:
781
        case 25:    //#114412#
779
            nType = style::NumberingType::CHAR_SPECIAL;
782
            eType = SVX_NUM_CHAR_SPECIAL;
783
			//For i120928,type info
780
			//For i120928,type info
784
			if (bIsPicBullet)
781
			if (bIsPicBullet)
785
			{
782
			{
786
				eType = SVX_NUM_BITMAP;
783
				nType = style::NumberingType::BITMAP;
787
			}
784
			}
788
785
789
            break;
786
            break;
790
        case 255:
787
        case 255:
791
            eType = SVX_NUM_NUMBER_NONE;
788
            nType = style::NumberingType::NUMBER_NONE;
792
            break;
789
            break;
793
         default:
790
        case 18: 	nType = style::NumberingType::CIRCLE_NUMBER ;	break;
791
        case 14:
792
        case 19: 	nType = style::NumberingType::FULLWIDTH_ARABIC ;	break;
793
        case 30: 	nType = style::NumberingType::TIAN_GAN_ZH ;	break;
794
        case 31: 	nType = style::NumberingType::DI_ZI_ZH ;	break;
795
        case 35:
796
        case 36:
797
        case 37:
798
        case 39: 		
799
                    nType = style::NumberingType::NUMBER_LOWER_ZH ;	break;
800
        case 34: 	nType = style::NumberingType::NUMBER_UPPER_ZH_TW ;	break;
801
        case 38: 	nType = style::NumberingType::NUMBER_UPPER_ZH ;	break;
802
        case 10: 		
803
        case 11:
804
                    nType = style::NumberingType::NUMBER_TRADITIONAL_JA ;	break;
805
        case 20: 	nType = style::NumberingType::AIU_FULLWIDTH_JA ;	break;
806
        case 12: 	nType = style::NumberingType::AIU_HALFWIDTH_JA ;	break;
807
        case 21: 	nType = style::NumberingType::IROHA_FULLWIDTH_JA ;	break;
808
        case 13: 	nType = style::NumberingType::IROHA_HALFWIDTH_JA ;	break;
809
        case 24: 	nType = style::NumberingType::HANGUL_SYLLABLE_KO;	break;
810
        case 25:	nType = style::NumberingType::HANGUL_JAMO_KO;		break;
811
        case 41:	nType = style::NumberingType::NUMBER_HANGUL_KO; break;
812
        case 44:	nType = style::NumberingType::NUMBER_UPPER_KO; break;
813
	
814
        default:
794
            // take default
815
            // take default
795
            eType = SVX_NUM_ARABIC;
816
        nType = style::NumberingType::ARABIC;
796
            break;
817
        break;
797
    }
818
    }
798
819
799
    //If a number level is not going to be used, then record this fact
820
    //If a number level is not going to be used, then record this fact
800
    if (SVX_NUM_NUMBER_NONE == eType)
821
    if (style::NumberingType::NUMBER_NONE == nType)
801
        rNotReallyThere[nLevel] = true;
822
        rNotReallyThere[nLevel] = true;
802
823
803
    /*
824
    /*
Lines 853-865 Link Here
853
    if (!nUpperLevel)
874
    if (!nUpperLevel)
854
        nUpperLevel = nMaxLevel;
875
        nUpperLevel = nMaxLevel;
855
876
856
    if (SVX_NUM_CHAR_SPECIAL == eType)
877
    if (style::NumberingType::CHAR_SPECIAL == nType)
857
    {
878
    {
858
        cBullet = sNumString.Len() ? sNumString.GetChar(0) : 0x2190;
879
        cBullet = sNumString.Len() ? sNumString.GetChar(0) : 0x2190;
859
880
860
        if (!cBullet)  // unsave control code?
881
        if (!cBullet)  // unsave control code?
861
            cBullet = 0x2190;
882
            cBullet = 0x2190;
862
    }	else if (SVX_NUM_BITMAP == eType)	//For i120928,position index info of graphic
883
    }	else if (style::NumberingType::BITMAP == nType)	//For i120928,position index info of graphic
863
	{
884
	{
864
		cGrfBulletCP = nWitchPicIsBullet;       // This is a bullet picture ID	
885
		cGrfBulletCP = nWitchPicIsBullet;       // This is a bullet picture ID	
865
	} else
886
	} else
Lines 922-931 Link Here
922
    // 6. entsprechendes NumFmt konfigurieren
943
    // 6. entsprechendes NumFmt konfigurieren
923
    if( bSetStartNo )
944
    if( bSetStartNo )
924
        rNumFmt.SetStart( nStartNo );
945
        rNumFmt.SetStart( nStartNo );
925
    rNumFmt.SetNumberingType( static_cast< sal_Int16 >(eType) );
946
    rNumFmt.SetNumberingType( nType );
926
    rNumFmt.SetNumAdjust( eAdj );
947
    rNumFmt.SetNumAdjust( eAdj );
927
948
928
    if( SVX_NUM_CHAR_SPECIAL == eType )
949
    if( style::NumberingType::CHAR_SPECIAL == nType )
929
    {
950
    {
930
        // first character of the Prefix-Text is the Bullet
951
        // first character of the Prefix-Text is the Bullet
931
        rNumFmt.SetBulletChar(cBullet);
952
        rNumFmt.SetBulletChar(cBullet);
Lines 933-939 Link Here
933
        // SetBulletFont() rufen !!!
954
        // SetBulletFont() rufen !!!
934
    }
955
    }
935
	//For i120928,position index info
956
	//For i120928,position index info
936
	else if (SVX_NUM_BITMAP == eType)	
957
	else if (style::NumberingType::BITMAP == nType)	
937
	{
958
	{
938
		rNumFmt.SetGrfBulletCP(cGrfBulletCP);
959
		rNumFmt.SetGrfBulletCP(cGrfBulletCP);
939
	}
960
	}
(-)sw/source/filter/ww8/wrtw8num.cxx (-2 / +53 lines)
Lines 45-50 Link Here
45
#include "writerwordglue.hxx"
45
#include "writerwordglue.hxx"
46
#include "wrtww8.hxx"
46
#include "wrtww8.hxx"
47
#include "ww8par.hxx"
47
#include "ww8par.hxx"
48
#include <editeng/langitem.hxx>
48
49
49
//#define DUMPSYMBOLS
50
//#define DUMPSYMBOLS
50
#ifdef DUMPSYMBOLS
51
#ifdef DUMPSYMBOLS
Lines 203-208 Link Here
203
    }
204
    }
204
}
205
}
205
206
207
static sal_uInt8 GetLevelNFC(  sal_uInt16 eNumType, const SfxItemSet *pOutSet)
208
{
209
    sal_uInt8 nRet = 0;
210
    switch( eNumType )
211
    {
212
    case SVX_NUM_CHARS_UPPER_LETTER:
213
    case SVX_NUM_CHARS_UPPER_LETTER_N:  nRet = 3;       break;
214
    case SVX_NUM_CHARS_LOWER_LETTER:
215
    case SVX_NUM_CHARS_LOWER_LETTER_N:  nRet = 4;       break;
216
    case SVX_NUM_ROMAN_UPPER:           nRet = 1;       break;
217
    case SVX_NUM_ROMAN_LOWER:           nRet = 2;       break;
218
219
    case SVX_NUM_BITMAP:
220
    case SVX_NUM_CHAR_SPECIAL:         nRet = 23;      break;
221
    case SVX_NUM_FULL_WIDTH_ARABIC: nRet = 14; break;
222
    case SVX_NUM_CIRCLE_NUMBER: nRet = 18;break;
223
    case SVX_NUM_NUMBER_LOWER_ZH:
224
        nRet = 35;
225
        if ( pOutSet ) {
226
            const SvxLanguageItem rLang = (const SvxLanguageItem&) pOutSet->Get( RES_CHRATR_CJK_LANGUAGE,true);
227
            const LanguageType eLang = rLang.GetLanguage();
228
            if (LANGUAGE_CHINESE_SIMPLIFIED ==eLang) {
229
                nRet = 39;
230
            }
231
        }
232
        break;
233
    case SVX_NUM_NUMBER_UPPER_ZH: nRet = 38; break;
234
    case SVX_NUM_NUMBER_UPPER_ZH_TW: nRet = 34;break;
235
    case SVX_NUM_TIAN_GAN_ZH: nRet = 30; break;
236
    case SVX_NUM_DI_ZI_ZH: nRet = 31; break;
237
    case SVX_NUM_NUMBER_TRADITIONAL_JA: nRet = 16; break;
238
    case SVX_NUM_AIU_FULLWIDTH_JA: nRet = 20; break;
239
    case SVX_NUM_AIU_HALFWIDTH_JA: nRet = 12; break;
240
    case SVX_NUM_IROHA_FULLWIDTH_JA: nRet = 21; break;
241
    case SVX_NUM_IROHA_HALFWIDTH_JA: nRet = 13; break;
242
    case style::NumberingType::HANGUL_SYLLABLE_KO: nRet = 24; break;// ganada
243
    case style::NumberingType::HANGUL_JAMO_KO: nRet = 25; break;// chosung
244
    case style::NumberingType::HANGUL_CIRCLED_SYLLABLE_KO: nRet = 24; break;
245
    case style::NumberingType::HANGUL_CIRCLED_JAMO_KO: nRet = 25; break;
246
    case style::NumberingType::NUMBER_HANGUL_KO: nRet = 41; break;
247
    case style::NumberingType::NUMBER_UPPER_KO: nRet = 44; break;
248
    case SVX_NUM_NUMBER_NONE:           nRet = 0xff;    break;
249
    }
250
    return nRet;
251
}
252
206
void WW8AttributeOutput::NumberingLevel( sal_uInt8 /*nLevel*/,
253
void WW8AttributeOutput::NumberingLevel( sal_uInt8 /*nLevel*/,
207
        sal_uInt16 nStart,
254
        sal_uInt16 nStart,
208
        sal_uInt16 nNumberingType,
255
        sal_uInt16 nNumberingType,
Lines 222-228 Link Here
222
    SwWW8Writer::WriteLong( *m_rWW8Export.pTableStrm, nStart );
269
    SwWW8Writer::WriteLong( *m_rWW8Export.pTableStrm, nStart );
223
270
224
    // Type
271
    // Type
225
    *m_rWW8Export.pTableStrm << WW8Export::GetNumId( nNumberingType );
272
    *m_rWW8Export.pTableStrm << GetLevelNFC( nNumberingType ,pOutSet);
226
273
227
    // Justification
274
    // Justification
228
    sal_uInt8 nAlign;
275
    sal_uInt8 nAlign;
Lines 811-818 Link Here
811
    sal_uInt16& rCharLen, const SwNumRule& rRul, const SwNumFmt& rFmt,
858
    sal_uInt16& rCharLen, const SwNumRule& rRul, const SwNumFmt& rFmt,
812
    sal_uInt8 nSwLevel)
859
    sal_uInt8 nSwLevel)
813
{
860
{
814
    ByteToSVBT8(WW8Export::GetNumId(rFmt.GetNumberingType()), rAnlv.nfc);
861
    const SfxItemSet *pOutSet = NULL;
862
    if (rFmt.GetCharFmt())
863
        pOutSet = &rFmt.GetCharFmt()->GetAttrSet();
815
864
865
    ByteToSVBT8(GetLevelNFC(rFmt.GetNumberingType(),pOutSet ), rAnlv.nfc);
866
816
    sal_uInt8 nb = 0;
867
    sal_uInt8 nb = 0;
817
    switch (rFmt.GetNumAdjust())
868
    switch (rFmt.GetNumAdjust())
818
    {
869
    {
(-)sw/source/filter/ww8/rtfattributeoutput.cxx (+29 lines)
Lines 1525-1532 Link Here
1525
        case SVX_NUM_CHARS_LOWER_LETTER:
1525
        case SVX_NUM_CHARS_LOWER_LETTER:
1526
        case SVX_NUM_CHARS_LOWER_LETTER_N:  nVal = 4;       break;
1526
        case SVX_NUM_CHARS_LOWER_LETTER_N:  nVal = 4;       break;
1527
1527
1528
    	case SVX_NUM_FULL_WIDTH_ARABIC:		nVal=19;	break;
1529
    	case SVX_NUM_CIRCLE_NUMBER:		nVal=18;	break;
1530
    	case SVX_NUM_NUMBER_LOWER_ZH:	
1531
        nVal=35;
1532
        if (pOutSet)
1533
        {
1534
            const SvxLanguageItem rlang = (const SvxLanguageItem&) pOutSet->Get(RES_CHRATR_CJK_LANGUAGE,true);
1535
            if (LANGUAGE_CHINESE_SIMPLIFIED == rlang.GetLanguage())
1536
                nVal=39;
1537
        }
1538
        break;
1539
        case SVX_NUM_NUMBER_UPPER_ZH:	nVal=38;	break;
1540
        case SVX_NUM_NUMBER_UPPER_ZH_TW:	nVal=34;	break;
1541
        case SVX_NUM_TIAN_GAN_ZH:		nVal=30;	break;
1542
        case SVX_NUM_DI_ZI_ZH:		nVal=31;	break;
1543
        case SVX_NUM_NUMBER_TRADITIONAL_JA:	nVal=16;	break;
1544
        case SVX_NUM_AIU_FULLWIDTH_JA:	nVal=20;	break;
1545
        case SVX_NUM_AIU_HALFWIDTH_JA:	nVal=12;	break;
1546
        case SVX_NUM_IROHA_FULLWIDTH_JA:	nVal=21;	break;
1547
        case SVX_NUM_IROHA_HALFWIDTH_JA:	nVal=13;	break;
1548
        case style::NumberingType::HANGUL_SYLLABLE_KO:	nVal = 24; break;// ganada
1549
        case style::NumberingType::HANGUL_JAMO_KO:	nVal = 25; break;// chosung
1550
        case style::NumberingType::HANGUL_CIRCLED_SYLLABLE_KO:	nVal = 24; break;
1551
        case style::NumberingType::HANGUL_CIRCLED_JAMO_KO:	nVal = 25; break;
1552
        case style::NumberingType::NUMBER_HANGUL_KO:		nVal = 41; break;
1553
        case style::NumberingType::NUMBER_UPPER_KO:		nVal = 44; break;
1528
        case SVX_NUM_BITMAP:
1554
        case SVX_NUM_BITMAP:
1529
        case SVX_NUM_CHAR_SPECIAL:                  nVal = 23;      break;
1555
        case SVX_NUM_CHAR_SPECIAL:                  nVal = 23;      break;
1556
        case SVX_NUM_NUMBER_NONE:
1557
        nVal = 255;
1558
        break;
1530
    }
1559
    }
1531
    m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LEVELNFC;
1560
    m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LEVELNFC;
1532
    m_rExport.OutULong( nVal );
1561
    m_rExport.OutULong( nVal );
(-)sw/source/filter/rtf/rtfnum.cxx (-10 / +66 lines)
Lines 57-62 Link Here
57
57
58
#define RTF_NUMRULE_NAME "RTF_Num"
58
#define RTF_NUMRULE_NAME "RTF_Num"
59
59
60
static sal_Int16 lcl_GetStyleForNFC( sal_Int16 nNFC)
61
{
62
    static const sal_Int16 aMap[] =
63
    {
64
    style::NumberingType::ARABIC,                   // 0 - Arabic (1, 2, 3)
65
    style::NumberingType::ROMAN_UPPER,              // 1 - Uppercase Roman numeral (I, II, III)
66
    style::NumberingType::ROMAN_LOWER,              // 2 - Lowercase Roman numeral (i, ii, iii)
67
    style::NumberingType::CHARS_UPPER_LETTER_N,     // 3 - Uppercase letter (A, B, C)
68
    style::NumberingType::CHARS_LOWER_LETTER_N,     // 4 - Lowercase letter (a, b, c)
69
    style::NumberingType::ARABIC,                   // 5 - Ordinal number (1st, 2nd, 3rd)
70
    style::NumberingType::ARABIC,                   // 6 - Cardinal text number (One, Two Three)
71
    style::NumberingType::ARABIC,                   // 7 - Ordinal text number (First, Second, Third)
72
    style::NumberingType::NUMBER_NONE,              // 8 - Not defined
73
    style::NumberingType::NUMBER_NONE,              // 9 - Not defined
74
    style::NumberingType::NUMBER_LOWER_ZH,          // 10 - Kanji numbering without the digit character (*dbnum1).
75
    style::NumberingType::NUMBER_LOWER_ZH,          // 11 - Kanji numbering with the digit character (*dbnum2).
76
    style::NumberingType::AIU_HALFWIDTH_JA,         // 12 - phonetic Katakana characters in "aiueo" order (*aiueo).
77
    style::NumberingType::IROHA_HALFWIDTH_JA,       // 13 - phonetic katakana characters in "iroha" order (*iroha).
78
    style::NumberingType::FULLWIDTH_ARABIC,         // 14 - Double Byte character
79
    style::NumberingType::ARABIC,                   // 15 - Single Byte character
80
    style::NumberingType::NUMBER_TRADITIONAL_JA,    // 16 - Kanji numbering 3 (*dbnum3).
81
    style::NumberingType::ARABIC,                   // 17 - Kanji numbering 4 (*dbnum4).
82
    style::NumberingType::ARABIC,                   // 18 - Circle numbering (*circlenum). - decimalEnclosedCircleChinese
83
    style::NumberingType::FULLWIDTH_ARABIC,         // 19 - Double-byte Arabic numbering
84
    style::NumberingType::AIU_FULLWIDTH_JA,         // 20 - phonetic double-byte Katakana characters (*aiueo*dbchar).
85
    style::NumberingType::IROHA_FULLWIDTH_JA,       // 21 - phonetic double-byte katakana characters (*iroha*dbchar).
86
    style::NumberingType::ARABIC,                   // 22 - Arabic with leading zero (01, 02, 03, ..., 10, 11)
87
    style::NumberingType::CHAR_SPECIAL,             // 23 - Bullet (no number at all)
88
    style::NumberingType::HANGUL_SYLLABLE_KO,       // 24 - Korean numbering 2 (*ganada).
89
    style::NumberingType::HANGUL_JAMO_KO,           // 25 - Korean numbering 1 (*chosung).
90
    style::NumberingType::ARABIC,                   // 26 - Chinese numbering 1 (*gb1). - decimalEnclosedFullstop
91
    style::NumberingType::ARABIC,                   // 27 - Chinese numbering 2 (*gb2). - decimalEnclosedParen
92
    style::NumberingType::ARABIC,                   // 28 - Chinese numbering 3 (*gb3). - decimalEnclosedCircleChinese
93
    style::NumberingType::ARABIC,                   // 29 - Chinese numbering 4 (*gb4). - ideographEnclosedCircle
94
    style::NumberingType::TIAN_GAN_ZH,              // 30 - Chinese Zodiac numbering 1 (* zodiac1)
95
    style::NumberingType::DI_ZI_ZH,                 // 31 - Chinese Zodiac numbering 2 (* zodiac2)
96
    style::NumberingType::ARABIC,                   // 32 - Chinese Zodiac numbering 3 (* zodiac3)
97
    style::NumberingType::NUMBER_LOWER_ZH,          // 33 - Taiwanese double-byte numbering 1
98
    style::NumberingType::NUMBER_UPPER_ZH_TW,       // 34 - Taiwanese double-byte numbering 2
99
    style::NumberingType::NUMBER_LOWER_ZH,          // 35 - Taiwanese double-byte numbering 3
100
    style::NumberingType::ARABIC,                   // 36 - Taiwanese double-byte numbering 4
101
    style::NumberingType::NUMBER_LOWER_ZH,          // 37 - Chinese double-byte numbering 1
102
    style::NumberingType::NUMBER_UPPER_ZH,          // 38 - Chinese double-byte numbering 2
103
    style::NumberingType::NUMBER_LOWER_ZH,          // 39 - Chinese double-byte numbering 3
104
    style::NumberingType::ARABIC,                   // 40 - Chinese double-byte numbering 4
105
    style::NumberingType::NUMBER_HANGUL_KO,         // 41 - Korean double-byte numbering 1
106
    style::NumberingType::NUMBER_HANGUL_KO,         // 42 - Korean double-byte numbering 2
107
    style::NumberingType::NUMBER_HANGUL_KO,         // 43 - Korean double-byte numbering 3
108
    style::NumberingType::NUMBER_LOWER_ZH,          // 44 - Korean double-byte numbering 4
109
    style::NumberingType::CHARS_HEBREW,             // 45 - Hebrew non-standard decimal
110
    style::NumberingType::CHARS_ARABIC,             // 46 - Arabic Alif Ba Tah
111
    style::NumberingType::CHARS_HEBREW,             // 47 - Hebrew Biblical standard
112
    style::NumberingType::ARABIC                    // 48 - Arabic Abjad style
113
114
    };
115
    const int nLen = sizeof(aMap)/sizeof(aMap[0]);
116
    sal_Int16 nRet = style::NumberingType::NUMBER_NONE;
117
    if (nNFC>=0 && nNFC<nLen)
118
        nRet = aMap[nNFC];
119
    else if (nNFC==255) 
120
        nRet = style::NumberingType::CHAR_SPECIAL;
121
    return nRet;
122
}
123
60
void lcl_ExpandNumFmts( SwNumRule& rRule )
124
void lcl_ExpandNumFmts( SwNumRule& rRule )
61
{
125
{
62
	// dann noch das NumFormat in alle Ebenen setzen
126
	// dann noch das NumFormat in alle Ebenen setzen
Lines 152-167 Link Here
152
216
153
		case RTF_LEVELNFC:
217
		case RTF_LEVELNFC:
154
			{
218
			{
155
				sal_Int16 eType = SVX_NUM_ARABIC;
219
				sal_Int16 eType = lcl_GetStyleForNFC( nTokenValue ) ; 
156
				switch( nTokenValue )
220
                
157
				{
158
				case 1:		eType = SVX_NUM_ROMAN_UPPER;			break;
159
				case 2:		eType = SVX_NUM_ROMAN_LOWER;			break;
160
				case 3:		eType = SVX_NUM_CHARS_UPPER_LETTER_N;	break;
161
				case 4:		eType = SVX_NUM_CHARS_LOWER_LETTER_N;	break;
162
				case 255:
163
				case 23:	eType = SVX_NUM_CHAR_SPECIAL;			break;
164
				}
165
				if( pCurNumFmt )
221
				if( pCurNumFmt )
166
					pCurNumFmt->SetNumberingType(eType);
222
					pCurNumFmt->SetNumberingType(eType);
167
			}
223
			}

Return to issue 125400