Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
f172d64a
Commit
f172d64a
authored
Oct 14, 1998
by
Alex Korobka
Committed by
Alexandre Julliard
Oct 14, 1998
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CB_SETCURSEL and some other fixes.
parent
d37b69cd
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
40 deletions
+56
-40
combo.c
controls/combo.c
+55
-39
listbox.c
controls/listbox.c
+1
-1
No files found.
controls/combo.c
View file @
f172d64a
...
...
@@ -129,6 +129,30 @@ static LRESULT COMBO_NCDestroy( LPHEADCOMBO lphc )
return
0
;
}
/***********************************************************************
* CBGetDefaultTextHeight
*/
static
void
CBGetDefaultTextHeight
(
LPHEADCOMBO
lphc
,
LPSIZE32
lpSize
)
{
if
(
lphc
->
editHeight
)
/* explicitly set height */
lpSize
->
cy
=
lphc
->
editHeight
;
else
{
HDC32
hDC
=
GetDC32
(
lphc
->
self
->
hwndSelf
);
HFONT32
hPrevFont
=
0
;
if
(
lphc
->
hFont
)
hPrevFont
=
SelectObject32
(
hDC
,
lphc
->
hFont
);
GetTextExtentPoint32A
(
hDC
,
"0"
,
1
,
lpSize
);
lpSize
->
cy
+=
lpSize
->
cy
/
4
+
4
*
SYSMETRICS_CYBORDER
;
if
(
hPrevFont
)
SelectObject32
(
hDC
,
hPrevFont
);
ReleaseDC32
(
lphc
->
self
->
hwndSelf
,
hDC
);
}
lpSize
->
cx
=
lphc
->
RectCombo
.
right
-
lphc
->
RectCombo
.
left
;
}
/***********************************************************************
* CBCalcPlacement
...
...
@@ -143,47 +167,36 @@ static void CBCalcPlacement( LPHEADCOMBO lphc, LPRECT32 lprEdit,
/* get combo height and width */
size
.
cx
=
rect
.
right
-
rect
.
left
;
if
(
CB_OWNERDRAWN
(
lphc
)
)
{
UINT32
u
=
lphc
->
RectEdit
.
bottom
-
lphc
->
RectEdit
.
top
;
if
(
lphc
->
wState
&
CBF_MEASUREITEM
)
/* first initialization */
{
MEASUREITEMSTRUCT32
mi32
;
lphc
->
wState
&=
~
CBF_MEASUREITEM
;
mi32
.
CtlType
=
ODT_COMBOBOX
;
mi32
.
CtlID
=
lphc
->
self
->
wIDmenu
;
mi32
.
itemID
=
-
1
;
mi32
.
itemWidth
=
size
.
cx
;
mi32
.
itemHeight
=
u
-
6
;
/* ownerdrawn cb is taller */
mi32
.
itemData
=
0
;
SendMessage32A
(
lphc
->
owner
,
WM_MEASUREITEM
,
(
WPARAM32
)
mi32
.
CtlID
,
(
LPARAM
)
&
mi32
);
u
=
6
+
(
UINT16
)
mi32
.
itemHeight
;
}
size
.
cy
=
u
;
}
else
if
(
lphc
->
editHeight
)
/* explicitly set height */
size
.
cy
=
lphc
->
editHeight
;
else
{
HDC32
hDC
=
GetDC32
(
lphc
->
self
->
hwndSelf
);
HFONT32
hPrevFont
=
0
;
SIZE32
font_size
;
MEASUREITEMSTRUCT32
mi32
;
if
(
lphc
->
hFont
)
hPrevFont
=
SelectObject32
(
hDC
,
lphc
->
hFont
);
/* calculate defaults before sending WM_MEASUREITEM */
GetTextExtentPoint32A
(
hDC
,
"0"
,
1
,
&
font_size
);
CBGetDefaultTextHeight
(
lphc
,
&
size
);
size
.
cy
=
font_size
.
cy
+
font_size
.
cy
/
4
+
4
*
SYSMETRICS_CYBORDER
;
lphc
->
wState
&=
~
CBF_MEASUREITEM
;
if
(
hPrevFont
)
SelectObject32
(
hDC
,
hPrevFont
);
ReleaseDC32
(
lphc
->
self
->
hwndSelf
,
hDC
);
mi32
.
CtlType
=
ODT_COMBOBOX
;
mi32
.
CtlID
=
lphc
->
self
->
wIDmenu
;
mi32
.
itemID
=
-
1
;
mi32
.
itemWidth
=
size
.
cx
;
mi32
.
itemHeight
=
size
.
cy
-
6
;
/* ownerdrawn cb is taller */
mi32
.
itemData
=
0
;
SendMessage32A
(
lphc
->
owner
,
WM_MEASUREITEM
,
(
WPARAM32
)
mi32
.
CtlID
,
(
LPARAM
)
&
mi32
);
u
=
6
+
(
UINT16
)
mi32
.
itemHeight
;
}
else
size
.
cx
=
rect
.
right
-
rect
.
left
;
size
.
cy
=
u
;
}
else
CBGetDefaultTextHeight
(
lphc
,
&
size
);
/* calculate text and button placement */
...
...
@@ -1071,7 +1084,8 @@ static void COMBO_Size( LPHEADCOMBO lphc )
/* CreateWindow() may send a bogus WM_SIZE, ignore it */
if
(
w
==
(
lphc
->
RectCombo
.
right
-
lphc
->
RectCombo
.
left
)
)
{
if
(
w
==
(
lphc
->
RectCombo
.
right
-
lphc
->
RectCombo
.
left
)
)
{
if
(
(
CB_GETTYPE
(
lphc
)
==
CBS_SIMPLE
)
&&
(
h
==
(
lphc
->
RectCombo
.
bottom
-
lphc
->
RectCombo
.
top
))
)
return
;
...
...
@@ -1079,7 +1093,6 @@ static void COMBO_Size( LPHEADCOMBO lphc )
(
h
==
(
lphc
->
RectEdit
.
bottom
-
lphc
->
RectEdit
.
top
))
)
return
;
}
lphc
->
RectCombo
=
rect
;
CBCalcPlacement
(
lphc
,
&
lphc
->
RectEdit
,
&
lphc
->
RectButton
,
&
rect
);
CBResetPos
(
lphc
,
&
rect
,
TRUE
);
...
...
@@ -1144,7 +1157,8 @@ static LRESULT COMBO_SelectString( LPHEADCOMBO lphc, INT32 start, LPCSTR pText )
{
INT32
index
=
SendMessage32A
(
lphc
->
hWndLBox
,
LB_SELECTSTRING32
,
(
WPARAM32
)
start
,
(
LPARAM
)
pText
);
if
(
index
>=
0
)
{
if
(
index
>=
0
)
{
if
(
lphc
->
wState
&
CBF_EDIT
)
CBUpdateEdit
(
lphc
,
index
);
else
...
...
@@ -1425,14 +1439,14 @@ LRESULT WINAPI ComboWndProc( HWND32 hwnd, UINT32 message,
return
SendMessage32A
(
lphc
->
hWndLBox
,
LB_FINDSTRINGEXACT32
,
wParam
,
lParam
);
case
CB_SETITEMHEIGHT16
:
wParam
=
(
INT32
)(
INT16
)
wParam
;
/* signed integer */
wParam
=
(
INT32
)(
INT16
)
wParam
;
/* signed integer */
case
CB_SETITEMHEIGHT32
:
return
COMBO_SetItemHeight
(
lphc
,
(
INT32
)
wParam
,
(
INT32
)
lParam
);
case
CB_GETITEMHEIGHT16
:
wParam
=
(
INT32
)(
INT16
)
wParam
;
case
CB_GETITEMHEIGHT32
:
if
(
(
INT32
)
wParam
>=
0
)
if
(
(
INT32
)
wParam
>=
0
)
/* listbox item */
return
SendMessage32A
(
lphc
->
hWndLBox
,
LB_GETITEMHEIGHT32
,
wParam
,
0
);
return
(
lphc
->
RectEdit
.
bottom
-
lphc
->
RectEdit
.
top
);
...
...
@@ -1497,14 +1511,16 @@ LRESULT WINAPI ComboWndProc( HWND32 hwnd, UINT32 message,
(
LPSTR
)
lParam
,
(
message
==
CB_DIR32
));
case
CB_SHOWDROPDOWN16
:
case
CB_SHOWDROPDOWN32
:
if
(
CB_GETTYPE
(
lphc
)
!=
CBS_SIMPLE
)
{
if
(
wParam
)
{
if
(
CB_GETTYPE
(
lphc
)
!=
CBS_SIMPLE
)
{
if
(
wParam
)
{
if
(
!
(
lphc
->
wState
&
CBF_DROPPED
)
)
CBDropDown
(
lphc
);
}
else
{
}
else
if
(
lphc
->
wState
&
CBF_DROPPED
)
CBRollUp
(
lphc
,
FALSE
,
TRUE
);
}
}
return
TRUE
;
...
...
controls/listbox.c
View file @
f172d64a
...
...
@@ -2280,7 +2280,7 @@ LRESULT WINAPI ListBoxWndProc( HWND32 hwnd, UINT32 msg,
/* fall through */
case
LB_SETCURSEL32
:
if
(
wParam
!=
-
1
)
LISTBOX_MakeItemVisible
(
wnd
,
descr
,
wParam
,
TRUE
);
return
LISTBOX_SetSelection
(
wnd
,
descr
,
wParam
,
TRUE
,
FALSE
);
return
LISTBOX_SetSelection
(
wnd
,
descr
,
wParam
,
TRUE
,
(
descr
->
lphc
!=
NULL
)
);
case
LB_GETSELCOUNT16
:
case
LB_GETSELCOUNT32
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment