Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
6f9724d5
Commit
6f9724d5
authored
Feb 12, 2015
by
Mark Harmstone
Committed by
Alexandre Julliard
Feb 16, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
comctl32: Use theming when drawing IP address control.
parent
ca5184f5
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
13 deletions
+44
-13
ipaddress.c
dlls/comctl32/ipaddress.c
+44
-13
No files found.
dlls/comctl32/ipaddress.c
View file @
6f9724d5
...
...
@@ -45,6 +45,9 @@
#include "winnls.h"
#include "commctrl.h"
#include "comctl32.h"
#include "uxtheme.h"
#include "vsstyle.h"
#include "vssym32.h"
#include "wine/unicode.h"
#include "wine/debug.h"
...
...
@@ -150,36 +153,64 @@ static LRESULT IPADDRESS_Draw (const IPADDRESS_INFO *infoPtr, HDC hdc)
static
const
WCHAR
dotW
[]
=
{
'.'
,
0
};
RECT
rect
,
rcPart
;
COLORREF
bgCol
,
fgCol
;
int
i
;
HTHEME
theme
;
int
i
,
state
=
ETS_NORMAL
;
TRACE
(
"
\n
"
);
GetClientRect
(
infoPtr
->
Self
,
&
rect
);
if
(
infoPtr
->
Enabled
)
{
bgCol
=
comctl32_color
.
clrWindow
;
fgCol
=
comctl32_color
.
clrWindowText
;
theme
=
OpenThemeData
(
infoPtr
->
Self
,
WC_EDITW
);
if
(
theme
)
{
DWORD
dwStyle
=
GetWindowLongW
(
infoPtr
->
Self
,
GWL_STYLE
);
if
(
!
infoPtr
->
Enabled
)
state
=
ETS_DISABLED
;
else
if
(
dwStyle
&
ES_READONLY
)
state
=
ETS_READONLY
;
else
if
(
GetFocus
()
==
infoPtr
->
Self
)
state
=
ETS_FOCUSED
;
GetThemeColor
(
theme
,
EP_EDITTEXT
,
state
,
TMT_FILLCOLOR
,
&
bgCol
);
GetThemeColor
(
theme
,
EP_EDITTEXT
,
state
,
TMT_TEXTCOLOR
,
&
fgCol
);
if
(
IsThemeBackgroundPartiallyTransparent
(
theme
,
EP_EDITTEXT
,
state
))
DrawThemeParentBackground
(
infoPtr
->
Self
,
hdc
,
&
rect
);
DrawThemeBackground
(
theme
,
hdc
,
EP_EDITTEXT
,
state
,
&
rect
,
0
);
}
else
{
bgCol
=
comctl32_color
.
clr3dFace
;
fgCol
=
comctl32_color
.
clrGrayText
;
if
(
infoPtr
->
Enabled
)
{
bgCol
=
comctl32_color
.
clrWindow
;
fgCol
=
comctl32_color
.
clrWindowText
;
}
else
{
bgCol
=
comctl32_color
.
clr3dFace
;
fgCol
=
comctl32_color
.
clrGrayText
;
}
FillRect
(
hdc
,
&
rect
,
(
HBRUSH
)(
DWORD_PTR
)(
bgCol
+
1
));
DrawEdge
(
hdc
,
&
rect
,
EDGE_SUNKEN
,
BF_RECT
|
BF_ADJUST
);
}
FillRect
(
hdc
,
&
rect
,
(
HBRUSH
)(
DWORD_PTR
)(
bgCol
+
1
));
DrawEdge
(
hdc
,
&
rect
,
EDGE_SUNKEN
,
BF_RECT
|
BF_ADJUST
);
SetBkColor
(
hdc
,
bgCol
);
SetTextColor
(
hdc
,
fgCol
);
for
(
i
=
0
;
i
<
3
;
i
++
)
{
GetWindowRect
(
infoPtr
->
Part
[
i
].
EditHwnd
,
&
rcPart
);
MapWindowPoints
(
0
,
infoPtr
->
Self
,
(
POINT
*
)
&
rcPart
,
2
);
rect
.
left
=
rcPart
.
right
;
GetWindowRect
(
infoPtr
->
Part
[
i
+
1
].
EditHwnd
,
&
rcPart
);
rect
.
left
=
rcPart
.
right
;
GetWindowRect
(
infoPtr
->
Part
[
i
+
1
].
EditHwnd
,
&
rcPart
);
MapWindowPoints
(
0
,
infoPtr
->
Self
,
(
POINT
*
)
&
rcPart
,
2
);
rect
.
right
=
rcPart
.
left
;
DrawTextW
(
hdc
,
dotW
,
1
,
&
rect
,
DT_SINGLELINE
|
DT_CENTER
|
DT_BOTTOM
);
rect
.
right
=
rcPart
.
left
;
if
(
theme
)
DrawThemeText
(
theme
,
hdc
,
EP_EDITTEXT
,
state
,
dotW
,
1
,
DT_SINGLELINE
|
DT_CENTER
|
DT_BOTTOM
,
0
,
&
rect
);
else
DrawTextW
(
hdc
,
dotW
,
1
,
&
rect
,
DT_SINGLELINE
|
DT_CENTER
|
DT_BOTTOM
);
}
if
(
theme
)
CloseThemeData
(
theme
);
return
0
;
}
...
...
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