Commit 202b58fb authored by ElenaSubbotina's avatar ElenaSubbotina

OdfFormatWriter - fix after testing

parent b2211507
......@@ -174,7 +174,7 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"octagon" , 7}, // shapetypeOctagon,
{ L"parallelogram" , 7}, // shapetypeParallelogram,
{ L"pentagon" , 7}, // shapetypePentagon,
{ L"mso-spt100" , 7}, // shapetypePie,
{ L"" , 7}, // shapetypePie,
{ L"" , 7}, // shapetypePieWedge,
{ L"" , 7}, // shapetypePlaque,
{ L"" , 7}, // shapetypePlaqueTabs,
......
......@@ -204,158 +204,229 @@ public:
{
odf_type_name =L"ooxml-circularArrow";
enhanced_path = L"M 832838 101692 A ?f91 ?f92 ?f93 ?f94 832838 101692 ?f88 ?f90 W ?f95 ?f96 ?f97 ?f98 832838 101692 ?f88 ?f90 L 1755675 1929758 1616897 1879250 1618409 1725100 1657499 1783381 A ?f138 ?f139 ?f140 ?f141 1657499 1783381 ?f135 ?f137 W ?f142 ?f143 ?f144 ?f145 1657499 1783381 ?f135 ?f137 Z N";
text_areas = L"?f48 ?f50 ?f49 ?f51";
glue_points = L"?f40 ?f41 ?f42 ?f43 ?f44 ?f45 ?f46 ?f47";
view_box = L"0 0 2165070 2165070";
enhanced_path = L"M ?f60 ?f61 L ?f172 ?f173 ?f54 ?f55 ?f174 ?f175 ?f159 ?f160 Z N";
text_areas = L"?f193 ?f195 ?f194 ?f196";
modifiers = L"5085 327528 8671970 1800502 5932";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f3 - ?f2");
add(L"f8", L"5419351 / 1725033");
add(L"f9", L"180");
add(L"f10", L"?f7 / 2165070");
add(L"f11", L"?f6 / 2165070");
add(L"f12", L"1616897 - 1082535");
add(L"f13", L"1879250 - 1082535");
add(L"f14", L"sqrt(?f12 * ?f12 + ?f13 * ?f13 + 0 * 0)");
add(L"f15", L"atan2(?f12, ?f13)");
add(L"f16", L"?f15 + ?f1");
add(L"f17", L"?f16 * ?f9 / ?f0");
add(L"f18", L"0 - ?f17");
add(L"f19", L"832838 - 1082535");
add(L"f20", L"101692 - 1082535");
add(L"f21", L"sqrt(?f19 * ?f19 + ?f20 * ?f20 + 0 * 0)");
add(L"f22", L"atan2(?f19, ?f20)");
add(L"f23", L"?f22 + ?f1");
add(L"f24", L"?f23 * ?f9 / ?f0");
add(L"f25", L"0 - ?f24");
add(L"f26", L"1716572 - 1082535");
add(L"f27", L"1871457 - 1082535");
add(L"f28", L"sqrt(?f26 * ?f26 + ?f27 * ?f27 + 0 * 0)");
add(L"f29", L"atan2(?f26, ?f27)");
add(L"f30", L"?f29 + ?f1");
add(L"f31", L"?f30 * ?f9 / ?f0");
add(L"f32", L"0 - ?f31");
add(L"f33", L"1618409 - 1082535");
add(L"f34", L"1725100 - 1082535");
add(L"f35", L"sqrt(?f33 * ?f33 + ?f34 * ?f34 + 0 * 0)");
add(L"f36", L"atan2(?f33, ?f34)");
add(L"f37", L"?f36 + ?f1");
add(L"f38", L"?f37 * ?f9 / ?f0");
add(L"f39", L"0 - ?f38");
add(L"f40", L"845866 / ?f10");
add(L"f41", L"152866 / ?f11");
add(L"f42", L"1755675 / ?f10");
add(L"f43", L"1929758 / ?f11");
add(L"f44", L"1616897 / ?f10");
add(L"f45", L"1879250 / ?f11");
add(L"f46", L"1618409 / ?f10");
add(L"f47", L"1725100 / ?f11");
add(L"f48", L"366853 / ?f10");
add(L"f49", L"1798217 / ?f10");
add(L"f50", L"366853 / ?f11");
add(L"f51", L"1798217 / ?f11");
add(L"f52", L"21550000 - 9329679");
add(L"f53", L"if(?f52, 9329679, 21550000)");
add(L"f54", L"-21550000 - ?f53");
add(L"f55", L"if(?f54, -21550000, ?f53)");
add(L"f56", L"15343043 + ?f55");
add(L"f57", L"15343043 + ?f1");
add(L"f58", L"?f57 * ?f8 / ?f0");
add(L"f59", L"0 - ?f58");
add(L"f60", L"cos(?f59)");
add(L"f61", L"0 - ?f60");
add(L"f62", L"?f61 * 1012127");
add(L"f63", L"sin(?f59)");
add(L"f64", L"0 - ?f63");
add(L"f65", L"?f64 * 1012127");
add(L"f66", L"sqrt(?f62 * ?f62 + ?f65 * ?f65 + 0 * 0)");
add(L"f67", L"1012127 * 1012127 / ?f66");
add(L"f68", L"?f64 * ?f67");
add(L"f69", L"832838 - ?f68");
add(L"f70", L"?f61 * ?f67");
add(L"f71", L"101692 - ?f70");
add(L"f72", L"?f69 - 1012127");
add(L"f73", L"?f71 - 1012127");
add(L"f74", L"?f69 + 1012127");
add(L"f75", L"?f71 + 1012127");
add(L"f76", L"?f56 + ?f1");
add(L"f77", L"?f76 * ?f8 / ?f0");
add(L"f78", L"0 - ?f77");
add(L"f79", L"cos(?f78)");
add(L"f80", L"0 - ?f79");
add(L"f81", L"?f80 * 1012127");
add(L"f82", L"sin(?f78)");
add(L"f83", L"0 - ?f82");
add(L"f84", L"?f83 * 1012127");
add(L"f85", L"sqrt(?f81 * ?f81 + ?f84 * ?f84 + 0 * 0)");
add(L"f86", L"1012127 * 1012127 / ?f85");
add(L"f87", L"?f83 * ?f86");
add(L"f88", L"?f69 + ?f87");
add(L"f89", L"?f80 * ?f86");
add(L"f90", L"?f71 + ?f89");
add(L"f91", L"if(?f55, 832838, ?f72)");
add(L"f92", L"if(?f55, 101692, ?f73)");
add(L"f93", L"if(?f55, 832838, ?f74)");
add(L"f94", L"if(?f55, 101692, ?f75)");
add(L"f95", L"if(?f55, ?f72, ?f88)");
add(L"f96", L"if(?f55, ?f73, ?f90)");
add(L"f97", L"if(?f55, ?f74, ?f88)");
add(L"f98", L"if(?f55, ?f75, ?f90)");
add(L"f99", L"21550000 - -9295060");
add(L"f100", L"if(?f99, -9295060, 21550000)");
add(L"f101", L"-21550000 - ?f100");
add(L"f102", L"if(?f101, -21550000, ?f100)");
add(L"f103", L"3038103 + ?f102");
add(L"f104", L"3038103 + ?f1");
add(L"f105", L"?f104 * ?f8 / ?f0");
add(L"f106", L"0 - ?f105");
add(L"f107", L"cos(?f106)");
add(L"f108", L"0 - ?f107");
add(L"f109", L"?f108 * 906515");
add(L"f110", L"sin(?f106)");
add(L"f111", L"0 - ?f110");
add(L"f112", L"?f111 * 906515");
add(L"f113", L"sqrt(?f109 * ?f109 + ?f112 * ?f112 + 0 * 0)");
add(L"f114", L"906515 * 906515 / ?f113");
add(L"f115", L"?f111 * ?f114");
add(L"f116", L"1657499 - ?f115");
add(L"f117", L"?f108 * ?f114");
add(L"f118", L"1783381 - ?f117");
add(L"f119", L"?f116 - 906515");
add(L"f120", L"?f118 - 906515");
add(L"f121", L"?f116 + 906515");
add(L"f122", L"?f118 + 906515");
add(L"f123", L"?f103 + ?f1");
add(L"f124", L"?f123 * ?f8 / ?f0");
add(L"f125", L"0 - ?f124");
add(L"f126", L"cos(?f125)");
add(L"f127", L"0 - ?f126");
add(L"f128", L"?f127 * 906515");
add(L"f129", L"sin(?f125)");
add(L"f130", L"0 - ?f129");
add(L"f131", L"?f130 * 906515");
add(L"f132", L"sqrt(?f128 * ?f128 + ?f131 * ?f131 + 0 * 0)");
add(L"f133", L"906515 * 906515 / ?f132");
add(L"f134", L"?f130 * ?f133");
add(L"f135", L"?f116 + ?f134");
add(L"f136", L"?f127 * ?f133");
add(L"f137", L"?f118 + ?f136");
add(L"f138", L"if(?f102, 1657499, ?f119)");
add(L"f139", L"if(?f102, 1783381, ?f120)");
add(L"f140", L"if(?f102, 1657499, ?f121)");
add(L"f141", L"if(?f102, 1783381, ?f122)");
add(L"f142", L"if(?f102, ?f119, ?f135)");
add(L"f143", L"if(?f102, ?f120, ?f137)");
add(L"f144", L"if(?f102, ?f121, ?f135)");
add(L"f145", L"if(?f102, ?f122, ?f137)");
add(L"f0", L"if(0-$4 ,0,if(25000-$4 ,$4 ,25000))");
add(L"f1", L"?f0 *2/1");
add(L"f2", L"if(0-$0 ,0,if(?f1 -$0 ,$0 ,?f1 ))");
add(L"f3", L"if(1-$2 ,1,if(21599999-$2 ,$2 ,21599999))");
add(L"f4", L"if(0-$3 ,0,if(21599999-$3 ,$3 ,21599999))");
add(L"f5", L"min(logwidth,logheight)");
add(L"f6", L"?f5 *?f2 /100000");
add(L"f7", L"?f5 *?f0 /100000");
add(L"f8", L"?f6 *1/2");
add(L"f9", L"logwidth/2");
add(L"f10", L"?f9 +?f8 -?f7 ");
add(L"f11", L"logheight/2");
add(L"f12", L"?f11 +?f8 -?f7 ");
add(L"f13", L"?f10 +0-?f6 ");
add(L"f14", L"?f12 +0-?f6 ");
add(L"f15", L"?f13 +?f8 -0");
add(L"f16", L"?f14 +?f8 -0");
add(L"f17", L"?f15 *sin(pi*(?f3 )/10800000)");
add(L"f18", L"?f16 *cos(pi*(?f3 )/10800000)");
add(L"f19", L"?f15 *(cos(atan2(?f17 ,?f18 )))");
add(L"f20", L"?f16 *(sin(atan2(?f17 ,?f18 )))");
add(L"f21", L"logwidth/2");
add(L"f22", L"?f21 +?f19 -0");
add(L"f23", L"logheight/2");
add(L"f24", L"?f23 +?f20 -0");
add(L"f25", L"min(?f13 ,?f14 )");
add(L"f26", L"?f19 *?f19 /1");
add(L"f27", L"?f20 *?f20 /1");
add(L"f28", L"?f25 *?f25 /1");
add(L"f29", L"?f26 +0-?f28 ");
add(L"f30", L"?f27 +0-?f28 ");
add(L"f31", L"?f29 *?f30 /?f26 ");
add(L"f32", L"?f31 *1/?f27 ");
add(L"f33", L"1+0-?f32 ");
add(L"f34", L"sqrt(?f33 )");
add(L"f35", L"?f29 *1/?f19 ");
add(L"f36", L"?f35 *1/?f20 ");
add(L"f37", L"(1+?f34 )/?f36 ");
add(L"f38", L"(10800000*atan2(?f37 ,1))/pi");
add(L"f39", L"?f38 +21600000-0");
add(L"f40", L"if(?f38 ,?f38 ,?f39 )");
add(L"f41", L"?f40 +0-?f3 ");
add(L"f42", L"?f41 +21600000-0");
add(L"f43", L"if(?f41 ,?f41 ,?f42 )");
add(L"f44", L"?f43 +0-10800000");
add(L"f45", L"?f43 +0-21600000");
add(L"f46", L"if(?f44 ,?f45 ,?f43 )");
add(L"f47", L"abs(?f46 )");
add(L"f48", L"if(0-$1 ,0,if(?f47 -$1 ,$1 ,?f47 ))");
add(L"f49", L"?f3 +?f48 -0");
add(L"f50", L"?f15 *sin(pi*(?f49 )/10800000)");
add(L"f51", L"?f16 *cos(pi*(?f49 )/10800000)");
add(L"f52", L"?f15 *(cos(atan2(?f50 ,?f51 )))");
add(L"f53", L"?f16 *(sin(atan2(?f50 ,?f51 )))");
add(L"f54", L"?f21 +?f52 -0");
add(L"f55", L"?f23 +?f53 -0");
add(L"f56", L"?f10 *sin(pi*(?f4 )/10800000)");
add(L"f57", L"?f12 *cos(pi*(?f4 )/10800000)");
add(L"f58", L"?f10 *(cos(atan2(?f56 ,?f57 )))");
add(L"f59", L"?f12 *(sin(atan2(?f56 ,?f57 )))");
add(L"f60", L"?f21 +?f58 -0");
add(L"f61", L"?f23 +?f59 -0");
add(L"f62", L"?f7 *cos(pi*(?f49 )/10800000)");
add(L"f63", L"?f7 *sin(pi*(?f49 )/10800000)");
add(L"f64", L"?f22 +?f62 -0");
add(L"f65", L"?f24 +?f63 -0");
add(L"f66", L"?f7 *cos(pi*(?f49 )/10800000)");
add(L"f67", L"?f7 *sin(pi*(?f49 )/10800000)");
add(L"f68", L"?f22 +0-?f66 ");
add(L"f69", L"?f24 +0-?f67 ");
add(L"f70", L"?f68 +0-?f21 ");
add(L"f71", L"?f69 +0-?f23 ");
add(L"f72", L"?f64 +0-?f21 ");
add(L"f73", L"?f65 +0-?f23 ");
add(L"f74", L"min(?f10 ,?f12 )");
add(L"f75", L"?f70 *?f74 /?f10 ");
add(L"f76", L"?f71 *?f74 /?f12 ");
add(L"f77", L"?f72 *?f74 /?f10 ");
add(L"f78", L"?f73 *?f74 /?f12 ");
add(L"f79", L"?f77 +0-?f75 ");
add(L"f80", L"?f78 +0-?f76 ");
add(L"f81", L"sqrt(?f79 *?f79 +?f80 *?f80 +0*0)");
add(L"f82", L"?f75 *?f78 /1");
add(L"f83", L"?f77 *?f76 /1");
add(L"f84", L"?f82 +0-?f83 ");
add(L"f85", L"?f74 *?f74 /1");
add(L"f86", L"?f81 *?f81 /1");
add(L"f87", L"?f85 *?f86 /1");
add(L"f88", L"?f84 *?f84 /1");
add(L"f89", L"?f87 +0-?f88 ");
add(L"f90", L"max(?f89 ,0)");
add(L"f91", L"sqrt(?f90 )");
add(L"f92", L"?f80 *-1/1");
add(L"f93", L"if(?f92 ,-1,1)");
add(L"f94", L"?f93 *?f79 /1");
add(L"f95", L"?f94 *?f91 /1");
add(L"f96", L"?f84 *?f80 /1");
add(L"f97", L"(?f96 +?f95 )/?f86 ");
add(L"f98", L"?f96 +0-?f95 ");
add(L"f99", L"?f98 *1/?f86 ");
add(L"f100", L"abs(?f80 )");
add(L"f101", L"?f100 *?f91 /1");
add(L"f102", L"?f84 *?f79 /-1");
add(L"f103", L"(?f102 +?f101 )/?f86 ");
add(L"f104", L"?f102 +0-?f101 ");
add(L"f105", L"?f104 *1/?f86 ");
add(L"f106", L"?f77 +0-?f97 ");
add(L"f107", L"?f77 +0-?f99 ");
add(L"f108", L"?f78 +0-?f103 ");
add(L"f109", L"?f78 +0-?f105 ");
add(L"f110", L"sqrt(?f106 *?f106 +?f108 *?f108 +0*0)");
add(L"f111", L"sqrt(?f107 *?f107 +?f109 *?f109 +0*0)");
add(L"f112", L"?f111 +0-?f110 ");
add(L"f113", L"if(?f112 ,?f97 ,?f99 )");
add(L"f114", L"if(?f112 ,?f103 ,?f105 )");
add(L"f115", L"?f113 *?f10 /?f74 ");
add(L"f116", L"?f114 *?f12 /?f74 ");
add(L"f117", L"?f21 +?f115 -0");
add(L"f118", L"?f23 +?f116 -0");
add(L"f119", L"?f70 *?f25 /?f13 ");
add(L"f120", L"?f71 *?f25 /?f14 ");
add(L"f121", L"?f72 *?f25 /?f13 ");
add(L"f122", L"?f73 *?f25 /?f14 ");
add(L"f123", L"?f121 +0-?f119 ");
add(L"f124", L"?f122 +0-?f120 ");
add(L"f125", L"sqrt(?f123 *?f123 +?f124 *?f124 +0*0)");
add(L"f126", L"?f119 *?f122 /1");
add(L"f127", L"?f121 *?f120 /1");
add(L"f128", L"?f126 +0-?f127 ");
add(L"f129", L"?f25 *?f25 /1");
add(L"f130", L"?f125 *?f125 /1");
add(L"f131", L"?f129 *?f130 /1");
add(L"f132", L"?f128 *?f128 /1");
add(L"f133", L"?f131 +0-?f132 ");
add(L"f134", L"max(?f133 ,0)");
add(L"f135", L"sqrt(?f134 )");
add(L"f136", L"?f93 *?f123 /1");
add(L"f137", L"?f136 *?f135 /1");
add(L"f138", L"?f128 *?f124 /1");
add(L"f139", L"(?f138 +?f137 )/?f130 ");
add(L"f140", L"?f138 +0-?f137 ");
add(L"f141", L"?f140 *1/?f130 ");
add(L"f142", L"abs(?f124 )");
add(L"f143", L"?f142 *?f135 /1");
add(L"f144", L"?f128 *?f123 /-1");
add(L"f145", L"(?f144 +?f143 )/?f130 ");
add(L"f146", L"?f144 +0-?f143 ");
add(L"f147", L"?f146 *1/?f130 ");
add(L"f148", L"?f119 +0-?f139 ");
add(L"f149", L"?f119 +0-?f141 ");
add(L"f150", L"?f120 +0-?f145 ");
add(L"f151", L"?f120 +0-?f147 ");
add(L"f152", L"sqrt(?f148 *?f148 +?f150 *?f150 +0*0)");
add(L"f153", L"sqrt(?f149 *?f149 +?f151 *?f151 +0*0)");
add(L"f154", L"?f153 +0-?f152 ");
add(L"f155", L"if(?f154 ,?f139 ,?f141 )");
add(L"f156", L"if(?f154 ,?f145 ,?f147 )");
add(L"f157", L"?f155 *?f13 /?f25 ");
add(L"f158", L"?f156 *?f14 /?f25 ");
add(L"f159", L"?f21 +?f157 -0");
add(L"f160", L"?f23 +?f158 -0");
add(L"f161", L"(10800000*atan2(?f158 ,?f157 ))/pi");
add(L"f162", L"?f161 +21600000-0");
add(L"f163", L"if(?f161 ,?f161 ,?f162 )");
add(L"f164", L"?f4 +0-?f163 ");
add(L"f165", L"?f164 +0-21600000");
add(L"f166", L"if(?f164 ,?f165 ,?f164 )");
add(L"f167", L"?f117 +0-?f159 ");
add(L"f168", L"?f118 +0-?f160 ");
add(L"f169", L"sqrt(?f167 *?f167 +?f168 *?f168 +0*0)");
add(L"f170", L"?f169 *1/2");
add(L"f171", L"?f170 +0-?f7 ");
add(L"f172", L"if(?f171 ,?f117 ,?f64 )");
add(L"f173", L"if(?f171 ,?f118 ,?f65 )");
add(L"f174", L"if(?f171 ,?f159 ,?f68 )");
add(L"f175", L"if(?f171 ,?f160 ,?f69 )");
add(L"f176", L"(10800000*atan2(?f116 ,?f115 ))/pi");
add(L"f177", L"?f176 +21600000-0");
add(L"f178", L"if(?f176 ,?f176 ,?f177 )");
add(L"f179", L"?f178 +0-?f4 ");
add(L"f180", L"?f179 +21600000-0");
add(L"f181", L"if(?f179 ,?f179 ,?f180 )");
add(L"f182", L"?f15 *sin(pi*(?f4 )/10800000)");
add(L"f183", L"?f16 *cos(pi*(?f4 )/10800000)");
add(L"f184", L"?f15 *(cos(atan2(?f182 ,?f183 )))");
add(L"f185", L"?f16 *(sin(atan2(?f182 ,?f183 )))");
add(L"f186", L"?f21 +?f184 -0");
add(L"f187", L"?f23 +?f185 -0");
add(L"f188", L"?f4 +0-5400000");
add(L"f189", L"?f49 +5400000-0");
add(L"f190", L"?f49 +10800000-0");
add(L"f191", L"?f10 *cos(pi*(2700000)/10800000)");
add(L"f192", L"?f12 *sin(pi*(2700000)/10800000)");
add(L"f193", L"?f21 +0-?f191 ");
add(L"f194", L"?f21 +?f191 -0");
add(L"f195", L"?f23 +0-?f192 ");
add(L"f196", L"?f23 +?f192 -0");
add(L"f197", L"(?f4 )/60000.0");
add(L"f198", L"(?f181 )/60000.0");
add(L"f199", L"(?f163 )/60000.0");
add(L"f200", L"(?f166 )/60000.0");
/////////////////////////////////////////////////////////
_handle h;
h.position = L"?f54 ?f55";
handles.push_back(h);
h.position = L"?f60 ?f61";
handles.push_back(h);
h.position = L"?f117 ?f118";
h.r_minimum = L"0";
h.r_maximum = L"?f1";
handles.push_back(h);
h.position = L"?f68 ?f69";
h.r_minimum = L"0";
h.r_maximum = L"25000";
handles.push_back(h);
}
};
}
\ No newline at end of file
......@@ -43,7 +43,7 @@
// shapetypeHalfFrame,
// shapetypeHeptagon,
// shapetypeNonIsoscelesTrapezoid,
// shapetypePie,
//+ shapetypePie,
//+ shapetypePieWedge,
//+ shapetypePlaque,
// shapetypePlaqueTabs,
......@@ -785,4 +785,57 @@ public:
/////////////////////////////////////////////////////////
}
};
class oox_shape_Pie : public oox_shape
{
public:
oox_shape_Pie()
{
odf_type_name =L"ooxml-pie";
enhanced_path = L"M ?f12 ?f14 G ?f5 ?f7 ?f29 ?f30 L ?f11 ?f13 Z N";
text_areas = L"?f23 ?f24 ?f25 ?f26";
view_box = L"0 0 0 0";
modifiers = L"9000000 16200000";
add(L"f0", L"if(0-$0 ,0,if(21599999-$0 ,$0 ,21599999))");
add(L"f1", L"if(0-$1 ,0,if(21599999-$1 ,$1 ,21599999))");
add(L"f2", L"?f1 +0-?f0 ");
add(L"f3", L"?f2 +21600000-0");
add(L"f4", L"if(?f2 ,?f2 ,?f3 )");
add(L"f5", L"logwidth/2");
add(L"f6", L"?f5 *sin(pi*(?f0 )/10800000)");
add(L"f7", L"logheight/2");
add(L"f8", L"?f7 *cos(pi*(?f0 )/10800000)");
add(L"f9", L"?f5 *(cos(atan2(?f6 ,?f8 )))");
add(L"f10", L"?f7 *(sin(atan2(?f6 ,?f8 )))");
add(L"f11", L"logwidth/2");
add(L"f12", L"?f11 +?f9 -0");
add(L"f13", L"logheight/2");
add(L"f14", L"?f13 +?f10 -0");
add(L"f15", L"?f5 *sin(pi*(?f1 )/10800000)");
add(L"f16", L"?f7 *cos(pi*(?f1 )/10800000)");
add(L"f17", L"?f5 *(cos(atan2(?f15 ,?f16 )))");
add(L"f18", L"?f7 *(sin(atan2(?f15 ,?f16 )))");
add(L"f19", L"?f11 +?f17 -0");
add(L"f20", L"?f13 +?f18 -0");
add(L"f21", L"?f5 *cos(pi*(2700000)/10800000)");
add(L"f22", L"?f7 *sin(pi*(2700000)/10800000)");
add(L"f23", L"?f11 +0-?f21 ");
add(L"f24", L"?f11 +?f21 -0");
add(L"f25", L"?f13 +0-?f22 ");
add(L"f26", L"?f13 +?f22 -0");
add(L"f27", L"logwidth");
add(L"f28", L"logheight");
add(L"f29", L"(?f0 )/60000.0");
add(L"f30", L"(?f4 )/60000.0");
/////////////////////////////////////////////////////////
_handle h;
h.position = L"?f12 ?f14";
handles.push_back(h);
h.position = L"?f19 ?f20";
handles.push_back(h);
}
};
}
......@@ -353,6 +353,10 @@ void odf_drawing_context::check_anchor()
set_vertical_pos(0);
}
}
int odf_drawing_context::get_group_level()
{
return impl_->current_level_.size();
}
void odf_drawing_context::start_group()
{
office_element_ptr group_elm = impl_->create_draw_element(5000);
......@@ -849,7 +853,7 @@ void odf_drawing_context::end_shape()
draw_path* path = dynamic_cast<draw_path*>(impl_->current_drawing_state_.elements_[0].elm.get());
if (path)
{
if (impl_->current_drawing_state_.view_box_.length() < 1 && impl_->current_drawing_state_.svg_width_ && impl_->current_drawing_state_.svg_height_)
if (impl_->current_drawing_state_.view_box_.empty() && impl_->current_drawing_state_.svg_width_ && impl_->current_drawing_state_.svg_height_)
set_viewBox( impl_->current_drawing_state_.svg_width_->get_value_unit(length::cm) * 1000,
impl_->current_drawing_state_.svg_height_->get_value_unit(length::cm) *1000);
......@@ -958,7 +962,11 @@ void odf_drawing_context::end_shape()
if (shape_define)
{
enhanced->svg_viewbox_ = shape_define->view_box;
if (impl_->current_drawing_state_.oox_shape_ && impl_->current_drawing_state_.oox_shape_->view_box)
enhanced->svg_viewbox_ = impl_->current_drawing_state_.oox_shape_->view_box;
else
enhanced->svg_viewbox_ = shape_define->view_box;
enhanced->draw_enhanced_geometry_attlist_.draw_type_ = shape_define->odf_type_name;
enhanced->draw_enhanced_geometry_attlist_.draw_text_areas_ = shape_define->text_areas;
......@@ -1004,6 +1012,9 @@ void odf_drawing_context::end_shape()
if (shape_define->handles[i].y_maximum) h->draw_handle_attlist_.draw_handle_range_y_maximum_ = *shape_define->handles[i].y_maximum;
if (shape_define->handles[i].x_minimum) h->draw_handle_attlist_.draw_handle_range_x_minimum_ = *shape_define->handles[i].x_minimum;
if (shape_define->handles[i].x_maximum) h->draw_handle_attlist_.draw_handle_range_x_maximum_ = *shape_define->handles[i].x_maximum;
if (shape_define->handles[i].r_maximum) h->draw_handle_attlist_.draw_handle_radius_range_maximum_ = *shape_define->handles[i].r_maximum;
if (shape_define->handles[i].r_minimum) h->draw_handle_attlist_.draw_handle_radius_range_minimum_ = *shape_define->handles[i].r_minimum;
}
end_element();
}
......@@ -1509,6 +1520,8 @@ void odf_drawing_context::set_viewBox (double W, double H)
if (impl_->current_drawing_state_.oox_shape_)
{
impl_->current_drawing_state_.oox_shape_->view_box = impl_->current_drawing_state_.view_box_;
if (impl_->current_drawing_state_.oox_shape_->sub_view_size)
impl_->current_drawing_state_.oox_shape_->sub_view_size = *impl_->current_drawing_state_.oox_shape_->sub_view_size + L" " + std::to_wstring((int)W) + L" " + std::to_wstring((int)H);
else
......@@ -2102,17 +2115,15 @@ void odf_drawing_context::set_textarea_wrap(bool Val)
impl_->current_graphic_properties->fo_wrap_option_ = wrap_option(wrap_option::NoWrap);
}
void odf_drawing_context::set_textarea_font(std::wstring & latin, std::wstring & cs, std::wstring & ea)
{
if (impl_->current_drawing_state_.elements_.empty())return;
if (!impl_->current_text_properties)
odf_style_state_ptr style_state = impl_->styles_context_->last_state(style_family::Paragraph);
if (style_state)
{
odf_style_state_ptr style_state = impl_->styles_context_->last_state(style_family::Paragraph);
if (style_state)
{
impl_->current_text_properties = style_state->get_text_properties();
}
impl_->current_text_properties = style_state->get_text_properties();
}
if (!impl_->current_text_properties) return;
......@@ -2126,13 +2137,10 @@ void odf_drawing_context::set_textarea_fontcolor(std::wstring hexColor)
{
if (impl_->current_drawing_state_.elements_.empty())return;
if (!impl_->current_text_properties)
odf_style_state_ptr style_state = impl_->styles_context_->last_state(style_family::Paragraph);
if (style_state)
{
odf_style_state_ptr style_state = impl_->styles_context_->last_state(style_family::Paragraph);
if (style_state)
{
impl_->current_text_properties = style_state->get_text_properties();
}
impl_->current_text_properties = style_state->get_text_properties();
}
if (!impl_->current_text_properties) return;
......
......@@ -104,6 +104,7 @@ public:
void end_drawing();
void end_drawing_background(odf_types::common_draw_fill_attlist & common_draw_attlist);
int get_group_level();
void start_group();
void set_group_flip_H (bool bVal);
void set_group_flip_V (bool bVal);
......@@ -166,8 +167,6 @@ public:
void finalize(office_element_ptr & root_elm);
///////////////////////////////////////////////////////////////////////////////////////
void get_position (_CP_OPT(double) & x_pt, _CP_OPT(double) & y_pt);
void set_position (_CP_OPT(double) & x_pt, _CP_OPT(double) & y_pt);
void set_position_line (_CP_OPT(double) & x_pt, _CP_OPT(double) & y_pt, _CP_OPT(double) & x1_pt, _CP_OPT(double) & y1_pt);
......
......@@ -53,7 +53,6 @@ namespace cpdoccore
oox_shape::oox_shape()
{
odf_type_name = L"ooxml-non-primitive";
view_box = L"0 0 0 0";
}
oox_shape_ptr oox_shape::create(int ooxPrstGeomType)
......@@ -86,6 +85,7 @@ oox_shape_ptr oox_shape::create(int ooxPrstGeomType)
case SimpleTypes::shapetypePlaque: return boost::make_shared<oox_shape_Plaque>();
case SimpleTypes::shapetypeDoubleWave: return boost::make_shared<oox_shape_DoubleWave>();
case SimpleTypes::shapetypePieWedge: return boost::make_shared<oox_shape_PieWedge>();
case SimpleTypes::shapetypePie: return boost::make_shared<oox_shape_Pie>();
......
......@@ -64,6 +64,8 @@ namespace cpdoccore
_CP_OPT(std::wstring) y_maximum;
_CP_OPT(std::wstring) x_minimum;
_CP_OPT(std::wstring) x_maximum;
_CP_OPT(std::wstring) r_minimum;
_CP_OPT(std::wstring) r_maximum;
};
void add(std::wstring name,std::wstring frmla)
......@@ -78,7 +80,8 @@ namespace cpdoccore
std::wstring enhanced_path;
std::wstring modifiers;
std::wstring text_areas;
std::wstring view_box;
_CP_OPT(std::wstring) view_box;
_CP_OPT(std::wstring) sub_view_size;
_CP_OPT(std::wstring) glue_points;
......
......@@ -358,7 +358,7 @@ void OoxConverter::convert(PPTX::Logic::GrpSpPr *oox_grpSpPr)
odf_context()->drawing_context()->set_group_size( cx, cy, ch_cx, ch_cy );
_CP_OPT(double) x, y, ch_x, ch_y;
_CP_OPT(double) x, y, ch_x, ch_y, ext_x, ext_y;
if (oox_grpSpPr->xfrm->offX.IsInit())
x = oox_grpSpPr->xfrm->offX.get() / 12700.;
......@@ -370,6 +370,16 @@ void OoxConverter::convert(PPTX::Logic::GrpSpPr *oox_grpSpPr)
if (oox_grpSpPr->xfrm->chOffY.IsInit())
ch_y = oox_grpSpPr->xfrm->chOffY.get() / 12700.;
int group_level = odf_context()->drawing_context()->get_group_level();
odf_context()->drawing_context()->get_position(ext_x, ext_y);
if (ext_x && ext_y && group_level < 2)
{
x = ext_x;
y = ext_y;
}
odf_context()->drawing_context()->set_group_position( x, y, ch_x, ch_y );
if (oox_grpSpPr->xfrm->rot.IsInit())
......@@ -484,14 +494,21 @@ void OoxConverter::convert(PPTX::Logic::Shape *oox_shape)
DocxConverter *docx_converter = dynamic_cast<DocxConverter*>(this);
if (docx_converter)
{
odf_context()->start_text_context();
docx_converter->convert(oox_shape->oTextBoxShape.GetPointer());
odf_context()->start_text_context();
//docx_converter->convert(oox_shape->oTextBoxShape.GetPointer());
for (size_t i = 0; i < oox_shape->oTextBoxShape->m_arrItems.size(); i++)
{
docx_converter->convert(oox_shape->oTextBoxShape->m_arrItems[i]);
convert(oox_shape->oTextBoxBodyPr.GetPointer());
if (oox_shape->style.IsInit())
convert(&oox_shape->style->fontRef);
}
odf_context()->drawing_context()->set_text( odf_context()->text_context());
convert(oox_shape->oTextBoxBodyPr.GetPointer());
if (oox_shape->style.IsInit())
convert(&oox_shape->style->fontRef);
odf_context()->end_text_context();
}
}
......
......@@ -1293,13 +1293,13 @@ void DocxConverter::convert(OOX::Logic::CParagraphProperty *oox_paragraph_pr, cp
}
if (odt_context->notes_context()->is_started())
if (odt_context->notes_context()->is_started() && !paragraph_properties->content_.fo_margin_left_
&& !paragraph_properties->content_.fo_text_indent_)
{
paragraph_properties->content_.fo_margin_left_ = odf_types::length( 0.5, odf_types::length::cm);
paragraph_properties->content_.fo_text_indent_ = odf_types::length(-0.5, odf_types::length::cm);
paragraph_properties->content_.fo_margin_left_ = odf_types::length( 0.2, odf_types::length::cm);
paragraph_properties->content_.fo_text_indent_ = odf_types::length(-0.2, odf_types::length::cm);
paragraph_properties->content_.fo_line_height_ = odf_types::percent(100.);
paragraph_properties->content_.style_auto_text_indent_ = false;
//loext:contextual-spacing="false"
}
if (oox_paragraph_pr->m_oTabs.IsInit())
......
......@@ -7,7 +7,7 @@
QT -= core
QT -= gui
VERSION = 2.4.453.0
VERSION = 2.4.454.0
DEFINES += INTVER=$$VERSION
TARGET = x2t
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment