Fixed problem with origin for DST_COMPLEX style.
Fixed handling of DSS_DISABLED and DSS_DEFAULT styles.
Added handling of BS_MULTILINE style, label alignment
styles (BS_RIGHT, etc.) and some exotic styles BS_FLAT (only
pushbuttons for now), and BS_PUSHLIKE.
Modified label drawing procedure: now all kinds of buttons
use common BUTTON_DrawLabel function. Actual label drawing is
performed by DrawStateW function.
GroupBox must use WM_CTLCOLORSTATIC instead of WM_CTLCOLORBTN message.
Add new key to wine.ini in the section [x11drv] - TextCP, which means
code page used for texts passed to X.
Accordingly fix handlers of WM_SETTEXT/WM_GETTEXT.
other than CBS_SIMPLE, parent of listbox is set to desktop.
- In CBDropDown. ComboBox uses only first item to calculate height of
dropped listbox. Also if listbox is empty its height is unmodified
(previously it was set to 0).
- Added correct handling of WM_GETDLGCODE and WM_(SYS)KEYDOWN messages.
- General clean-up. Message order is now more precise (at least
notifications to client); listbox - combobox interaction has slight
differences comparing to Windows.
- Edit control uses undocumented window style 0x0200 to detect is it a part
of combobox. If so it calls GetDlgItem(hwndCombo, 1000) to get ComboLBox
window handle (see comments for combo.c below).
- EDIT_CheckCombo - modified for correct handling of keyboard messages.
- Processing of WM_GETDLGCODE and WM_CHAR for VK_RETURN and VK_ESCAPE
depends on whether listbox is dropped down. This prevents closing of dialog
if listbox is dropped down and allows combobox to process these keyboard
messages properly.
- When user clicks outside of dropped listbox, original selection must be
restored.
- ComboLBox has caret_on = FALSE on creation, that's why combobox sends
LB_CARETON message before dropping listbox down (but only for
CBS_DROPDOWNLIST - I don't now why).
Sheri Steeves
Haithem Hmida
- Height of the listbox should be adjust when LBS_OWNERDRAWFIXED is set
and not if LBS_OWNERDRAWVARIABLE is set, previously it was not adjusting
the size in both cases.
- When the caret index change, items repainting need tp be in this
order
a) Paint old caret item without the focus
b) Paint old caret item without the selection
c) Paint new caret item with the selection
d) Paint new caret item with the focus.
- When repainting the listbox, we should paint all items regarding if
they are slected or not and then paint after the focus item. So focus
item will end out being painted twice. (That's what Windows does).