Re: bidi in win32graphics

From: Stephen Viles (sviles_abi@iinet.net.au)
Date: Fri Sep 19 2003 - 19:09:48 EDT

  • Next message: ericzen: "Re: Abiword Spelling questions"

    19/09/03 2:37:50 AM, Stephen Viles <sviles_abi@iinet.net.au> wrote:
    >It may not be relevant, but I am a bit confused that the test in line 496 shows
    >XAP_App::getApp()->theOSHasBidiSupport() != XAP_App::BIDI_SUPPORT_GUI
    >and earlier test in line 477 shows XAP_App::getApp()->theOSHasBidiSupport()
    >!= XAP_App::BIDI_SUPPORT_NONE. XAP_Win32App::_setBidiOS appears to set
    >only BIDI_SUPPORT_GUI or BIDI_SUPPORT_NONE. BIDI_SUPPORT_FULL is not set

    19/09/03 4:31:08 PM, tomasfrydrych@yahoo.co.uk wrote:
    >XAP_App::BIDI_SUPPORT_GUI, XAP_App::BIDI_SUPPORT_NONE,
    >XAP_App::BIDI_SUPPORT_FULL:
    >When the code was originally designed, it envisaged three scenarios: a
    >system with no bidi support (e.g., English Win98), system where we
    >get bidi support for the user interface, but need to do bidi processing in
    >the main window ourselves (gtk2) and a case where the system does
    >bidi processing for us both in the main window and gui. The latter was
    >intended for WinNT and friends. Unfortunately, after months of efforts
    >and struggling with the inconsistent behaviour on the myriad of
    >different win32 platforms, it became obvious that if we are to get any
    >consistency in the bidi layout on win32 and cross-platform, we have to
    >do the bidi processing for the main window ourselves, which on WinNT
    >and friends means stopping the system calls doing automatic
    >reordering. The only way this can be achieved is through
    >preprocessing strings with GetCharacterPlacement().
    >
    >As a consequence, the the XAP_App::BIDI_SUPPORT_FULL is not
    >used and I think never will be. It means the test for
    >XAP_App::BIDI_SUPPORT_GUI within the discussed code could be
    >done away with, if we get so far, we should always have
    >XAP_App::BIDI_SUPPORT_GUI.

    Printed to console with UT_DEBUGMSG:
    XAP_App::BIDI_SUPPORT_NONE == 0
    XAP_App::BIDI_SUPPORT_GUI == 1
    XAP_App::BIDI_SUPPORT_FULL == 2
    XAP_App::getApp()->theOSHasBidiSupport() == 9704640

    This helps explain why my Win98SE platform is executing line 499 even
    though the test at line 477 should cause it to go straight to line 515.

    Cheers - Stephen.



    This archive was generated by hypermail 2.1.4 : Fri Sep 19 2003 - 20:16:30 EDT