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
3d2e3802
Commit
3d2e3802
authored
Dec 23, 2002
by
Duane Clark
Committed by
Alexandre Julliard
Dec 23, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Report mode padding tweaks.
Fix to LISTVIEW_GetSubItemRect.
parent
3c25c8e9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
17 deletions
+24
-17
listview.c
dlls/comctl32/listview.c
+24
-17
No files found.
dlls/comctl32/listview.c
View file @
3d2e3802
...
...
@@ -306,6 +306,7 @@ typedef struct tagLISTVIEW_INFO
* ICON_TOP_PADDING_HITABLE - spacing between above and icon.
* ICON_TOP_PADDING - sum of the two above.
* ICON_BOTTOM_PADDING - between bottom of icon and top of text
* LABEL_HOR_PADDING - between text and sides of box
* LABEL_VERT_PADDING - between bottom of text and end of box
*
* ICON_LR_PADDING - additional width above icon size.
...
...
@@ -315,6 +316,7 @@ typedef struct tagLISTVIEW_INFO
#define ICON_TOP_PADDING_HITABLE 2
#define ICON_TOP_PADDING (ICON_TOP_PADDING_NOTHITABLE + ICON_TOP_PADDING_HITABLE)
#define ICON_BOTTOM_PADDING 4
#define LABEL_HOR_PADDING 5
#define LABEL_VERT_PADDING 7
#define ICON_LR_PADDING 16
#define ICON_LR_HALF (ICON_LR_PADDING/2)
...
...
@@ -332,7 +334,8 @@ typedef struct tagLISTVIEW_INFO
#define IMAGE_PADDING 2
/* Padding behind the label */
#define TRAILING_PADDING 5
#define TRAILING_LABEL_PADDING 12
#define TRAILING_HEADER_PADDING 11
/* Border for the icon caption */
#define CAPTION_BORDER 2
...
...
@@ -1684,7 +1687,7 @@ static void LISTVIEW_GetItemOrigin(LISTVIEW_INFO *infoPtr, INT nItem, LPPOINT lp
}
else
/* LVS_REPORT */
{
lpptPosition
->
x
=
REPORT_MARGINX
;
lpptPosition
->
x
=
0
;
lpptPosition
->
y
=
nItem
*
infoPtr
->
nItemHeight
;
}
}
...
...
@@ -1788,9 +1791,9 @@ static void LISTVIEW_GetItemMetrics(LISTVIEW_INFO *infoPtr, const LVITEMW *lpLVI
State
.
left
=
Box
.
left
;
if
(
uView
==
LVS_REPORT
)
{
State
.
left
+=
REPORT_MARGINX
;
if
(
lpLVItem
->
iSubItem
==
0
)
{
State
.
left
+=
REPORT_MARGINX
;
assert
(
lpLVItem
->
mask
&
LVIF_INDENT
);
State
.
left
+=
infoPtr
->
iconSize
.
cx
*
lpLVItem
->
iIndent
;
}
...
...
@@ -1830,7 +1833,6 @@ static void LISTVIEW_GetItemMetrics(LISTVIEW_INFO *infoPtr, const LVITEMW *lpLVI
else
/* LVS_SMALLICON, LVS_LIST or LVS_REPORT */
{
Icon
.
left
=
State
.
right
;
if
(
!
IsRectEmpty
(
&
State
))
Icon
.
left
+=
IMAGE_PADDING
;
Icon
.
top
=
Box
.
top
;
Icon
.
right
=
Icon
.
left
;
if
(
infoPtr
->
himlSmall
&&
(
!
lpColumnInfo
||
lpLVItem
->
iSubItem
==
0
||
(
lpColumnInfo
->
fmt
&
LVCFMT_IMAGE
)))
...
...
@@ -1853,7 +1855,6 @@ static void LISTVIEW_GetItemMetrics(LISTVIEW_INFO *infoPtr, const LVITEMW *lpLVI
if
(
uView
==
LVS_REPORT
)
{
if
(
lpLVItem
->
iSubItem
==
0
)
Label
=
lpColumnInfo
->
rcHeader
;
Label
.
right
-=
REPORT_MARGINX
;
}
if
(
lpLVItem
->
iSubItem
||
((
infoPtr
->
dwStyle
&
LVS_OWNERDRAWFIXED
)
&&
uView
==
LVS_REPORT
))
...
...
@@ -1875,7 +1876,7 @@ static void LISTVIEW_GetItemMetrics(LISTVIEW_INFO *infoPtr, const LVITEMW *lpLVI
/* compute rough rectangle where the label will go */
SetRectEmpty
(
&
rcText
);
rcText
.
right
=
infoPtr
->
nItemWidth
-
TRAILING_PADDING
;
rcText
.
right
=
infoPtr
->
nItemWidth
-
TRAILING_
LABEL_
PADDING
;
rcText
.
bottom
=
infoPtr
->
nItemHeight
;
if
(
uView
==
LVS_ICON
)
rcText
.
bottom
-=
ICON_TOP_PADDING
+
infoPtr
->
iconSize
.
cy
+
ICON_BOTTOM_PADDING
;
...
...
@@ -1888,7 +1889,7 @@ static void LISTVIEW_GetItemMetrics(LISTVIEW_INFO *infoPtr, const LVITEMW *lpLVI
DrawTextW
(
hdc
,
lpLVItem
->
pszText
,
-
1
,
&
rcText
,
uFormat
|
DT_CALCRECT
);
labelSize
.
cx
=
min
(
rcText
.
right
-
rcText
.
left
+
TRAILING_PADDING
,
infoPtr
->
nItemWidth
);
labelSize
.
cx
=
min
(
rcText
.
right
-
rcText
.
left
+
TRAILING_
LABEL_
PADDING
,
infoPtr
->
nItemWidth
);
labelSize
.
cy
=
rcText
.
bottom
-
rcText
.
top
;
SelectObject
(
hdc
,
hOldFont
);
...
...
@@ -1915,7 +1916,6 @@ calc_label:
else
/* LVS_SMALLICON, LVS_LIST or LVS_REPORT */
{
Label
.
left
=
Icon
.
right
;
if
(
!
IsRectEmpty
(
&
Icon
)
||
!
IsRectEmpty
(
&
State
))
Label
.
left
+=
IMAGE_PADDING
;
Label
.
top
=
Box
.
top
;
Label
.
right
=
min
(
Label
.
left
+
labelSize
.
cx
,
Label
.
right
);
Label
.
bottom
=
Label
.
top
+
infoPtr
->
nItemHeight
;
...
...
@@ -2259,8 +2259,8 @@ static INT LISTVIEW_CalculateItemWidth(LISTVIEW_INFO *infoPtr)
for
(
i
=
0
;
i
<
infoPtr
->
nItemCount
;
i
++
)
nItemWidth
=
max
(
LISTVIEW_GetLabelWidth
(
infoPtr
,
i
),
nItemWidth
);
if
(
infoPtr
->
himlSmall
)
nItemWidth
+=
infoPtr
->
iconSize
.
cx
+
IMAGE_PADDING
;
if
(
infoPtr
->
himlState
)
nItemWidth
+=
infoPtr
->
iconStateSize
.
cx
+
IMAGE_PADDING
;
if
(
infoPtr
->
himlSmall
)
nItemWidth
+=
infoPtr
->
iconSize
.
cx
;
if
(
infoPtr
->
himlState
)
nItemWidth
+=
infoPtr
->
iconStateSize
.
cx
;
nItemWidth
=
max
(
DEFAULT_COLUMN_WIDTH
,
nItemWidth
+
WIDTH_PADDING
);
}
...
...
@@ -3556,7 +3556,12 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, INT nS
default:
uFormat
|=
DT_LEFT
;
}
}
if
(
!
(
uFormat
&
(
DT_RIGHT
|
DT_CENTER
)))
rcLabel
.
left
+=
2
;
if
(
!
(
uFormat
&
(
DT_RIGHT
|
DT_CENTER
)))
{
if
(
himl
&&
lvItem
.
iImage
>=
0
&&
!
IsRectEmpty
(
&
rcIcon
))
rcLabel
.
left
+=
IMAGE_PADDING
;
else
rcLabel
.
left
+=
LABEL_HOR_PADDING
;
}
else
if
(
uFormat
&
DT_RIGHT
)
rcLabel
.
right
-=
LABEL_HOR_PADDING
;
DrawTextW
(
hdc
,
lvItem
.
pszText
,
-
1
,
&
rcLabel
,
uFormat
);
postpaint:
...
...
@@ -5204,14 +5209,16 @@ static BOOL LISTVIEW_GetItemRect(LISTVIEW_INFO *infoPtr, INT nItem, LPRECT lprc)
*/
static
BOOL
LISTVIEW_GetSubItemRect
(
LISTVIEW_INFO
*
infoPtr
,
INT
nItem
,
LPRECT
lprc
)
{
POINT
Position
,
Origin
;
POINT
Position
;
LVITEMW
lvItem
;
if
(
!
lprc
||
(
infoPtr
->
dwStyle
&
LVS_TYPEMASK
)
!=
LVS_REPORT
)
return
FALSE
;
TRACE
(
"(nItem=%d, nSubItem=%d)
\n
"
,
nItem
,
lprc
->
top
);
/* On WinNT, a subitem of '0' calls LISTVIEW_GetItemRect */
if
(
lprc
->
top
==
0
)
return
LISTVIEW_GetItemRect
(
infoPtr
,
nItem
,
lprc
);
LISTVIEW_GetOrigin
(
infoPtr
,
&
Origin
);
if
(
!
LISTVIEW_GetItemPosition
(
infoPtr
,
nItem
,
&
Position
))
return
FALSE
;
lvItem
.
mask
=
lprc
->
top
==
0
?
LVIF_INDENT
:
0
;
...
...
@@ -5235,7 +5242,7 @@ static BOOL LISTVIEW_GetSubItemRect(LISTVIEW_INFO *infoPtr, INT nItem, LPRECT lp
return
FALSE
;
}
OffsetRect
(
lprc
,
Position
.
x
+
Origin
.
x
,
Position
.
y
+
Origi
n
.
y
);
OffsetRect
(
lprc
,
Position
.
x
,
Positio
n
.
y
);
return
TRUE
;
}
...
...
@@ -6267,8 +6274,8 @@ static BOOL LISTVIEW_SetColumnWidth(LISTVIEW_INFO *infoPtr, INT nColumn, INT cx)
if
(
max_cx
<
nLabelWidth
)
max_cx
=
nLabelWidth
;
}
if
(
infoPtr
->
himlSmall
&&
(
nColumn
==
0
||
(
LISTVIEW_GetColumnInfo
(
infoPtr
,
nColumn
)
->
fmt
&
LVCFMT_IMAGE
)))
max_cx
+=
infoPtr
->
iconSize
.
cx
+
IMAGE_PADDING
;
max_cx
+=
REPORT_MARGINX
+
TRAILING
_PADDING
;
max_cx
+=
infoPtr
->
iconSize
.
cx
;
max_cx
+=
TRAILING_LABEL
_PADDING
;
}
/* autosize based on listview items width */
...
...
@@ -6307,7 +6314,7 @@ static BOOL LISTVIEW_SetColumnWidth(LISTVIEW_INFO *infoPtr, INT nColumn, INT cx)
SIZE
size
;
if
(
GetTextExtentPoint32W
(
hdc
,
hdi
.
pszText
,
lstrlenW
(
hdi
.
pszText
),
&
size
))
cx
=
size
.
cx
;
cx
=
size
.
cx
+
TRAILING_HEADER_PADDING
;
/* FIXME: Take into account the header image, if one is present */
SelectObject
(
hdc
,
old_font
);
ReleaseDC
(
infoPtr
->
hwndSelf
,
hdc
);
...
...
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