ReactOS
0.4.15-dev-5893-g1bb4167
settings.cpp
Go to the documentation of this file.
1
/*
2
* ReactOS Explorer
3
*
4
* Copyright 2013 - Edijs Kolesnikovics
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#include "
precomp.h
"
22
23
TaskbarSettings
g_TaskbarSettings
;
24
25
BOOL
TaskbarSettings::Save
()
26
{
27
SHSetValueW
(
hkExplorer
,
NULL
,
L
"EnableAutotray"
,
REG_DWORD
, &
bHideInactiveIcons
,
sizeof
(
bHideInactiveIcons
));
28
SHSetValueW
(
hkExplorer
,
L
"Advanced"
,
L
"ShowSeconds"
,
REG_DWORD
, &
bShowSeconds
,
sizeof
(
bShowSeconds
));
29
SHSetValueW
(
hkExplorer
,
L
"Advanced"
,
L
"TaskbarGlomming"
,
REG_DWORD
, &
bGroupButtons
,
sizeof
(
bGroupButtons
));
30
BOOL
bAllowSizeMove = !
bLock
;
31
SHSetValueW
(
hkExplorer
,
L
"Advanced"
,
L
"TaskbarSizeMove"
,
REG_DWORD
, &bAllowSizeMove,
sizeof
(bAllowSizeMove));
32
sr
.
cbSize
=
sizeof
(
sr
);
33
SHSetValueW
(
hkExplorer
,
L
"StuckRects2"
,
L
"Settings"
,
REG_BINARY
, &
sr
,
sizeof
(
sr
));
34
35
/* TODO: AutoHide writes something to HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components\0 figure out what and why */
36
return
TRUE
;
37
}
38
39
BOOL
TaskbarSettings::Load
()
40
{
41
DWORD
dwRet, cbSize, dwValue =
NULL
;
42
43
cbSize =
sizeof
(dwValue);
44
dwRet =
SHGetValueW
(
hkExplorer
,
L
"Advanced"
,
L
"TaskbarSizeMove"
,
NULL
, &dwValue, &cbSize);
45
bLock
= (dwRet ==
ERROR_SUCCESS
) ? (dwValue == 0) :
TRUE
;
46
47
dwRet =
SHGetValueW
(
hkExplorer
,
L
"Advanced"
,
L
"ShowSeconds"
,
NULL
, &dwValue, &cbSize);
48
bShowSeconds
= (dwRet ==
ERROR_SUCCESS
) ? (dwValue != 0) :
FALSE
;
49
50
dwRet =
SHGetValueW
(
hkExplorer
,
L
"Advanced"
,
L
"TaskbarGlomming"
,
NULL
, &dwValue, &cbSize);
51
bGroupButtons
= (dwRet ==
ERROR_SUCCESS
) ? (dwValue != 0) :
FALSE
;
52
53
dwRet =
SHGetValueW
(
hkExplorer
,
NULL
,
L
"EnableAutotray"
,
NULL
, &dwValue, &cbSize);
54
bHideInactiveIcons
= (dwRet ==
ERROR_SUCCESS
) ? (dwValue != 0) :
FALSE
;
55
56
cbSize =
sizeof
(
sr
);
57
dwRet =
SHGetValueW
(
hkExplorer
,
L
"StuckRects2"
,
L
"Settings"
,
NULL
, &
sr
, &cbSize);
58
59
/* Make sure we have correct values here */
60
if
(dwRet !=
ERROR_SUCCESS
||
sr
.
cbSize
!=
sizeof
(
sr
) || cbSize !=
sizeof
(
sr
))
61
{
62
sr
.
Position
=
ABE_BOTTOM
;
63
sr
.
AutoHide
=
FALSE
;
64
sr
.
AlwaysOnTop
=
TRUE
;
65
sr
.
SmallIcons
=
TRUE
;
66
sr
.
HideClock
=
FALSE
;
67
sr
.
Rect
.
left
=
sr
.
Rect
.
top
= 0;
68
sr
.
Rect
.
bottom
=
sr
.
Rect
.
right
= 1;
69
sr
.
Size
.
cx
=
sr
.
Size
.
cy
= 0;
70
}
71
else
72
{
73
if
(
sr
.
Position
>
ABE_BOTTOM
)
74
sr
.
Position
=
ABE_BOTTOM
;
75
}
76
77
return
TRUE
;
78
}
79
80
/* EOF */
hkExplorer
HKEY hkExplorer
Definition:
explorer.cpp:26
g_TaskbarSettings
TaskbarSettings g_TaskbarSettings
Definition:
settings.cpp:23
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
SHGetValueW
DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
Definition:
reg.c:1236
SHSetValueW
DWORD WINAPI SHSetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, DWORD dwType, LPCVOID pvData, DWORD cbData)
Definition:
reg.c:1306
BOOL
unsigned int BOOL
Definition:
ntddk_ex.h:94
DWORD
unsigned long DWORD
Definition:
ntddk_ex.h:95
REG_BINARY
#define REG_BINARY
Definition:
nt_native.h:1496
L
#define L(x)
Definition:
ntvdm.h:50
REG_DWORD
#define REG_DWORD
Definition:
sdbapi.c:596
ABE_BOTTOM
#define ABE_BOTTOM
Definition:
shellapi.h:20
TaskbarSettings
Definition:
precomp.h:204
TaskbarSettings::bGroupButtons
BOOL bGroupButtons
Definition:
precomp.h:206
TaskbarSettings::bHideInactiveIcons
BOOL bHideInactiveIcons
Definition:
precomp.h:208
TaskbarSettings::bLock
BOOL bLock
Definition:
precomp.h:205
TaskbarSettings::sr
TW_STRUCKRECTS2 sr
Definition:
precomp.h:209
TaskbarSettings::bShowSeconds
BOOL bShowSeconds
Definition:
precomp.h:207
TaskbarSettings::Load
BOOL Load()
Definition:
settings.cpp:39
TaskbarSettings::Save
BOOL Save()
Definition:
settings.cpp:25
_SIZE::cx
LONG cx
Definition:
kdterminal.h:27
_SIZE::cy
LONG cy
Definition:
kdterminal.h:28
_TW_STUCKRECTS2::SmallIcons
DWORD SmallIcons
Definition:
precomp.h:194
_TW_STUCKRECTS2::AutoHide
DWORD AutoHide
Definition:
precomp.h:192
_TW_STUCKRECTS2::HideClock
DWORD HideClock
Definition:
precomp.h:195
_TW_STUCKRECTS2::AlwaysOnTop
DWORD AlwaysOnTop
Definition:
precomp.h:193
_TW_STUCKRECTS2::Size
SIZE Size
Definition:
precomp.h:199
_TW_STUCKRECTS2::Position
DWORD Position
Definition:
precomp.h:198
_TW_STUCKRECTS2::Rect
RECT Rect
Definition:
precomp.h:200
_TW_STUCKRECTS2::cbSize
DWORD cbSize
Definition:
precomp.h:185
tagRECT::right
LONG right
Definition:
windef.h:308
tagRECT::bottom
LONG bottom
Definition:
windef.h:309
tagRECT::top
LONG top
Definition:
windef.h:307
tagRECT::left
LONG left
Definition:
windef.h:306
precomp.h
base
shell
explorer
settings.cpp
Generated on Wed Mar 29 2023 06:05:40 for ReactOS by
1.9.6