Implement GetLayout

Shachar Shemesh wine-devel at shemesh.biz
Tue Nov 30 01:51:56 CST 2004


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

-- 
Shachar Shemesh
Lingnu Open Source Consulting ltd.
http://www.lingnu.com/




More information about the wine-devel mailing list