Jon Griffiths wrote:
Combine all Unicode/Ascii calls together
I'm not sure here, but should it be based on the unicode state of
the
whole control rather which message got sent to it?
This refers to processing the messages using the same code. e.g. between TAB_InsertItemA/W only 2 lines were different - the debug trace and the line that sets the text pointer. Its better to share the code so that we only have one place where the items array is realloced on insert. Its also a lot smaller (see also get/set item A/W).
I'm not sure what Vitaliy sees wrong with the new code, but it is easier to maintain and simpler. Vitaliy is right that every common control should send notifications based on the Unicode format of the control rather than the message that got sent to it, but the mentioned functions don't send any notifications.
You missed insert items with text part inside create_tabcontrol. Besides as is it's failing for me. When I change text of the first tab "Tab 123" it's changing returned width.
Its measuring the size of the text, so _of course_ it will fail if you change the text. If it fails on a standard windows setup I can rework the test to calculate the text width manually for the comparason. But I don't have a win system setup here to test ATM. The test works here with builtin and native comctl32.
The test fails here also without changing anything. Does this mean that the magic number 54 isn't correct?
tab.c:89: Test failed: Expected width [54] got [61] tab.c:95: Test failed: Expected [54,20] got [61,20] tab.c:95: Test failed: Expected [54,1] got [61,1] tab.c:95: Test failed: Expected [75,30] got [82,30] tab.c:95: Test failed: Expected [75,20] got [82,20] tab.c:95: Test failed: Expected [75,1] got [82,1]
Rob