[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CALL FOR HELP ON ABIWORD



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