On ØØÙÙÙ 14 ÙÙÙÙÙ 2004 10:54, Mohammed Sameer wrote: > > Guys, Please keep all the discussions on the mailing list.
Sorry, that was because we were using Arabic, and Arabic shouldn't be used in this list but ISA we will keep the discussions here. > I want to help, Mohammed yousef, what's there to be done ? > I'm not a C++ coder, But i'll try to help if I can. Excellent timing! The only thing left (besides the other issues that will show up while testing) is the ligatures drawing code. Currently, there is a non-working algorithm (but a brilliant one) that is supposed to handle this. Shaping is done normally, for ligatures, the two characters are removed and the ligature is added in the position of the first one. In the position of the second character, a special indicator(called a Ligature Place Holderin abiword) is added. All of this is working good. To draw the text, it's first shaped like I explained above, then the shaped text is fed to the function GR_XPRenderInfo::_stripLigaturePlaceHolders in the file abi/src/af/gr/xp/gr_RenderInfo.cpp. This function is responsible for removing the place holders and setting the widths of each glyph in the shaped text. It removes any place holder it sees from the buffer, and add the appropriate width for it (currently it assumes the width of the ligature is the sum of the widths of the two original characters). It also handles Latin ligatures (i.e. the text can be fed to it as placeholder then the ligature or the ligature then the placeholder depending on whether the text being either RTL or LTR) It also tried to be even smarter and draws the two separate characters instead of the ligature if needed (i.e while selecting the lam but not the alef) But as you will see, this function doesn't work as expected, it needs to be fixed. I could really use your help, please get the snapshot from the link in my previous post. Thanks, -- Mohammed Yousif Egypt _______________________________________________ General mailing list [EMAIL PROTECTED] http://lists.arabeyes.org/mailman/listinfo/general

