#pragma once
#ifndef _WIN32_WCE
#include "query_dword_value.hpp"
#include "set_dword_value.hpp"
namespace tomato {
template< class StringT, class Profile >
void write_window_placement_profile(Profile& pr, WINDOWPLACEMENT& wndpl, StringT const& prefix)
{
set_dword_value(pr, prefix + _T("placement.flags"), wndpl.flags);
set_dword_value(pr, prefix + _T("placement.showCmd"), wndpl.showCmd);
set_dword_value(pr, prefix + _T("placement.ptMinPosition.x"), wndpl.ptMinPosition.x);
set_dword_value(pr, prefix + _T("placement.ptMinPosition.y"), wndpl.ptMinPosition.y);
set_dword_value(pr, prefix + _T("placement.ptMaxPosition.x"), wndpl.ptMaxPosition.x);
set_dword_value(pr, prefix + _T("placement.ptMaxPosition.y"), wndpl.ptMaxPosition.y);
set_dword_value(pr, prefix + _T("placement.rcNormalPosition.left"), wndpl.rcNormalPosition.left);
set_dword_value(pr, prefix + _T("placement.rcNormalPosition.top"), wndpl.rcNormalPosition.top);
set_dword_value(pr, prefix + _T("placement.rcNormalPosition.right"), wndpl.rcNormalPosition.right);
set_dword_value(pr, prefix + _T("placement.rcNormalPosition.bottom"), wndpl.rcNormalPosition.bottom);
}
template< class StringT, class Profile >
bool get_window_placement_profile(Profile& pr, WINDOWPLACEMENT& wndpl, StringT const& prefix)
{
DWORD
dwFlags = 0, dwShowCmd = 0,
dwMinX = 0, dwMinY = 0,
dwMaxX = 0, dwMaxY = 0,
dwLeft = 0, dwTop = 0, dwRight = 0, dwBottom = 0
;
if (
query_dword_value(pr, prefix + _T("placement.flags"), dwFlags) &&
query_dword_value(pr, prefix + _T("placement.showCmd"), dwShowCmd) &&
query_dword_value(pr, prefix + _T("placement.ptMinPosition.x"), dwMinX) &&
query_dword_value(pr, prefix + _T("placement.ptMinPosition.y"), dwMinY) &&
query_dword_value(pr, prefix + _T("placement.ptMaxPosition.x"), dwMaxX) &&
query_dword_value(pr, prefix + _T("placement.ptMaxPosition.y"), dwMaxY) &&
query_dword_value(pr, prefix + _T("placement.rcNormalPosition.left"), dwLeft) &&
query_dword_value(pr, prefix + _T("placement.rcNormalPosition.top"), dwTop) &&
query_dword_value(pr, prefix + _T("placement.rcNormalPosition.right"), dwRight) &&
query_dword_value(pr, prefix + _T("placement.rcNormalPosition.bottom"), dwBottom)
)
{
wndpl.flags = dwFlags;
wndpl.showCmd = dwShowCmd;
wndpl.ptMinPosition.x = dwMinX;
wndpl.ptMinPosition.y = dwMinY;
wndpl.ptMaxPosition.x = dwMaxX;
wndpl.ptMaxPosition.y = dwMaxY;
wndpl.rcNormalPosition.left = dwLeft;
wndpl.rcNormalPosition.top = dwTop;
wndpl.rcNormalPosition.right = dwRight;
wndpl.rcNormalPosition.bottom = dwBottom;
return true;
}
return false;
}
} // namespace tomato
#endif // !_WIN32_WCE