- set the item height not only for the listbox, but also for the text field
- center text vertically - beautify comments
This commit is contained in:
parent
a420e6f9a2
commit
45c9fd892f
|
@ -160,7 +160,7 @@ static LRESULT COMBO_NCDestroy( LPHEADCOMBO lphc )
|
||||||
* This method will calculate the height of the text area of the
|
* This method will calculate the height of the text area of the
|
||||||
* combobox.
|
* combobox.
|
||||||
* The height of the text area is set in two ways.
|
* The height of the text area is set in two ways.
|
||||||
* It can be set explicitely through a combobox message of through a
|
* It can be set explicitely through a combobox message or through a
|
||||||
* WM_MEASUREITEM callback.
|
* WM_MEASUREITEM callback.
|
||||||
* If this is not the case, the height is set to 13 dialog units.
|
* If this is not the case, the height is set to 13 dialog units.
|
||||||
* This height was determined through experimentation.
|
* This height was determined through experimentation.
|
||||||
|
@ -613,10 +613,10 @@ static LRESULT COMBO_Create( LPHEADCOMBO lphc, WND* wnd, LPARAM lParam)
|
||||||
/* Now do the trick with parent */
|
/* Now do the trick with parent */
|
||||||
SetParent(lphc->hWndLBox, HWND_DESKTOP);
|
SetParent(lphc->hWndLBox, HWND_DESKTOP);
|
||||||
/*
|
/*
|
||||||
* If the combo is a dropdown, we must resize the control to fit only
|
* If the combo is a dropdown, we must resize the control
|
||||||
* the text area and button. To do this, we send a dummy resize and the
|
* to fit only the text area and button. To do this,
|
||||||
* WM_WINDOWPOSCHANGING message will take care of setting the height for
|
* we send a dummy resize and the WM_WINDOWPOSCHANGING message
|
||||||
* us.
|
* will take care of setting the height for us.
|
||||||
*/
|
*/
|
||||||
CBForceDummyResize(lphc);
|
CBForceDummyResize(lphc);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
*
|
*
|
||||||
* FIXME: lpstrCustomFilter not handled
|
* FIXME: lpstrCustomFilter not handled
|
||||||
*
|
*
|
||||||
* FIXME: if the size of lpstrFile (nMaxFile) is to small the first
|
* FIXME: if the size of lpstrFile (nMaxFile) is too small the first
|
||||||
* two bytes of lpstrFile should contain the needed size
|
* two bytes of lpstrFile should contain the needed size
|
||||||
*
|
*
|
||||||
* FIXME: algorithm for selecting the initial directory is too simple
|
* FIXME: algorithm for selecting the initial directory is too simple
|
||||||
|
@ -69,7 +69,6 @@ typedef struct tagLookInInfo
|
||||||
|
|
||||||
/* Draw item constant */
|
/* Draw item constant */
|
||||||
#define ICONWIDTH 18
|
#define ICONWIDTH 18
|
||||||
#define YTEXTOFFSET 2
|
|
||||||
#define XTEXTOFFSET 3
|
#define XTEXTOFFSET 3
|
||||||
|
|
||||||
/* AddItem flags*/
|
/* AddItem flags*/
|
||||||
|
@ -85,7 +84,7 @@ typedef struct tagLookInInfo
|
||||||
|
|
||||||
/* NOTE
|
/* NOTE
|
||||||
* Those macros exist in windowsx.h. However, you can't really use them since
|
* Those macros exist in windowsx.h. However, you can't really use them since
|
||||||
* they rely on the UNICODE defines and can't be use inside Wine itself.
|
* they rely on the UNICODE defines and can't be used inside Wine itself.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Combo box macros */
|
/* Combo box macros */
|
||||||
|
@ -217,7 +216,7 @@ BOOL WINAPI GetFileName95(FileOpenDlgInfos *fodInfos)
|
||||||
(DLGPROC) FileOpenDlgProc95,
|
(DLGPROC) FileOpenDlgProc95,
|
||||||
(LPARAM) fodInfos);
|
(LPARAM) fodInfos);
|
||||||
|
|
||||||
/* Unable to create the dialog*/
|
/* Unable to create the dialog */
|
||||||
if( lRes == -1)
|
if( lRes == -1)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -842,7 +841,7 @@ static LRESULT FILEDLG95_OnWMInitDialog(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
/* Initialise dialog UI */
|
/* Initialise dialog UI */
|
||||||
FILEDLG95_InitUI(hwnd);
|
FILEDLG95_InitUI(hwnd);
|
||||||
|
|
||||||
/* Initialize the Look In combo box*/
|
/* Initialize the Look In combo box */
|
||||||
FILEDLG95_LOOKIN_Init(fodInfos->DlgInfos.hwndLookInCB);
|
FILEDLG95_LOOKIN_Init(fodInfos->DlgInfos.hwndLookInCB);
|
||||||
|
|
||||||
/* Initialize the filter combo box */
|
/* Initialize the filter combo box */
|
||||||
|
@ -1764,6 +1763,9 @@ static HRESULT FILEDLG95_LOOKIN_Init(HWND hwndCombo)
|
||||||
liInfos->iMaxIndentation = 0;
|
liInfos->iMaxIndentation = 0;
|
||||||
|
|
||||||
SetPropA(hwndCombo, LookInInfosStr, (HANDLE) liInfos);
|
SetPropA(hwndCombo, LookInInfosStr, (HANDLE) liInfos);
|
||||||
|
|
||||||
|
/* set item height for both text field and listbox */
|
||||||
|
CBSetItemHeight(hwndCombo,-1,GetSystemMetrics(SM_CYSMICON));
|
||||||
CBSetItemHeight(hwndCombo,0,GetSystemMetrics(SM_CYSMICON));
|
CBSetItemHeight(hwndCombo,0,GetSystemMetrics(SM_CYSMICON));
|
||||||
|
|
||||||
/* Initialise data of Desktop folder */
|
/* Initialise data of Desktop folder */
|
||||||
|
@ -1830,6 +1832,7 @@ static LRESULT FILEDLG95_LOOKIN_DrawItem(LPDRAWITEMSTRUCT pDIStruct)
|
||||||
SHFILEINFOA sfi;
|
SHFILEINFOA sfi;
|
||||||
HIMAGELIST ilItemImage;
|
HIMAGELIST ilItemImage;
|
||||||
int iIndentation;
|
int iIndentation;
|
||||||
|
TEXTMETRICA tm;
|
||||||
LPSFOLDER tmpFolder;
|
LPSFOLDER tmpFolder;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1866,7 +1869,7 @@ static LRESULT FILEDLG95_LOOKIN_DrawItem(LPDRAWITEMSTRUCT pDIStruct)
|
||||||
SHGFI_DISPLAYNAME);
|
SHGFI_DISPLAYNAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Is this item selected ?*/
|
/* Is this item selected ? */
|
||||||
if(pDIStruct->itemState & ODS_SELECTED)
|
if(pDIStruct->itemState & ODS_SELECTED)
|
||||||
{
|
{
|
||||||
SetTextColor(pDIStruct->hDC,(0x00FFFFFF & ~(crText)));
|
SetTextColor(pDIStruct->hDC,(0x00FFFFFF & ~(crText)));
|
||||||
|
@ -1880,7 +1883,7 @@ static LRESULT FILEDLG95_LOOKIN_DrawItem(LPDRAWITEMSTRUCT pDIStruct)
|
||||||
FillRect(pDIStruct->hDC,&pDIStruct->rcItem,(HBRUSH)crWin);
|
FillRect(pDIStruct->hDC,&pDIStruct->rcItem,(HBRUSH)crWin);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Do not indent item if drawing in the edit of the combo*/
|
/* Do not indent item if drawing in the edit of the combo */
|
||||||
if(pDIStruct->itemState & ODS_COMBOBOXEDIT)
|
if(pDIStruct->itemState & ODS_COMBOBOXEDIT)
|
||||||
{
|
{
|
||||||
iIndentation = 0;
|
iIndentation = 0;
|
||||||
|
@ -1905,11 +1908,13 @@ static LRESULT FILEDLG95_LOOKIN_DrawItem(LPDRAWITEMSTRUCT pDIStruct)
|
||||||
rectIcon.bottom = pDIStruct->rcItem.bottom;
|
rectIcon.bottom = pDIStruct->rcItem.bottom;
|
||||||
|
|
||||||
/* Initialise the text display area */
|
/* Initialise the text display area */
|
||||||
|
GetTextMetricsA(pDIStruct->hDC, &tm);
|
||||||
rectText.left = rectIcon.right;
|
rectText.left = rectIcon.right;
|
||||||
rectText.top = pDIStruct->rcItem.top + YTEXTOFFSET;
|
rectText.top =
|
||||||
|
(pDIStruct->rcItem.top + pDIStruct->rcItem.bottom - tm.tmHeight) / 2;
|
||||||
rectText.right = pDIStruct->rcItem.right + XTEXTOFFSET;
|
rectText.right = pDIStruct->rcItem.right + XTEXTOFFSET;
|
||||||
rectText.bottom = pDIStruct->rcItem.bottom;
|
rectText.bottom =
|
||||||
|
(pDIStruct->rcItem.top + pDIStruct->rcItem.bottom + tm.tmHeight) / 2;
|
||||||
|
|
||||||
/* Draw the icon from the image list */
|
/* Draw the icon from the image list */
|
||||||
COMDLG32_ImageList_Draw(ilItemImage,
|
COMDLG32_ImageList_Draw(ilItemImage,
|
||||||
|
|
Loading…
Reference in New Issue