ReactOS
0.4.16-dev-747-gbc52d5f
settings.c
Go to the documentation of this file.
1
/*
2
* PROJECT: ReactOS Magnify
3
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4
* PURPOSE: Magnification of parts of the screen.
5
* COPYRIGHT: Copyright 2007-2019 Marc Piulachs <marc.piulachs@codexchange.net>
6
* Copyright 2015-2019 David Quintana <gigaherz@gmail.com>
7
*/
8
9
#include "
magnifier.h
"
10
11
#include <tchar.h>
12
#include <
winreg.h
>
13
14
UINT
uiZoom
= 3;
15
16
BOOL
bShowWarning
=
TRUE
;
17
18
BOOL
bFollowMouse
=
TRUE
;
19
BOOL
bFollowFocus
=
TRUE
;
20
BOOL
bFollowCaret
=
TRUE
;
21
22
BOOL
bInvertColors
=
FALSE
;
23
BOOL
bStartMinimized
=
FALSE
;
24
BOOL
bShowMagnifier
=
TRUE
;
25
26
struct
_AppBarConfig_t
AppBarConfig
=
27
{
28
sizeof
(
struct
_AppBarConfig_t
),
29
-2
/* ABE_TOP */
,
30
0, 1,
/* unknown */
31
{ 101,101,101,101 },
/* edge sizes */
32
{ 20, 20, 600, 200 },
/* floating window rect */
33
};
34
35
void
LoadSettings
(
void
)
36
{
37
HKEY
hkey;
38
LONG
value
;
39
ULONG
len
;
40
struct
_AppBarConfig_t
config_temp;
41
42
if
(
RegOpenKeyEx
(
HKEY_CURRENT_USER
,
_T
(
"Software\\Microsoft\\Magnify"
), 0,
KEY_READ
, &hkey) !=
ERROR_SUCCESS
)
43
return
;
44
45
len
=
sizeof
(
AppBarConfig
);
46
if
(
RegQueryValueEx
(hkey,
_T
(
"AppBar"
), 0, 0, (
BYTE
*)&config_temp, &
len
) ==
ERROR_SUCCESS
)
47
{
48
if
(config_temp.
cbSize
==
sizeof
(
AppBarConfig
))
49
{
50
AppBarConfig
= config_temp;
51
}
52
}
53
54
len
=
sizeof
(
value
);
55
if
(
RegQueryValueEx
(hkey,
_T
(
"StationaryMagLevel"
), 0, 0, (
BYTE
*)&
value
, &
len
) ==
ERROR_SUCCESS
)
56
{
57
if
(
value
>= 0 &&
value
<= 9)
58
uiZoom
=
value
;
59
}
60
61
len
=
sizeof
(
value
);
62
if
(
RegQueryValueEx
(hkey,
_T
(
"ShowWarning"
), 0, 0, (
BYTE
*)&
value
, &
len
) ==
ERROR_SUCCESS
)
63
bShowWarning
= !!
value
;
64
65
len
=
sizeof
(
value
);
66
if
(
RegQueryValueEx
(hkey,
_T
(
"StationaryInvertColors"
), 0, 0, (
BYTE
*)&
value
, &
len
) ==
ERROR_SUCCESS
)
67
bInvertColors
= !!
value
;
68
69
len
=
sizeof
(
value
);
70
if
(
RegQueryValueEx
(hkey,
_T
(
"StationaryStartMinimized"
), 0, 0, (
BYTE
*)&
value
, &
len
) ==
ERROR_SUCCESS
)
71
bStartMinimized
= !!
value
;
72
73
len
=
sizeof
(
value
);
74
if
(
RegQueryValueEx
(hkey,
_T
(
"StationaryTrackCursor"
), 0, 0, (
BYTE
*)&
value
, &
len
) ==
ERROR_SUCCESS
)
75
bFollowMouse
= !!
value
;
76
77
len
=
sizeof
(
value
);
78
if
(
RegQueryValueEx
(hkey,
_T
(
"StationaryTrackFocus"
), 0, 0, (
BYTE
*)&
value
, &
len
) ==
ERROR_SUCCESS
)
79
bFollowFocus
= !!
value
;
80
81
len
=
sizeof
(
value
);
82
if
(
RegQueryValueEx
(hkey,
_T
(
"StationaryTrackSecondaryFocus"
), 0, 0, (
BYTE
*)&
value
, &
len
) ==
ERROR_SUCCESS
)
83
bFollowFocus
= !!
value
;
84
85
len
=
sizeof
(
value
);
86
if
(
RegQueryValueEx
(hkey,
_T
(
"StationaryTrackText"
), 0, 0, (
BYTE
*)&
value
, &
len
) ==
ERROR_SUCCESS
)
87
bFollowCaret
= !!
value
;
88
89
RegCloseKey
(hkey);
90
}
91
92
void
SaveSettings
(
void
)
93
{
94
HKEY
hkey;
95
LONG
value
;
96
97
if
(
RegCreateKeyEx
(
HKEY_CURRENT_USER
,
_T
(
"Software\\Microsoft\\Magnify"
), 0,
_T
(
""
), 0,
KEY_WRITE
,
NULL
, &hkey,
NULL
) !=
ERROR_SUCCESS
)
98
return
;
99
100
RegSetValueEx
(hkey,
_T
(
"AppBar"
), 0,
REG_BINARY
, (
BYTE
*)&
AppBarConfig
,
sizeof
(
AppBarConfig
));
101
102
value
=
uiZoom
;
103
RegSetValueEx
(hkey,
_T
(
"StationaryMagLevel"
), 0,
REG_DWORD
, (
BYTE
*)&
value
,
sizeof
(
value
));
104
105
value
=
bShowWarning
;
106
RegSetValueEx
(hkey,
_T
(
"ShowWarning"
), 0,
REG_DWORD
, (
BYTE
*)&
value
,
sizeof
(
value
));
107
108
value
=
bInvertColors
;
109
RegSetValueEx
(hkey,
_T
(
"StationaryInvertColors"
), 0,
REG_DWORD
, (
BYTE
*)&
value
,
sizeof
(
value
));
110
111
value
=
bStartMinimized
;
112
RegSetValueEx
(hkey,
_T
(
"StationaryStartMinimized"
), 0,
REG_DWORD
, (
BYTE
*)&
value
,
sizeof
(
value
));
113
114
value
=
bFollowMouse
;
115
RegSetValueEx
(hkey,
_T
(
"StationaryTrackCursor"
), 0,
REG_DWORD
, (
BYTE
*)&
value
,
sizeof
(
value
));
116
117
value
=
bFollowFocus
;
118
RegSetValueEx
(hkey,
_T
(
"StationaryTrackFocus"
), 0,
REG_DWORD
, (
BYTE
*)&
value
,
sizeof
(
value
));
119
120
value
=
bFollowFocus
;
121
RegSetValueEx
(hkey,
_T
(
"StationaryTrackSecondaryFocus"
), 0,
REG_DWORD
, (
BYTE
*)&
value
,
sizeof
(
value
));
122
123
value
=
bFollowCaret
;
124
RegSetValueEx
(hkey,
_T
(
"StationaryTrackText"
), 0,
REG_DWORD
, (
BYTE
*)&
value
,
sizeof
(
value
));
125
126
RegCloseKey
(hkey);
127
}
SaveSettings
void SaveSettings(void)
Definition:
settings.c:115
LoadSettings
void LoadSettings(void)
Definition:
settings.c:53
bFollowFocus
BOOL bFollowFocus
Definition:
settings.c:19
AppBarConfig
struct _AppBarConfig_t AppBarConfig
Definition:
settings.c:26
uiZoom
UINT uiZoom
Definition:
settings.c:14
bInvertColors
BOOL bInvertColors
Definition:
settings.c:22
bShowMagnifier
BOOL bShowMagnifier
Definition:
settings.c:24
bFollowCaret
BOOL bFollowCaret
Definition:
settings.c:20
bShowWarning
BOOL bShowWarning
Definition:
settings.c:16
bFollowMouse
BOOL bFollowMouse
Definition:
settings.c:18
bStartMinimized
BOOL bStartMinimized
Definition:
settings.c:23
RegCloseKey
#define RegCloseKey(hKey)
Definition:
registry.h:49
ERROR_SUCCESS
#define ERROR_SUCCESS
Definition:
deptool.c:10
NULL
#define NULL
Definition:
types.h:112
TRUE
#define TRUE
Definition:
types.h:120
FALSE
#define FALSE
Definition:
types.h:117
BOOL
unsigned int BOOL
Definition:
ntddk_ex.h:94
len
GLenum GLsizei len
Definition:
glext.h:6722
void
Definition:
nsiface.idl:2307
magnifier.h
UINT
unsigned int UINT
Definition:
ndis.h:50
REG_BINARY
#define REG_BINARY
Definition:
nt_native.h:1496
KEY_READ
#define KEY_READ
Definition:
nt_native.h:1023
KEY_WRITE
#define KEY_WRITE
Definition:
nt_native.h:1031
LONG
long LONG
Definition:
pedump.c:60
REG_DWORD
#define REG_DWORD
Definition:
sdbapi.c:596
_AppBarConfig_t
Definition:
magnifier.h:18
_AppBarConfig_t::cbSize
DWORD cbSize
Definition:
magnifier.h:19
ULONG
uint32_t ULONG
Definition:
typedefs.h:59
value
Definition:
pdh_main.c:94
_T
#define _T(x)
Definition:
vfdio.h:22
winreg.h
HKEY_CURRENT_USER
#define HKEY_CURRENT_USER
Definition:
winreg.h:11
RegOpenKeyEx
#define RegOpenKeyEx
Definition:
winreg.h:520
RegSetValueEx
#define RegSetValueEx
Definition:
winreg.h:533
RegCreateKeyEx
#define RegCreateKeyEx
Definition:
winreg.h:501
RegQueryValueEx
#define RegQueryValueEx
Definition:
winreg.h:524
BYTE
unsigned char BYTE
Definition:
xxhash.c:193
base
applications
magnify
settings.c
Generated on Fri Feb 14 2025 06:16:30 for ReactOS by
1.9.6