Implement GetLayout

Rémi Assailly remi.assailly at free.fr
Thu Dec 2 04:18:21 CST 2004


Shachar Shemesh a écrit :

> Rémi Assailly wrote:
>
>> Shachar Shemesh wrote :
>>
>>> Thanks for spotting another one for my growing heap of BiDi TODOs....
>>>
>>> http://bugs.winehq.org/show_bug.cgi?id=2584
>>>
>>>          Shachar
>>>
>> I know that there is no effect...
>
>
> I'm sorry if I came off cynical. There was no cynicism in that 
> comment. I opened 2584 as a result of seeing your patch. I was not 
> aware of this particular missing functionality.
>
> I'm aiming for http://bugs.winehq.org/show_bug.cgi?id=609 to be the 
> ultimate documentation of all BiDi APIs in Windows. Opening 2584 is a 
> good thing, as it documents things that are still to be done.
>
>> What is wrong ?
>
>
> It seems that this flag reverses the meaning of several common 
> conventions (left/right etc.). The idea is probably so that 
> applications that are natively right to left not have to change their 
> design too much.
>
> I can't tell you exactly what it means, however, as I don't know 
> myself. It will probably be a matter of comparing behaviors to the 
> real Windows. I have some doubts about whether anyone is even using 
> this flag at all. Maybe on localized Hebrew Windows, where the whole 
> window decorations are reversed (Ughh. My GF has localized XP Home 
> installed. This thing is horrible, but I didn't spot any non-Windows 
> native applications that were affected by it).
>
>> Tell me and I will help you, if you want...
>
>
> I'll gladly accept all the help I can get. Basically, this particular 
> unimplemented bit requires writing small test programs on Windows, and 
> then running them on Wine until they produce the same results. The 
> idea is that you read the MSDN page for the function (linked from the 
> bug). That page also links to 
> http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowfeatures.asp?frame=true#layout_mirroring, 
> which gives more details on what this flag is supposed to mean. If you 
> check out 2584 again, you will see I added this new information there.
>
> The steps one takes is to read all the relevant manuals, and try to 
> understand what this means. Next, you write a small test program that 
> does stuff with and without this flag, showing where this flag takes 
> effect on Windows.  Next, you move this test program to Wine and start 
> tweaking Wine until it behaves the same there.
>
> There is also a last step, which is to make this program into a test 
> suite, returning success or failure. I'm not sure, however, how that 
> is supposed to be done for programs where success and failure are 
> measured with graphical output.
>
> Hope this helps you help me help everyone..... :-)
>
>       Shachar

Sorry, I prefer that ;)
What I wanted to know was if my implementation of GetLayout was correct 
before trying to implement SetLayout ( and add mirroring in all 
functions which need to check it ... ) or what was incorrect to fix it !
Okay, I will do what you advise me to do.
I found that SetProcessDefaultLayout is not implemented, I think it will 
something like

BOOL WINAPI SetProcessDefaultLayout( DWORD ); in winuser.h

I will send a patch which include it and a stub implementation in 
windows/win.c then I write a program and try to implement mirroring 
support, how interesting...

Rémi



More information about the wine-devel mailing list