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
f0b082b3
Commit
f0b082b3
authored
Feb 10, 2004
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Dynamically retrieve the metrics that depend on the screen size (based
on a patch by Alex Pasadyn). Get rid of the no longer used SM_WINE_BPP metric.
parent
822f63dc
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
22 deletions
+32
-22
user.h
include/user.h
+0
-4
sysmetrics.c
windows/sysmetrics.c
+32
-18
No files found.
include/user.h
View file @
f0b082b3
...
...
@@ -164,10 +164,6 @@ extern HPEN SYSCOLOR_GetPen( INT index );
extern
void
SYSMETRICS_Init
(
void
);
extern
INT
SYSMETRICS_Set
(
INT
index
,
INT
value
);
/* Wine extensions */
#define SM_WINE_BPP (SM_CMETRICS+1)
/* screen bpp */
#define SM_WINE_CMETRICS SM_WINE_BPP
/* sysparams.c */
extern
void
SYSPARAMS_GetDoubleClickSize
(
INT
*
width
,
INT
*
height
);
extern
INT
SYSPARAMS_GetMouseButtonSwap
(
void
);
...
...
windows/sysmetrics.c
View file @
f0b082b3
...
...
@@ -32,7 +32,8 @@
#include "winerror.h"
#include "user.h"
static
int
sysMetrics
[
SM_WINE_CMETRICS
+
1
];
static
int
sysMetrics
[
SM_CMETRICS
+
1
];
static
HDC
display_dc
;
/***********************************************************************
...
...
@@ -116,11 +117,11 @@ static int SYSMETRICS_GetRegistryMetric (
*/
void
SYSMETRICS_Init
(
void
)
{
HDC
hdc
=
CreateDCA
(
"DISPLAY"
,
NULL
,
NULL
,
NULL
);
HKEY
hkey
;
/* key to the window metrics area of the registry */
INT
dummy
;
assert
(
hdc
);
display_dc
=
CreateICA
(
"DISPLAY"
,
NULL
,
NULL
,
NULL
);
assert
(
display_dc
);
if
(
RegOpenKeyExA
(
HKEY_CURRENT_USER
,
"Control Panel
\\
desktop
\\
WindowMetrics"
,
0
,
KEY_QUERY_VALUE
,
&
hkey
)
!=
ERROR_SUCCESS
)
hkey
=
0
;
...
...
@@ -158,17 +159,12 @@ void SYSMETRICS_Init(void)
sysMetrics
[
SM_CXCURSOR
]
=
32
;
sysMetrics
[
SM_CYCURSOR
]
=
32
;
sysMetrics
[
SM_CXSCREEN
]
=
GetDeviceCaps
(
hdc
,
HORZRES
);
sysMetrics
[
SM_CYSCREEN
]
=
GetDeviceCaps
(
hdc
,
VERTRES
);
sysMetrics
[
SM_WINE_BPP
]
=
GetDeviceCaps
(
hdc
,
BITSPIXEL
);
sysMetrics
[
SM_CXBORDER
]
=
1
;
sysMetrics
[
SM_CYBORDER
]
=
sysMetrics
[
SM_CXBORDER
];
sysMetrics
[
SM_CYVTHUMB
]
=
sysMetrics
[
SM_CXVSCROLL
];
sysMetrics
[
SM_CXHTHUMB
]
=
sysMetrics
[
SM_CYVTHUMB
];
sysMetrics
[
SM_CXICON
]
=
32
;
sysMetrics
[
SM_CYICON
]
=
32
;
sysMetrics
[
SM_CXFULLSCREEN
]
=
sysMetrics
[
SM_CXSCREEN
];
sysMetrics
[
SM_CYFULLSCREEN
]
=
sysMetrics
[
SM_CYSCREEN
]
-
sysMetrics
[
SM_CYCAPTION
];
sysMetrics
[
SM_CYKANJIWINDOW
]
=
0
;
sysMetrics
[
SM_MOUSEPRESENT
]
=
1
;
sysMetrics
[
SM_CYVSCROLL
]
=
SYSMETRICS_GetRegistryMetric
(
hkey
,
"ScrollHeight"
,
sysMetrics
[
SM_CXVSCROLL
]);
...
...
@@ -230,10 +226,6 @@ void SYSMETRICS_Init(void)
sysMetrics
[
SM_CYMINIMIZED
]
=
24
;
/* FIXME: How do I calculate these? */
sysMetrics
[
SM_CXMAXTRACK
]
=
sysMetrics
[
SM_CXSCREEN
]
+
4
+
2
*
sysMetrics
[
SM_CXFRAME
];
sysMetrics
[
SM_CYMAXTRACK
]
=
sysMetrics
[
SM_CYSCREEN
]
+
4
+
2
*
sysMetrics
[
SM_CYFRAME
];
sysMetrics
[
SM_CXMAXIMIZED
]
=
sysMetrics
[
SM_CXSCREEN
]
+
2
*
sysMetrics
[
SM_CXFRAME
];
sysMetrics
[
SM_CYMAXIMIZED
]
=
sysMetrics
[
SM_CYSCREEN
]
+
2
*
sysMetrics
[
SM_CXFRAME
];
sysMetrics
[
SM_NETWORK
]
=
3
;
/* For the following: 0 = ok, 1 = failsafe, 2 = failsafe + network */
...
...
@@ -252,8 +244,6 @@ void SYSMETRICS_Init(void)
sysMetrics
[
SM_MOUSEWHEELPRESENT
]
=
1
;
sysMetrics
[
SM_CXVIRTUALSCREEN
]
=
sysMetrics
[
SM_CXSCREEN
];
sysMetrics
[
SM_CYVIRTUALSCREEN
]
=
sysMetrics
[
SM_CYSCREEN
];
sysMetrics
[
SM_XVIRTUALSCREEN
]
=
0
;
sysMetrics
[
SM_YVIRTUALSCREEN
]
=
0
;
sysMetrics
[
SM_CMONITORS
]
=
1
;
...
...
@@ -263,7 +253,6 @@ void SYSMETRICS_Init(void)
SystemParametersInfoA
(
SPI_GETSHOWSOUNDS
,
0
,
&
sysMetrics
[
SM_SHOWSOUNDS
],
0
);
if
(
hkey
)
RegCloseKey
(
hkey
);
DeleteDC
(
hdc
);
}
...
...
@@ -274,7 +263,7 @@ void SYSMETRICS_Init(void)
*/
INT
SYSMETRICS_Set
(
INT
index
,
INT
value
)
{
if
((
index
<
0
)
||
(
index
>
SM_
WINE_
CMETRICS
))
return
0
;
if
((
index
<
0
)
||
(
index
>
SM_CMETRICS
))
return
0
;
else
{
INT
prev
=
sysMetrics
[
index
];
...
...
@@ -298,6 +287,31 @@ INT16 WINAPI GetSystemMetrics16( INT16 index )
*/
INT
WINAPI
GetSystemMetrics
(
INT
index
)
{
if
((
index
<
0
)
||
(
index
>
SM_WINE_CMETRICS
))
return
0
;
return
sysMetrics
[
index
];
/* some metrics are dynamic */
switch
(
index
)
{
case
SM_CXSCREEN
:
case
SM_CXFULLSCREEN
:
case
SM_CXVIRTUALSCREEN
:
return
GetDeviceCaps
(
display_dc
,
HORZRES
);
case
SM_CYSCREEN
:
case
SM_CYVIRTUALSCREEN
:
return
GetDeviceCaps
(
display_dc
,
VERTRES
);
case
SM_CYFULLSCREEN
:
return
GetDeviceCaps
(
display_dc
,
VERTRES
)
-
sysMetrics
[
SM_CYCAPTION
];
/* FIXME: How do I calculate these? */
case
SM_CXMAXTRACK
:
return
GetDeviceCaps
(
display_dc
,
HORZRES
)
+
4
+
2
*
sysMetrics
[
SM_CXFRAME
];
case
SM_CYMAXTRACK
:
return
GetDeviceCaps
(
display_dc
,
VERTRES
)
+
4
+
2
*
sysMetrics
[
SM_CYFRAME
];
case
SM_CXMAXIMIZED
:
return
GetDeviceCaps
(
display_dc
,
HORZRES
)
+
2
*
sysMetrics
[
SM_CXFRAME
];
case
SM_CYMAXIMIZED
:
return
GetDeviceCaps
(
display_dc
,
VERTRES
)
+
2
*
sysMetrics
[
SM_CYFRAME
];
default:
if
((
index
<
0
)
||
(
index
>
SM_CMETRICS
))
return
0
;
return
sysMetrics
[
index
];
}
}
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